:root{color-scheme:dark;--bg:#151c30;--panel:#202a40;--panel2:#28334a;--ink:#f7eee1;--muted:#bac4d8;--line:#42516c;--accent:#ffc18d;--round:22px}
[hidden]{display:none!important}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0,#31304f,transparent 60%),var(--bg);color:var(--ink);font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,select,.file-button{min-height:44px;border:1px solid var(--line);border-radius:12px;background:#2c3750;color:var(--ink);padding:9px 14px;cursor:pointer}button:hover,.file-button:hover{border-color:var(--accent);background:#35415c}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.svg-control:focus-visible{outline:3px solid var(--accent);outline-offset:4px}a{color:var(--accent);text-underline-offset:4px}input[type=text],input:not([type]){width:100%;padding:12px;background:#151e32;border:1px solid var(--line);border-radius:10px;color:var(--ink)}input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.2}h1{font:400 clamp(2rem,4.6vw,3.7rem)/1.12 Georgia,serif;letter-spacing:-.025em;margin-bottom:0;max-width:21ch}h2{font:400 1.55rem/1.2 Georgia,serif}.wrap{width:min(1280px,calc(100% - 40px));margin:auto}.skip{position:absolute;left:-9999px;top:10px;padding:10px;background:var(--panel);z-index:20}.skip:focus{left:20px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:25px;color:var(--accent)}.brand span{font:18px Georgia,serif;color:var(--ink)}.brand b{display:block;font:9px/2 system-ui;letter-spacing:.2em;color:var(--muted)}nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}nav a{font-size:13px}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.masthead{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:30px 0 26px}.world-picker{min-width:210px;max-width:290px}.world-picker select{width:100%;font-size:13px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.world-panel,.decision-panel,.coach,.notebook{border:1px solid var(--line);border-radius:var(--round);background:linear-gradient(125deg,#253047,#1d273d);overflow:hidden}.world-panel{box-shadow:0 20px 60px #080f2540}.status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;font-size:12px;color:var(--muted)}.status-row #clock{color:var(--accent);font-weight:700}.status-row #seed-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:30ch}.status-row button{font-size:12px;min-height:34px;padding:4px 12px}.scene{position:relative;background:#18233b;line-height:0}.scene svg{width:100%;height:auto;display:block}.svg-control{cursor:pointer}.svg-control:hover{filter:brightness(1.25)}.location-tabs{display:flex;gap:8px;padding:14px 18px 0;flex-wrap:wrap}.location-tabs:empty{display:none}.location-tabs button{flex:1;font-size:13px}.location-tabs button[aria-pressed=true]{color:#20283b;background:var(--accent);border-color:var(--accent)}.metrics{display:flex;flex-wrap:wrap;gap:10px;padding:18px 20px 12px}.metric{border:1px solid #45546c;border-radius:13px;flex:1;min-width:100px;padding:9px 13px}.metric span{display:block;color:var(--muted);font-size:11px}.metric strong{font:24px Georgia,serif;color:var(--accent)}.story{margin:0;padding:0 22px 20px;font:18px/1.5 Georgia,serif;color:#e9e0d9}.world-tools{display:flex;gap:8px;flex-wrap:wrap;padding:16px 20px;background:#151f3260;border-top:1px solid #3b4961}.world-tools button{font-size:12px;flex:1;padding:8px;min-width:130px}.panel-heading{padding:22px 22px 0}.panel-heading h2{margin-bottom:10px}.panel-heading p:last-child{font-size:13px;color:var(--muted)}.choices{display:grid;gap:10px;padding:0 16px 18px;max-height:710px;overflow:auto}.choice{display:block;text-align:left;line-height:1.3;border-radius:14px;background:#2c374d;padding:14px;position:relative}.choice strong{display:block;font-size:15px;font-weight:600;color:#faf0e0}.choice small{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:6px}.choice .place{color:var(--accent);font:10px/2 system-ui;text-transform:uppercase;letter-spacing:.12em}.choice.suggested{border-color:var(--accent)}.choice.suggested::after{content:'✦';position:absolute;right:10px;top:8px;color:var(--accent)}.ending{padding:4px 22px 24px}.ending h2{font-size:2rem;color:var(--accent)}.ending .large-score{font:4rem/1 Georgia,serif;color:var(--accent);margin-bottom:8px}.coach{margin-top:24px;padding:24px}.coach-head{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap}.coach-head h2{margin-bottom:10px}.coach-head p:last-child{font-size:13px;color:var(--muted);max-width:60ch}.coach-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.coach-controls label{font-size:11px}.check{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:44px}#coach-step,.primary{background:var(--accent);color:#25283a;font-weight:650;border-color:var(--accent)}.ranked{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.rank-card{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#192339}.rank-card b{display:block;font-size:13px}.rank-card span{font:22px Georgia,serif;color:var(--accent)}.rank-card small{display:block;font-size:11px;color:var(--muted)}details{border-top:1px solid var(--line);padding-top:14px}summary{cursor:pointer;color:var(--accent);min-height:36px}#brain-body{padding-top:12px;color:var(--muted);font-size:14px}.trace{padding-left:24px;line-height:1.8}.trace code{font-size:12px;color:#e9d4ad}.notebook{margin-top:24px;padding:22px}.notebook h2{margin-bottom:12px}#journal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 35px;padding-left:24px;color:var(--muted);font-size:13px;max-height:230px;overflow:auto}#save-note{color:var(--accent);font-size:12px;margin-bottom:0}footer{display:flex;gap:24px;flex-wrap:wrap;padding:28px 0 45px;font-size:12px;color:var(--muted)}dialog{color:var(--ink);background:#202a40;border:1px solid #596983;border-radius:24px;padding:25px;width:min(640px,calc(100% - 28px));max-height:90dvh;overflow:auto;box-shadow:0 25px 90px #060b20b0}dialog::backdrop{background:#07101ccb;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:18px}.dialog-head h2{margin:0}.dialog-head button{font-size:12px}.console-dialog{width:min(900px,calc(100% - 28px))}.mini-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.mini-actions button{font-size:12px}.notebook-actions{display:flex;gap:12px;margin:24px 0 12px;flex-wrap:wrap}.file-button{display:inline-flex;font-size:14px}.file-button input{display:none}#use-seed,#copy-link{margin-top:10px}#settings-note{color:var(--accent)}#extra{padding:0 20px}.manifest{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}.manifest div,.clue{border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--muted);font-size:12px}.manifest b{display:block;color:var(--ink);font-size:12px}.clue{margin:8px 0}.theory{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.theory label{flex:1}.theory button{width:100%}.possibilities{overflow-x:auto}.possibilities table{border-collapse:collapse;width:100%;font-size:12px}.possibilities td,.possibilities th{padding:9px;border-bottom:1px solid var(--line);text-align:left}.bits{display:flex;gap:8px;flex-wrap:wrap;font:14px ui-monospace,monospace;margin:0 0 18px}.bits span{border:1px solid var(--line);padding:9px;border-radius:8px}.legend{font-size:12px;color:var(--muted)}.gallery-hero{padding:65px 0 35px;max-width:800px}.gallery-hero h1{font-size:clamp(3rem,8vw,6rem);max-width:14ch;margin-bottom:24px}.gallery-hero .intro{font:21px/1.6 Georgia,serif;color:var(--muted);max-width:56ch}.pills{display:flex;gap:9px;flex-wrap:wrap}.pills span{font-size:11px;letter-spacing:.04em;border:1px solid var(--line);padding:7px 13px;border-radius:30px}.world-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:35px}.world-door{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#202b40;color:var(--ink);text-decoration:none;transition:transform .2s,border-color .2s}.world-door:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr}.world-door:hover{transform:translateY(-4px);border-color:var(--accent)}.world-door .cover{width:100%;display:block;aspect-ratio:1.8;object-fit:cover;align-self:center}.world-door .copy{padding:25px 28px;display:flex;flex-direction:column;justify-content:center}.world-door h2{font-size:2rem}.world-door p{color:var(--muted)}.world-door strong{color:var(--accent)}.welcome-note{padding:28px;border:1px solid var(--line);border-radius:22px;background:#202a40}.laser-line{stroke-dasharray:9 3;animation:beam 1.7s linear infinite}@keyframes beam{to{stroke-dashoffset:-48}}
@media(max-width:1040px){.game-layout{grid-template-columns:minmax(0,1fr) 285px}.wrap{width:calc(100% - 28px)}.masthead{align-items:start}.world-picker{min-width:170px;max-width:230px}}
@media(max-width:760px){.topbar{padding:18px 0;align-items:start}.brand{font-size:21px}.brand span{font-size:16px}nav{gap:7px;justify-content:end;max-width:195px}nav button{font-size:11px;padding:7px 9px;min-height:38px}nav a{font-size:11px}.masthead{display:block;padding:24px 0}.world-picker{margin-top:20px;max-width:none}.game-layout{grid-template-columns:1fr;gap:16px}.choices{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.choice{padding:13px 12px}.choice strong{font-size:14px}.choice small{font-size:11px}.metrics{padding:14px;gap:8px}.metric{min-width:75px;padding:8px 10px}.metric strong{font-size:21px}.story{font-size:17px;padding:0 16px 15px}.world-tools{padding:12px}.world-tools button{min-width:92px;font-size:11px}.coach{padding:19px}.ranked{grid-template-columns:1fr}.rank-card{display:flex;align-items:center;justify-content:space-between;gap:15px}.rank-card b{flex:1}.rank-card small{font-size:10px}#journal{grid-template-columns:1fr}.coach-controls{gap:10px}.coach-controls label:first-child{width:100%}.coach-controls select{width:100%}.manifest{grid-template-columns:repeat(2,minmax(0,1fr))}.world-grid{grid-template-columns:1fr;gap:18px}.world-door:first-child{display:flex;grid-column:auto}.gallery-hero{padding-top:38px}.world-door .copy{padding:22px}.console-dialog{padding:16px}dialog{padding:20px}.location-tabs{padding:10px 12px 0}.location-tabs button{padding:8px;font-size:12px}.status-row{padding:9px 14px}.status-row #seed-label{max-width:19ch}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:699px){.laser-caption{display:none}}

/* Fun mode: the "Try this" mark, the nudge, the banner */
.choice .try{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:#ffd166;color:#1b1820;font:700 11px/1.5 system-ui,sans-serif;font-style:normal;vertical-align:middle}
.fun-nudge{position:fixed;z-index:61;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;border-radius:12px;background:#ffd166;color:#1b1820;font:700 15px/1.3 system-ui,sans-serif;box-shadow:0 6px 20px #0007;pointer-events:none;animation:fun-bob 1s ease-in-out infinite}
.fun-nudge[hidden]{display:none}.fun-target{outline:4px solid #ffd166!important;outline-offset:4px!important}
.fun-banner{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:60;display:flex;gap:10px;align-items:center;max-width:min(680px,94vw);padding:10px 14px;border-radius:12px;background:#1b2a24;color:#fff;border:1px solid #6fb08a;font:15px/1.45 system-ui,sans-serif;box-shadow:0 6px 24px #0006;transition:opacity .9s}
.fun-banner.fade{opacity:0}.fun-banner button{border:0;background:transparent;color:#fff;font-size:20px;line-height:1;cursor:pointer;min-width:32px;min-height:32px}
@keyframes fun-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.fun-nudge{animation:none}}

@media (max-width:640px){.fun-banner{top:auto;bottom:14px;font-size:14px}}

/* The friendlier stage: a goal line, pills that light when done, choices as cards that say what they do, and a beat */
.goal{margin:0 0 8px;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);font-size:15px;line-height:1.5}
.metric.done{border-color:var(--accent)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent);animation:metric-pop .5s ease-out}
@keyframes metric-pop{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:12px 14px;min-height:64px}
.choice strong{font-size:16px}
.choice .effects{display:flex;flex-wrap:wrap;gap:6px}
.choice .effect{padding:3px 8px;border-radius:999px;border:1px solid currentColor;font-size:12px;opacity:.85}
.choice .effect.good{background:#2f6b4a;border-color:#7ee787;color:#eafff0;opacity:1}
.choice .effect.bad{background:#6b2f2f;border-color:#ff9a9a;color:#fff0f0;opacity:1}
.choice .effect.score{font-weight:700}
.choice.suggested{border-color:#ffd166!important;box-shadow:0 0 0 2px #ffd16655}
.choice .try{position:absolute;top:8px;right:10px;margin:0}
.beat{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:62;max-width:min(680px,94vw);padding:12px 18px;border-radius:14px;background:#1b1d2b;color:#fff;border:1px solid #ffffff40;font:600 15px/1.4 system-ui,sans-serif;box-shadow:0 8px 30px #0008;animation:beat-in .35s ease-out}
.beat.good{background:#1f3b2c;border-color:#7ee787}
.beat[hidden]{display:none}
@keyframes beat-in{0%{transform:translate(-50%,16px);opacity:0}100%{transform:translate(-50%,0);opacity:1}}
.ending .secondary{margin-left:8px;background:transparent;border:1px solid currentColor;color:inherit;padding:10px 14px;border-radius:10px}
@media (max-width:640px){.choices{grid-template-columns:1fr}.beat{bottom:74px}}
@media (prefers-reduced-motion:reduce){.beat,.metric.done{animation:none}}

.duo-turn{margin:0 0 8px;padding:8px 12px;border-radius:12px;background:#ffc94d22;color:#ffc94d;font-weight:600}
.duo-line{color:#7ee787;font-weight:600}
.duo-toggle{display:block;margin:10px 0;color:#b8b3c4}
