:root{--bg:oklch(97% 0.006 80);--bg-elevated:oklch(99% 0.004 80);--bg-card:oklch(99% 0.004 80);--bg-tinted:oklch(95% 0.008 80);--text:oklch(28% 0.012 250);--text-strong:oklch(20% 0.012 250);--text-muted:oklch(47% 0.012 250);--text-dim:oklch(60% 0.01 250);--accent:oklch(55% 0.15 252);--accent-hover:oklch(49% 0.16 252);--accent-2:oklch(91% 0.035 250);--accent-3:oklch(62% 0.15 55);--success:#22c55e;--warn:#f59e0b;--danger:#ef4444;--border:oklch(24% 0.012 250);--border-light:oklch(85% 0.008 80);--border-thin:2px;--border-thick:clamp(2px,0.22vw,4px);--shadow-brutal:5px 5px 0 0 oklch(32% 0.01 250);--shadow-brutal-sm:3px 3px 0 0 oklch(32% 0.01 250);--shadow-accent:6px 6px 0 0 var(--accent);--fs-hero:clamp(72px,7.37vw,180px);--fs-title:clamp(28px,2.65vw,96px);--fs-class-num:clamp(36px,3.54vw,120px);--fs-name:clamp(20px,1.77vw,60px);--fs-student:clamp(15px,1.18vw,38px);--fs-body:clamp(13px,1.03vw,30px);--fs-meta:clamp(11px,0.81vw,24px);--space-xs:8px;--space-sm:clamp(8px,0.60vw,16px);--space-md:clamp(14px,1.03vw,28px);--space-lg:clamp(20px,1.77vw,48px);--space-xl:clamp(32px,2.65vw,72px);--space-2xl:clamp(48px,4.13vw,112px);--radius:0px;--radius-sm:4px;--radius-lg:0px}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;color:var(--text);font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,SF Pro Display,Noto Sans KR,system-ui,sans-serif;font-weight:500;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.01em}.did-root,body,html{background:var(--bg);overflow:hidden}.did-root{min-height:100vh;max-height:100vh;display:flex;flex-direction:column;padding:var(--space-lg);gap:var(--space-lg);position:relative}.did-root:before{content:"";background-image:radial-gradient(circle at 20% 30%,rgba(0,0,0,.015) 1px,transparent 0);background-size:3px 3px;z-index:0}.did-root:before,.watermark-overlay{position:fixed;inset:0;pointer-events:none}.watermark-overlay{background-image:url(/logo.png);background-repeat:no-repeat;background-position:center 60%;background-size:min(75vw,2400px) auto;opacity:.08;z-index:2147483647}.did-root>*,.topbar{position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--bg-elevated);border:var(--border-thick) solid var(--border);box-shadow:var(--shadow-brutal);gap:var(--space-xl);flex-wrap:wrap}.branding{font-size:var(--fs-name);font-weight:900;letter-spacing:-.03em;color:var(--text)}.brand-sub{display:inline-block;font-size:var(--fs-meta);font-weight:800;color:var(--bg);background:var(--accent);padding:4px 14px;margin-left:var(--space-md);letter-spacing:.15em;text-transform:uppercase;transform:translateY(-4px) rotate(-2deg)}.clock{font-size:calc(var(--fs-name) * 1.5);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.05em;color:var(--text-strong);padding:0 var(--space-md);border:var(--border-thick) solid var(--border)}.date{font-size:var(--fs-body);color:var(--text);font-weight:700;letter-spacing:-.01em}.stale-flag{font-size:var(--fs-meta);color:var(--text);background:var(--warn);border:2px solid var(--border);padding:var(--space-xs) var(--space-sm);font-weight:800}.view-area{position:relative;z-index:1}.board,.view-anim,.view-area{flex:1;display:flex}.board{flex-direction:column;gap:var(--space-lg)}.view-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-xl)}.view-title{font-size:var(--fs-title);font-weight:900;letter-spacing:-.05em;line-height:.9}.view-title:after{content:"";display:block;width:120px;height:12px;margin-top:var(--space-sm)}.greeting,.subtitle{font-size:var(--fs-body);color:var(--text);font-weight:700;text-align:right;max-width:50%;padding:var(--space-sm) var(--space-md);border:3px solid var(--border);align-self:center}.empty,.plan-pending{flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--fs-title);color:var(--text-dim);font-weight:900;text-align:center;letter-spacing:-.03em}.plan-pending{font-size:var(--fs-body);color:var(--text-muted);padding:var(--space-lg);font-style:italic}.grid-classes{display:grid;grid-template-columns:repeat(var(--cols-h,4),minmax(0,1fr));grid-auto-rows:1fr;gap:var(--space-md);flex:1;min-height:0;min-width:0}.class-card{background:var(--bg-card);border:var(--border-thick) solid var(--border);padding:clamp(10px,3cqmin,48px);display:flex;flex-direction:column;gap:clamp(6px,2cqmin,28px);box-shadow:var(--shadow-brutal);position:relative;transition:transform .2s,box-shadow .2s;container-type:size;min-width:0;min-height:0;overflow:hidden}.class-card:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;height:16px;background:var(--accent);border-bottom:var(--border-thick) solid var(--border)}.class-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);padding-top:var(--space-md);padding-bottom:var(--space-md);border-bottom:3px solid var(--border)}.class-num{font-size:clamp(24px,16cqmin,120px);font-weight:900;letter-spacing:-.08em;color:var(--text-strong);line-height:.85;font-feature-settings:"tnum"}.instructor-name{font-size:clamp(16px,9cqmin,60px);font-weight:900;letter-spacing:-.03em;color:var(--text);text-align:right;line-height:1;overflow:hidden;text-overflow:ellipsis;min-width:0}.class-num,.instructor-name{white-space:nowrap}.student-list{list-style:none;flex-direction:column;gap:clamp(2px,.8cqmin,10px);overflow:hidden;flex:1}.student,.student-list{display:flex;min-height:0}.student{align-items:center;gap:clamp(4px,1.5cqmin,20px);font-size:clamp(11px,4.5cqmin,34px);font-weight:700;padding:clamp(2px,.8cqmin,8px) clamp(4px,1.5cqmin,16px);border-bottom:1px dashed var(--border-light);line-height:1.1}.student:last-child{border-bottom:0}.student-name{font-weight:900;color:var(--text-strong);letter-spacing:-.02em;flex-shrink:0}.student-meta{display:flex;gap:clamp(4px,1cqmin,14px);flex:1;font-size:clamp(9px,3.2cqmin,24px);font-weight:600}.student-meta,.student-school{color:var(--text-muted)}.student-grade{color:var(--text);font-weight:800}.student--injury,.student--rest{opacity:.55}.student--injury .student-name,.student--rest .student-name{text-decoration:line-through;text-decoration-thickness:3px}.student-empty{color:var(--text-dim);font-style:italic}.badge{font-size:calc(var(--fs-student) * .55);font-weight:900;padding:4px 12px;border:2px solid var(--border);letter-spacing:.12em;text-transform:uppercase;background:var(--bg-elevated);color:var(--text-strong);flex-shrink:0}.badge--trial{color:#fff}.badge--rest{background:var(--bg-tinted);color:var(--text)}.badge--injury{background:var(--danger);color:#fff}.exercise-list{list-style:none;display:flex;flex-direction:column;gap:clamp(2px,.8cqmin,10px);overflow:hidden;flex:1;min-height:0}.exercise-item{display:flex;align-items:center;justify-content:space-between;gap:clamp(4px,1.5cqmin,20px);font-size:clamp(11px,4.5cqmin,34px);padding:clamp(3px,1cqmin,10px) clamp(6px,1.5cqmin,16px);background:var(--bg-tinted);border:2px solid var(--border);font-weight:700;line-height:1.1;min-height:0}.ex-name{font-weight:900;color:var(--text-strong);letter-spacing:-.02em}.ex-spec{font-size:clamp(9px,3.5cqmin,26px);color:var(--text);font-weight:800;font-variant-numeric:tabular-nums;padding:clamp(1px,.5cqmin,4px) clamp(4px,1.2cqmin,12px);border:2px solid var(--border);line-height:1}.ex-meta{display:inline-flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.exercise-item--done .ex-name,.exercise-item--done .ex-spec{text-decoration:line-through;text-decoration-thickness:2px;opacity:.45}.exercise-item--done{background:var(--bg)}.ex-stamp{height:clamp(14px,5.5cqmin,42px);width:auto;align-self:center;flex-shrink:0;transform:rotate(-8deg);mix-blend-mode:multiply;opacity:.92;pointer-events:none;user-select:none}.core-view{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xl);padding:var(--space-2xl);text-align:center;background:transparent}.core-label{font-size:var(--fs-body);letter-spacing:.3em;color:var(--bg);background:var(--text-strong);padding:var(--space-xs) var(--space-md);text-transform:uppercase;font-weight:900}.core-title{font-size:var(--fs-hero);font-weight:900;letter-spacing:-.06em;line-height:.9;color:var(--text-strong);position:relative;display:inline-block}.core-title:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:16px;background:var(--accent);z-index:-1}.core-items{list-style:none;display:flex;flex-direction:column;gap:var(--space-md);max-width:1600px;width:100%}.core-item{font-size:calc(var(--fs-title) * .85);font-weight:900;padding:var(--space-md) var(--space-xl);background:var(--bg-tinted);border:3px solid var(--border);color:var(--text-strong);letter-spacing:-.03em}.core-item,.outro-view{display:flex;align-items:center;justify-content:center;text-align:center}.outro-view{flex:1;flex-direction:column;gap:var(--space-xl);padding:var(--space-2xl)}.outro-label{font-size:var(--fs-body);letter-spacing:.3em;color:var(--text-muted);text-transform:uppercase;font-weight:900}.outro-title{font-size:calc(var(--fs-hero) * .9);font-weight:900;letter-spacing:-.05em;color:var(--text-strong)}.outro-quote{font-size:var(--fs-title);color:var(--text);font-weight:800;max-width:1600px;padding:var(--space-md) var(--space-lg);background:var(--accent-2);border:var(--border-thick) solid var(--border);box-shadow:var(--shadow-brutal);letter-spacing:-.03em}.outro-footer{font-size:var(--fs-body);color:var(--text-muted);margin-top:var(--space-xl);font-weight:700}.did-root{--topbar-surface:oklch(20% 0.012 250);--topbar-ink:oklch(97% 0.006 80);--accent-ink:oklch(20% 0.012 250);--card-surface:oklch(99% 0.004 80);--card-ink:oklch(22% 0.012 250);--card-muted:oklch(46% 0.012 250);--card-line:oklch(86% 0.008 80);--card-head-surface:oklch(93% 0.008 80);--row-surface:oklch(96.5% 0.006 80);--shadow-color:oklch(32% 0.01 250);--arena-word-color:oklch(91.5% 0.006 250);--daypart-word:"MORNING";transition:background-color .45s cubic-bezier(.16,1,.3,1),color .3s cubic-bezier(.16,1,.3,1)}.did-root[data-time-slot=morning]{--bg:oklch(97% 0.008 250);--bg-elevated:oklch(99% 0.004 80);--bg-card:oklch(99% 0.004 80);--bg-tinted:oklch(95% 0.012 250);--text:oklch(28% 0.012 250);--text-strong:oklch(20% 0.012 250);--text-muted:oklch(47% 0.012 250);--text-dim:oklch(60% 0.01 250);--accent:oklch(55% 0.15 252);--accent-hover:oklch(49% 0.16 252);--accent-2:oklch(91% 0.035 250);--accent-3:oklch(55% 0.15 252);--border:oklch(24% 0.012 250);--border-light:oklch(85% 0.008 250);--arena-word-color:oklch(91.5% 0.008 250);--daypart-word:"MORNING"}.did-root[data-time-slot=afternoon]{--bg:oklch(96.5% 0.008 75);--bg-elevated:oklch(99% 0.004 80);--bg-card:oklch(99% 0.004 80);--bg-tinted:oklch(95% 0.012 70);--text:oklch(28% 0.012 250);--text-strong:oklch(20% 0.012 250);--text-muted:oklch(47% 0.012 250);--text-dim:oklch(60% 0.01 250);--accent:oklch(62% 0.15 55);--accent-hover:oklch(56% 0.16 55);--accent-2:oklch(92% 0.035 65);--accent-3:oklch(62% 0.15 55);--border:oklch(24% 0.012 250);--border-light:oklch(85% 0.008 80);--card-head-surface:oklch(93% 0.012 70);--row-surface:oklch(96% 0.008 70);--arena-word-color:oklch(91.5% 0.008 70);--daypart-word:"AFTERNOON"}.did-root[data-time-slot=evening]{--bg:oklch(95.5% 0.006 250);--bg-elevated:oklch(98.5% 0.004 80);--bg-card:oklch(99% 0.004 80);--bg-tinted:oklch(94.5% 0.008 250);--text:oklch(28% 0.012 250);--text-strong:oklch(20% 0.012 250);--text-muted:oklch(47% 0.012 250);--text-dim:oklch(60% 0.01 250);--accent:oklch(56% 0.18 25);--accent-hover:oklch(50% 0.19 25);--accent-2:oklch(91% 0.035 25);--accent-3:oklch(56% 0.18 25);--border:oklch(24% 0.012 250);--border-light:oklch(85% 0.008 80);--card-head-surface:oklch(93% 0.008 80);--row-surface:oklch(96% 0.006 80);--arena-word-color:oklch(90.5% 0.006 250);--daypart-word:"EVENING"}.did-root:before{background:linear-gradient(180deg,color-mix(in oklch,var(--accent) 5%,var(--bg)) 0,var(--bg) 42%);background-size:auto;opacity:1}.did-root:after{content:var(--daypart-word);position:absolute;right:.02em;bottom:-.08em;z-index:0;color:var(--arena-word-color);font-size:min(12vw,240px);line-height:.8;font-weight:950;letter-spacing:-.06em;opacity:.48;pointer-events:none;user-select:none}.watermark-overlay{opacity:.012;background-position:center 62%;background-size:min(64vw,2100px) auto}.topbar{min-height:clamp(74px,8.4vh,132px);padding:clamp(12px,1.2vw,28px) clamp(18px,1.8vw,42px);color:var(--topbar-ink);background:var(--topbar-surface);border:0;border-radius:14px;box-shadow:0 clamp(3px,.35vw,7px) 0 var(--shadow-color);overflow:hidden;isolation:isolate}.topbar:after{content:"";position:absolute;inset:auto 0 0;height:clamp(4px,.35vw,7px);background:var(--accent);z-index:-1}.brand-lockup{display:flex;flex-direction:column;gap:3px;min-width:0}.branding{color:var(--topbar-ink);line-height:1}.brand-caption{color:var(--accent-2);font-size:var(--fs-meta);font-weight:850;letter-spacing:.11em;white-space:nowrap}.clock{color:var(--accent-ink);background:var(--accent-2);border:0;border-radius:10px;box-shadow:inset 0 -3px 0 color-mix(in oklch,var(--accent-2),var(--shadow-color) 16%);line-height:1;padding:clamp(8px,.7vw,16px) clamp(16px,1.3vw,32px)}.date-cluster{display:flex;align-items:flex-end;flex-direction:column;gap:clamp(4px,.4vw,10px)}.slot-chip{padding:4px 10px;color:var(--accent-ink);background:var(--accent);border-radius:999px;font-size:var(--fs-meta);font-weight:900;letter-spacing:.08em;line-height:1.2}.date{color:var(--topbar-ink);font-weight:800}.status-layer{position:absolute;top:calc(var(--space-lg) + clamp(74px, 8.4vh, 132px) + var(--space-md));right:var(--space-lg);z-index:4}.stale-flag{border:0;border-radius:8px;box-shadow:0 4px 0 var(--shadow-color)}.view-header{min-height:clamp(62px,8vh,118px);align-items:center}.view-title{line-height:.94;color:var(--text-strong);text-wrap:balance}.view-title:after{width:clamp(72px,7vw,160px);height:clamp(4px,.4vw,8px);margin-top:clamp(7px,.6vw,14px);border-radius:999px;background:var(--accent)}.greeting,.subtitle{color:var(--card-ink);background:var(--accent-2);border:0;border-radius:10px;box-shadow:0 5px 0 var(--shadow-color)}@media (prefers-reduced-motion:reduce){.did-root{transition-duration:.01ms}}.grid-classes{gap:clamp(10px,1.15vw,28px)}.class-card,.motto-card{--text:var(--card-ink);--text-strong:var(--card-ink);--text-muted:var(--card-muted);--text-dim:var(--card-muted);--border:var(--card-ink);--border-light:var(--card-line);--bg-tinted:var(--row-surface);color:var(--card-ink);background:var(--card-surface);border:0;border-radius:14px;box-shadow:0 clamp(4px,.45vw,9px) 0 var(--shadow-color);transition:none;animation:card-arrive .42s cubic-bezier(.16,1,.3,1) both}.class-card{container-name:class-card}.class-card:before,.motto-card:before{inset:0 0 auto;height:clamp(6px,.45vw,9px);border:0;background:var(--accent)}.class-card--exercise:before{background:var(--accent-2)}.class-head{margin-top:clamp(4px,.7cqmin,10px);padding:clamp(8px,2cqmin,24px);background:var(--card-head-surface);border:0;border-radius:10px}.class-head,.class-num,.instructor-name{color:var(--card-ink)}.student{border-bottom:1px solid var(--card-line);border-radius:5px;font-size:clamp(12px,5.6cqmin,34px)}.student:nth-child(odd){background:var(--row-surface)}.student-grade,.student-name,.student-school{color:var(--card-ink)}.ex-name,.student-grade,.student-name,.student-school{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-name,.student-school{flex:0 1 auto}.student-grade{flex-shrink:0}.student-school{opacity:.62}.student-meta{min-width:0;overflow:hidden;white-space:nowrap;font-size:clamp(10px,3.8cqmin,24px)}.badge{border:0;border-radius:6px}.badge--trial{color:var(--accent-ink);background:var(--accent)}.exercise-item{background:var(--row-surface);border:0;border-radius:8px;font-size:clamp(12px,5.4cqmin,34px)}.ex-name,.ex-spec,.exercise-item{color:var(--card-ink)}.ex-spec{background:var(--accent-2);border:0;border-radius:6px}.empty-state{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);align-items:center;gap:clamp(24px,4vw,96px);min-height:0;padding:clamp(24px,4vw,96px);color:var(--card-ink);background:var(--card-surface);border-radius:16px;box-shadow:0 clamp(4px,.5vw,10px) 0 var(--shadow-color);overflow:hidden;position:relative}.empty-state:before{content:"";position:absolute;inset:0 0 auto;height:clamp(6px,.45vw,9px);background:var(--accent)}.empty-art{min-width:0;min-height:0;height:100%;align-items:center;justify-content:center}.empty-art,.empty-mark{position:relative;display:flex}.empty-mark{flex-direction:column;align-items:flex-start;width:min(30vw,440px);padding:clamp(18px,2.4vw,48px);color:var(--card-ink);background:var(--card-surface);border:clamp(3px,.3vw,6px) solid var(--card-ink);box-shadow:clamp(4px,.45vw,9px) clamp(4px,.45vw,9px) 0 var(--shadow-color);transform:rotate(-1deg)}.empty-mark-word{font-size:clamp(72px,9.4vw,220px);font-weight:950;line-height:.78;letter-spacing:-.08em}.empty-mark-rule{width:100%;height:clamp(5px,.45vw,9px);margin-block:clamp(14px,1.5vw,28px);background:var(--accent)}.empty-mark-caption{font-size:clamp(11px,1vw,24px);font-weight:950;line-height:1;letter-spacing:.12em}.empty-copy{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(10px,1.2vw,24px);text-align:left}.empty-kicker{padding:6px 12px;color:var(--accent-ink);background:var(--accent-2);border-radius:999px;font-size:var(--fs-body);font-weight:900;letter-spacing:.08em}.empty-title{max-width:18ch;color:var(--card-ink);font-size:clamp(34px,4.3vw,104px);font-weight:950;line-height:1.03;letter-spacing:-.055em;text-wrap:balance}.empty-hint{color:var(--card-muted);font-size:var(--fs-body);font-weight:750}.core-view,.outro-view{border-radius:16px;background:color-mix(in oklch,var(--bg-elevated),transparent 8%);box-shadow:0 clamp(8px,.8vw,16px) 0 var(--shadow-color)}.core-item,.outro-quote{color:var(--card-ink);background:var(--card-surface);border:0;border-radius:10px;box-shadow:0 3px 0 var(--shadow-color)}.core-title:after{border-radius:999px}@container class-card (max-width: 160px){.class-head{align-items:center;flex-direction:column;gap:3px;padding:7px 4px 5px}.class-num{font-size:clamp(22px,18cqmin,52px)}.instructor-name{width:100%;font-size:clamp(10px,8cqmin,18px);text-align:center}.exercise-item,.student{justify-content:center;padding-inline:2px;font-size:clamp(11px,11cqw,15px)}.ex-name,.student-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge,.ex-meta,.student-meta{display:none}}@keyframes card-arrive{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (orientation:portrait){.brand-caption{display:none}.slot-chip{font-size:clamp(9px,1.1vw,15px)}.empty-state{grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:clamp(16px,3vw,48px)}.empty-title{font-size:clamp(30px,5.2vw,72px)}}@media (prefers-reduced-motion:reduce){.class-card,.motto-card{animation:none;transition-duration:.01ms}}.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-md);padding:var(--space-xl);color:oklch(22% .045 245);background:radial-gradient(circle at 18% 18%,oklch(88% .1 205) 0 15%,transparent 15.4%),radial-gradient(circle at 88% 85%,oklch(92% .09 88) 0 20%,transparent 20.4%),oklch(97% .025 215);font-size:var(--fs-title);font-weight:900;text-align:center}.loading-mark{padding:8px 16px;color:oklch(98% .008 80);background:oklch(22% .045 245);border-radius:8px;font-size:var(--fs-name);letter-spacing:.08em}.loading-hint{color:oklch(46% .035 245);font-size:var(--fs-body);font-weight:700}@media (orientation:portrait){.grid-classes{grid-template-columns:repeat(var(--cols-v,2),minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column}.topbar{padding:var(--space-sm) var(--space-md)}.view-header{margin-bottom:var(--space-sm)}}.motto-card{display:none;background:var(--bg-card);border:var(--border-thick) solid var(--border);padding:clamp(10px,3cqmin,40px);box-shadow:var(--shadow-brutal);container-type:size;align-items:center;justify-content:center;overflow:hidden;min-width:0;min-height:0;position:relative}.motto-card:before{content:"";position:absolute;inset:-4px -4px auto;height:clamp(6px,.45vw,9px);background:var(--accent);border-bottom:var(--border-thick) solid var(--border)}.motto-lockup{display:flex;flex-direction:column;align-items:flex-start;width:min(82%,360px);color:var(--text-strong);transform:rotate(-1deg)}.motto-word{font-size:clamp(54px,30cqmin,180px);font-weight:950;line-height:.78;letter-spacing:-.08em}.motto-rule{width:100%;height:clamp(5px,1.8cqmin,10px);margin-block:clamp(12px,4cqmin,28px);background:var(--accent)}.motto-copy{font-size:clamp(16px,8cqmin,46px);font-weight:950;line-height:.88;letter-spacing:.02em}@media (orientation:portrait){.grid-classes[data-odd=true] .motto-card{display:flex}}.preview-root{min-height:100vh;background:#1a1a1a;padding:16px;display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.preview-controls{display:flex;align-items:center;gap:6px;padding:12px 16px;background:#262626;border:2px solid #444;flex-wrap:wrap}.preview-label{color:#aaa;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-right:4px}.preview-sep{width:1px;height:24px;background:#444;margin:0 8px}.preview-btn{padding:6px 14px;background:#1a1a1a;color:#ddd;border:1px solid #555;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}.preview-btn:hover{background:#333;border-color:#888}.preview-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.preview-stage{flex:1;background:#0a0a0a;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:20px}.preview-stage>.did-root{max-height:100%;min-height:0;overflow:hidden;border:2px solid #333;box-shadow:0 0 0 4px #0a0a0a,0 20px 60px rgba(0,0,0,.6)}.preview-stage--landscape>.did-root{width:100%;max-width:calc((100vh - 160px) * 16 / 9);aspect-ratio:16/9}.preview-stage--portrait>.did-root{height:100%;max-height:calc(100vh - 160px);aspect-ratio:9/16}.preview-stage--portrait .grid-classes{grid-template-columns:repeat(var(--cols-v,2),minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column}.preview-stage--portrait .grid-classes[data-odd=true] .motto-card{display:flex}.preview-stage--portrait .topbar{padding:var(--space-sm) var(--space-md)}.preview-stage--portrait .view-header{margin-bottom:var(--space-sm)}.preview-stage--landscape .grid-classes{grid-template-columns:repeat(var(--cols-h,4),minmax(0,1fr));grid-template-rows:1fr;grid-auto-flow:row}.preview-stage--landscape .motto-card{display:none!important}.preview-root--frameless{height:100vh;min-height:0;padding:0;gap:0}.preview-root--frameless .preview-stage{min-height:0;padding:0}.preview-root--frameless .preview-stage>.did-root{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:auto;border:0;box-shadow:none}