:root{color-scheme:dark;--bg:#101211;--panel:#1d2220;--ink:#f7faf5;--muted:#bac6be;--line:#46534b;--accent:#c7f449;--accent-ink:#101211;--secondary:#39d4b9;--radius:2px;--map-accent:#c7f449;font:16px/1.45 Arial,Helvetica,sans-serif;font-synthesis:none}
:root[data-site=wtk]{color-scheme:light;--bg:#fff;--panel:#f7f9fc;--ink:#07090f;--muted:#526074;--line:#d8dee8;--accent:#c1121f;--accent-ink:#fff;--secondary:#143c74;--radius:8px;--map-accent:#89bdf9}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);cursor:pointer;font-weight:700;line-height:1.3}button:hover:not(:disabled){border-color:var(--accent);filter:brightness(1.08)}button:disabled{cursor:default;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--secondary);outline-offset:3px}.focus-map button:focus-visible{outline-color:#fff}.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);min-height:50px}.text-button{background:transparent;color:var(--muted);border-color:transparent}.full{width:100%}a{color:var(--secondary);text-underline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.6rem,3.5vw,3rem);line-height:1.08;letter-spacing:-.04em}h2{font-size:1.4rem;line-height:1.2}h3{font-size:1.06rem;line-height:1.3}p+p{margin-top:12px}small,.small{font-size:.875rem;line-height:1.4}.muted{color:var(--muted)}.eyebrow{font-size:.75rem;line-height:1.35;letter-spacing:.1em;color:var(--secondary);font-weight:800;text-transform:uppercase}.eyebrow+h1,.eyebrow+h2{margin-top:8px}:root[data-site="365"] h1,:root[data-site="365"] .scene-heading h2{font-family:Impact,'Arial Narrow','Liberation Sans Narrow',sans-serif;font-weight:900;letter-spacing:.015em}:root[data-site="365"] h1{text-transform:uppercase}
#app{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) 24px auto;max-width:1600px;margin:auto;padding:0 max(16px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(16px,env(safe-area-inset-left));gap:0}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);min-width:0}.brand img{width:62px;height:62px;object-fit:contain}.wordmark{font-style:italic;font-size:1.4rem;white-space:nowrap}.wordmark small{display:block;font-size:.6rem;font-weight:bold;font-style:normal;letter-spacing:.12em;color:var(--secondary)}:root[data-site=wtk] .brand img{width:230px;height:auto;max-height:54px}.header-right{display:flex;align-items:center;gap:20px}.hud-rank{text-align:right}.hud-rank strong,.hud-rank small{display:block}.hud-rank small{color:var(--muted)}.settings-button{background:transparent}.tabs{display:flex;justify-content:center;gap:4px;border-top:1px solid var(--line);padding:6px 0}.tabs button{width:160px;display:flex;align-items:center;justify-content:center;gap:10px;background:transparent;color:var(--muted);border-color:transparent;min-height:48px}.tabs svg{width:24px;height:24px}.tabs .active{color:var(--accent);background:var(--panel);border-bottom-color:var(--accent)}:root[data-site=wtk] .tabs .active{color:var(--accent);background:#fff2f2}#status{font-size:.875rem;min-width:0;line-height:24px;color:var(--secondary);white-space:nowrap;overflow:auto;visibility:hidden;text-align:center}#status.visible{visibility:visible}main{min-width:0;min-height:0;padding:14px 0 0;outline:none}main.screen-review,main.screen-admin,main.screen-belts{overflow:auto;overscroll-behavior:contain;padding:20px 8px}.skip{position:absolute;top:-100px;left:10px;z-index:20;padding:12px;background:var(--accent);color:var(--accent-ink)}.skip:focus{top:8px}.screen-top,.workspace-top{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px}.screen-top>span,.workspace-top>span{color:var(--muted);font-size:.875rem}.screen-top h1{font-size:1.6rem}.workspace-top>div{display:flex;gap:8px}.workspace-top button{padding:7px 12px}.today-screen,.class-workspace,.avatar-screen,.journey-screen{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}.game-stage{min-height:0;min-width:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);gap:16px}.focus-map{min-height:0;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#122221;color:#f7faf5;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden;position:relative}:root[data-site=wtk] .focus-map{background:#102d53;border-color:#143c74;--map-accent:#89bdf9}.scene-heading{padding:20px 22px;display:flex;gap:16px;align-items:flex-start}.scene-heading .eyebrow{color:var(--map-accent)}.scene-heading h2{font-size:1.8rem;max-width:440px}.scene-count{margin-left:auto;color:var(--map-accent);font-size:1.25rem;font-weight:700;border-bottom:3px solid var(--map-accent);white-space:nowrap}.scene-art{position:relative;min-height:110px}.scene-terrain{position:absolute;inset:0;width:100%;height:100%}.scene-nodes{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;padding:16px 20px;gap:12px}.map-landmark{position:relative;background:transparent;border:0;border-radius:8px;min-width:0;color:#f7faf5;padding:6px;display:flex;flex-direction:column;align-items:center;gap:6px;align-self:center;isolation:isolate}.map-landmark:nth-child(2){transform:translateY(-28px)}.map-landmark.locked{opacity:.75}.landmark-art{width:100%;height:105px;display:grid;place-items:center;color:#86a69c;filter:drop-shadow(0 6px 8px #0008)}.landmark-art svg{width:80px;height:100%;max-height:105px}.map-landmark strong{font-size:1rem;line-height:1.15;text-shadow:0 2px 3px #000;overflow-wrap:anywhere}.map-landmark small{font-size:.875rem;line-height:1.1}.map-landmark.current .landmark-art,.map-landmark.saved .landmark-art{color:var(--map-accent)}.map-landmark.current strong{color:var(--map-accent)}.map-traveler{position:absolute;width:66px;height:92px;top:28px;left:calc(50% - 62px);pointer-events:none;filter:drop-shadow(0 4px 4px #0008)}.map-traveler svg{height:100%;width:100%}.map-landmark.current .landmark-art:before{content:'';position:absolute;width:86px;height:86px;border:1px solid var(--map-accent);border-radius:50%;z-index:-1;background:#243d32b0}.scene-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px}.scene-controls button{min-width:44px;background:transparent;color:white;border-color:#77949d}.scene-controls span{text-align:center;font-size:.875rem}.scene-controls small{display:block;color:#c6d4d8;font-size:.75rem}.strip-clue{padding:12px 20px;background:#0002;color:#e0f4b6;border-top:1px solid #77949d55;font-size:1rem;max-height:110px;overflow:auto;overscroll-behavior:contain}:root[data-site=wtk] .strip-clue{color:#d4e8ff}.mission-deck{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-height:0;display:flex;flex-direction:column;overflow:hidden}.deck-reading{padding:24px;min-height:0;overflow:auto;overscroll-behavior:contain;flex:1}.deck-reading p{margin-top:14px}.deck-reading .eyebrow{margin-top:0}.deck-reading h2{font-size:1.7rem}.today-deck .deck-reading{display:flex;flex-direction:column;justify-content:center}.today-deck h1{font-size:clamp(2rem,3.8vw,3.5rem)}.today-detail{line-height:1.5}.today-progress{margin-top:24px;color:var(--secondary);font-weight:700}.today-progress span{display:block;margin-bottom:8px}progress{display:block;width:100%;height:7px;appearance:none;border:0;border-radius:0;background:var(--line);color:var(--accent)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}.deck-action{display:flex;flex-direction:column;gap:8px;padding:16px 24px;border-top:1px solid var(--line);background:var(--panel);flex:none}.deck-action .primary{width:100%}.deck-action>span,.deck-action>p{text-align:center}.class-finish,#practice-form{display:flex;flex-direction:column;min-height:0;height:100%;width:100%}.practice-guidance{font-size:1rem}.video-note{color:var(--muted);font-size:.875rem}.practice-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.practice-tools button{font-size:.75rem;line-height:1rem;min-height:24px;padding:3px 8px;border-radius:6px;background:transparent}.counters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.counters>label{min-width:0;display:block}.counters>label:only-child{grid-column:1/-1}.counters label>span{color:var(--muted)}.counters label>div{display:flex;gap:5px;margin:6px 0}.counters input{min-width:0;width:100%;text-align:center}.counters button{min-width:44px;padding:8px}.counters .quick-target{font-size:.875rem}.finish-guardian{height:130px;display:flex;justify-content:center;color:var(--secondary);margin-bottom:20px}.finish-guardian svg{height:100%;width:150px}.class-finish .deck-reading{text-align:center}.class-finish .deck-action{display:grid;grid-template-columns:1fr 1fr}.class-finish .deck-action .primary{grid-column:1/-1}.class-finish .deck-action button:only-child{grid-column:1/-1}.bounded{overflow:auto;min-height:0;min-width:0;overscroll-behavior:contain;scrollbar-gutter:stable}.subtabs{display:flex;gap:8px}.subtabs button{flex:1;background:transparent}.subtabs [aria-pressed=true]{background:var(--panel);color:var(--secondary);border-color:var(--secondary)}.avatar-screen,.journey-screen{grid-template-rows:auto auto minmax(0,1fr)}.shop-layout{display:grid;grid-template-columns:minmax(200px,.9fr) minmax(0,1.4fr);gap:20px;min-height:0}.avatar-studio{min-height:0;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(ellipse at 50% 65%,#39d4b914,transparent 70%),var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:20px;overflow:auto}.avatar-studio>.avatar-svg{height:60%;min-height:120px;max-height:380px;width:100%;object-fit:contain}.avatar-studio h2{font-size:1.25rem}.avatar-studio p{color:var(--muted)}.avatar-svg{display:block;width:100%;height:auto}.character-controls{padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.avatar-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0}.avatar-types legend,.avatar-style legend{margin-bottom:8px;font-weight:700}.avatar-types button{display:flex;flex-direction:column;align-items:center;padding:8px 4px;gap:2px;font-size:.875rem}.avatar-types button span{display:block;height:100px;width:85px;max-width:100%}.avatar-types svg{width:100%;height:100%}.avatar-types [aria-pressed=true],.avatar-style [aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent)}.avatar-style{display:flex;gap:12px;border:0;padding:0;margin:18px 0}.avatar-style button{flex:1}.swatches{display:flex;gap:20px;margin-top:12px;flex-wrap:wrap}.swatches fieldset{border:0;padding:0;display:flex;gap:8px}.swatch{background:var(--swatch);width:44px;height:44px;padding:0;border:2px solid var(--line)}.swatch[aria-pressed=true]{outline:2px solid var(--secondary);outline-offset:2px}.wallet-large{font-size:1.3rem;margin-top:18px}.wallet-large small{margin-left:8px}.character #collections,.gear .character-controls{display:none}.rank-navigation{padding:0 0 16px}.rank-navigation h2{margin-top:12px}.rank-navigation p{margin-top:8px}.rank-navigation small{display:block;margin-top:8px;color:var(--muted)}.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.item-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.item-art{height:140px;width:100%;display:flex;justify-content:center;align-items:center;border:0;background:transparent}.item-art svg{height:100%;width:auto;max-width:100%}.item-card p{margin:8px 0;font-size:1rem}.item-meta{display:flex;justify-content:space-between;gap:8px;margin:12px 0;font-size:.875rem}.item-meta .eyebrow{font-size:.7rem}.rank-badge{color:var(--secondary)}#collections>p{margin-top:14px}.world-summary{display:grid;grid-template-columns:1fr 1fr;min-height:330px;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);overflow:hidden;margin-bottom:14px}.world-picture{position:relative;min-height:180px;background:#142c35;overflow:hidden}.world-picture>.landscape{position:absolute;width:100%;height:100%;inset:0}.world-picture>img{position:absolute;inset:10%;width:80%;height:80%;object-fit:contain}.world-summary>div:last-child{padding:24px;display:flex;flex-direction:column;gap:14px;justify-content:center}.class-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.browse-class{display:flex;gap:12px;text-align:left;align-items:center;min-width:0;padding:18px}.browse-class>span:nth-child(2){flex:1;min-width:0}.browse-class small{display:block;margin-top:6px;color:var(--muted)}.class-number{font-size:1.4rem;color:var(--secondary)}.journey-content>button{display:block;width:100%;text-align:left;margin:12px 0}.browse-world h2{margin-top:8px}.reading-link{display:block;width:100%;text-align:left;margin:12px 0}.reading-link:after{content:' →';color:var(--secondary)}
label{display:block}input,select,textarea{max-width:100%;min-width:0;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:9px;min-height:44px}select,textarea{width:100%}input[type=checkbox],input[type=radio]{width:22px;min-height:22px;accent-color:var(--accent);flex-shrink:0}fieldset{min-width:0;border:1px solid var(--line);border-radius:var(--radius)}.solo-choices{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0;padding:8px 12px}.solo-choices label,.check{display:flex;align-items:center;gap:10px;min-height:44px}.solo-choices legend{font-size:.875rem}.check{margin:8px 0}.check small{display:block;color:var(--muted)}dialog{color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:24px;width:min(720px,calc(100% - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#030b13c9;backdrop-filter:blur(4px)}dialog p{margin:14px 0}dialog>button,.reading-content>button{margin:8px 0;width:100%}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.dialog-head>button{flex-shrink:0}.dialog-head h2{overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.reading-content{overflow-wrap:anywhere}.reading-content .menu-link{display:block;padding:12px 0;min-height:44px}.friendly-guardian{height:160px;display:flex;justify-content:center;color:var(--secondary)}.friendly-guardian svg{height:100%;width:180px}.finale-choices{display:grid;gap:10px}.finale-choices button{text-align:left}.story-seal{border-left:3px solid var(--secondary);padding:16px;background:var(--panel)}.journal-pages{padding-left:24px}.journal-pages li{padding:16px 0;border-bottom:1px solid var(--line)}.plan-mission{padding:18px 0;border-bottom:1px solid var(--line)}.lesson{width:100%;display:flex;align-items:center;text-align:left;gap:12px;margin:10px 0}.lesson strong,.lesson small{display:block}.lesson small{font-weight:normal;color:var(--muted)}.lesson-symbol{color:var(--secondary)}.notice{padding:14px;background:var(--panel);border-left:3px solid var(--secondary);margin:12px 0}.review-grid,.roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.review-grid>section,.quiet-card{padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.review-grid label{margin:12px 0}.review-grid button{margin:6px 5px 6px 0}.review h1{margin-bottom:16px}.review p{margin:12px 0}.review input{width:100%}.admin-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.admin-actions{display:flex;flex-wrap:wrap;gap:10px}.page-heading p{margin:10px 0}.roster-grid{margin:16px 0}.roster-grid p{margin:12px 0}.roster-grid small{display:block}.clock-strip{display:grid;gap:12px}.clock-strip b{display:block}.belt-intro{display:flex;align-items:center;gap:24px;margin:20px 0}.belt-intro>div:first-child{width:180px;flex:none}.belt-intro svg{width:100%}.belt-path{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.belt-step{display:flex;gap:16px;border:1px solid var(--line);padding:20px;background:var(--panel)}.belt-step.current{border-color:var(--accent)}.belt-number{color:var(--secondary)}.belt-step p{margin:8px 0}.pill{font-size:.875rem;color:var(--secondary)}.encounter-banner{display:flex;align-items:center;gap:16px;padding:16px;background:var(--panel)}.encounter-crest{width:110px;flex:none}.encounter-crest svg{width:100%}.encounter-banner img{width:82px;height:82px}.round-lessons{max-height:280px;overflow:auto;margin:16px 0}.round-title{margin-top:18px}.meter{height:6px;background:var(--line);margin-top:10px}.meter span{display:block;background:var(--accent);height:100%}pre{white-space:pre-wrap;overflow-wrap:anywhere}button,select{touch-action:manipulation}
@media(min-width:1200px){#app{padding-left:40px;padding-right:40px}.game-stage{gap:24px}.scene-heading{padding:26px}.deck-reading{padding:32px}.deck-action{padding:20px 32px}.scene-art{min-height:170px}}
@media(max-width:900px){.game-stage{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px}.scene-heading{padding:16px}.scene-heading h2{font-size:1.4rem}.scene-nodes{padding:10px;gap:2px}.landmark-art{height:85px}.landmark-art svg{width:66px}.map-landmark strong{font-size:.875rem}.map-traveler{width:50px;height:72px;top:25px;left:calc(50% - 48px)}.deck-reading{padding:18px}.deck-action{padding:12px 18px}.shop-layout{gap:12px}.avatar-types button span{height:75px;width:60px}.shop-grid{grid-template-columns:1fr}.world-summary{min-height:280px}}
@media(max-width:600px){#app{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));grid-template-rows:auto minmax(0,1fr) 22px auto}.topbar{height:70px;gap:8px}.brand{gap:6px}.brand img{width:40px;height:44px}.wordmark{font-size:1rem}.wordmark small{font-size:.45rem}.header-right{gap:8px}.hud-rank strong{font-size:.875rem;max-width:110px;line-height:1.2}.hud-rank small{font-size:.75rem;max-width:105px}.settings-button{font-size:.75rem;padding:6px;min-width:44px}:root[data-site=wtk] .brand img{width:145px;max-height:40px}main{padding-top:8px}.tabs{padding:4px 0}.tabs button{width:33.33%;min-height:48px;gap:6px;font-size:.875rem}.tabs svg{width:20px;height:20px}.screen-top,.workspace-top{min-height:40px;gap:6px}.workspace-top>span{font-size:.875rem}.workspace-top>div{gap:4px}.workspace-top button{font-size:.875rem;padding:6px 8px}.today-screen,.class-workspace{gap:8px}.game-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(190px,.85fr) minmax(0,1.3fr);gap:8px}.class-workspace .game-stage{grid-template-rows:210px minmax(0,1fr)}.scene-heading{padding:9px 12px;gap:8px}.scene-heading h2{font-size:1.125rem;line-height:1.1;margin-top:4px}.scene-heading .eyebrow{font-size:.625rem}.scene-count{font-size:1rem}.scene-art{min-height:75px}.scene-nodes{padding:0 10px;gap:8px}.landmark-art{height:48px}.landmark-art svg{width:45px;height:48px}.map-landmark{padding:2px;gap:2px}.map-landmark strong{font-size:.75rem;line-height:1.1}.map-landmark small{font-size:.625rem}.map-landmark:nth-child(2){transform:translateY(-7px)}.map-landmark.current .landmark-art:before{width:48px;height:48px}.map-traveler{height:53px;width:38px;top:0;left:calc(50% - 40px)}.scene-controls{padding:1px 8px;gap:4px}.scene-controls button{min-width:44px;min-height:44px;padding:4px}.scene-controls span{font-size:.75rem;line-height:1.2}.scene-controls small{font-size:.625rem;max-width:230px}.strip-clue{padding:7px 12px;font-size:.875rem;line-height:1.3;max-height:50px}.hub-map .scene-art{min-height:85px}.hub-map .landmark-art{height:65px}.hub-map .landmark-art svg{height:65px;width:52px}.hub-map .map-traveler{height:68px;top:5px}.deck-reading{padding:14px 16px}.deck-reading h2{font-size:1.4rem}.deck-reading p{margin-top:8px}.deck-reading .eyebrow{font-size:.625rem}.today-deck .deck-reading{justify-content:flex-start}.today-deck h1{font-size:1.8rem}.today-deck h1 br{display:none}.today-detail{font-size:1rem;line-height:1.35}.today-progress{margin-top:12px;font-size:.875rem}.today-progress span{margin-bottom:6px}.today-deck .deck-reading>.muted{font-size:.875rem}.deck-action{padding:10px 14px;gap:5px}.deck-action .primary{font-size:1rem;min-height:48px}.deck-action .small{font-size:.75rem}.practice-guidance{line-height:1.4}.video-note{font-size:.75rem}.practice-tools button{font-size:.75rem;min-height:24px;padding:3px 8px}.counters{margin-top:10px;gap:8px}.counters label{font-size:.875rem}.counters label>div{gap:3px}.counters input{padding:5px}.counters .quick-target{font-size:.75rem}.finish-guardian{height:72px;margin-bottom:10px}.class-finish h1{font-size:1.8rem}.avatar-screen,.journey-screen{gap:8px}.subtabs{gap:4px}.subtabs button{font-size:.875rem;padding:7px 8px}.shop-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:190px minmax(0,1fr);gap:8px}.avatar-studio{padding:10px;gap:2px;display:grid;grid-template-columns:42% 1fr;grid-template-rows:1fr auto auto}.avatar-studio>.avatar-svg{grid-column:1;grid-row:1/4;height:100%;min-height:0;max-height:165px}.avatar-studio h2{grid-column:2;align-self:end;font-size:1.1rem}.avatar-studio p{grid-column:2;align-self:start;font-size:.875rem}.avatar-studio button{grid-column:2;font-size:.875rem}.character-controls{padding:12px}.avatar-types button span{height:60px;width:50px}.avatar-types{gap:6px}.avatar-types button{padding:4px;font-size:.75rem}.avatar-style{margin:12px 0}.appearance-colors h3{font-size:1rem}.swatches{gap:12px}.swatches fieldset{gap:6px}.swatches legend{font-size:.875rem}.wallet-large{font-size:1rem}.rank-navigation{padding:0 8px 14px}.rank-navigation small{font-size:.75rem}.item-card{padding:12px}.item-art{height:100px}.item-meta{margin:6px 0}.gear .avatar-studio{grid-template-columns:38% 1fr}.world-summary{grid-template-columns:1fr;min-height:0}.world-picture{height:175px}.world-summary>div:last-child{padding:16px;gap:10px}.class-list{grid-template-columns:1fr;gap:8px}.browse-class{padding:14px}.review-grid,.roster-grid,.belt-path,.admin-filters{grid-template-columns:1fr}.review-grid>section,.quiet-card{padding:14px}.belt-intro>div:first-child{width:90px}.belt-intro{gap:12px}.belt-intro h1{font-size:1.5rem}dialog{padding:18px}.dialog-head{gap:10px}.dialog-head h2{font-size:1.3rem}.dialog-head>button{padding:7px 10px}.friendly-guardian{height:100px}.round-lessons{max-height:210px}}
@media(max-width:600px) and (max-height:810px){.class-workspace .game-stage{grid-template-rows:185px minmax(0,1fr)}.class-workspace .scene-heading h2{font-size:1rem}.class-workspace .scene-heading{padding:6px 10px}.class-workspace .strip-clue{max-height:35px;padding:5px 10px}.class-workspace .scene-controls small{display:none}.class-workspace .scene-art{min-height:65px}.class-workspace .landmark-art,.class-workspace .landmark-art svg{height:42px}.class-workspace .scene-nodes{gap:4px}.class-workspace .map-traveler{height:46px;top:2px}.shop-layout{grid-template-rows:155px minmax(0,1fr)}}
/* Short landscape uses parallel scene/deck; the deck scrolls independently of its save button. */
@media(min-width:601px) and (max-height:600px){.topbar{height:58px}.brand img{height:46px;width:46px}:root[data-site=wtk] .brand img{width:190px}.tabs{padding:2px 0}.tabs button{min-height:44px}.game-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.scene-heading{padding:8px 12px}.scene-heading h2{font-size:1.1rem}.scene-heading .eyebrow{font-size:.625rem}.scene-art{min-height:60px}.scene-nodes{padding:0 12px}.landmark-art,.landmark-art svg{height:45px}.landmark-art svg{width:42px}.map-landmark strong{font-size:.75rem}.map-landmark small{font-size:.625rem}.map-landmark:nth-child(2){transform:translateY(-5px)}.map-landmark.current .landmark-art:before{width:45px;height:45px}.map-traveler{height:48px;width:34px;top:0;left:calc(50% - 40px)}.scene-controls{padding:0 8px}.scene-controls small{display:none}.strip-clue{max-height:38px;padding:4px 12px;font-size:.875rem}.deck-reading{padding:12px 16px}.deck-reading h2{font-size:1.3rem}.deck-reading p{margin-top:8px}.today-deck h1{font-size:1.6rem}.today-deck h1 br{display:none}.today-deck .deck-reading{justify-content:flex-start}.deck-action{padding:8px 12px}.deck-action .small{font-size:.75rem}.finish-guardian{height:55px}.class-finish h1{font-size:1.6rem}.shop-layout{grid-template-columns:1fr 1.6fr}.avatar-studio{padding:8px}.avatar-studio>.avatar-svg{min-height:60px;max-height:120px}.avatar-studio h2{font-size:1rem}.avatar-studio p{font-size:.75rem}.avatar-types button span{height:50px;width:45px}.avatar-studio{gap:4px}.screen-top,.workspace-top{min-height:36px}.today-screen,.class-workspace{gap:6px}main{padding-top:6px}.avatar-screen,.journey-screen{gap:6px}}
/* Smallest phones use bounded reading; map, save and navigation remain visible. */
@media(max-width:350px){.wordmark{font-size:.8rem}.wordmark small{font-size:.375rem}.brand img{width:30px}.header-right{gap:3px}.hud-rank strong{font-size:.75rem}.hud-rank small{font-size:.625rem}:root[data-site=wtk] .brand img{width:118px}.settings-button{font-size:.625rem}.topbar{height:62px}.game-stage{grid-template-rows:minmax(170px,1fr) minmax(0,1fr)}.class-workspace .game-stage{grid-template-rows:170px minmax(0,1fr)}.workspace-top>span{font-size:.75rem}.workspace-top button{font-size:.75rem}.scene-heading h2{font-size:1rem}.deck-reading{padding:12px}.deck-action{padding:8px}.deck-action .small{font-size:.625rem}.shop-layout{grid-template-rows:115px minmax(0,1fr)}.avatar-studio>.avatar-svg{max-height:95px}.avatar-studio h2{font-size:1rem}.avatar-studio p{font-size:.75rem}}
/* Reflow mode is selected by measured root text scaling, never by a zoom restriction. */
:root[data-reading=true] #app{height:auto;min-height:100dvh;grid-template-rows:auto auto auto auto}:root[data-reading=true] main{overflow:visible}:root[data-reading=true] .today-screen,:root[data-reading=true] .class-workspace,:root[data-reading=true] .avatar-screen,:root[data-reading=true] .journey-screen{height:auto}:root[data-reading=true] .game-stage,:root[data-reading=true] .shop-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}:root[data-reading=true] .focus-map{min-height:440px;grid-template-rows:auto 200px auto auto}:root[data-reading=true] .deck-reading,:root[data-reading=true] .bounded,:root[data-reading=true] .strip-clue{overflow:visible;max-height:none}:root[data-reading=true] .topbar{height:auto;min-height:80px;flex-wrap:wrap;padding:12px 0}:root[data-reading=true] .header-right{flex-wrap:wrap;max-width:100%}:root[data-reading=true] .counters,:root[data-reading=true] .class-list,:root[data-reading=true] .world-summary,:root[data-reading=true] .review-grid,:root[data-reading=true] .roster-grid,:root[data-reading=true] .belt-path{grid-template-columns:1fr}:root[data-reading=true] .avatar-types{grid-template-columns:repeat(2,minmax(0,1fr))}:root[data-reading=true] .screen-top,:root[data-reading=true] .workspace-top{flex-wrap:wrap}:root[data-reading=true] .subtabs,:root[data-reading=true] .practice-tools{flex-wrap:wrap}:root[data-reading=true] .scene-heading h2{font-size:1.1rem}:root[data-reading=true] .scene-controls small{display:block}:root[data-reading=true] .map-landmark strong{font-size:.75rem}:root[data-reading=true] .map-landmark small{font-size:.625rem}:root[data-reading=true] .scene-nodes{gap:0}:root[data-reading=true] .scene-controls span{overflow-wrap:anywhere}:root[data-reading=true] .avatar-studio{min-height:240px}:root[data-reading=true] .shop-layout.character #collections,:root[data-reading=true] .shop-layout.gear .character-controls{display:none}:root[data-reading=true] .tabs button{min-width:0;padding:8px 3px;flex-wrap:wrap}:root[data-reading=true] .deck-action{position:static}:root[data-reading=true] .swatches{flex-direction:column}:root[data-reading=true] .swatches fieldset{flex-wrap:wrap}:root[data-reading=true] .dialog-head{flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
:root{--scene-sky-top:#102022;--scene-sky-bottom:#20362c}:root[data-site=wtk]{--scene-sky-top:#143c74;--scene-sky-bottom:#102843}.scene-location{display:flex;align-items:center;gap:8px;justify-content:center}.destination-icon{display:block;width:34px;height:34px;flex:none;color:var(--map-accent)}.destination-icon svg{width:100%;height:100%}
@media(max-width:600px){.class-workspace .game-stage{grid-template-rows:230px minmax(0,1fr)}.class-workspace .scene-art{min-height:88px}.destination-icon{width:26px;height:26px}.scene-location{gap:4px}.scene-controls small{max-width:220px}.hub-map .scene-art{min-height:100px}}
@media(max-width:600px) and (max-height:810px){.class-workspace .game-stage{grid-template-rows:205px minmax(0,1fr)}.class-workspace .scene-art{min-height:80px}}
@media(max-width:350px){.class-workspace .game-stage{grid-template-rows:180px minmax(0,1fr)}.class-workspace .scene-art{min-height:70px}.class-workspace .scene-heading .eyebrow{display:none}.class-workspace .strip-clue{font-size:.75rem}.scene-controls small{display:none}}
#app{grid-template-columns:minmax(0,1fr)}.topbar,.header-right,.hud-rank{min-width:0}.today-deck h1 br:after{content:' '}
@media(max-width:350px){.hud-rank{max-width:80px}.hud-rank small{max-width:80px}.today-screen .game-stage{grid-template-rows:230px minmax(0,1fr)}.hub-map .scene-art{min-height:80px}.hub-map .strip-clue{max-height:36px;font-size:.75rem;padding:5px 10px}.hub-map .scene-heading{padding:7px 10px}.hub-map .scene-controls{min-height:44px}.hub-map .landmark-art,.hub-map .landmark-art svg{height:48px}.hub-map .map-traveler{height:52px;top:0}}
@media(max-width:350px){.today-deck .eyebrow{display:none}.today-deck .deck-reading{padding:8px 10px}.today-deck h1{font-size:1.1rem;line-height:1.2}.today-deck .deck-reading>p{font-size:1rem}}
main.has-storage-warning{display:grid;grid-template-rows:auto minmax(0,1fr)}main.has-storage-warning>.notice{margin:0 0 8px}.bounded,.deck-reading{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
@media(max-width:350px){.deck-reading h2{font-size:1.1rem}.deck-reading{padding:8px 10px}.deck-reading .eyebrow{font-size:.6rem}.deck-action .small{font-size:.75rem}.deck-action .primary{font-size:.875rem}}
.rank-navigation>p{font-size:.875rem}.rank-navigation>small{font-size:.75rem;margin-top:4px}

/* Compact local-preview identity, without widening the phone HUD. */
.hud-tools{display:flex;flex-direction:column;align-items:center;min-width:0}.preview-indicator{font-size:.75rem;line-height:1.2;font-weight:700;color:var(--secondary)}

/* WTK's pale decorative weapons need a silhouette against light display cards.
   Keep the original SVG geometry/colors and leave 365 rendering untouched. */
html[data-site="wtk"] [data-weapon-shape] {
  filter: drop-shadow(0 0 1px #34465e) drop-shadow(0 0 .5px #34465e);
}

/* Publication choices share equal weight and stay readable at phone widths. */
.practice-approaches{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:0;padding:4px 0;margin:8px 0}.practice-approaches legend{font-weight:700}.practice-approaches label{padding:10px;border:1px solid var(--line,#aaa);border-radius:10px;font-size:14px;cursor:pointer}.practice-approaches input{accent-color:#38775c}.welcome{max-width:720px;margin:8vh auto;padding:24px;line-height:1.6}.welcome a{text-decoration:underline}.demo-notice{padding:6px 16px;margin:0;font-size:12px}.practice-approaches+p{line-height:1.45}.deck-reading:has(.practice-approaches){overflow:auto}.demo-notice~.today-screen{min-height:0}

.publication-nav{padding:8px 16px;font-size:13px;text-align:center;line-height:1.5}.publication-nav a{text-decoration:underline}

body:has(>.publication-nav){display:flex;flex-direction:column;height:100dvh;overflow:hidden}body:has(>.publication-nav)>#app{height:auto;flex:1;min-height:0;width:100%}main:has(>.demo-notice){display:flex;flex-direction:column}main:has(>.demo-notice)>section{flex:1;min-height:0;height:auto}:root[data-reading=true] body:has(>.publication-nav){height:auto;overflow:auto}

/* Publication refinement: reserve space for the lesson, not duplicate navigation. */
.account-links{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.account-links a{padding:8px 0;text-decoration:underline}
#app:has(.welcome){grid-template-rows:auto minmax(0,1fr)}.welcome{width:100%;max-width:760px;margin:24px auto;padding:24px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.welcome h1{font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.2}.welcome p{margin:16px 0}.welcome .menu-link{display:block;padding:14px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-weight:700}
.practice-approaches label{min-height:44px;font-size:1rem;padding:8px;display:flex;align-items:center;gap:6px}.practice-approaches legend{font-size:.875rem}.demo-notice{padding:2px 0;font-size:.75rem;line-height:18px;color:var(--secondary)}
@media(max-width:600px){
 #app{grid-template-rows:auto minmax(0,1fr) 0 auto}.topbar{height:58px}.today-screen .game-stage,.class-workspace .game-stage{grid-template-rows:170px minmax(270px,1fr)}
 main{overflow:auto}.today-screen,.class-workspace{min-height:100%;height:auto}.game-stage{min-height:0}.deck-reading{min-height:200px;padding:12px}.today-deck .deck-reading{min-height:200px}.deck-reading h2{font-size:1.25rem;line-height:1.2}.deck-action{padding:6px 8px;gap:3px}.deck-action .primary{min-height:44px;padding:8px}.deck-action .small{font-size:.7rem;line-height:1.2}.practice-approaches{margin:6px 0;gap:6px}
 #status{position:fixed;bottom:54px;left:10px;right:10px;z-index:5;background:var(--panel);white-space:normal;line-height:1.3;pointer-events:none}.tabs button{min-height:44px;padding:6px}.welcome{margin:12px auto;padding:18px}
}
@media(max-width:600px) and (max-height:700px){
 .topbar{height:50px}.brand img{max-height:38px}.today-screen,.class-workspace{gap:4px}.workspace-top,.screen-top{min-height:32px}.workspace-top button{min-height:32px;padding:4px 6px}.game-stage{gap:4px}.today-screen .game-stage,.class-workspace .game-stage{grid-template-rows:116px minmax(224px,1fr)}
 .focus-map{grid-template-rows:62px 30px 24px}.focus-map .scene-heading{display:none}.focus-map .scene-art{min-height:0}.focus-map .landmark-art,.focus-map .landmark-art svg{height:34px}.focus-map .map-traveler{height:40px;top:0}.focus-map .scene-controls{padding:0 6px}.focus-map .scene-controls button{min-height:30px;padding:0 8px}.focus-map .scene-controls small{display:none}.focus-map .strip-clue{max-height:24px;padding:3px 8px;font-size:.75rem;overflow:auto}.focus-map .map-landmark small{display:none}
 .deck-reading,.today-deck .deck-reading{min-height:160px;padding:8px 10px}.deck-reading .eyebrow{line-height:1.2}.practice-approaches label{padding:5px}.today-deck h1{font-size:1.3rem}.tabs{padding:2px 0}main{padding-top:4px}.today-deck .deck-action{padding:6px}
}
@media(orientation:landscape) and (max-height:600px){
 #app{grid-template-rows:auto minmax(0,1fr) 0 auto}.topbar{height:48px}main{overflow:auto}.today-screen,.class-workspace{height:auto;min-height:100%}.today-screen .game-stage,.class-workspace .game-stage{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-rows:minmax(240px,1fr)}.deck-reading{min-height:170px}.deck-action{padding:5px 8px}.deck-action .primary{min-height:38px;padding:6px}.deck-action .small{font-size:.7rem}#status{position:fixed;bottom:48px;left:10px;right:10px;background:var(--panel);z-index:5}.tabs button{min-height:40px;padding:4px}.tabs{padding:2px}.today-deck .deck-reading{justify-content:flex-start}
}
:root[data-reading=true] .today-screen .game-stage,:root[data-reading=true] .class-workspace .game-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}:root[data-reading=true] .focus-map .scene-heading{display:flex}:root[data-reading=true] .focus-map{grid-template-rows:auto 200px auto auto}:root[data-reading=true] .focus-map .strip-clue{max-height:none}:root[data-reading=true] .deck-reading{min-height:200px}:root[data-reading=true] .practice-approaches{grid-template-columns:1fr}:root[data-reading=true] #status{position:static}
/* Status is an overlay; the three in-flow rows are header, content and tabs. */
@media(max-width:600px),(orientation:landscape) and (max-height:600px){
 #app{grid-template-rows:auto minmax(0,1fr) auto}
 .today-screen,.class-workspace{height:100%;min-height:0}
 main:has(>.demo-notice)>section{min-height:0}
 .topbar{min-height:54px}.preview-indicator{font-size:.625rem}.hud-rank strong{line-height:1.25}
 #status{bottom:52px;font-size:.75rem;max-height:46px;overflow:auto;box-shadow:0 0 0 1px var(--line)}
}
:root[data-reading=true] #app{grid-template-rows:auto auto auto auto}:root[data-reading=true] .today-screen,:root[data-reading=true] .class-workspace{height:auto}:root[data-reading=true] #status{position:static}
@media(max-width:600px) and (min-height:701px){
 .today-screen .game-stage,.class-workspace .game-stage{grid-template-rows:190px minmax(270px,1fr)}
 .focus-map{grid-template-rows:48px 74px 44px 24px}.focus-map .scene-art{min-height:0}.focus-map .scene-heading{padding:5px 10px}.focus-map .scene-heading h2{font-size:1rem;line-height:1.1}.focus-map .landmark-art,.focus-map .landmark-art svg{height:42px}.focus-map .map-traveler{height:48px;top:0}.focus-map .scene-controls{padding:0 8px}.focus-map .scene-controls small{display:none}.focus-map .strip-clue{max-height:24px;padding:3px 8px;font-size:.75rem}
}
:root[data-reading=true] .focus-map{grid-template-rows:auto 200px auto auto}:root[data-reading=true] .today-screen .game-stage,:root[data-reading=true] .class-workspace .game-stage{grid-template-rows:auto auto}:root[data-reading=true] .focus-map .strip-clue{max-height:none}
/* Keep compact controls touch-sized. */
@media(max-width:600px) and (max-height:700px){.today-screen .game-stage,.class-workspace .game-stage{grid-template-rows:130px minmax(224px,1fr)}.focus-map{grid-template-rows:62px 44px 24px}.focus-map .scene-controls button,.workspace-top button{min-height:44px}.workspace-top{min-height:44px}}
@media(orientation:landscape) and (max-height:600px){.deck-action .primary,.tabs button{min-height:44px}}
:root[data-reading=true] .today-screen .game-stage,:root[data-reading=true] .class-workspace .game-stage{grid-template-rows:auto auto}:root[data-reading=true] .focus-map{grid-template-rows:auto 200px auto auto}
/* Short landscape: tools sit above the trail, leaving the lesson its full column. */
@media(orientation:landscape) and (max-height:600px){
 .today-screen,.class-workspace{position:relative;grid-template-rows:minmax(0,1fr)}
 .today-screen .screen-top,.class-workspace .workspace-top{position:absolute;top:0;left:0;width:calc(40% - 6px);min-height:44px;z-index:1}
 .today-screen .game-stage,.class-workspace .game-stage{height:100%;grid-template-rows:minmax(0,1fr)}
 .focus-map{margin-top:48px;grid-template-rows:auto minmax(50px,1fr) 44px 28px}.focus-map .scene-art{min-height:0}.focus-map .scene-heading{padding:5px 8px}.focus-map .strip-clue{max-height:28px;padding:4px 8px;font-size:.75rem}.scene-controls button{min-height:44px}.workspace-top button,.screen-top button{padding:6px;font-size:.75rem;min-height:44px}.workspace-top>span,.screen-top>span{font-size:.75rem}
}
:root[data-reading=true] .today-screen,:root[data-reading=true] .class-workspace{grid-template-rows:auto auto}:root[data-reading=true] .today-screen .screen-top,:root[data-reading=true] .class-workspace .workspace-top{position:static;width:auto}:root[data-reading=true] .focus-map{margin-top:0;grid-template-rows:auto 200px auto auto}:root[data-reading=true] .today-screen .game-stage,:root[data-reading=true] .class-workspace .game-stage{height:auto;grid-template-rows:auto auto}

/* Class arrival is one shared safety check; confirmation uses the existing save actor. */
.safety-checklist{padding-left:1.15em;margin:14px 0 0;line-height:1.4}.safety-checklist>li+li{margin-top:8px}.safety-checklist ul{padding-left:1.1em;margin:5px 0 0}.safety-checklist ul li{margin-top:3px}.arrival-check .mental-reminder{font-size:.875rem;line-height:1.4;margin-top:12px;color:var(--secondary)}.safety-actions{gap:8px}.safety-actions button{font-size:.875rem;line-height:1.25;white-space:normal;padding:9px 10px;min-height:44px}.safety-actions .primary{font-size:.875rem;min-height:44px}.safety-tips{padding-left:1.2em}.safety-tips li{margin:10px 0}

/* Launch presentation around the unchanged game actor. */
.exercise-videos{margin:14px 0}.exercise-videos>button{display:block;text-align:left;margin:8px 0;border:1px solid #6b946c;color:#c7f449;max-width:100%;white-space:normal}.exercise-videos .video-stage{margin-top:12px}.exercise-videos .video-controls{font-size:.85rem}.practice-library{max-width:1000px;margin:24px auto;padding:0 20px 100px}.practice-library>label{display:block;max-width:480px;margin:24px 0}.practice-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.practice-video-grid article{padding:18px;background:#202722;border:1px solid #536456;border-radius:12px}.practice-video-grid h2{font-size:1.08rem}.practice-video-grid [hidden]{display:none}.practice-video-grid article:has(iframe){grid-column:1/-1}.video-missing{margin:14px 0;color:#bac9bd}.practice-video-grid button{min-height:44px}.deck-reading:has(.exercise-videos){max-height:none;overflow:visible}.mission-deck:has(.exercise-videos){overflow:visible}.class-workspace:has(.exercise-videos) .game-stage{align-items:start}.today-screen h1{font-size:clamp(1.65rem,3vw,2.4rem)}.reading-content h3{font-size:1.15rem}.class-workspace h2{font-size:clamp(1.4rem,3vw,2rem)}
@media(max-width:700px){.practice-video-grid{grid-template-columns:1fr}.header-right .hud-rank{font-size:.85rem}.hud-tools{gap:6px}.settings-button{padding:8px 10px;min-width:44px}.brand img{max-width:46px}.topbar{gap:8px}.wordmark small{display:none}}

.screen-videos{overflow:auto;overscroll-behavior:contain}.screen-videos .practice-library{margin-top:8px}.practice-tools button{min-height:44px;padding:8px 10px;font-size:.85rem} .video-controls button{min-height:44px}
/* Long lessons scroll within the practice screen while the primary navigation stays available. */
main.screen-class:has(.exercise-videos){overflow:auto;overscroll-behavior:contain}.class-workspace:has(.exercise-videos){height:auto;min-height:100%;grid-template-rows:auto auto}.class-workspace:has(.exercise-videos) .game-stage{height:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}.class-workspace:has(.exercise-videos) #practice-form{height:auto}.class-workspace:has(.exercise-videos) .focus-map{min-height:260px}.class-workspace:has(.exercise-videos) .workspace-top{position:static;width:auto}.class-workspace:has(.exercise-videos) .deck-reading{overflow:visible;max-height:none;flex:none}.class-workspace:has(.exercise-videos) .deck-action{position:static}
@media(min-width:1000px){.class-workspace:has(.exercise-videos) .game-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto}}
