.edu-wide{max-width:1360px}.edu-hero{padding:clamp(28px,5vw,64px) 0 clamp(8px,2vw,20px);overflow:hidden}.edu-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(20px,4vw,56px);display:grid}.edu-hero h1{letter-spacing:0;margin-top:14px;font-size:clamp(2.1rem,5.2vw,4rem);font-weight:700;line-height:1.3}.edu-hero h1 span{color:var(--primary)}.edu-hero p{color:var(--muted);max-width:50ch;margin-top:16px;font-size:clamp(.98rem,1.4vw,1.08rem);line-height:1.9}.edu-search{max-width:460px;margin-top:26px;position:relative}.edu-search i{inset-inline-start:18px;color:var(--ink-2);pointer-events:none;font-size:1.2rem;position:absolute;top:50%;transform:translateY(-50%)}.edu-search input{width:100%;height:54px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding-inline:50px 18px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.edu-search input::placeholder{color:var(--muted-2)}.edu-search input:focus{border-color:var(--primary-line);box-shadow:var(--glow);outline:none}.edu-search input::-webkit-search-cancel-button{cursor:pointer}.edu-art{aspect-ratio:16/9.5;-webkit-user-select:none;user-select:none;pointer-events:none;justify-self:center;width:100%;max-width:680px;position:relative;container-type:inline-size}.edu-art>*{position:absolute}.art-arch{background:linear-gradient(180deg, #fff, var(--surface-2));border:1px solid var(--line);box-shadow:var(--shadow);border-radius:48cqw 48cqw 4cqw 4cqw;inset:14% 12% 6% 8%}.art-laptop{width:44%;top:26%;left:24%;transform:rotate(-3deg)}.art-laptop .screen{aspect-ratio:16/10.5;background:#10231e;border:.7cqw solid #1b2e28;border-radius:1.4cqw 1.4cqw .4cqw .4cqw;overflow:hidden;box-shadow:0 3cqw 5cqw #0f1f1a40}.art-laptop .bar{gap:.7cqw;padding:1.2cqw 1.4cqw .6cqw;display:flex}.art-laptop .bar i{background:#2f4a42;border-radius:50%;width:.9cqw;height:.9cqw}.art-laptop .bar i:first-child{background:#e0716b}.art-laptop .code{gap:1cqw;padding:.8cqw 1.8cqw;display:grid}.art-laptop .code span{height:.8cqw;width:var(--w);background:#3b5a51;border-radius:1cqw;margin-inline-start:calc(var(--in,0) * 2.2cqw);display:block}.art-laptop .code span.k{background:#5dcaa5}.art-laptop .code span.s{opacity:.85;background:#c9a15b}.art-laptop .base{background:linear-gradient(#c9d2ce,#9aa6a1);border-radius:0 0 2cqw 2cqw;height:1.5cqw;margin-inline:-4cqw;position:relative}.art-books{gap:.5cqw;width:32%;display:grid;bottom:10%;left:4%}.art-books span{font-family:var(--font-mono);color:#c9d6d1;text-align:left;direction:ltr;background:linear-gradient(90deg,#1b2e28,#243a33);border-radius:.6cqw;padding:1.1cqw 2cqw;font-size:1.9cqw;display:block;box-shadow:inset -1.4cqw 0 #10231e,0 .6cqw 1.2cqw #0f1f1a2e}.art-books span:nth-child(odd){margin-inline-end:1.4cqw}.art-mug{background:linear-gradient(90deg,#10231e,#1f3730);border-radius:.8cqw .8cqw 2cqw 2cqw;place-items:center;width:9cqw;height:10.5cqw;display:grid;bottom:13%;right:30%;box-shadow:0 1.2cqw 2cqw #0f1f1a40}.art-mug:after{content:"";inset-inline-start:-3.4cqw;border:1.2cqw solid #1b2e28;border-inline-end-color:#0000;border-radius:50%;width:4cqw;height:5cqw;position:absolute;top:2.2cqw}.art-mug b{font-family:var(--font-display);color:#9de7ce;font-size:1.9cqw;font-weight:600}.art-code{font-family:var(--font-mono);color:#9de7ce;box-shadow:var(--shadow-lg);white-space:nowrap;background:#10231e;border-radius:1.6cqw;padding:2cqw 2.6cqw;font-size:1.7cqw;line-height:1.8;top:4%;right:20%}.art-note{font-family:var(--font-display);color:var(--primary-strong);text-align:center;font-size:2.3cqw;line-height:1.7;top:8%;left:4%;transform:rotate(-4deg)}.art-note svg{width:7cqw;color:var(--primary);margin:.8cqw auto 0;display:block}.art-rule{background:linear-gradient(var(--ink), transparent 5%, var(--ink-2));opacity:.55;width:2px;height:46%;top:22%;left:1%}.art-rule:after{content:"";background:var(--ink);width:1.4cqw;height:1.4cqw;position:absolute;bottom:0;left:-.6cqw}.edu-art .px{left:var(--x);top:var(--y);width:calc(3cqw * var(--s,1));aspect-ratio:1;background:var(--primary);opacity:.16}.edu-catalog{padding-top:clamp(20px,3vw,36px);scroll-margin-top:80px}.catalog-layout{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:clamp(18px,2.4vw,32px);display:grid}.catalog-head{justify-content:space-between;align-items:center;gap:12px;min-height:36px;margin-bottom:18px;display:flex}.catalog-head h2{align-items:center;gap:10px;font-size:clamp(1.2rem,2vw,1.45rem);font-weight:700;display:inline-flex}.catalog-head h2 i{color:var(--primary);font-size:1.3em}.link-all{font:inherit;color:var(--primary-strong);cursor:pointer;background:0 0;border:0;flex-shrink:0;align-items:center;gap:6px;padding:6px 2px;font-size:.9rem;display:inline-flex}.link-all:hover i{transform:translate(-4px)}.link-all i{transition:transform .2s}.cat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:20px 16px 16px;position:sticky;top:90px}.cat-card h3{align-items:center;gap:8px;margin-bottom:14px;padding-inline:6px;font-size:1rem;font-weight:700;display:flex}.cat-card h3 i{color:var(--muted);font-size:1.15em}.cat-list{gap:4px;display:grid}.cat-item{border-radius:var(--r-sm);cursor:pointer;width:100%;font:inherit;color:var(--ink-2);text-align:start;background:0 0;border:0;align-items:center;gap:12px;padding:12px;font-size:.93rem;transition:background .2s,color .2s;display:flex}.cat-item i{color:var(--muted);font-size:1.2rem}.cat-item .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cat-item .n{font-family:var(--font-mono);color:var(--muted);font-size:.8rem}.cat-item:hover{background:var(--surface-2)}.cat-item.active{background:var(--surface-2);color:var(--primary-strong);font-weight:600}.cat-item.active i,.cat-item.active .n{color:var(--primary-strong)}.start-card{border-radius:var(--r);background:radial-gradient(120% 140% at 0% 0%, #0d948859, transparent 55%), linear-gradient(135deg, #0f2a24, var(--ink));color:#fff;margin-top:16px;padding:18px;text-decoration:none;display:block}.start-card strong{align-items:center;gap:8px;font-size:1rem;display:flex}.start-card strong i{color:#5dcaa5}.start-card span{color:#ffffffb3;align-items:center;gap:6px;margin-top:8px;font-size:.82rem;display:flex}.start-card:hover span i{transform:translate(-4px)}.start-card span i{transition:transform .2s}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:18px;display:grid}.course-card{border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);height:100%;color:inherit;flex-direction:column;padding:12px;text-decoration:none;transition:transform .22s,box-shadow .25s,border-color .25s;display:flex}.course-card:hover{box-shadow:var(--shadow);border-color:var(--primary-line);transform:translateY(-4px)}.course-card:focus-visible{box-shadow:var(--glow);border-color:var(--primary);outline:none}.course-card .cover{aspect-ratio:16/9.4;border-radius:var(--r);background:radial-gradient(90% 90% at 70% 30%, #fff, var(--surface-2));place-items:center;display:grid;position:relative;overflow:hidden}.course-card .cover img{object-fit:contain;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.7,.3,1);display:block;position:absolute;inset:0}.course-card:hover .cover img{transform:scale(1.04)}.course-card .cover>i{color:var(--primary);opacity:.45;font-size:2.6rem}.course-card .cat-tag,.course-card .enroll-tag{z-index:2;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;max-width:calc(100% - 20px);padding:6px 10px;font-size:.74rem;font-weight:500;line-height:1;position:absolute;overflow:hidden}.course-card .cat-tag{top:10px;color:var(--primary-strong);border:1px solid var(--primary-line);background:#fffffff0;inset-inline-start:10px}.course-card .enroll-tag{bottom:10px;align-items:center;gap:5px;display:inline-flex;inset-inline-start:10px}.course-card .enroll-tag:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.course-card .enroll-tag.is-open{color:#fff;background:#0b7a70eb}.course-card .enroll-tag.is-closed{color:var(--muted);border:1px solid var(--line);background:#fffffff0}.course-card .body{flex-direction:column;flex:1;padding:16px 6px 4px;display:flex}.course-card h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 8px;font-size:1.04rem;font-weight:600;line-height:1.55;display:-webkit-box;overflow:hidden}.course-card p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.85rem;line-height:1.8;display:-webkit-box;overflow:hidden}.course-card .foot{color:var(--muted);align-items:center;gap:8px;margin-top:auto;padding-top:16px;font-size:.8rem;display:flex}.course-card .lvl{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.course-card .bars{align-items:flex-end;gap:2px;height:13px;display:inline-flex}.course-card .bars i{background:var(--line);border-radius:1px;width:3px}.course-card .bars i:first-child{height:5px}.course-card .bars i:nth-child(2){height:9px}.course-card .bars i:nth-child(3){height:13px}.course-card .lvl[data-bars="1"] .bars i:nth-child(-n+1),.course-card .lvl[data-bars="2"] .bars i:nth-child(-n+2),.course-card .lvl[data-bars="3"] .bars i:nth-child(-n+3){background:var(--primary)}.course-card .dur{border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;border-radius:9px;align-items:center;gap:5px;min-width:0;margin-inline-start:auto;padding:6px 10px;display:inline-block;overflow:hidden}.course-card .dur i{vertical-align:-2px;margin-inline-end:4px}.course-card .go{width:34px;height:34px;color:var(--primary-strong);border:1px solid var(--line);border-radius:50%;flex-shrink:0;place-items:center;transition:background .2s,color .2s,border-color .2s;display:grid}.course-card .lvl+.go,.course-card .foot>.go:only-child{margin-inline-start:auto}.course-card:hover .go{background:var(--primary);border-color:var(--primary);color:#fff}@media (max-width:1080px){.catalog-layout{grid-template-columns:minmax(0,1fr) 250px}}@media (max-width:900px){.edu-hero-grid{grid-template-columns:1fr}.edu-art{max-width:560px}.catalog-layout{grid-template-columns:1fr}.catalog-side{order:-1;min-width:0}.cat-card{box-shadow:none;background:0 0;border:0;padding:0;position:static}.cat-card h3,.start-card{display:none}.cat-list{scrollbar-width:none;overscroll-behavior-inline:contain;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.cat-list::-webkit-scrollbar{display:none}.cat-item{background:var(--surface);border:1px solid var(--line);border-radius:999px;flex-shrink:0;gap:8px;width:auto;padding:9px 14px}.cat-item.active{border-color:var(--primary-line)}.cat-item .nm{overflow:visible}}@media (max-width:560px){.edu-search{max-width:none}.courses-grid{gap:14px}}.course-hero h1{margin-top:10px}.course-chips{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.course-chips span{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.86rem;display:inline-flex}.course-chips i{color:var(--primary)}.course-cover{border-radius:var(--r-lg);border:1px solid var(--line);aspect-ratio:16/9;background:radial-gradient(120% 120% at 85% 10%, #0d948866, transparent 60%), linear-gradient(135deg, var(--ink), #123b34);place-items:center;width:100%;max-height:400px;margin:0 0 26px;display:grid;position:relative;overflow:hidden}.course-cover img{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.course-sub{margin:32px 0 16px;font-size:1.25rem}.outcomes-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px 22px;margin-top:0}@media (max-width:860px){.course-layout .order-card{order:-1}}.students-section{background:var(--surface-2);border-block:1px solid var(--line)}.students-section .section-head{text-align:center;margin-inline:auto}.students-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));align-items:start;gap:20px;display:grid}.student-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;transition:transform .22s,box-shadow .25s,border-color .25s;display:flex;overflow:hidden}.student-card:hover{box-shadow:var(--shadow);border-color:var(--primary-line);transform:translateY(-3px)}.student-card .shot{aspect-ratio:4/3;background:var(--surface-2);position:relative;overflow:hidden}.student-card .shot img{object-fit:cover;width:100%;height:100%;display:block}.student-card .body{padding:18px 20px 20px}.student-card .who-row{align-items:center;gap:12px;display:flex}.student-card .av{background:var(--surface);object-fit:cover;border:2px solid var(--surface);width:48px;height:48px;box-shadow:0 0 0 2px var(--ring,var(--primary));border-radius:50%;flex-shrink:0;display:block}.student-card .who{font-size:1rem;font-weight:600;line-height:1.4}.student-card .proj{color:var(--primary-strong);margin-top:2px;font-size:.84rem;line-height:1.5}.student-card .idx{font-family:var(--font-mono);color:var(--muted);background:var(--surface-2);border-radius:999px;align-self:flex-start;margin-inline-start:auto;padding:3px 9px;font-size:.7rem;font-weight:700}.student-card .shot .idx{color:#fff;background:#0f1f1ab3;position:absolute;inset-block-start:12px;inset-inline-start:12px}.student-card .note{color:var(--muted);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:12px 0 0;font-size:.9rem;line-height:1.75;display:-webkit-box;overflow:hidden}.student-card .note.open{-webkit-line-clamp:unset;display:block}.student-card .read-more{font:inherit;color:var(--primary-strong);cursor:pointer;background:0 0;border:0;margin-top:6px;padding:2px 0;font-size:.82rem;font-weight:600}.student-card .read-more[hidden]{display:none}.more-wrap{text-align:center;margin-top:30px}.edu-strip{background:var(--surface-2);border-block:1px solid var(--line)}.edu-strip .head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;display:flex}.edu-strip h2{margin-top:12px;font-size:clamp(1.5rem,3vw,2.1rem)}.edu-strip .sub{color:var(--muted);margin-top:8px}@media (prefers-reduced-motion:reduce){.student-card,.course-card,.course-card .cover img,.course-card .go{transition:none}.student-card:hover,.course-card:hover{transform:none}}.enroll-state{border-radius:999px;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;font-size:.84rem;font-weight:600;display:inline-flex}.enroll-state.is-open{color:var(--primary-strong);background:var(--primary-soft)}.enroll-state.is-closed{color:var(--danger);background:var(--danger-soft)}#enroll-modal .detail-grid{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}@media (max-width:480px){#enroll-modal .detail-grid{grid-template-columns:1fr}}
