:root{--paper: #FDFDFB;--card: #ffffff;--ink: #262D5C;--ink-brand: #000068;--ink-soft: #4A5175;--pencil: #82879A;--rule-blue: #D9E2F2;--rule-blue-strong: #C0CEE6;--margin: #D85020;--margin-deep: #A93A12;--check: #1E7A4D;--check-soft: #E7F2EC;--danger: #B3261E;--danger-soft: #FDECEB;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--shadow: 0 1px 2px rgba(0, 0, 104, .05), 0 10px 24px -18px rgba(0, 0, 104, .25);--font-display: "Zilla Slab", Georgia, serif;--font-body: "Hanken Grotesk", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--muted: var(--pencil);--line: var(--rule-blue);--line-strong: var(--rule-blue-strong);--color-error: var(--danger);--color-accent: var(--margin-deep);--color-border: var(--rule-blue-strong)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--margin-deep)}.mono{font-family:var(--font-mono);font-size:.92em;letter-spacing:.02em}.brandbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem clamp(1.25rem,4vw,2.5rem);background:var(--card);border-bottom:1px solid var(--rule-blue)}.brandbar a{display:inline-flex}.brandbar img{height:34px;display:block}.brandbar .ctx{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--pencil)}.brandbar .brand-group{display:flex;align-items:center;gap:.9rem}.brandbar .crumb{font-size:.82rem;color:var(--pencil);text-decoration:none;padding-left:.9rem;border-left:1px solid var(--rule-blue);white-space:nowrap}.brandbar .crumb:hover{color:var(--ink);text-decoration:underline}.brandbar .brandbar-right{display:flex;align-items:center;gap:.9rem;min-width:0}.brandbar .account{display:inline-flex;align-items:center;gap:.6rem;min-width:0}.brandbar .account-email{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-soft);max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brandbar .acct-signout{margin-top:0;padding:.3rem .7rem;font-size:.8rem;white-space:nowrap}@media(max-width:420px){.brandbar .ctx,.brandbar .account-email{display:none}}.landing{max-width:680px;margin:0 auto;padding:clamp(2.5rem,7vw,5rem) 1.5rem}.landing h1{font-family:var(--font-display);font-weight:600;color:var(--ink-brand);font-size:clamp(2rem,5vw,2.6rem);line-height:1.12;margin:0 0 .6rem}.landing p{color:var(--ink-soft)}.landing ul{padding:0;list-style:none;margin-top:2.25rem}.landing li a{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:1.05rem;text-decoration:none;color:var(--ink)}.landing li a:hover{color:var(--margin-deep)}.landing li{border-bottom:1px solid var(--rule-blue);padding:.8rem 0}.landing li.primary a{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--ink-brand)}.landing li.primary a:hover{color:var(--margin-deep)}.enrol{max-width:1120px;margin:0 auto;padding:clamp(1.5rem,4vw,3.5rem) clamp(1.25rem,4vw,2.5rem) 4rem;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}@media(max-width:880px){.enrol{grid-template-columns:minmax(0,1fr)}}.prospectus,.card{min-width:0}.eyebrow{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--margin-deep);margin:0 0 1rem}.prospectus h1{font-family:var(--font-display);font-weight:600;color:var(--ink-brand);font-size:clamp(2.4rem,5.5vw,3.4rem);line-height:1.05;letter-spacing:-.01em;margin:0 0 1rem;overflow-wrap:break-word}.prospectus .lede{font-size:1.18rem;color:var(--ink-soft);max-width:34ch;margin:0 0 2.5rem}.facts{border-top:1px solid var(--rule-blue-strong);margin:0}.facts>div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:1rem;padding:.95rem 0;border-bottom:1px solid var(--rule-blue)}.facts dt{font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--pencil);padding-top:.2rem}.facts dd{margin:0;font-weight:500}.priceline{display:flex;align-items:baseline;gap:.6rem;margin-top:2.25rem}.priceline .amt{font-family:var(--font-display);font-weight:600;font-size:2.1rem;color:var(--ink-brand)}.priceline .gst{color:var(--pencil);font-size:.95rem}.card{position:relative;background:var(--card);border:1px solid var(--rule-blue-strong);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(1.5rem,3.5vw,2.25rem);overflow:hidden}@media(min-width:881px){.card{position:sticky;top:2rem}}.seats{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:600;color:var(--check);background:var(--check-soft);border-radius:999px;padding:.3rem .7rem;margin-bottom:1.1rem}.seats .dot{width:7px;height:7px;border-radius:50%;background:var(--check)}.card h2{font-family:var(--font-display);font-weight:600;font-size:1.5rem;margin:0 0 .35rem;color:var(--ink-brand)}.card .sub{color:var(--pencil);font-size:.95rem;margin:0 0 1.5rem}.steps{display:flex;gap:.5rem;margin-bottom:1.75rem;list-style:none;padding:0}.steps li{flex:1;display:flex;flex-direction:column;gap:.4rem;font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--pencil)}.steps li .bar{height:3px;border-radius:2px;background:var(--rule-blue-strong)}.steps li.done .bar{background:var(--check)}.steps li.active .bar{background:var(--margin)}.steps li.active{color:var(--ink)}.steps li.done{color:var(--check)}label.field{display:block;margin-bottom:1rem}label.field .lbl{display:block;font-size:.8rem;font-weight:600;color:var(--ink-soft);margin-bottom:.35rem}.input{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule-blue-strong);border-radius:var(--r-sm);padding:.7rem .8rem;transition:border-color .15s,box-shadow .15s}.input:focus-visible{outline:none;border-color:var(--margin);box-shadow:0 0 0 3px #d8502038}.row2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.consent{display:flex;gap:.65rem;align-items:flex-start;background:none;border:0;border-top:1px solid var(--rule-blue-strong);border-bottom:2px solid var(--ink-soft);border-radius:0;padding:.9rem .25rem;margin:.25rem 0 1.25rem;font-size:.9rem;color:var(--ink-soft);line-height:1.45}.consent input{margin-top:.2rem;width:1.05rem;height:1.05rem;accent-color:var(--ink-brand);flex:none}.sign-line{display:inline-block;min-width:12ch;border-bottom:1.5px solid var(--ink-soft);font-family:var(--font-display);font-size:1.1rem;padding:0 .35rem .1rem}.btn{width:100%;font:inherit;font-weight:600;font-size:1.02rem;color:#fff;background:var(--ink-brand);border:0;border-radius:var(--r-sm);padding:.85rem 1rem;cursor:pointer;transition:transform .08s,background .15s}.btn:hover{background:var(--ink)}.btn:active{transform:translateY(1px)}.btn.pay{background:var(--margin-deep)}.btn.pay:hover{background:#8f300e}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:3px solid rgba(216,80,32,.45);outline-offset:2px}.btn.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn.btn-danger:hover{background:#f9dbd8}.pay-option{display:block;width:100%;text-align:left;cursor:pointer;font:inherit;background:#fff;border:1.5px solid var(--rule, #D0D4D9);border-radius:10px;padding:1rem 1.1rem;margin-bottom:.9rem;transition:border-color .12s ease,box-shadow .12s ease}.pay-option:hover{border-color:var(--margin-deep);box-shadow:0 2px 10px #0000000f}.pay-option:focus-visible{outline:3px solid rgba(216,80,32,.45);outline-offset:2px}.pay-option-title{display:block;font-weight:700;color:var(--ink, #17222B);font-size:1.02rem}.pay-option-price{display:block;font-weight:700;color:var(--margin-deep);font-size:1.15rem;margin-top:.15rem}.pay-option-note{display:block;color:var(--pencil);font-size:.85rem;margin-top:.25rem;line-height:1.35}.btn-ghost{background:none;border:0;color:var(--margin-deep);font:inherit;font-weight:600;font-size:.88rem;cursor:pointer;padding:0;margin-top:.9rem}.btn-ghost:focus-visible{outline:3px solid rgba(216,80,32,.45);outline-offset:2px}.btn-google{width:100%;font:inherit;font-weight:600;font-size:1.02rem;color:var(--ink);background:#fff;border:1px solid var(--rule-blue-strong);border-radius:var(--r-sm);padding:.8rem 1rem;cursor:pointer;transition:background .15s,box-shadow .15s}.btn-google:hover{background:#f7f8fa;box-shadow:0 1px 3px #262d5c26}.btn-google:disabled{opacity:.55;cursor:not-allowed}.btn-google:focus-visible{outline:3px solid rgba(216,80,32,.45);outline-offset:2px}.oauth-or{display:flex;align-items:center;text-align:center;color:var(--pencil);font-size:.82rem;margin:.9rem 0 .6rem}.oauth-or:before,.oauth-or:after{content:"";flex:1;height:1px;background:var(--rule-blue)}.oauth-or span{padding:0 .7rem}.muted{color:var(--pencil);font-size:.85rem}.center{text-align:center}.mt{margin-top:1rem}.alert{border-radius:var(--r-sm);padding:.7rem .85rem;margin-bottom:1rem;font-size:.9rem;border:1px solid}.alert.err{color:var(--danger);background:var(--danger-soft);border-color:#f3c9c6}.who{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--pencil);margin-bottom:1.25rem}.who b{color:var(--ink);font-weight:600}.done{text-align:center;padding:1rem 0}.done .check{width:56px;height:56px;border-radius:50%;margin:0 auto 1.1rem;background:var(--check-soft);color:var(--check);display:grid;place-items:center;font-size:1.7rem;animation:tick-pop .3s ease-out both}.done h2{margin:0 0 .4rem}.receipt{text-align:left;background:var(--paper);border:1px solid var(--rule-blue);border-radius:var(--r-md);padding:1rem 1.1rem;margin-top:1.5rem}.receipt div{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.92rem}.receipt div span:first-child{color:var(--pencil)}.receipt div.total{border-top:1px solid var(--rule-blue);margin-top:.4rem;padding-top:.6rem;font-weight:600}.tick{animation:tick-pop .3s ease-out both;color:var(--check)}@keyframes tick-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.tag{display:inline-block;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--margin-deep);background:#d850201a;padding:.2rem .55rem;border-radius:999px}.entry{padding:.9rem 0;border-bottom:1px solid var(--rule-blue)}.entry .entry-date{display:block;font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--pencil);margin-bottom:.25rem}.entry h3,.entry h4{margin:0 0 .25rem;font-family:var(--font-display);font-weight:600}.entry p{margin:.25rem 0 0;color:var(--ink-soft);font-size:.95rem}.badge-card .badge-band{background:var(--margin);color:#fff;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-align:center;padding:.55rem 1rem;margin:calc(-1*clamp(1.5rem,3.5vw,2.25rem)) calc(-1*clamp(1.5rem,3.5vw,2.25rem)) 1.4rem}.runsheet{width:100%;border-collapse:collapse;font-size:.92rem}.runsheet th{font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--pencil);text-align:left;padding:.5rem .6rem;border-bottom:2px solid var(--rule-blue-strong)}.runsheet td{padding:.55rem .6rem;border-bottom:1px solid var(--rule-blue);vertical-align:top}.runsheet .num{font-family:var(--font-mono);font-size:.8rem;color:var(--pencil)}.ruled{position:relative;padding-left:1.6rem;min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px)}.ruled:before{content:"";position:absolute;top:0;bottom:0;left:.6rem;width:2px;background:var(--margin);transform-origin:top;animation:rule-draw .45s ease-out both}@media(min-width:981px){.ruled{padding-left:5.5rem}.ruled:before{left:4.5rem}}@keyframes rule-draw{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.margin-note{display:block;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--pencil);margin-bottom:.3rem}@media(min-width:981px){.noted{position:relative}.card.noted{overflow:visible}.noted>.margin-note{position:absolute;top:.35em;right:calc(100% + 1.9rem);width:8rem;text-align:right;margin-bottom:0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.markdown{font-size:.95rem;color:var(--ink-soft);overflow-x:auto}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-family:var(--font-display);color:var(--ink);line-height:1.2;margin:1rem 0 .4rem}.markdown h1{font-size:1.3rem}.markdown h2{font-size:1.12rem}.markdown h3{font-size:1rem}.markdown h4{font-size:.92rem}.markdown p,.markdown li{line-height:1.55}.markdown ul,.markdown ol{padding-left:1.2rem}.markdown code{font-family:var(--font-mono);background:var(--paper);border:1px solid var(--rule-blue);border-radius:4px;padding:.05rem .3rem;font-size:.88em}.markdown pre{background:var(--paper);border:1px solid var(--rule-blue);border-radius:var(--r-sm);padding:.8rem;overflow-x:auto}.markdown table{border-collapse:collapse;width:100%;font-size:.88rem;margin:.6rem 0}.markdown th,.markdown td{border:1px solid var(--rule-blue);padding:.4rem .6rem;text-align:left}.markdown th{background:var(--paper)}.markdown blockquote{border-left:3px solid var(--margin);margin:.6rem 0;padding-left:.8rem;color:var(--pencil)}.markdown a{color:var(--margin-deep)}.markdown .ws-check{width:1.25rem;height:1.25rem;accent-color:var(--ink-brand);vertical-align:middle}.markdown textarea.input{display:block;width:100%;margin:.3rem 0;font-size:16px;resize:vertical;scroll-margin-top:5rem}.markdown input.ws-cell{font-size:16px;padding:.35rem .5rem;min-width:0;width:100%;scroll-margin-top:5rem}.skel{background:linear-gradient(90deg,var(--paper) 25%,var(--rule-blue) 37%,var(--paper) 63%);background-size:400% 100%;border-radius:var(--r-sm);animation:skel-shimmer 1.2s ease-in-out infinite}.skel-line{height:.8rem;margin:.5rem 0}.skel-card{border:1px solid var(--rule-blue-strong);border-radius:var(--r-md);padding:1.1rem 1.25rem;margin-top:1.25rem}.skel-card .skel-line:first-child{height:1.15rem;width:55%;margin-top:0}.skel-card .skel-line:last-child{width:80%;margin-bottom:0}@keyframes skel-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.course-progress{margin:.5rem 0 1.5rem}.course-progress .cp-label{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:var(--pencil);margin-bottom:.45rem}.course-progress .cp-label b{color:var(--ink);font-weight:600}.course-progress .bar{height:6px;border-radius:3px;background:var(--rule-blue-strong);overflow:hidden}.course-progress .bar>span{display:block;height:100%;background:var(--check);border-radius:3px;transition:width .4s ease}.next-up{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;margin:0 0 1.25rem;background:var(--check-soft);border:1px solid var(--rule-blue-strong);border-left:3px solid var(--check);border-radius:var(--r-sm);font-size:.9rem;color:var(--ink-soft)}.next-up .nu-eyebrow{font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--check);display:block;margin-bottom:.15rem}.next-up .nu-jump{flex-shrink:0;background:none;border:0;cursor:pointer;color:var(--margin-deep);font-weight:600;font-size:.85rem;white-space:nowrap}.next-up .nu-jump:hover{text-decoration:underline}.card.compact{padding-top:.9rem;padding-bottom:.9rem;opacity:.72}.card.compact h2{color:var(--pencil)}.course-done{text-align:center;padding:1.5rem 0 .5rem}.course-done .check{width:56px;height:56px;border-radius:50%;margin:0 auto .9rem;background:var(--check-soft);color:var(--check);display:grid;place-items:center;font-size:1.7rem;animation:tick-pop .3s ease-out both}.course-done h3{margin:0 0 .25rem}.course-done p{margin:0;color:var(--pencil);font-size:.9rem}.tag.mark{display:inline-flex;align-items:center;min-height:44px;padding:.35rem .7rem}.tag.mark .tick{margin-left:.3rem}details.material>summary{min-height:44px;display:list-item;padding:.5rem 0}.materials{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem;display:flex;flex-direction:column;gap:.75rem}.sm{font-size:.85rem}.mat{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);padding:.9rem 1.1rem}.mat.editing{border-color:var(--color-accent);box-shadow:0 0 0 3px #a93a1214}.mat-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.mat-title{font-weight:600;color:var(--ink-brand);flex:1 1 auto;min-width:0}.mat-actions{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto}.mat-body{margin-top:.6rem}.mat-link{color:var(--color-accent);word-break:break-all;font-size:.9rem}.md{color:var(--ink);line-height:1.6}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md h1,.md h2,.md h3{font-family:var(--font-display);color:var(--ink-brand);margin:.8rem 0 .4rem}.md ul,.md ol{padding-left:1.3rem}.md code{font-family:var(--font-mono);font-size:.9em;background:var(--check-soft);padding:.05em .35em;border-radius:4px}.md pre{background:#f6f7fb;padding:.8rem;border-radius:var(--r-sm);overflow-x:auto}.md pre code{background:none}.vis-pill{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.03em;padding:.2rem .6rem;border-radius:999px;border:1px solid transparent;white-space:nowrap}.vis-student{background:var(--check-soft);color:var(--check);border-color:#1e7a4d40}.vis-instructor{background:#fbf0e6;color:var(--margin-deep);border-color:#a93a1240}.vis-toggle{display:flex;align-items:center;gap:.5rem;margin:.75rem 0;flex-wrap:wrap}.vis-label{font-size:.8rem;color:var(--ink-soft);font-weight:600}.vis-toggle .vis-pill{cursor:pointer;opacity:.5;background:transparent;border-color:var(--line);color:var(--ink-soft)}.vis-toggle .vis-pill.on{opacity:1}.vis-toggle .vis-pill.vis-student.on{background:var(--check-soft);color:var(--check);border-color:#1e7a4d73}.vis-toggle .vis-pill.vis-instructor.on{background:#fbf0e6;color:var(--margin-deep);border-color:#a93a1273}.icon-btn{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);border-radius:var(--r-sm);width:26px;height:26px;line-height:1;cursor:pointer;font-size:.7rem}.icon-btn:disabled{opacity:.35;cursor:default}.btn.sm,.btn-ghost.sm,.btn-danger.sm{width:auto;padding:.35rem .9rem;font-size:.85rem}.mat-editrow{display:flex;gap:.5rem}.mat-editrow .input{flex:1 1 auto;min-width:0}.kind-select{flex:0 0 108px!important}.editor{margin-top:.6rem}.editor-tabs{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;margin-bottom:.4rem}.editor-tabs button{border:none;background:var(--card);color:var(--ink-soft);padding:.3rem .95rem;font-size:.8rem;cursor:pointer}.editor-tabs button.on{background:var(--ink-brand);color:#fff}.mono{font-family:var(--font-mono);font-size:.85rem;line-height:1.5}.preview-pane{border:1px solid var(--line);border-radius:var(--r-sm);padding:.9rem 1.1rem;min-height:6rem;background:var(--paper)}.mat-editactions{display:flex;gap:.5rem;margin-top:.75rem}.add-mat{border:1px dashed var(--line-strong);border-radius:var(--r-md);padding:.9rem 1.1rem;background:#00006804}.add-mat-label{margin:0 0 .6rem;font-weight:600;color:var(--ink-soft);font-size:.85rem}.add-mat .mat.editing{border:none;box-shadow:none;padding:0;background:transparent}.chev{border:none;background:none;cursor:pointer;color:var(--ink-soft);font-size:.8rem;padding:0 .15rem;flex:0 0 auto}.mat-title.as-link{border:none;background:none;text-align:left;cursor:pointer;font:inherit;font-weight:600;color:var(--ink-brand);padding:0}.mat-title.as-link:hover{text-decoration:underline}.mat.open{border-color:var(--line-strong)}.lessons-list{grid-column:1 / -1;display:flex;flex-direction:column;gap:1rem;margin-top:1.25rem}.ws-hint{font-size:.8rem;color:var(--check);background:var(--check-soft);border-radius:var(--r-sm);padding:.4rem .7rem;margin:0 0 .7rem}.editor-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap}.editor-bar .editor-tabs{margin-bottom:0}.editor-bar .btn-ghost.sm{margin-left:auto}.embed-frame{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:var(--r-sm);overflow:hidden;background:#000}.embed-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.embed-video{width:100%;max-height:70vh;border-radius:var(--r-sm);background:#000}.embed-pdf{display:flex;flex-direction:column;gap:.4rem}.embed-pdf iframe{width:100%;height:70vh;border:1px solid var(--line);border-radius:var(--r-sm)}.ws-textarea{display:block}.ws-ai{display:block;margin-top:.4rem}.ws-ai-btn{font-size:.85rem;padding:.25rem .6rem;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;cursor:pointer}.ws-ai-btn:disabled{opacity:.5;cursor:not-allowed}.ws-feedback{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem;padding:.6rem .75rem;border-left:3px solid var(--brand, #4f46e5);background:#4f46e50f;border-radius:var(--r-sm);font-size:.9rem}.ai-consent-row{display:flex;align-items:center;gap:.5rem;margin-top:.4rem}.portal-values{list-style:none;margin:2.25rem 0 0;padding:0;border-top:1px solid var(--rule-blue-strong)}.portal-values li{position:relative;padding:.85rem 0 .85rem 1.6rem;border-bottom:1px solid var(--rule-blue);color:var(--ink-soft);font-weight:500}.portal-values li:before{content:"✓";position:absolute;left:0;top:.85rem;color:var(--margin);font-weight:700}.dashboard{max-width:820px;margin:0 auto;padding-top:clamp(1.5rem,4vw,3.5rem);padding-right:clamp(1.25rem,4vw,2.5rem);padding-bottom:4rem}.dash-head{margin-bottom:1.5rem}.dash-head h1{font-family:var(--font-display);font-weight:600;color:var(--ink-brand);font-size:clamp(1.9rem,4vw,2.5rem);line-height:1.1;letter-spacing:-.01em;margin:0}.site-footer{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--line);font-family:var(--font-body);font-size:.85rem;line-height:1.6;color:var(--muted)}.site-footer__links{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.4rem}.site-footer a{color:var(--ink-brand);text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer__legal{margin:0}.game-embed{display:flex;flex-direction:column;gap:1rem}.game-embed .btn{align-self:flex-start}.hangman{display:flex;flex-direction:column;align-items:center;gap:1.1rem;text-align:center}.hangman__meter{display:flex;gap:.35rem}.hangman__seg{width:34px;height:14px;border-radius:3px;background:var(--rule-blue);border:1px solid var(--rule-blue-strong);transition:background .2s}.hangman__seg.is-on{background:var(--check);border-color:var(--check)}.hangman__word{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;align-items:flex-end;min-height:3.5rem}.hangman__tile{font-family:var(--font-display, serif);font-weight:600;font-size:clamp(2rem,8vw,5rem);line-height:1;min-width:.7em;padding:0 .05em;border-bottom:4px solid var(--ink);color:var(--ink-brand)}.hangman__tile.is-shown,.hangman__tile--sep{border-bottom-color:transparent}.hangman__space{width:clamp(1rem,4vw,2.5rem)}.hangman__status{font-size:clamp(1.1rem,3vw,1.6rem);font-weight:600;margin:0}.hangman__status--win{color:var(--check)}.hangman__status--lose{color:var(--margin-deep)}.hangman__hint{min-height:1.6rem}.hangman__keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(2.2rem,1fr));gap:.4rem;max-width:640px;width:100%}.hangman__key{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;padding:.55rem 0;border-radius:var(--r-sm, 6px);border:1px solid var(--rule-blue-strong);background:var(--card);color:var(--ink);cursor:pointer;transition:background .12s,transform .05s}.hangman__key:hover:not(:disabled){background:var(--rule-blue)}.hangman__key:active:not(:disabled){transform:translateY(1px)}.hangman__key:disabled{cursor:default;opacity:.9}.hangman__key.is-hit{background:var(--check-soft);border-color:var(--check);color:var(--check)}.hangman__key.is-miss{background:var(--danger-soft);border-color:#f3c9c6;color:var(--danger);opacity:.6}.hangman__actions{min-height:2.6rem;display:flex;align-items:center;gap:.75rem}.game-overlay{position:fixed;inset:0;z-index:1000;background:var(--paper);display:flex;flex-direction:column}.game-overlay__bar{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.25rem;border-bottom:1px solid var(--rule-blue);font-size:1.1rem;color:var(--ink-brand)}.game-overlay__close{background:none;border:1px solid var(--rule-blue-strong);border-radius:var(--r-sm, 6px);padding:.4rem .85rem;color:var(--ink);cursor:pointer;font-size:.9rem}.game-overlay__close:hover{background:var(--rule-blue)}.game-overlay__stage{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);overflow-y:auto}.scramble{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.scramble__timer{font-family:var(--font-mono);font-size:.85rem;color:var(--pencil);border:1px solid var(--rule-blue-strong);border-radius:999px;padding:.2rem .7rem}.scramble__timer.is-up{color:var(--margin-deep);border-color:var(--margin)}.scramble__tiles,.scramble__answer,.scramble__keys{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.scramble__tile{font-family:var(--font-mono);font-weight:600;font-size:clamp(1.4rem,5vw,2.6rem);background:var(--rule-blue);border-radius:var(--r-sm, 6px);padding:.2rem .55rem;color:var(--ink)}.scramble__gap{width:clamp(.6rem,2vw,1.2rem)}.scramble__slot{min-width:1.1em;font-family:var(--font-mono);font-weight:600;font-size:clamp(1.4rem,5vw,2.6rem);border-bottom:4px solid var(--ink);color:var(--ink-brand);padding:0 .1em}.scramble__slot.is-filled{border-bottom-color:var(--margin)}.scramble__status{font-size:clamp(1.1rem,3vw,1.5rem);font-weight:600;margin:0}.scramble__status--win{color:var(--check)}.scramble__status--try{color:var(--margin-deep)}.scramble__hint{min-height:1.6rem}.scramble__key{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;min-width:2.4rem;padding:.5rem 0;border:1px solid var(--rule-blue-strong);border-radius:var(--r-sm, 6px);background:var(--card);color:var(--ink);cursor:pointer}.scramble__key:hover:not(:disabled){background:var(--rule-blue)}.scramble__key:disabled{opacity:.4;cursor:default}.scramble__actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center}.scramble__actions .btn,.scramble__actions .btn-ghost{width:auto;margin-top:0}.match{display:flex;flex-direction:column;gap:.9rem;align-items:center}.match__count{margin:0}.match__status{font-size:clamp(1.1rem,3vw,1.5rem);font-weight:600;color:var(--check);margin:0}.match__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;width:100%;max-width:760px}.match__tile{padding:.75rem .85rem;border-radius:var(--r-sm, 6px);border:1px solid var(--rule-blue-strong);background:var(--card);color:var(--ink);cursor:pointer;text-align:left;font-size:.98rem;min-height:3.2rem;transition:background .12s,border-color .12s}.match__tile--term{font-weight:700;font-family:var(--font-mono)}.match__tile:hover:not(:disabled){background:var(--rule-blue)}.match__tile.is-sel{border-color:var(--margin);background:#fdf0ea}.match__tile.is-matched{background:var(--check-soft);border-color:var(--check);color:var(--check);cursor:default}.match__tile.is-wrong{border-color:var(--danger);background:var(--danger-soft)}.match__actions .btn{width:auto}.odd{display:flex;flex-direction:column;gap:.9rem;align-items:center;text-align:center}.odd__count{margin:0}.odd__prompt{font-size:clamp(1rem,2.5vw,1.3rem);font-weight:600;color:var(--ink-brand);margin:0}.odd__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;width:100%;max-width:680px}.odd__tile{font-family:var(--font-mono);font-weight:600;font-size:clamp(1.1rem,3.5vw,1.8rem);padding:1.1rem .75rem;border-radius:var(--r-sm, 6px);border:2px solid var(--rule-blue-strong);background:var(--card);color:var(--ink);cursor:pointer;transition:transform .05s,background .12s}.odd__tile:hover:not(:disabled){background:var(--rule-blue)}.odd__tile.is-correct{background:var(--check-soft);border-color:var(--check);color:var(--check)}.odd__tile.is-wrong{background:var(--danger-soft);border-color:var(--danger);color:var(--danger);animation:odd-shake .3s}@keyframes odd-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.odd__status{font-size:clamp(1.05rem,3vw,1.4rem);font-weight:600;margin:0}.odd__status--win{color:var(--check)}.odd__status--try{color:var(--margin-deep)}.odd__actions .btn{width:auto}.semantic{display:flex;flex-direction:column;gap:1rem;align-items:center;width:100%;max-width:640px;margin:0 auto}.semantic__prompt{font-size:clamp(1rem,2.6vw,1.35rem);text-align:center;margin:0;color:var(--ink-soft, #444)}.semantic__latest{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem 1rem;width:100%;padding:clamp(.75rem,2.5vw,1.4rem);border-radius:14px;background:var(--surface-2, #f4f6fb);border:2px solid var(--rule-blue, #d5def0)}.semantic__latest-emoji{font-size:clamp(2rem,8vw,4rem);grid-row:span 2}.semantic__latest-word{font-size:clamp(1.2rem,4vw,2rem);font-weight:700}.semantic__latest-score{font-size:clamp(1.5rem,6vw,4rem);font-weight:800;grid-row:span 2;text-align:right}.semantic__latest-band{font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft, #666)}.semantic__latest--hot{border-color:#e4572e;background:#fdeee9}.semantic__latest--warm{border-color:#f2a154;background:#fdf3e8}.semantic__latest--cool{border-color:#7aa5d2;background:#eef4fb}.semantic__latest--cold{border-color:#8ab6d6;background:#eaf3f9}.semantic__latest--freezing{border-color:#a9c7e0;background:#eef5fa}.semantic__form{display:flex;gap:.6rem;width:100%}.semantic__input{flex:1;font-size:clamp(1rem,3vw,1.4rem);padding:.7rem 1rem;border-radius:10px;border:2px solid var(--rule-blue, #d5def0)}.semantic__history{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:.35rem}.semantic__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:.45rem .8rem;border-radius:8px;background:var(--surface-2, #f4f6fb)}.semantic__row-word{font-weight:600}.semantic__row-score{font-variant-numeric:tabular-nums;font-weight:700}.semantic--reveal{text-align:center;gap:.75rem}.semantic__win{font-size:clamp(1.3rem,4vw,2rem);font-weight:700;color:var(--check, #2e7d32);margin:0}.semantic__secret-label{margin:0;color:var(--ink-soft, #666)}.semantic__secret{font-size:clamp(2rem,8vw,4.5rem);font-weight:800;margin:0;letter-spacing:.02em}.semantic__teach{max-width:46ch;margin:.5rem auto 1rem;color:var(--ink-soft, #444);line-height:1.5}
