@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-ext-wght-normal.20g3-bbbhdq0_.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-wght-normal.2cxlyxah-fd35.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-ext-wght-normal.0mkxydxl0e43d.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-wght-normal.1rx9vjatjkdar.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-vietnamese-wght-normal.2kcj5i_8uff48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-ext-wght-normal.3gdi_th3seg1n.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-wght-normal.0gsaq8ukbf34m.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(../media/dm-sans-latin-ext-wght-normal.0hiocdn10l05a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(../media/dm-sans-latin-wght-normal.0tm8u-h63rec8.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-cyrillic-ext-wght-normal.1o60yhwqd7ueg.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-cyrillic-wght-normal.0n0q_nh7u2mrm.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-vietnamese-wght-normal.0nt7ek_nfk5a4.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-latin-ext-wght-normal.39q78sztp1ci5.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-latin-wght-normal.20f3xrkj613ah.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#f6f5f1;--surface:#fff;--ink:#292827;--muted:#666;--primary:#282e27;--link:#3d5134;--lilac:#e1e8d5;--border:#e3e3e2;--radius:16px;--font:"Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:460 16px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:4px}h1,h2,h3,p{margin:0}h1{letter-spacing:-.027em;text-wrap:balance;font-size:48px;font-weight:460;line-height:1.14}h2{letter-spacing:-.02em;font-size:24px;font-weight:460;line-height:1.3}h3{letter-spacing:-.008em;font-size:20px;font-weight:500}small{font-size:12px}strong,b{font-weight:540}svg{stroke-width:1.5px}button svg{flex-shrink:0}.muted{color:var(--muted)}.eyebrow{letter-spacing:.12em;color:var(--muted);font-size:12px;font-weight:600}.button{white-space:normal;border:1px solid #0000;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 20px;font-size:14px;font-weight:500;transition:background .18s,border-color .18s;display:inline-flex}.primary{background:var(--primary);color:#fff}.primary:hover{background:#44503a}.secondary{background:var(--lilac);color:var(--ink);border-color:var(--ink);border-radius:8px}.secondary:hover{background:#d0dbbf}.full{width:100%}.compact{min-height:40px;padding:8px 12px}.icon-button{width:44px;height:44px;color:var(--ink);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:#e8e5df}.text-button{color:var(--link);background:0 0;border:0;align-items:center;gap:6px;min-height:40px;padding:8px 0;font-size:14px;font-weight:460;display:inline-flex}.text-button svg{color:var(--ink)}.text-button:hover{text-underline-offset:4px;text-decoration:underline}.pill{color:var(--ink);background:#f0efeb;border-radius:999px;align-items:center;padding:4px 9px;font-size:12px;line-height:1.4;display:inline-flex}.pill.blue{color:var(--ink);background:#eae3ff}.pill.green{color:var(--ink);background:#eeece7}.pill.orange{color:var(--primary);background:#f0e6e4}.app-shell{min-height:100vh}.app-header{z-index:25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#f6f5f1eb;align-items:center;gap:36px;min-height:80px;padding:12px max(28px,50vw - 600px);display:flex;position:sticky;top:0}.brand{letter-spacing:-.045em;flex-shrink:0;align-items:center;gap:10px;font-size:27px;font-weight:540;display:flex}.brand-icon{color:var(--ink);place-items:center;display:grid}.app-header nav{align-items:center;gap:4px;margin:0 auto;display:flex}.nav-item{color:var(--muted);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 12px;font-size:13px;font-weight:460;display:flex}.nav-item>svg{display:none}.nav-item.active{background:var(--lilac);color:var(--ink)}.nav-item:hover:not(.active){color:var(--ink);background:#e9e6e0}.nav-count{background:#ffffff80;border-radius:4px;padding:0 6px;font-size:11px}.header-account{flex-shrink:0}.profile{align-items:center;gap:10px;display:flex}.profile strong{font-size:12px;display:block}.profile small{color:var(--muted);font-size:11px;display:block}.profile .icon-button{width:32px}.avatar{color:var(--ink);background:#e5dfd7;border:1px solid #d9d2c9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:540;display:inline-flex}.avatar.small{width:32px;height:32px;font-size:11px}.main-column{min-width:0}.topbar{justify-content:space-between;align-items:center;gap:16px;max-width:1256px;height:64px;margin:auto;padding:0 28px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.breadcrumb strong{color:var(--ink);font-weight:460}.top-actions{align-items:center;gap:10px;display:flex}.top-actions>.avatar,.mobile-logout{display:none}.install-button{background:0 0;border-color:#b9b4ae;min-height:36px;padding:6px 12px;font-size:12px}.install-button:hover{background:var(--lilac)}.main-content{max-width:1256px;margin:0 auto;padding:38px 28px 24px}.demo-bar{background:var(--primary);color:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:9px 16px;font-size:12px;display:flex}.demo-bar strong{font-weight:600}.demo-bar button{color:#fff;background:0 0;border:0;align-items:center;gap:6px;min-height:26px;padding:0;font-size:12px;display:flex}.demo-bar button:hover{text-underline-offset:4px;text-decoration:underline}.page-heading{justify-content:space-between;align-items:center;gap:28px;margin-bottom:36px;display:flex}.page-heading p{margin-top:14px;font-size:15px}.page-heading .greeting{color:var(--muted);margin:0 0 12px;font-size:13px}.heading-actions{flex-wrap:wrap;gap:10px;display:flex}.stats{border-top:1px solid #d7d4ce;border-bottom:1px solid #d7d4ce;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:38px;padding:24px 0;display:grid}.stat{border-right:1px solid #d7d4ce;flex-direction:row-reverse;justify-content:space-between;align-items:flex-start;gap:16px;padding:0 28px;display:flex}.stat:first-child{padding-left:0}.stat:last-child{border-right:0;padding-right:0}.stat-icon{color:var(--muted);padding-top:5px;line-height:0}.stat-icon svg{width:20px;height:20px}.stat strong{letter-spacing:-.027em;font-variant-numeric:tabular-nums;font-size:36px;font-weight:460;line-height:1.15;display:block}.stat div>span{color:var(--muted);margin-top:8px;font-size:13px;display:block}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.class-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:36px;display:grid}.class-card{text-align:left;border:1px solid var(--border);color:var(--ink);background:#fff;border-radius:16px;min-width:0;padding:24px 24px 0;transition:border-color .18s;display:block}.class-card:hover{border-color:#a199b0}.class-card-top{color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.class-letter{border-radius:12px;place-items:center;width:48px;height:48px;font-size:28px;font-weight:460;display:grid}.blue .class-letter,.item-icon.blue{color:var(--ink);background:#e8dfff}.green .class-letter,.item-icon.green{color:var(--ink);background:#f6f5f1}.orange .class-letter,.item-icon.orange{color:var(--ink);background:#e9e5e1}.class-card h3{letter-spacing:-.022em;overflow-wrap:anywhere;font-size:26px;font-weight:460}.class-card p{color:var(--muted);margin-top:5px;font-size:14px}.class-card-bottom{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:24px;padding:16px 0;font-size:12px;display:flex}.class-card-bottom span{align-items:center;gap:7px;display:flex}.new-class-card{min-height:215px;color:var(--muted);background:#ffffff70;border:1px dashed #b9b2a9;border-radius:16px;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.new-class-card strong{color:var(--ink)}.new-class-card span{font-size:14px}.overview-grid{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:24px;display:grid}.panel{border:1px solid var(--border);background:#fff;border-radius:16px;min-width:0;overflow:hidden}.panel-heading{justify-content:space-between;align-items:center;gap:12px;padding:24px 24px 18px;display:flex}.panel-heading>svg{color:var(--muted)}.panel-heading h2{font-size:20px}.item-list{padding:0 24px 12px}.item-row{border:0;border-top:1px solid var(--border);text-align:left;width:100%;color:var(--ink);background:0 0;align-items:center;gap:14px;min-width:0;padding:20px 0;display:flex}.item-row:hover{background:#f8f7f4}.item-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.item-main{flex:1;min-width:0}.item-main>strong{overflow-wrap:anywhere;font-size:14px;font-weight:500;line-height:1.5;display:block}.item-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin-top:6px;font-size:12px;display:flex}.item-meta .pill{font-size:11px}.item-status{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;font-size:12px;display:flex}.item-status small{color:var(--muted);font-size:12px}.item-status .overdue{color:var(--primary)}.row-chevron{color:var(--muted)}.deadline-list{padding:0 24px 12px}.deadline{border:0;border-top:1px solid var(--border);text-align:left;width:100%;color:var(--ink);background:0 0;align-items:center;gap:14px;padding:20px 0;display:flex}.deadline:hover{background:#f8f7f4}.date-block{background:var(--bg);border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:46px;min-height:54px;display:flex}.date-block b{font-size:23px;font-weight:460;line-height:1.1}.date-block small{color:var(--muted);text-transform:uppercase;margin-top:3px;font-size:10px}.deadline>span:nth-child(2){flex:1;min-width:0}.deadline strong{overflow-wrap:anywhere;font-size:13px;font-weight:500;display:block}.deadline small:not(.date-block small){color:var(--muted);margin-top:6px;font-size:12px;display:block}.deadline>svg{color:var(--muted);flex-shrink:0}.page-footer{color:var(--muted);border-top:1px solid #d7d4ce;justify-content:space-between;gap:12px;margin-top:40px;padding-top:20px;font-size:12px;display:flex}.empty{text-align:center;color:var(--muted);padding:40px 24px}.empty svg{color:var(--ink);margin-bottom:12px}.empty h3{color:var(--ink);margin-bottom:8px;font-size:18px}.empty p{max-width:420px;margin:auto;font-size:14px}.filter-bar{justify-content:space-between;gap:20px;padding:24px;display:flex}.filter-bar select{width:auto;max-width:40%;margin:0}.search-field{border:1px solid #ccc8c2;border-radius:8px;flex:1;align-items:center;gap:10px;max-width:400px;padding:0 12px;flex-direction:row!important;margin:0!important;display:flex!important}.search-field input{min-width:0;background:0 0!important;border:0!important;margin:0!important;padding:11px 0!important}.search-field:focus-within{outline:2px solid var(--primary);outline-offset:3px}.search-field input:focus-visible{outline:none}.search-field svg{color:var(--muted);flex-shrink:0}.class-content{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;display:grid}.roster{padding:0 24px 16px}.student-row{border-top:1px solid var(--border);align-items:center;gap:12px;padding:16px 0;display:flex}.student-row>div{flex:1;min-width:0}.student-row strong{font-size:14px;display:block}.student-row small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.back-button{color:var(--muted);background:0 0;border:0;align-items:center;gap:8px;min-height:40px;margin-bottom:20px;padding:0;font-size:14px;display:flex}dialog{border:1px solid var(--border);width:min(600px,100% - 32px);max-height:88dvh;color:var(--ink);overscroll-behavior:contain;background:#fff;border-radius:16px;padding:28px}dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#29282766}.dialog-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.dialog-head h2{overflow-wrap:anywhere;font-size:28px;font-weight:460;line-height:1.25}label{flex-direction:column;gap:8px;margin-bottom:20px;font-size:14px;font-weight:500;display:flex}label small{color:var(--muted);font-size:12px;font-weight:460}input,textarea,select{width:100%;color:var(--ink);background:#fff;border:1px solid #ccc8c2;border-radius:8px;min-height:46px;padding:12px;font-size:14px}input::placeholder,textarea::placeholder{color:#75716c}textarea{resize:vertical}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--primary);flex-shrink:0}form{margin-top:24px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.checkbox-row{flex-direction:row;align-items:center;gap:10px;min-height:44px;font-size:14px;display:flex}.student-picker{border:1px solid var(--border);border-radius:8px;max-height:220px;margin:0 0 20px;padding:12px 16px;overflow:auto}.student-picker legend{color:var(--muted);font-size:13px}.student-picker .checkbox-row{margin:0}.field-note{color:var(--muted);margin-bottom:20px;font-size:13px}.form-error{color:var(--primary);border-left:3px solid var(--primary);background:#f4e8e9;border-radius:6px;margin:12px 0;padding:12px;font-size:14px}.notice{color:var(--ink);background:#f2efea;border:1px solid #dfd9d0;border-radius:8px;margin:16px 0;padding:12px;font-size:13px}.notice button{display:block}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.qr-box{text-align:center;margin-top:16px}.qr-box img{max-width:100%;height:auto;margin:0 auto 16px;display:block}.qr-box label{text-align:left}.qr-box input{font-size:12px}.detail-meta{flex-wrap:wrap;gap:8px;display:flex}.description{white-space:pre-wrap;overflow-wrap:anywhere;margin:24px 0;font-size:15px;line-height:1.8}.detail-dates{color:var(--muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:12px;margin:20px 0;padding:16px 0;font-size:12px;display:flex}.detail-dates span{align-items:center;gap:6px;display:flex}.upload-zone{text-align:center;color:var(--ink);background:#f8f7f4;border:1px dashed #b7aca0;border-radius:12px;align-items:center;margin:20px 0;padding:20px;font-size:14px}.upload-zone input{color:var(--muted);background:#fff;font-size:12px}.upload-zone small{font-size:12px}.file-list{flex-direction:column;gap:8px;display:flex}.file-row{border:1px solid var(--border);color:var(--ink);text-align:left;background:#fff;border-radius:8px;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.file-row span{overflow-wrap:anywhere;flex:1;min-width:0;font-size:14px}.file-row small{color:var(--muted);font-size:12px;display:block}.file-row>svg{color:var(--ink);flex-shrink:0}.copy-work{margin-bottom:12px}.detail-section-title{margin:24px 0 12px}.recipient-names{flex-wrap:wrap;gap:8px;display:flex}.review-card{border:1px solid var(--border);border-radius:16px;margin-top:16px;padding:20px}.review-heading{justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.review-card form{margin-top:16px}.review-card .description{margin:12px 0}.feedback{background:#f0ebfa;border:1px solid #dfd6ed;border-radius:12px;margin:20px 0;padding:20px;font-size:14px}.feedback>p{margin-top:8px}.feedback small{color:var(--muted)}.join-panel{text-align:center;flex-direction:column;align-items:center;gap:20px;max-width:580px;margin:32px auto;padding:48px;display:flex}.join-panel>svg{color:var(--ink)}.join-panel h1{font-size:36px}.auth-page{isolation:isolate;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr) minmax(360px,460px);align-items:center;column-gap:8vw;min-height:100dvh;padding:36px max(40px,50vw - 620px);display:grid;position:relative}.auth-photo{z-index:-1;background:#c6b29c url(/images/study-hour.png) 50% 48%/cover no-repeat;position:absolute;inset:0}.auth-brand{color:var(--ink);letter-spacing:-.045em;grid-column:1/-1;align-items:center;gap:10px;margin-bottom:32px;font-size:29px;font-weight:540;display:flex}.auth-story{align-self:end;padding-bottom:46px}.auth-story .eyebrow{color:#fff;text-shadow:0 1px 4px #29282770}.auth-story>p{letter-spacing:-.028em;color:#fff;text-shadow:0 1px 8px #29282740;margin-top:16px;font-size:clamp(38px,5vw,64px);font-weight:460;line-height:1.04}.auth-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffed;border:1px solid #ffffff80;border-radius:16px;width:100%;margin:16px 0;padding:32px}.auth-card h1{margin:12px 0;font-size:32px;line-height:1.2}.auth-card>.muted{font-size:14px}.auth-card .eyebrow{letter-spacing:.12em;font-size:10px}.auth-links{justify-content:space-between;gap:12px;margin-top:12px;display:flex}.auth-links button{font-size:12px}.demo-entry{border-top:1px solid #d9d5ce;margin-top:20px;padding-top:20px}.demo-entry>span{color:var(--muted);margin-bottom:12px;font-size:12px;display:block}.demo-entry>div{gap:8px;display:flex}.demo-entry .button{flex:1;min-height:42px;padding:10px;font-size:12px}.auth-foot{color:var(--ink);text-align:center;grid-column:2;padding-top:12px;font-size:12px}.centered{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100dvh;padding:32px;display:flex}.toast{z-index:100;background:var(--primary);color:#fff;border-radius:12px;align-items:center;gap:16px;max-width:min(600px,100% - 24px);padding:14px 20px;font-size:14px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast.error{color:var(--primary);border:2px solid var(--primary);background:#fff}.toast button{color:inherit;background:0 0;border:0;font-size:24px}.offline-banner{z-index:90;background:var(--lilac);color:var(--ink);justify-content:center;gap:8px;padding:12px 16px;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0}.install-help{z-index:70;background:#fff;border:1px solid #b9b2a9;border-radius:16px;width:min(360px,100% - 40px);padding:24px;position:fixed;top:132px;right:max(24px,50vw - 600px)}.install-help p{margin:12px 0;font-size:14px}.install-help small{color:var(--muted)}.install-help>.icon-button{float:right;width:28px;height:28px}.skip-link{z-index:150;background:#fff;padding:12px;position:fixed;top:-100px;left:12px}.skip-link:focus{top:12px}@media (max-width:1256px){.app-header{gap:20px}.header-account .profile>div{display:none}.demo-bar{margin:0 28px}}@media (max-width:1000px){.app-header{gap:16px;padding-inline:24px}.nav-item{padding-inline:9px;font-size:12px}.brand{gap:8px;font-size:24px}.brand-icon svg{width:22px}.header-account .avatar{display:none}.overview-grid,.class-content{grid-template-columns:1fr}.class-card{padding:20px 20px 0}.stat{padding-inline:20px}.auth-page{grid-template-columns:minmax(0,1fr) minmax(340px,440px);column-gap:32px;padding:28px}}@media (max-width:760px){.app-header{background:var(--bg);justify-content:space-between;gap:16px;min-height:64px;padding:16px 20px;position:relative}.brand{font-size:25px}.header-account .profile>div{display:block}.header-account .avatar{display:inline-flex}.header-account .profile .icon-button{display:none}.header-account .profile{gap:8px}.profile strong{font-size:11px}.profile small{font-size:10px}.app-header nav{z-index:40;padding:5px 8px max(5px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);background:#ffffffed;justify-content:space-around;gap:3px;min-height:72px;display:flex;position:fixed;inset:auto 0 0}.nav-item{white-space:normal;text-align:center;flex-direction:column;flex:1;gap:5px;min-height:58px;padding:8px 4px;font-size:10px;line-height:1.25}.nav-item>svg{width:18px;height:18px;display:block}.nav-count{display:none}.main-column{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.main-content{padding:28px 20px 20px}.topbar{height:54px;padding:0 20px}.breadcrumb{gap:6px;font-size:11px}.breadcrumb strong{white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.top-actions{gap:2px}.top-actions .icon-button{width:34px;height:40px}.mobile-logout{display:flex}.install-button{border:0;width:36px;padding:8px}.install-button span{display:none}.demo-bar{flex-direction:column;align-items:flex-start;gap:7px;margin:0 20px;padding:12px;font-size:11px;line-height:1.6}.demo-bar button{font-size:11px}.page-heading{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:28px}h1{letter-spacing:-.022em;font-size:34px}h2{font-size:22px}.page-heading p{margin-top:12px;font-size:14px}.page-heading .greeting{margin-bottom:8px;font-size:12px}.heading-actions{justify-content:flex-start;gap:8px;width:100%}.heading-actions .button{padding:11px 16px;font-size:13px}.stats{grid-template-columns:1fr 1fr;gap:0;margin-bottom:32px;padding:0}.stat{border-bottom:1px solid #d7d4ce;gap:12px;padding:20px 16px}.stat:nth-child(odd){padding-left:0}.stat:nth-child(2n){border-right:0;padding-right:0}.stat:nth-child(n+3){border-bottom:0}.stat strong{font-size:32px}.stat div>span{margin-top:6px;font-size:12px}.stat-icon svg{width:18px;height:18px}.class-grid{grid-template-columns:1fr;gap:16px;margin-bottom:32px}.class-card{padding:20px 20px 0}.class-card-top{margin-bottom:14px}.class-letter{border-radius:10px;width:42px;height:42px;font-size:25px}.class-card h3{font-size:25px}.class-card-bottom{margin-top:20px}.overview-grid{gap:20px}.panel-heading{padding:20px 18px 16px}.panel-heading h2{font-size:20px}.item-list{padding:0 16px 8px}.item-row{gap:10px;padding:18px 0}.item-main>strong{font-size:13px}.item-status{max-width:92px;font-size:11px}.item-status .pill{font-size:10px}.item-status small{font-size:11px}.item-meta{gap:5px;font-size:11px}.item-meta .pill{font-size:10px}.item-icon{width:32px;height:36px}.item-icon svg{width:17px}.row-chevron{display:none}.deadline-list{padding:0 18px 12px}.deadline strong{font-size:13px}.deadline small:not(.date-block small){font-size:11px}.page-footer{flex-wrap:wrap;margin-top:28px;font-size:11px}.filter-bar{flex-direction:column;gap:12px;padding:18px}.filter-bar select{width:100%;max-width:100%}.search-field{width:100%;max-width:none}dialog{width:calc(100% - 24px);max-height:90dvh;padding:20px}.dialog-head h2{font-size:24px}.form-grid{grid-template-columns:1fr;gap:0}.form-grid label{margin-bottom:20px}input,textarea,select{font-size:16px}.review-heading{flex-direction:column;align-items:flex-start;gap:8px}.auth-page{flex-direction:column;justify-content:center;align-items:stretch;min-height:100dvh;padding:24px 20px;display:flex}.auth-photo{background-position:26%}.auth-brand{margin-bottom:24px;padding:12px 0}.auth-story{display:none}.auth-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff2;margin:0;padding:28px 24px}.auth-card h1{font-size:28px}.auth-links{flex-wrap:wrap}.auth-foot{padding-top:24px}.join-panel{margin:0;padding:28px 20px}.join-panel h1{font-size:32px}.detail-dates{flex-direction:column}.toast{top:8px}.install-help{top:118px;right:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.auth-brand{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f6f5f1d9;border-radius:8px;width:max-content;padding:8px 12px}.auth-foot{background:#f6f5f1d9;border-radius:8px;justify-self:center;padding:8px 12px}@media (max-width:760px){.app-header{-webkit-backdrop-filter:none;backdrop-filter:none}.auth-foot{align-self:center;margin-top:20px}}
:root{--color-void-canvas:#0a0a0a;--color-graphite:#161616;--color-frosted-glass:#d4d4d4;--color-ink-black:#000;--color-snow-white:#fff;--color-bone:#ededed;--color-ash:#c2c2c2;--color-slate:#686868;--color-smoke:#b2b2b2;--color-hairline:#e5e5e5;--color-dusk-violet:#6b62f2;--gradient-dusk-violet:linear-gradient(90deg, #0000, #0000 40%, #6b62f290 50%, #0000 60%, #0000);--font-dm-sans:"DM Sans Variable", "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-geist:"Geist Variable", "Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-system-ui:"system-ui", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-caption:13px;--leading-caption:1.5;--tracking-caption:.33px;--text-body:16px;--leading-body:1.5;--tracking-body:0px;--text-subheading:18px;--leading-subheading:1.5;--tracking-subheading:0px;--text-heading-sm:24px;--leading-heading-sm:1.33;--tracking-heading-sm:0px;--text-heading:36px;--leading-heading:1.11;--tracking-heading:0px;--text-heading-lg:48px;--leading-heading-lg:1;--tracking-heading-lg:0px;--text-display:72px;--leading-display:1;--tracking-display:-2.52px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--spacing-4:4px;--spacing-6:6px;--spacing-8:8px;--spacing-10:10px;--spacing-12:12px;--spacing-14:14px;--spacing-16:16px;--spacing-20:20px;--spacing-22:22px;--spacing-24:24px;--spacing-28:28px;--spacing-32:32px;--spacing-40:40px;--spacing-44:44px;--spacing-48:48px;--spacing-56:56px;--page-max-width:1200px;--section-gap:clamp(64px, 6vw, 80px);--card-padding:28px;--element-gap:12px;--radius-md:4px;--radius-lg:10px;--radius-2xl:19px;--radius-3xl:24px;--radius-3xl-2:40px;--radius-full:64px;--radius-full-2:9999px;--radius-ui:10px;--radius-cards:24px;--radius-icons:4px;--radius-panels:42px;--radius-buttons:9999px;--radius-largecards:40px;--shadow-subtle:#ffffff1a 0px 0px 0px 1px inset;--surface-void-canvas:#0a0a0a;--surface-graphite:#161616;--surface-frosted-glass:#d4d4d4;--surface-snow-white:#fff}
:root{--bg:var(--color-void-canvas);--surface:var(--color-graphite);--ink:var(--color-bone);--muted:var(--color-ash);--primary:#fff;--link:#ededed;--lilac:#ffffff10;--border:#e5e5e528;--font:var(--font-dm-sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-weight:400}.app-shell{--muted:#ededed;--workspace-glass:#16161636;--workspace-glass-border:#ffffff40;color:var(--ink);isolation:isolate;background:#526a92;padding-bottom:130px;position:relative}.app-shell:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 90% 0,#486caa 0%,#0000 65%),linear-gradient(#526a92 0%,#707e86 50%,#a2846c 100%);position:fixed;inset:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:is(button,a,input,select,textarea):focus-visible{outline-offset:4px;outline-color:#fff}.app-shell h1{font:500 clamp(40px,5.5vw,72px)/1 var(--font-dm-sans);letter-spacing:-.035em}.app-shell h2{font-family:var(--font-geist);letter-spacing:-.025em;font-weight:500}.app-shell h3{font-weight:500}.button{border-radius:var(--radius-buttons);min-height:44px;padding:10px 20px;font-size:14px;font-weight:400}.primary{color:#161616;background:#fff;border:1px solid #fff}.primary:hover{background:#e5e5e5}.secondary{color:#ededed;background:0 0;border:1px solid #e5e5e54d}.secondary:hover{background:#ffffff12}.icon-button{color:#ededed;border-radius:50%}.icon-button:hover{background:#ffffff15}.text-button{color:#ededed;font-size:13px}.text-button svg{color:currentColor}.pill,.pill.blue,.pill.green,.pill.orange{color:#ededed;background:#ffffff0d;border:1px solid #ffffff24;border-radius:9999px;font-size:11px}.avatar{color:#ededed;background:#ffffff12;border:1px solid #ffffff2e;font-size:11px}.app-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:25;background:#252321cc;border:1px solid #e5e5e538;border-radius:9999px;gap:22px;width:max-content;max-width:calc(100% - 48px);min-height:66px;padding:9px 12px 9px 22px;display:flex;position:fixed;inset:auto auto 24px 50%;transform:translate(-50%)}.app-header .brand{color:#fff;border-right:1px solid #ffffff20;gap:9px;padding-right:20px;font-size:19px;font-weight:500}.app-header .brand-icon{color:#fff}.app-header .brand-icon svg{width:21px}.app-header nav{align-items:center;gap:3px;margin:0;display:flex}.app-header .nav-item{color:#ededed;border-radius:9999px;min-height:40px;padding:10px 12px;font-size:12px}.app-header .nav-item.active{color:#fff;background:#ffffff15}.app-header .nav-item:hover:not(.active){color:#fff;background:#ffffff0d}.app-header .nav-item>svg,.nav-count{display:none}.dock-compose{white-space:nowrap;padding:10px 15px;font-size:12px}.main-column{margin:0}.topbar{gap:18px;max-width:1440px;height:70px;padding:18px 40px 0}.breadcrumb{color:#edededc9;flex:1;font-size:12px}.breadcrumb strong{color:#fff}.top-actions{gap:6px}.header-account{margin-left:auto}.profile{gap:9px}.profile strong{font-size:12px;font-weight:500}.profile small{color:#edededbb;font-size:10px}.profile .icon-button{display:none}.mobile-logout{display:inline-flex}.install-button{border-color:#ffffff40;min-height:36px;padding:7px 12px;font-size:11px}.install-button:hover{background:#ffffff14}.demo-bar{color:#ededed;background:#16161630;border:1px solid #ffffff20;border-radius:9999px;max-width:800px;margin:16px auto 0;padding:7px 16px;font-size:10px}.demo-bar strong{font-weight:500}.demo-bar button{font-size:10px}.main-content{max-width:1280px;margin:auto;padding:50px 40px 24px}.overview-stage{grid-template-columns:minmax(280px,.86fr) minmax(0,1.45fr);gap:64px;min-height:650px;margin-bottom:70px;display:grid}.page-heading{align-items:center;margin-bottom:40px}.page-heading .greeting{color:#ededed;margin:0 0 20px;font-size:14px}.page-heading p{color:#ededed;margin-top:22px;font-size:15px;line-height:1.65}.overview-stage .page-heading{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:26px;margin:0;display:flex}.overview-stage h1{max-width:390px}.overview-stage .heading-actions{align-items:flex-start;display:flex}.overview-stage .heading-actions .button{padding:11px 20px}.class-index{margin-top:5px}.class-index h2{font:500 16px/1.5 var(--font-dm-sans);letter-spacing:0;margin-bottom:15px}.class-index button{color:#ededed;text-align:left;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:48px;padding:11px 12px;font-size:15px;display:flex}.class-index button:hover{background:#ffffff13}.class-index button>span:first-child{align-items:baseline;gap:12px;display:flex}.class-index button small{color:#edededbd;font-size:11px}.class-index button>span:last-child{color:#edededc9;font-variant-numeric:tabular-nums}.class-index button.index-new{color:#edededbd;border-top:1px solid #ffffff20;border-radius:0;margin-top:9px;font-size:13px}.class-studio{min-width:0;margin:0;padding:26px 0 0;position:relative}.studio-heading{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.section-index{color:#edededc9;letter-spacing:.09em;font-size:10px}.studio-heading h2{align-items:center;gap:12px;margin:18px 0 0;font-size:36px;display:flex}.studio-heading h2>span{color:#edededbb;letter-spacing:0;font-size:12px}.studio-actions{flex-direction:column;align-items:flex-end;gap:0;display:flex}.studio-actions .text-button{min-height:30px;font-size:11px}.motion-switch{color:#ededed;background:0 0;border:0;align-items:center;gap:7px;min-height:36px;padding:8px 0;font-size:11px;display:flex}.motion-switch i{background:#ffffff30;border:1px solid #ffffff50;border-radius:9999px;width:23px;height:14px;display:block;position:relative}.motion-switch i:after{content:"";background:#fff;border-radius:50%;width:8px;height:8px;transition:transform .18s;position:absolute;top:2px;left:2px}.motion-switch[aria-pressed=true] i{background:#ffffff60}.motion-switch[aria-pressed=true] i:after{transform:translate(9px)}.stats{border-color:#ffffff25;margin-bottom:64px;padding:30px 0}.stat{border-color:#ffffff25;gap:12px;padding:0 28px}.stat-icon{color:#c2c2c2}.stat strong{letter-spacing:-.035em;font-size:40px;font-weight:500}.stat div>span{color:#c2c2c2;font-size:13px}.activity-heading{justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:26px;display:flex}.activity-heading>span:last-child{font-family:var(--font-geist);letter-spacing:-.025em;font-size:24px}.overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px}.panel{background:var(--workspace-glass);border:1px solid var(--workspace-glass-border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:24px}.panel-heading{padding:28px 28px 20px}.panel-heading h2{font-size:24px}.item-list,.deadline-list{padding:0 28px 16px}.item-row,.deadline{border-color:#e5e5e521;padding:20px 0}.item-row:hover,.deadline:hover{background:#ffffff06}.item-main>strong{font-size:14px;font-weight:500}.item-meta{font-size:11px}.item-meta .pill{font-size:10px}.item-status{font-size:12px}.item-status small{font-size:11px}.item-status .overdue{color:#ededed;text-underline-offset:3px;text-decoration:underline}.item-icon,.item-icon.blue,.item-icon.green,.item-icon.orange{color:#ededed;background:#ffffff0d;border:1px solid #ffffff21;border-radius:10px}.date-block{background:#ffffff08;border:1px solid #ffffff1a;border-radius:10px}.deadline strong{font-size:13px}.deadline small:not(.date-block small){font-size:11px}.page-footer{border-color:#ffffff21;margin-top:64px;font-size:11px}.class-grid{gap:24px}.class-card,.class-card.green,.class-card.orange{background:var(--workspace-glass);border:1px solid var(--workspace-glass-border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:24px;padding:28px 28px 0}.class-card:hover{background:#ffffff12;border-color:#e5e5e563}.class-letter,.blue .class-letter,.green .class-letter,.orange .class-letter{color:#ededed;background:#ffffff0d;border:1px solid #ffffff26;border-radius:10px}.class-card h3{font-weight:500}.new-class-card{color:#c2c2c2;background:0 0;border:1px dashed #e5e5e54d;border-radius:24px}input,textarea,select{color:#ededed;background:#161616;border-color:#e5e5e540;border-radius:10px;font-size:14px}input::placeholder,textarea::placeholder{color:#b2b2b2}input[type=checkbox]{accent-color:#eee}.search-field{border-color:#e5e5e540}.search-field:focus-within{outline-color:#eee}.filter-bar select,.filter-bar .search-field{border-color:var(--workspace-glass-border);background:#16161626}.filter-bar input::placeholder{color:#ededed}.filter-bar select option{color:#ededed;background:#303845}dialog{color:#ededed;background:#161616;border-color:#e5e5e54a;border-radius:24px}dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009}.dialog-head h2{font-size:28px;font-weight:500}.notice,.upload-zone,.feedback{background:#ffffff0a;border-color:#ffffff28;border-radius:10px}.upload-zone input,.file-row{background:#161616;border-color:#ffffff28}.form-error,.toast.error{color:#ededed;background:#292323;border-color:#c2c2c2}.review-card{border-radius:24px}.toast{color:#161616;background:#fff;border-radius:9999px}.qr-box img{background:#fff;border-radius:10px}.install-help{background:#161616;border-color:#ffffff40;border-radius:24px;top:80px;right:24px}.skip-link{color:#161616;background:#fff}.course-cover{--cover:#ccc;--cover-ink:#161616;background:var(--cover);width:100%;min-height:304px;color:var(--cover-ink);text-align:left;transform-style:preserve-3d;border:1px solid #ffffff50;border-radius:24px;flex-direction:column;padding:24px;display:flex;position:relative}.course-cover.green{--cover:#4a4a4a;--cover-ink:#ededed}.course-cover.orange{--cover:#989898;--cover-ink:#161616}.cover-top{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.cover-number{align-items:center;gap:8px;font-size:11px;display:flex}.cover-letter{letter-spacing:-.06em;margin:12px 0;font-size:112px;font-weight:500;line-height:1.2;display:block}.cover-title{letter-spacing:-.035em;overflow-wrap:anywhere;margin:auto 0 18px;font-size:26px;line-height:1.2;display:block}.cover-bottom{border-top:1px solid #00000026;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding-top:14px;font-size:10px;display:flex}.green .cover-bottom{border-color:#ffffff30}.cover-bottom>span:first-child{align-items:center;gap:6px;display:flex}.auth-page{color:#ededed;isolation:isolate;background:#0a0a0a;padding:32px max(32px,50vw - 600px)}.auth-photo{background:radial-gradient(at 85% 0,#486caa,#0000 65%),linear-gradient(160deg,#536b95,#797f82 48%,#9f7d64 85%,#0a0a0a)}.auth-brand{-webkit-backdrop-filter:none;backdrop-filter:none;color:#fff;background:0 0;padding:0;font-size:25px;font-weight:500}.auth-story{align-self:center;padding:0}.auth-story .eyebrow{text-shadow:none;color:#ededed;letter-spacing:.04em;font-size:13px}.auth-story>p{font:500 72px/1 var(--font-dm-sans);letter-spacing:-.035em;text-shadow:none}.auth-card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#161616b8;border-color:#e5e5e538;border-radius:24px;padding:32px}.auth-card h1{font-weight:500}.auth-card .notice{color:#ededed;font-size:12px}.auth-card .eyebrow{color:#c2c2c2}.auth-foot{color:#ededed;background:0 0}.demo-entry{border-color:#ffffff26}@media (max-width:1100px){.app-header{gap:10px;padding-left:17px}.app-header .brand{padding-right:14px;font-size:17px}.app-header .nav-item{padding:10px 8px;font-size:11px}.dock-compose span{display:none}.dock-compose{padding:10px}.overview-stage{grid-template-columns:minmax(260px,.9fr) minmax(0,1.2fr);gap:32px}.class-studio{padding-left:24px}.studio-heading h2{font-size:30px}.studio-actions .text-button{display:none}.main-content{padding-left:30px;padding-right:30px}.stat{padding:0 18px}.stat-icon{display:none}}@media (max-width:760px){.app-shell{padding-bottom:118px}.app-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:24px;width:auto;max-width:none;min-height:66px;padding:6px;inset:auto 12px 16px;transform:none}.app-header .brand,.dock-compose{display:none}.app-header nav{background:0 0;border:0;gap:0;width:100%;margin:0;padding:0;position:static;inset:auto}.app-header .nav-item{white-space:normal;border-radius:18px;flex:1;gap:5px;min-height:54px;padding:7px 2px;font-size:9px}.app-header .nav-item>svg{width:18px;height:18px;display:block}.topbar{gap:8px;height:66px;padding:12px 20px 0}.breadcrumb{display:none}.header-account{margin-left:0;margin-right:auto;display:block}.profile strong{font-size:11px}.profile small{font-size:10px}.top-actions{gap:2px}.install-button{padding:8px}.demo-bar{border-radius:16px;gap:4px;margin:12px 20px 0;padding:8px 12px;font-size:9px}.demo-bar button{font-size:10px}.main-content{padding:32px 20px 24px}.overview-stage{flex-direction:column;gap:40px;min-height:0;margin-bottom:48px;display:flex}.overview-stage .page-heading{gap:22px}.app-shell h1{font-size:48px;line-height:1.03}.page-heading .greeting{margin-bottom:16px;font-size:12px}.page-heading p{margin-top:18px;font-size:14px;line-height:1.6}.page-heading{align-items:flex-start;gap:24px}.class-index h2{font-size:14px}.class-index button{padding:10px 8px;font-size:14px}.class-studio{border-top:1px solid #ffffff40;border-left:0;padding:20px 0 0}.class-studio:before{display:none}.studio-heading h2{margin-top:12px;font-size:32px}.studio-actions .text-button{display:flex}.motion-switch{font-size:10px}.motion-switch>svg{display:none}.stats{grid-template-columns:1fr 1fr;margin-bottom:48px;padding:0}.stat{padding:20px 16px}.stat strong{font-size:32px}.stat div>span{font-size:12px}.stat:nth-child(2){border-right:0}.activity-heading{flex-direction:column;align-items:flex-start;gap:10px}.activity-heading>span:last-child{font-size:24px}.overview-grid{grid-template-columns:1fr}.panel-heading{padding:24px 20px 18px}.panel-heading h2{font-size:23px}.item-list,.deadline-list{padding:0 18px 12px}.item-row{gap:10px}.item-main>strong{font-size:13px}.item-icon{display:none}.item-status{max-width:85px;font-size:11px}.item-meta,.item-status .pill{font-size:10px}.page-footer{margin-top:40px}.auth-page{padding:24px 20px}.auth-card{padding:28px 24px}.auth-brand{margin-bottom:24px;padding:0}.auth-foot{margin-top:16px}input,textarea,select{font-size:16px}}.codrops-studio.scroll-deck{padding-top:0}.scroll-deck>.deck-stage{position:sticky;top:60px}.codrops-studio.scroll-deck .scene{height:clamp(240px,100svh - 340px,440px)}@media (max-width:760px){.codrops-studio.scroll-deck .scene{height:clamp(240px,100svh - 340px,345px)}}.codrops-studio .carousel-viewport{color:#ededed;background:0 0;border-radius:24px;margin-top:20px;overflow:hidden}.codrops-studio .scene{--cell-width:250px;--cell-height:310px;perspective:1000px;height:440px;position:relative}.codrops-studio .carousel{width:var(--cell-width);height:var(--cell-height);margin-left:calc(var(--cell-width) / -2);margin-top:calc(var(--cell-height) / -2);transform-style:preserve-3d;will-change:transform;visibility:hidden;position:absolute;top:43%;left:50%}.codrops-studio .scene-ready .carousel{visibility:visible}.codrops-studio .carousel__cell{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:0}.codrops-studio .card__face--front[tabindex="0"]{pointer-events:auto}.codrops-studio .card{width:100%;height:100%;transform-style:preserve-3d;position:relative}.codrops-studio .card__face{backface-visibility:hidden;background:var(--cover);width:100%;height:100%;color:var(--cover-ink);border-radius:24px;position:absolute;inset:0}.codrops-studio .card{--cover:#ccc;--cover-ink:#161616}.codrops-studio .card.green{--cover:#4a4a4a;--cover-ink:#ededed}.codrops-studio .card.orange{--cover:#989898;--cover-ink:#161616}.codrops-studio .card .course-cover{--cover:inherit;--cover-ink:inherit;min-height:0;box-shadow:none;border:1px solid #ffffff30;padding:20px;transform:none}.codrops-studio .card .cover-letter{font-size:112px;line-height:1.2;transform:none}.codrops-studio .card .cover-title{font-size:24px;transform:none}.codrops-studio .card .cover-bottom{font-size:10px}.codrops-studio .card__face--back{pointer-events:none;border:1px solid #ffffff30;flex-direction:column;justify-content:space-between;padding:22px;display:flex;transform:rotateY(180deg)}.codrops-studio .card__face--back>span{font-size:12px}.codrops-studio .card__face--back>b{opacity:.45;align-self:center;font-size:120px;font-weight:400;line-height:1}.codrops-studio .scene__title{z-index:2;text-align:center;pointer-events:none;position:absolute;inset:auto 24px 15px}.codrops-studio .scene__title a{pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#161616b3;border-radius:24px;flex-direction:column;align-items:center;gap:6px;padding:10px 24px;display:inline-flex}.codrops-studio .scene__title a>span:first-child{letter-spacing:-.04em;font-size:25px;font-weight:500}.codrops-studio .scene__title a>span:last-child{color:#c2c2c2;align-items:center;gap:6px;font-size:11px;display:flex}.codrops-studio .scene__title a:focus-visible,.codrops-studio .carousel-pagination button:focus-visible{outline-color:#fff}.carousel-toolbar{border-top:1px solid #ffffff1c;justify-content:space-between;align-items:center;gap:15px;padding:12px 22px;display:flex}.carousel-scroll-hint{color:#c2c2c2;align-items:center;gap:8px;font-size:11px;display:flex}.carousel-pagination{align-items:center;gap:14px;display:flex}.carousel-pagination>span{text-align:center;min-width:48px;font:11px ui-monospace,monospace}.carousel-pagination button{color:#ededed;background:0 0;border:1px solid #ffffff30;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.carousel-pagination button:hover{background:#ffffff17}.carousel-static{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:28px 0 8px;display:grid}.carousel-static .course-cover,.carousel-static .cover-letter,.carousel-static .cover-title{transform:none}@media (max-height:699px){.codrops-studio.scroll-deck .card .cover-letter{margin:4px 0;font-size:56px}.codrops-studio.scroll-deck .card .cover-title{margin-bottom:8px;font-size:18px}.codrops-studio.scroll-deck .card .course-cover{padding:12px}.codrops-studio.scroll-deck .card .cover-top,.codrops-studio.scroll-deck .card .cover-bottom{font-size:8px}}.class-preview{background:#161616;border-radius:24px;width:min(880px,100% - 40px);max-height:88dvh;padding:30px;overflow-y:auto}.class-preview::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000b0}.preview__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.preview__header h2{letter-spacing:-.05em;margin:6px 0;font-size:38px}.preview__header p{color:#c2c2c2;font-size:12px}.preview-grid{perspective:1000px;grid-template-columns:1fr 1.6fr;gap:20px;display:grid}.preview-tile{transform-origin:50%;border-radius:8px;min-width:0}.preview-cover{color:#161616;background:#ccc;flex-direction:column;justify-content:space-between;gap:16px;min-height:285px;padding:22px;font-size:12px;display:flex}.preview-cover.green{color:#ededed;background:#4a4a4a}.preview-cover.orange{color:#161616;background:#989898}.preview-cover b{letter-spacing:-.08em;font-size:130px;font-weight:450;line-height:1}.preview-work{background:#ffffff0a;border:1px solid #ffffff25;padding:22px}.preview-work h3{margin-bottom:16px;font-size:18px}.preview-work-row{border-top:1px solid #ffffff20;align-items:flex-start;gap:10px;padding:13px 0;display:flex}.preview-work-row svg{color:#c2c2c2;flex-shrink:0;margin-top:3px}.preview-work-row strong{overflow-wrap:anywhere;font-size:13px;display:block}.preview-work-row small{color:#c2c2c2;margin-top:4px;font-size:11px;display:block}.preview-footer{justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.preview-footer>span{color:#c2c2c2;font-size:11px}@media (max-width:760px){.codrops-studio .scene{perspective:750px;height:345px}.codrops-studio .card .course-cover{padding:14px}.codrops-studio .card .cover-letter{font-size:80px}.codrops-studio .card .cover-title{margin-bottom:12px;font-size:21px}.codrops-studio .card .cover-top{font-size:10px}.codrops-studio .card .cover-bottom{gap:3px;font-size:8px}.codrops-studio .card__face--back{padding:16px}.codrops-studio .card__face--back>b{font-size:90px}.codrops-studio .card__face--back>span{font-size:10px}.codrops-studio .scene__title{bottom:4px}.codrops-studio .scene__title a{padding:9px 16px}.codrops-studio .scene__title a>span:first-child{font-size:22px}.carousel-toolbar{gap:10px;padding:10px 14px}.carousel-scroll-hint{gap:4px;font-size:9px}.carousel-pagination{gap:8px}.carousel-static{grid-template-columns:1fr}.class-preview{width:calc(100% - 24px);padding:20px}.preview__header h2{font-size:30px}.preview-grid{grid-template-columns:1fr;gap:14px}.preview-cover{min-height:170px;padding:18px}.preview-cover b{font-size:75px}.preview-work{padding:18px}.preview-footer{flex-direction:column;align-items:stretch}}.overview-stage{align-items:start;margin-bottom:0}.overview-stage>.page-heading{scrollbar-width:thin;max-height:calc(100svh - 145px);padding-right:8px;position:sticky;top:32px;overflow-y:auto}.overview-flow{min-width:0;padding-bottom:28vh;padding-left:34px;position:relative}.flow-ruler{pointer-events:none;border-right:1px solid #ffffff4d;width:17px;position:absolute;inset:0 auto 0 0;overflow:hidden}.ruler-ticks{transform:translateY(var(--ruler-offset,0px));background-image:repeating-linear-gradient(#ffffff50 0 1px,#0000 1px 16px),repeating-linear-gradient(#ffffff70 0 1px,#0000 1px 80px);background-position:100% 0;background-repeat:repeat-y;background-size:7px 16px,16px 80px;position:absolute;inset:-240px 0}.flow-position{z-index:3;pointer-events:none;align-items:center;height:42px;display:flex;position:sticky;top:20px}.flow-position i{background:#fff;width:19px;height:1px;position:absolute;left:-25px}.flow-position i:after{content:"";background:#fff;border-radius:50%;width:5px;height:5px;position:absolute;top:-2px;right:-2px}.flow-position span{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ededed;letter-spacing:.06em;background:#303845e6;border:1px solid #ffffff28;border-radius:9999px;padding:7px 12px;font-size:10px}.flow-step{scroll-margin-top:84px;position:relative}.flow-step:not([data-flow-number="01"]){transform:translateY(var(--section-shift,0px));opacity:var(--section-opacity,1)}.flow-step:focus-within{opacity:1;transform:none}.overview-flow>.flow-step{margin-bottom:96px}.overview-flow .class-studio{border:0;padding-left:0}.overview-flow .class-studio .section-index{display:none}.overview-flow .studio-heading h2{margin-top:0}.flow-summary h2{margin-bottom:24px;font-size:32px}.overview-flow .stats{border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30;grid-template-columns:1fr 1fr;margin-bottom:0;padding:0}.overview-flow .stat{border-right:0;padding:22px 16px}.overview-flow .stat:nth-child(odd){border-right:1px solid #ffffff20;padding-left:0}.overview-flow .stat:nth-child(-n+2){border-bottom:1px solid #ffffff20}.overview-flow .stat-icon{display:block}.overview-flow .stat div>span{color:#ededed}.overview-flow .overview-grid{grid-template-columns:minmax(0,1fr);gap:96px;display:grid}.overview-flow .item-meta,.overview-flow .item-status small,.overview-flow .deadline small:not(.date-block small),.overview-flow .date-block small{color:#ededed}.overview-shell .page-footer{color:#ededed;margin-top:0}@media (max-width:1100px) and (min-width:761px){.overview-stage{grid-template-columns:minmax(220px,.8fr) minmax(0,1.3fr);gap:24px}.overview-stage h1{font-size:48px}.overview-flow{padding-left:30px}.overview-flow .item-icon{display:none}}@media (max-width:760px){.overview-stage>.page-heading{max-height:none;padding:0;position:static;overflow:visible}.overview-flow{width:100%;padding-bottom:15vh;padding-left:20px}.flow-ruler{width:9px}.flow-position{height:42px;top:12px}.flow-position i{width:13px;left:-17px}.flow-position span{font-size:9px}.overview-flow>.flow-step{margin-bottom:64px}.overview-flow .overview-grid{gap:64px}.overview-flow .panel-heading{padding:22px 16px 16px}.overview-flow .panel-heading h2{font-size:21px}.overview-flow .item-list,.overview-flow .deadline-list{padding-left:14px;padding-right:14px}.overview-flow .stats .stat{padding:18px 12px}.overview-flow .stat strong{font-size:32px}.overview-flow .stat-icon{display:none}.overview-flow .class-studio{padding-top:12px}}@media (prefers-reduced-motion:reduce){.flow-step{opacity:1!important;transform:none!important}.ruler-ticks{transform:none!important}}
.door-studio .card__face.card__face--front.course-cover,.door-studio .carousel-static .course-cover{box-shadow:none;background:0 0;border:0;border-radius:2px;padding:0}.door-studio .carousel-static{grid-template-columns:repeat(auto-fit,minmax(160px,220px));justify-content:center;gap:36px}.door-studio .carousel-static .course-cover{aspect-ratio:210/330;min-height:0}.classroom-door{--wood:#bca48a;--wood-shade:#8b725c;--wood-light:#ddc7aa;--glass:#637b7c;perspective:900px;text-align:left;width:100%;height:100%;display:block;position:relative;container-type:inline-size}.classroom-door.green{--wood:#acac98;--wood-shade:#737867;--wood-light:#d2d2bc;--glass:#597466}.classroom-door.orange{--wood:#a88468;--wood-shade:#715440;--wood-light:#cbaa87;--glass:#776e64}.classroom-door:before{content:"";border-top:5px solid #687173;border-bottom:3px solid #313a3d;border-left:5px solid #596264;border-right:5px solid #313a3d;border-radius:2px 2px 0 0;position:absolute;inset:0;box-shadow:0 18px 24px -12px #17263380,0 0 0 1px #c4cfca65,inset 0 0 0 1px #111b1d}.door-room{background:#28383d;position:absolute;inset:5px 5px 3px}.door-leaf{background:linear-gradient(90deg,#ffffff13,transparent 30%,#00000012),repeating-linear-gradient(91deg,transparent 0 3px,#493c2b0c 3.4px,transparent 4.2px 7px),repeating-linear-gradient(89.5deg,transparent 0 13px,#fff5e719 14px,transparent 16px 23px),linear-gradient(100deg,var(--wood-light),var(--wood) 30%,var(--wood) 70%,var(--wood-shade));transform-origin:0;transform-style:preserve-3d;backface-visibility:hidden;border:1px solid #302d2855;display:block;position:absolute;inset:5px 5px 3px;box-shadow:inset 1px 0 #ffffff60,inset -2px 0 3px #30291c45,2px 1px 3px #0008}.door-leaf:after{content:"";background:linear-gradient(90deg,#282d2d,var(--wood-shade) 30%,var(--wood));transform-origin:100%;width:9px;position:absolute;inset:-1px -1px -1px auto;transform:rotateY(-90deg)}.door-plaque{color:#263031;text-shadow:0 1px #fff3;flex-direction:column;align-items:flex-start;gap:9px;display:flex;position:absolute;top:10%;left:45%;right:8%}.door-number{font:300 clamp(25px,21cqw,49px)/1 var(--font-geist);letter-spacing:-.07em}.door-plaque>span:last-child{border-top:1px solid #39434140;width:100%;min-width:0;padding-top:8px}.door-plaque strong{overflow-wrap:anywhere;font-size:clamp(8px,5.6cqw,12px);font-weight:600;line-height:1.2;display:block}.door-plaque small{opacity:.75;margin-top:4px;font-size:clamp(7px,4cqw,9px);line-height:1.2;display:block}.door-window{background:linear-gradient(165deg,#d5e6df80,transparent 30%,#12242c50 75%,#cfdfd729),repeating-linear-gradient(90deg,#ffffff16 0 1px,transparent 1px 3px),var(--glass);border:2px solid #374346;width:23%;position:absolute;top:7%;bottom:7%;left:10%;overflow:hidden;box-shadow:1px 0 #ffffff70,-1px 0 2px #0006,inset 3px 0 6px #0c1c2370}.door-window i{background:linear-gradient(90deg,#0000,#f2fffa45,#0000);width:32%;position:absolute;inset:-25% auto -25% 25%;transform:rotate(13deg)}.door-window i+i{opacity:.65;width:10%;left:80%}.door-handle{background:linear-gradient(90deg,#151e20,#626d6d 40%,#303c3e 70%,#182123);border-radius:2px;width:5%;height:23%;position:absolute;top:48%;right:10%;box-shadow:3px 3px 3px #30271955,inset 0 1px #c4cbc3}.door-handle:before,.door-handle:after{content:"";background:#283133;width:60%;height:5%;position:absolute;left:20%;transform:translate(-50%);box-shadow:-2px 2px 2px #0005}.door-handle:before{top:8%}.door-handle:after{bottom:8%}.door-handle i{border-left:1px solid #d4ddd340;position:absolute;inset:2px 1px}.door-hinge{background:linear-gradient(90deg,#273235,#8c9591,#354043);border-radius:1px;width:3px;height:13px;position:absolute;left:-2px}.hinge-top{top:13%}.hinge-bottom{bottom:15%}.door-wordmark{color:#263031a0;letter-spacing:.25em;font-size:clamp(4px,2.8cqw,6px);position:absolute;bottom:8%;left:45%}.door-threshold{background:linear-gradient(#a6afac,#3d494a);height:3px;position:absolute;bottom:-1px;left:0;right:0;box-shadow:0 6px 8px #1a252533}.door-studio .door-reverse{background:0 0;border:0;border-radius:2px;padding:0;transform:rotateY(180deg)translateZ(14px)}.door-interior .door-window{left:auto;right:10%}.door-interior .door-plaque{left:9%;right:44%}.door-interior .door-handle{left:10%;right:auto}.door-interior .door-wordmark{left:9%}.door-interior .door-hinge{left:auto;right:-2px}.door-case-side{backface-visibility:hidden;pointer-events:none;background:linear-gradient(90deg,#6b7473,#2c373a 35%,#515d60 65%,#222e31);width:14px;height:100%;position:absolute;top:0}.door-case-left{transform-origin:0;left:0;transform:translateZ(-14px)rotateY(-90deg)}.door-case-right{transform-origin:100%;right:0;transform:translateZ(-14px)rotateY(90deg)}.door-case-top{transform-origin:top;backface-visibility:hidden;pointer-events:none;background:linear-gradient(#86908c,#3a474b);width:100%;height:14px;position:absolute;top:0;left:0;transform:translateZ(-14px)rotateX(90deg)}.door-studio .scene__title a{padding:8px 20px}.door-studio .scene__title a>span:first-child{font-size:20px}.door-studio .course-cover:focus-visible{outline-offset:6px;outline:2px solid #fff}dialog.door-entry{perspective:1000px;background:0 0;border:0;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.door-entry::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#25384d8c}.door-entry-portal{transform-origin:50%;width:min(270px,60vw,37.12dvh);height:min(422px,94vw,58dvh);margin-top:calc(min(422px,94vw,58dvh)/-2);margin-left:calc(min(270px,60vw,37.12dvh)/-2);position:absolute;top:46%;left:50%}.door-entry-cancel{z-index:2;background:#2636459c;border:1px solid #ffffff40;position:absolute;top:24px;right:24px}.door-destination-window{background:radial-gradient(at 90% 0,#486caa 0%,#0000 65%),linear-gradient(#526a92 0%,#707e86 50%,#a2846c 100%);position:absolute;inset:0;overflow:hidden}.door-destination-screen{transform-origin:0 0;color:var(--ink);--muted:#ededed;position:absolute;inset:0 auto auto 0;overflow:hidden}.door-destination-content{position:absolute;left:0;right:0}.door-destination-content .main-content{width:100%}.door-destination-screen .page-footer{margin-top:64px}.door-destination-chrome{display:flow-root}.door-entry-portal{pointer-events:none}.door-entry-portal .classroom-door{box-shadow:none;background:0 0}.door-entry-portal .door-room{display:none}
.student-studio .carousel-static{perspective:1000px;grid-template-columns:minmax(0,300px);padding:22px 20px 30px}.student-studio .carousel-static .course-cover{aspect-ratio:3/4;min-width:0}.student-studio .course-cover{cursor:pointer}.student-studio .door-case-side,.student-studio .door-case-top{display:none}.student-studio .door-reverse{transform:rotateY(180deg)translateZ(6px)}.learning-surface{--surface-accent:#486579;--surface-ink:#233d4b;text-align:left;width:100%;height:100%;color:var(--surface-ink);font-family:var(--font-geist);display:block;position:relative;container-type:inline-size}.learning-surface.green{--surface-accent:#506a64;--surface-ink:#29423b}.learning-surface.orange{--surface-accent:#876951;--surface-ink:#513b2c}.learning-surface strong,.learning-surface small{display:block}.lesson-notebook{perspective:900px;background:#e6e4d9;border-radius:3px 12px 12px 3px;box-shadow:5px 4px #b7bcb8,0 24px 25px -15px #15242c90}.notebook-pages{background:repeating-linear-gradient(0deg,#d2d3c8 0 1px,#f2f0e6 1px 3px);border-right:1px solid #a5a89e;border-radius:1px 8px 8px 1px;position:absolute;inset:4px -4px 3px 9px}.notebook-cover{background:linear-gradient(90deg,#0005,transparent 6%,#fff1 7%,transparent 8%),repeating-linear-gradient(0deg,#ffffff04 0 1px,transparent 1px 3px),var(--surface-accent);color:#f3f0e5;transform-origin:0;backface-visibility:hidden;border-radius:3px 10px 10px 3px;display:block;position:absolute;inset:0 2px 0 0;box-shadow:inset 0 1px #ffffff40,inset -1px 0 #ffffff25,3px 0 4px #19272b40}.notebook-imprint{letter-spacing:.13em;opacity:.8;align-items:center;gap:7px;font-size:clamp(6px,3cqw,10px);display:flex;position:absolute;top:9%;left:13%}.notebook-title{position:absolute;top:27%;left:13%;right:17%}.notebook-title small{opacity:.65;margin-bottom:8%;font-size:clamp(9px,4cqw,13px)}.notebook-title strong{letter-spacing:-.06em;overflow-wrap:anywhere;font-size:clamp(22px,11cqw,36px);font-weight:400;line-height:1.06}.notebook-title>span{margin-top:12%;font-size:clamp(9px,4.5cqw,15px);display:block}.notebook-rule{border-top:1px solid #fff6;position:absolute;top:63%;left:13%;right:23%}.notebook-caption{color:#f3f0e5a0;font-size:clamp(9px,4cqw,13px);line-height:1.5;position:absolute;top:69%;left:13%}.notebook-bottom{justify-content:space-between;align-items:center;font-size:clamp(8px,3.5cqw,12px);display:flex;position:absolute;bottom:8%;left:13%;right:20%}.notebook-elastic{background:linear-gradient(90deg,#142d3f,#314857,#1c3343);width:4%;position:absolute;top:-1px;bottom:-1px;right:9%;box-shadow:2px 0 3px #0003,inset 1px 0 #ffffff18}.notebook-bookmark{clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);background:#d1a77d;width:6%;height:5%;position:absolute;top:100%;left:15%}.surface-reverse{filter:brightness(.91)}.student-entry .door-entry-portal{width:min(300px,68vw,43.5dvh);height:min(400px,90.667vw,58dvh);margin-top:calc(min(400px,90.667vw,58dvh)/-2);margin-left:calc(min(300px,68vw,43.5dvh)/-2)}.student-entry .lesson-notebook{box-shadow:none;background:0 0}.student-entry .notebook-pages,.student-entry .notebook-bookmark{display:none}@media (max-width:600px){.student-studio .carousel-static{grid-template-columns:minmax(0,250px);padding-top:20px}}
