:root{--void: #050505;--bench: #0a0a0a;--bench-2: #111111;--bench-3: #181818;--bench-4: #222222;--glass: rgba(10, 10, 10, .88);--white: #fafafa;--mist: #f0f0f2;--mist-soft: #a8a8b0;--mist-muted: #6b6b75;--rose: #e84872;--rose-bright: #ff6b92;--rose-dim: #e8487228;--rose-glow: #e8487250;--eosin: var(--rose);--eosin-dim: var(--rose-dim);--eosin-glow: var(--rose-glow);--azure: var(--rose);--azure-dim: var(--rose-dim);--azure-glow: var(--rose-glow);--methyl: var(--mist-soft);--nucleus: var(--rose-bright);--buffy: #c9b896;--lamp: var(--white);--ok: #4ade80;--ok-dim: #4ade8018;--bad: var(--rose);--bad-dim: var(--rose-dim);--line: #2a2a2a;--line-soft: #1a1a1a;--type-display: "Unbounded", system-ui, sans-serif;--type-body: "Instrument Sans", "Segoe UI", sans-serif;--type-mono: "JetBrains Mono", ui-monospace, monospace;--radius: 14px;--radius-lg: 22px;--shadow: 0 24px 60px rgba(0, 0, 0, .7);--shadow-sm: 0 8px 28px rgba(0, 0, 0, .5);--pad: max(1rem, env(safe-area-inset-left));--pad-r: max(1rem, env(safe-area-inset-right));--grad-brand: linear-gradient(135deg, var(--rose-bright), var(--rose))}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(232,72,114,.55) var(--bench-2)}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:var(--bench-2);border-radius:999px}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--rose-bright),var(--rose));border-radius:999px;border:2px solid var(--bench-2)}*::-webkit-scrollbar-thumb:hover{background:var(--rose-bright)}*::-webkit-scrollbar-corner{background:var(--bench-2)}html,body,#root{margin:0;min-height:100%}html{-webkit-text-size-adjust:100%}body{background-color:var(--void);background-image:radial-gradient(ellipse 60% 45% at 90% -5%,rgba(232,72,114,.08),transparent 50%),radial-gradient(ellipse 50% 40% at 0% 100%,rgba(232,72,114,.04),transparent 55%),linear-gradient(180deg,#080808 0%,var(--void) 55%,#000 100%);color:var(--mist);font-family:var(--type-body);font-size:17px;line-height:1.55;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(circle at 70% 15%,rgba(232,72,114,.05),transparent 30%)}button,input,textarea{font:inherit}button{min-height:2.75rem}.shell{min-height:100dvh;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;max-width:76rem;margin:0 auto;padding:.65rem var(--pad-r) 0 var(--pad);padding-bottom:calc(5.5rem + env(safe-area-inset-bottom));position:relative;z-index:1}.mast{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 1.25rem;padding:.55rem .85rem;background:#08080ee0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.06);border-radius:999px;box-shadow:0 4px 24px #0006;position:sticky;top:.65rem;z-index:20}.wordmark{background:none;border:0;color:var(--mist);font-family:var(--type-display);font-weight:700;font-size:.95rem;letter-spacing:-.02em;padding:0;min-height:2.25rem;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem}.mark{width:1.35rem;height:1.35rem}.mast-badge{font-family:var(--type-mono);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--grad-brand);padding:.32rem .7rem;border-radius:999px;flex-shrink:0}.content{width:100%}.stage{display:grid;gap:1.75rem;padding:.25rem 0 2.5rem}.stage-hero{position:relative;padding:1.5rem 0 .5rem}.stage-eyebrow{font-family:var(--type-mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 0 .75rem}.stage-hero h1,.stage-copy h1,.bench h1,.image-lab h1{font-family:var(--type-display);font-weight:800;font-size:clamp(2.35rem,8vw,3.75rem);letter-spacing:-.04em;line-height:1.02;margin:0 0 1rem;max-width:16ch;color:var(--mist)}.stage-accent{display:block;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.stage-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1rem}.stage-cta{min-width:9rem}.upload-hub{background:linear-gradient(155deg,#181818f2,#080808fa);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-sm),inset 0 1px #ffffff0a;position:relative;overflow:hidden}.upload-hub:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 100% 0%,rgba(232,72,114,.08),transparent 40%);pointer-events:none}.upload-drop{width:100%;border:2px dashed rgba(232,72,114,.35);border-radius:var(--radius);background:#05050599;color:var(--mist);cursor:pointer;padding:1.25rem 1rem;text-align:center;display:grid;gap:.35rem;transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease}.upload-drop:hover{border-color:var(--rose);background:#e848720f;box-shadow:0 0 28px #e848721f;transform:translateY(-2px)}.upload-icon{font-size:1.5rem;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}.upload-title{font-family:var(--type-display);font-weight:700;font-size:1.05rem}.upload-sub{font-size:.85rem;color:var(--mist-muted);max-width:28rem;margin:0 auto}.upload-list{list-style:none;padding:.75rem 0 0;margin:0;display:grid;gap:.4rem}.upload-list li{list-style:none}.upload-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;background:var(--bench-3);border:1px solid var(--line);border-radius:var(--radius);font-size:.88rem;color:inherit;cursor:pointer;text-align:left;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.upload-row:hover{border-color:#e8487273;background:#e8487212;transform:translate(3px);box-shadow:-3px 0 0 var(--rose)}.upload-row:focus-visible{outline:2px solid var(--rose);outline-offset:2px}.upload-file{color:var(--mist-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-meta{font-family:var(--type-mono);font-size:.68rem;color:var(--rose-bright);flex-shrink:0}.mast-badge-file{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-bench{display:grid;gap:1rem;animation:material-in .35s ease}@keyframes material-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-frame{position:relative;background:linear-gradient(165deg,#141414fa,#060606fc);border:1px solid rgba(255,255,255,.08);border-top:3px solid var(--rose);border-radius:var(--radius-lg);padding:1.35rem 1.15rem 1.15rem;box-shadow:var(--shadow-sm),inset 0 1px #ffffff0a,0 0 0 1px #e8487214;overflow:hidden}.slide-frame:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 8%,rgba(232,72,114,.12),transparent 38%),radial-gradient(circle at 88% 92%,rgba(255,255,255,.03),transparent 35%)}.slide-corner{position:absolute;width:18px;height:18px;border-color:#e848728c;border-style:solid;pointer-events:none;z-index:1}.slide-corner-tl{top:.65rem;left:.65rem;border-width:2px 0 0 2px}.slide-corner-tr{top:.65rem;right:.65rem;border-width:2px 2px 0 0}.slide-corner-bl{bottom:.65rem;left:.65rem;border-width:0 0 2px 2px}.slide-corner-br{bottom:.65rem;right:.65rem;border-width:0 2px 2px 0}.material-head{position:relative;z-index:1;margin-bottom:1.1rem}.material-id{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem}.material-accession{font-family:var(--type-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mist-muted)}.material-kind{font-family:var(--type-mono);font-size:.62rem;font-weight:700;letter-spacing:.08em;padding:.15rem .45rem;border-radius:999px;background:#e8487224;border:1px solid rgba(232,72,114,.35);color:var(--rose-bright)}.material-title{font-family:var(--type-display);font-size:clamp(1.35rem,5vw,2rem);font-weight:800;letter-spacing:-.03em;line-height:1.12;margin:0 0 .45rem;color:var(--mist);word-break:break-word}.material-label{margin:0 0 .65rem;font-size:.92rem;color:var(--mist-soft)}.material-stats{display:flex;flex-wrap:wrap;gap:.45rem}.stat-pill-rose{border-color:#e8487259;color:var(--rose-bright);background:#e848721a}.material-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.25rem}.material-body{position:relative;z-index:1}.material-loading,.material-empty,.material-more{font-size:.9rem;color:var(--mist-muted);margin:.5rem 0 0}.section-deck{list-style:none;margin:.65rem 0 0;padding:0;display:grid;gap:.65rem;max-height:min(52vh,28rem);overflow-y:auto;padding-right:.25rem}.section-card{background:#ffffff05;border:1px solid rgba(255,255,255,.07);border-left:3px solid var(--rose);border-radius:var(--radius);padding:.85rem .9rem;display:grid;gap:.45rem;transition:border-color .18s ease,background .18s ease}.section-card:hover{background:#e848720d;border-color:#e8487240}.section-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .65rem}.section-page{font-family:var(--type-mono);font-size:.68rem;font-weight:700;letter-spacing:.06em;color:var(--rose-bright)}.section-topic{font-size:.78rem;color:var(--mist-muted);text-transform:uppercase;letter-spacing:.04em}.section-preview{margin:0;font-size:.9rem;line-height:1.55;color:var(--mist-soft)}.section-ask{justify-self:start;min-height:auto;padding:.35rem .65rem;font-size:.78rem;border-radius:999px;background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--mist-soft);cursor:pointer}.section-ask:hover{border-color:var(--rose);color:var(--rose-bright);background:#e8487214}.upload-empty{margin:.75rem 0 0;font-size:.88rem;color:var(--mist-muted);text-align:center}.stage-courses{display:grid;gap:.75rem}.section-label{font-family:var(--type-mono);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mist-muted);margin:0}.lede{max-width:36rem;color:var(--mist-soft);margin:0 0 1rem;font-size:1.05rem}.hint{font-family:var(--type-mono);font-size:.74rem;font-weight:500;color:var(--mist-soft);margin:0;padding:.45rem .65rem;background:#ffffff0a;border-radius:8px;display:inline-block;border:1px solid rgba(255,255,255,.08)}.course-pick{display:grid;gap:1rem}.course-card{border:0;cursor:pointer;text-align:left;padding:0;overflow:hidden;background:linear-gradient(160deg,var(--bench-3) 0%,var(--bench-2) 100%);color:var(--mist);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:flex;flex-direction:column;position:relative;border:1px solid rgba(255,255,255,.06);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.course-card:hover{transform:translateY(-4px);box-shadow:0 28px 50px #00000080}.course-card.g206:hover{border-color:#e8487273}.course-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:1}.course-card.g202:before{background:linear-gradient(90deg,var(--white),var(--mist-soft))}.course-card.g206:before{background:var(--grad-brand)}.course-card.g202 .meta{color:var(--mist-soft)}.course-card.g202:hover{border-color:#fff3;box-shadow:0 20px 50px #0006}.course-card.g206:hover{border-color:#e8487273;box-shadow:0 20px 50px #e848721f}.course-card img{display:block;width:100%;height:7.5rem;object-fit:cover;background:var(--bench-4);opacity:.92;-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent 100%);mask-image:linear-gradient(180deg,#000 60%,transparent 100%)}.course-card .label,.course-card .sub,.course-card .meta{padding-left:1.1rem;padding-right:1.1rem}.course-card .label{font-family:var(--type-display);font-size:1.75rem;font-weight:700;letter-spacing:-.03em;margin-top:.65rem}.course-card .sub{color:var(--mist-muted);margin:.2rem 0 .5rem;font-size:.95rem}.course-card.g202 .meta{color:var(--azure)}.course-card.g206 .meta{color:var(--eosin)}.course-card .meta{margin:0 0 1rem;font-family:var(--type-mono);font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.course-card:focus-visible,.primary:focus-visible,.ghost:focus-visible,.opt:focus-visible,.chip:focus-visible,.film-plate:focus-visible,.back-link:focus-visible,.tutor-fab:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--lamp);outline-offset:3px}.bench,.quiz,.result,.image-lab{position:relative;max-width:44rem;padding:0 0 2rem}.hero{margin-bottom:1.5rem}.hero-stats{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.stat-pill{font-family:var(--type-mono);font-size:.72rem;font-weight:500;padding:.35rem .65rem;border-radius:999px;background:var(--bench-3);border:1px solid var(--line);color:var(--mist-soft)}.back-link{background:none;border:0;color:var(--rose-bright);padding:0;min-height:2.4rem;cursor:pointer;font-size:.92rem;font-weight:600;margin:0 0 .6rem}.counts,.empty-line,.src,.progress,.panel-help{font-size:.92rem;color:var(--mist-muted)}.counts,.src,.progress{font-family:var(--type-mono);font-size:.74rem}.panel{background:linear-gradient(155deg,#14141feb,#08080efa);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);padding:1.25rem 1.15rem 1.1rem;margin:1rem 0 0;box-shadow:var(--shadow-sm)}.panel h2{font-family:var(--type-display);font-size:1.15rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .35rem;color:var(--mist)}.panel-help{margin:0 0 1rem;line-height:1.45}.mix-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1rem}.chip{border:1px solid var(--line);cursor:pointer;padding:.42rem .9rem;border-radius:999px;background:var(--bench-3);color:var(--mist-soft);font-size:.88rem;font-weight:500;min-height:2.35rem}.chip.on{background:var(--grad-brand);border-color:transparent;color:#fff;box-shadow:0 4px 18px var(--rose-dim)}.tutor-tools .chip:hover:not(:disabled){border-color:var(--rose);color:#fff;background:var(--rose)}.chat-log{list-style:none;padding:.45rem .65rem;margin:0;display:flex;flex-direction:column;gap:.5rem;flex:0 0 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;align-content:flex-start}.chat-log.has-messages{flex:1 1 auto}.chat-log li{border-radius:var(--radius);padding:.6rem .75rem;position:relative;flex-shrink:0}.chat-log .you{background:var(--bench-3);border:1px solid var(--line);justify-self:end;max-width:88%;border-bottom-right-radius:4px}.chat-log .you .kind-mark{color:var(--eosin)}.chat-log .notes,.ai-response{background:linear-gradient(135deg,#142028,#111c26);color:var(--mist);max-width:94%;border:1px solid var(--azure-glow);border-left:3px solid var(--azure);border-bottom-left-radius:4px;box-shadow:inset 0 1px #4db8d410}.chat-log .notes .kind-mark,.ai-response .kind-mark{color:var(--azure)}.chat-log .notes.typing{max-width:5.5rem;padding-bottom:.75rem}.typing-dots{display:flex;gap:.3rem;align-items:center;margin:0;min-height:1rem}.typing-dots span{width:.45rem;height:.45rem;border-radius:50%;background:var(--azure);opacity:.35;animation:tutor-typing 1.1s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes tutor-typing{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.chat-log .notes .src,.ai-response .src{color:var(--mist-muted);margin-top:.5rem;padding-top:.45rem;border-top:1px solid var(--line-soft)}.chat-log .notes p,.ai-response p{color:var(--mist-soft);line-height:1.6}.chat-log .notes p:last-child,.ai-response p:last-child{margin-bottom:0}.chat-log .notes .opt,.ai-response .opt{background:var(--bench-4);border-color:var(--line);color:var(--mist)}.chat-log p{margin:0 0 .45rem;white-space:pre-wrap}.review-opts{list-style:none;padding:0;margin:0 0 .75rem;display:grid;gap:.3rem;font-size:.92rem}.review-opts .key{color:var(--ok)}.review-opts .picked{color:var(--eosin)}.topic{display:grid;gap:.35rem;margin:.5rem 0 1rem;font-size:.92rem;font-weight:500}.topic input,.topic textarea,.tutor-compose textarea{width:100%;background:var(--bench);border:1px solid var(--line);color:var(--mist);padding:.75rem .85rem;border-radius:var(--radius)}.hero>p:not(.lede){color:var(--mist-soft);max-width:36rem;margin:0}.slide-card,.ai-response{background:linear-gradient(145deg,var(--bench-3) 0%,var(--bench-2) 100%);color:var(--mist);padding:1.3rem 1.2rem 1.15rem;border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--line);border-top:2px solid var(--azure)}.slide-card h2,.review h3,.ai-response h2{font-family:var(--type-display);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .85rem;line-height:1.25;color:var(--mist)}.slide-card .kind-mark,.ai-response .kind-mark{color:var(--azure)}.slide-card p,.ai-response p{color:var(--mist-soft)}.slide-card b,.ai-response b{color:var(--mist)}.slide-card textarea{width:100%;background:var(--bench);border:1px solid var(--line);color:var(--mist);padding:.75rem .85rem;border-radius:var(--radius);resize:vertical;min-height:8rem;font-family:var(--type-body);line-height:1.5}.slide-card textarea:focus,.topic input:focus,.topic textarea:focus,.tutor-compose textarea:focus{outline:none;border-color:var(--azure);box-shadow:0 0 0 3px var(--azure-dim)}.actions{display:flex;flex-wrap:wrap;gap:.55rem;margin:.15rem 0 .35rem}.sticky-actions{position:sticky;bottom:.5rem;z-index:4;padding:.6rem 0 calc(.45rem + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--void) 40%)}.sticky-actions .primary,.sticky-actions .ghost{flex:1 1 9rem}.primary,.ghost{border:0;cursor:pointer;padding:.72rem 1.1rem;border-radius:var(--radius);font-weight:600;font-size:.95rem}.primary{background:var(--grad-brand);color:#fff;box-shadow:0 8px 28px var(--rose-dim)}.primary:disabled,.ghost:disabled,.chip:disabled{opacity:.45;cursor:not-allowed}.ghost{background:#ffffff0a;color:var(--mist-soft);border:1px solid rgba(255,255,255,.08)}.score-strip{list-style:none;padding:0;margin:1.25rem 0 0;display:flex;flex-direction:column;gap:.4rem}.score-strip li{display:flex;gap:.75rem;align-items:baseline;font-size:.92rem;background:var(--bench-2);border:1px solid var(--line);padding:.65rem .85rem;border-radius:var(--radius);color:var(--mist-soft)}.score-strip span{margin-left:auto;font-family:var(--type-mono);font-size:.68rem;color:var(--mist-muted)}.kind-mark{font-family:var(--type-mono);font-size:.68rem;font-weight:600;color:var(--azure);margin:0 0 .45rem;text-transform:uppercase;letter-spacing:.06em}.wells{list-style:none;padding:0;margin:.35rem 0 0;display:grid;gap:.45rem}.opt{width:100%;text-align:left;border:1px solid var(--line);cursor:pointer;background:var(--bench-4);color:var(--mist);padding:.78rem .9rem;border-radius:var(--radius);min-height:2.75rem;font-weight:500}.opt.on{background:var(--grad-brand);border-color:transparent;color:#fff;box-shadow:0 4px 16px var(--rose-dim)}.dots li.done{background:var(--white)}.pcv{display:flex;gap:1.25rem;align-items:end;margin-bottom:1.5rem;padding:1.1rem;background:var(--bench-2);border:1px solid var(--line);border-radius:var(--radius-lg)}.pcv-tube{width:2.5rem;height:10rem;background:#1a2430;border-radius:3px 3px 12px 12px;position:relative;overflow:hidden;box-shadow:inset 0 2px 6px #00000059;border:1px solid var(--line)}.pcv-tube .packed{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,#f06a85,var(--eosin))}.pcv-tube .buffy{position:absolute;left:0;right:0;bottom:42%;height:.3rem;background:var(--buffy)}.pcv-tube .plasma{position:absolute;inset:0 0 45%;background:#2a2030}.pcv-read{font-family:var(--type-display);font-size:2.85rem;font-weight:700;margin:0;letter-spacing:-.03em;color:var(--mist)}.review{list-style:none;padding:0;margin:0 0 1.2rem;display:grid;gap:.75rem}.review li{background:var(--bench-2);border:1px solid var(--line);padding:1rem 1.05rem;border-radius:var(--radius);color:var(--mist-soft)}.review li h3{color:var(--mist)}.review .hit{border-color:#4ecf8a55;background:var(--ok-dim)}.review .miss{border-color:#e85d7a55;background:var(--bad-dim)}.drop{display:grid;place-items:center;min-height:12rem;background:var(--bench-2);border:2px dashed var(--line);border-radius:var(--radius-lg);cursor:pointer;margin:0 0 .75rem;overflow:hidden;color:var(--mist-muted);text-align:center;padding:.5rem}.drop input{display:none}.drop img{width:100%;max-height:16rem;object-fit:contain;background:var(--bench-4);border-radius:8px}.busy,.err{position:sticky;bottom:6rem;margin:0 auto .5rem;max-width:40rem;padding:.7rem .95rem;border-radius:var(--radius);z-index:5;font-size:.92rem}.busy{background:var(--nucleus);border:1px solid #8b7ab866;color:#fff}.err{background:#3a1520;border:1px solid var(--eosin-glow);display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;justify-content:space-between;color:#f0c0c8}.accession{display:flex;gap:1rem;flex-wrap:wrap;font-family:var(--type-mono);font-size:.65rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--mist-muted);padding:.85rem 0 .35rem;border-top:1px solid var(--line-soft);margin-top:1rem}.fresh{display:flex;gap:.65rem;align-items:flex-start;margin:0 0 1rem;font-size:.9rem;color:var(--mist-soft);line-height:1.4}.fresh input{margin-top:.25rem;width:1.05rem;height:1.05rem;accent-color:var(--eosin)}.film{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.1rem 0 .85rem;margin:0}.film-plate{border:1px solid var(--line);padding:0;cursor:pointer;background:var(--bench-3);color:var(--mist-soft);border-radius:var(--radius);overflow:hidden;text-align:left;box-shadow:var(--shadow-sm);min-height:7.5rem}.film-plate img{display:block;width:100%;height:6rem;object-fit:cover;background:var(--bench-4)}.film-plate span{display:block;padding:.45rem .55rem .55rem;font-size:.74rem;font-weight:500;line-height:1.3}.film-plate.on{border-color:var(--lamp);box-shadow:0 0 0 2px #f0c04a33,var(--shadow-sm)}.plate-fig{display:block;width:100%;max-height:14rem;object-fit:contain;background:var(--bench-4);margin:0 0 .85rem;border-radius:10px;border:1px solid var(--line)}.dots{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;padding:0;margin:0 0 .5rem}.dots li{width:.55rem;height:.55rem;border-radius:50%;background:var(--line);transition:transform .15s ease}.dots li.on{background:var(--eosin);transform:scale(1.25)}.dots li.done{background:var(--azure)}.mini-q{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--line)}.tutor-fab{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:.45rem;border:0;cursor:pointer;background:linear-gradient(135deg,#ff7090,var(--eosin));color:#fff;padding:.55rem .9rem .55rem .65rem;border-radius:999px;box-shadow:0 12px 32px var(--eosin-dim),0 0 0 1px #ffffff20 inset;font-weight:600;min-height:2.75rem}.tutor-backdrop{position:fixed;inset:0;z-index:29;border:0;padding:0;margin:0;background:#04080c9e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer}body.tutor-open{overflow:hidden}.tutor{position:fixed;z-index:30;display:flex;flex-direction:column;background:linear-gradient(180deg,#121c2a,#0d1420);border:1px solid rgba(56,201,232,.2);box-shadow:var(--shadow);overflow:hidden;inset:auto max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));width:auto;max-height:min(32rem,calc(100dvh - 1rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)));border-radius:var(--radius-lg);height:auto}.chat-log .notes.welcome{max-width:94%}.tutor-fab svg{width:1.5rem;height:1.5rem}.tutor-fab span{font-family:var(--type-display);font-weight:700;font-size:.95rem;letter-spacing:-.02em}.tutor-bar{display:flex;align-items:center;gap:.55rem;padding:.55rem .65rem;background:linear-gradient(90deg,var(--bench-3),var(--bench-2));border-bottom:1px solid var(--line);flex-shrink:0}.tutor-head{min-width:0;flex:1}.tutor-mark{width:1.65rem;height:1.65rem;color:var(--mist);flex-shrink:0}.tutor-mark svg{width:100%;height:100%}.tutor-title{font-family:var(--type-display);font-weight:700;font-size:.88rem;margin:0;letter-spacing:-.02em;color:var(--mist);line-height:1.2}.tutor-sub{margin:0;font-size:.72rem;color:var(--mist-muted);line-height:1.2}.icon-btn{margin-left:auto;width:2rem;min-height:2rem;border:1px solid var(--line);border-radius:8px;background:var(--bench);color:var(--mist-soft);cursor:pointer;display:grid;place-items:center;padding:0;flex-shrink:0}.icon-btn svg{width:.95rem;height:.95rem}.tutor-tools{display:flex;flex-wrap:wrap;gap:.35rem;padding:.45rem .65rem;background:var(--bench-2);border-top:1px solid var(--line-soft);flex-shrink:0}.tutor-tools .chip{min-height:1.85rem;font-size:.76rem;padding:.25rem .65rem}.tutor-compose{display:flex;flex-direction:column;gap:.4rem;padding:.45rem .65rem calc(.5rem + env(safe-area-inset-bottom));background:var(--bench-3);border-top:1px solid var(--line);flex-shrink:0}.tutor-compose-row{display:flex;gap:.4rem;align-items:flex-end}.tutor-photo-pick{display:flex;align-items:center;gap:.5rem;padding:.35rem .4rem;background:var(--bench-2);border:1px solid var(--line);border-radius:var(--radius)}.tutor-photo-pick img{width:3rem;height:3rem;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.tutor-photo-pick .ghost{min-height:2rem;padding:.35rem .6rem;font-size:.78rem}.tutor-photo-btn{flex-shrink:0}.chat-photo{display:block;width:100%;max-width:10rem;max-height:8rem;object-fit:cover;border-radius:8px;border:1px solid var(--line);margin:0 0 .4rem}.tutor-compose-row textarea{flex:1;min-width:0;resize:none;min-height:2.4rem;max-height:6rem;font-size:16px;line-height:1.35;padding:.55rem .7rem}.tutor-compose .tutor-send{min-width:3.6rem;min-height:2.4rem;padding:.45rem .75rem;font-size:.88rem;flex-shrink:0}@media(max-width:719px){.tutor-backdrop{display:block}.tutor{inset:auto 0 0;width:100%;max-height:min(72dvh,calc(100dvh - env(safe-area-inset-top) - 2.5rem));height:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-left:0;border-right:0;border-bottom:0}.tutor-fab span{display:none}.tutor-fab{padding:.55rem;border-radius:50%;width:3rem;height:3rem;justify-content:center}.busy,.err{bottom:5rem;max-width:calc(100vw - 2rem)}}@media(min-width:720px){body{font-size:18px}.shell{padding:1rem 1.75rem 5rem}.stage{grid-template-columns:1.05fr .95fr;gap:2rem 2.5rem;align-items:start;padding-top:.5rem}.stage-hero{grid-column:1;grid-row:1 / span 2;padding-top:2rem}.upload-hub{grid-column:2;grid-row:1}.stage-courses{grid-column:2;grid-row:2}.stage-hero h1,.stage-copy h1,.bench h1,.image-lab h1{font-size:3.6rem}.course-pick{gap:.85rem}.film{grid-template-columns:repeat(3,minmax(0,1fr))}.drop img{max-height:20rem}.sticky-actions{position:static;background:none;padding:.35rem 0 0}.tutor-backdrop{display:none}.tutor{right:max(.75rem,env(safe-area-inset-right));bottom:max(.75rem,env(safe-area-inset-bottom));left:auto;width:24rem;max-height:min(36rem,calc(100dvh - 1.5rem));height:auto}}@media(prefers-reduced-motion:reduce){.material-bench{animation:none}}@media(prefers-reduced-motion:no-preference){.course-card,.film-plate,.tutor-fab,.primary,.chip,.opt{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.course-card:hover,.film-plate:hover{transform:translateY(-2px);box-shadow:0 20px 44px #00000080}.tutor-fab:hover{transform:translateY(-2px);box-shadow:0 14px 32px var(--eosin-dim)}.opt:hover:not(.on):not(:disabled){border-color:var(--rose);background:var(--bench-3)}}.course-card{border:1px solid rgba(255,255,255,.06);background:linear-gradient(160deg,#181818eb,#080808fa)}.slide-card,.ai-response{background:linear-gradient(155deg,#141414f5,#080808fc);border:1px solid rgba(255,255,255,.07);border-top:2px solid var(--rose)}.chat-log .notes,.ai-response{background:#e8487214;border:1px solid rgba(232,72,114,.2);border-left:3px solid var(--rose)}.chat-log .you{background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.tutor-fab{background:var(--grad-brand);box-shadow:0 12px 36px var(--rose-dim)}.tutor{background:linear-gradient(180deg,#111,#050505);border:1px solid rgba(232,72,114,.25);box-shadow:0 30px 80px #000000bf}.tutor-bar{background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.06)}.tutor-backdrop{background:#000c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.busy{background:var(--grad-brand);border:1px solid rgba(255,255,255,.1)}.err{background:#e848721f;border:1px solid rgba(232,72,114,.35);color:#ffc8d8}.kind-mark{color:var(--rose)}.chat-log .notes .kind-mark,.ai-response .kind-mark{color:var(--rose-bright)}.upload-meta{color:var(--rose)}.typing-dots span{background:var(--rose)}.accession{justify-content:center;border-top:none;margin-top:.5rem;padding:.5rem 0 .75rem}.accession-back{margin:0;font-size:.85rem;color:var(--mist-muted)}.mast-model,.mast-course{display:none}
