@charset "UTF-8";
:root{--paper:#f4efe3;--cream:#fffaf0;--ink:#263335;--muted:#697575;--line:#d8d2c3;--jay:#e48652;--jay-soft:#f8dfca;--kay:#bd5965;--kay-soft:#f3d9dd;--elle:#377d78;--elle-soft:#d7e8e3;--wood:#9d6944;--wood-dark:#70462e;--leaf:#758b58;--gold:#d4aa49;--shadow:0 18px 55px rgba(55,49,41,.13);font-family:"Avenir Next","Trebuchet MS",Segoe UI,sans-serif;color:var(--ink);background:var(--paper);font-size:16px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 12%,#fffaf0 0 12%,transparent 33%),var(--paper);min-height:100vh}button,input{font:inherit}button{color:inherit}.skip-link{position:fixed;z-index:100;left:12px;top:-80px;background:#fff;padding:12px 18px;border-radius:8px}.skip-link:focus{top:12px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #216b93;outline-offset:3px}.game-bar{height:80px;padding:0 clamp(16px,3vw,44px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);background:rgba(255,250,240,.92);backdrop-filter:blur(12px)}.wordmark{display:flex;align-items:center;gap:11px;border:0;background:none;text-align:left;cursor:pointer;padding:0}.wordmark .mark{display:grid;place-items:center;width:42px;height:42px;background:var(--ink);color:#fff;border-radius:50% 50% 44% 44%;font-size:1.5rem}.wordmark strong,.wordmark small{display:block}.wordmark strong{font-family:Georgia,serif;font-size:1.05rem}.wordmark small{font-size:.68rem;color:var(--muted);letter-spacing:.03em}.project-title{text-align:center}.project-title span,.section-label{display:block;color:var(--elle);font-size:.67rem;font-weight:900;letter-spacing:.14em}.project-title strong{font-family:Georgia,serif;font-size:1.15rem}.game-actions{justify-self:end;display:flex;align-items:center;gap:6px}.text-button,.icon-button{border:0;background:transparent;cursor:pointer;font-size:.77rem;font-weight:800}.text-button{padding:11px}.icon-button{width:42px;height:42px;border-radius:50%;font-size:1.3rem}.icon-button:hover,.text-button:hover{background:#ebe5d8}.icon-button:disabled{opacity:.3}.studio-shell{max-width:1600px;margin:auto;padding:0 clamp(14px,2.5vw,38px) 40px}.process-rail{border-bottom:1px solid var(--line);overflow:auto}.process-rail ol{min-width:720px;list-style:none;margin:0;padding:12px 0;display:flex;justify-content:center;gap:0}.process-rail li{display:flex;align-items:center;color:#aaa69d;font-size:.67rem;font-weight:900;letter-spacing:.07em}.process-rail li:not(:last-child)::after{content:"";width:clamp(24px,4vw,68px);height:1px;background:#d7d1c5;margin:0 10px}.process-rail span{display:grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;margin-right:6px;font-size:.6rem}.process-rail .is-done{color:var(--elle)}.process-rail .is-done span{background:var(--elle);color:#fff}.process-rail .is-current{color:var(--ink)}.process-rail .is-current span{background:var(--gold);border-color:var(--gold)}.brief-strip{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0}.brief-strip h1{margin:6px 0 0;font-family:Georgia,serif;font-weight:500;font-size:clamp(1.35rem,2.4vw,2.15rem)}.brief-button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:11px 16px;font-weight:800;font-size:.75rem;white-space:nowrap;cursor:pointer}.brief-button:hover{background:#fffaf0}.studio-grid{display:grid;grid-template-columns:88px minmax(520px,1fr) 298px;gap:14px;align-items:stretch}.tool-dock,.thinking-panel,.model-stage{background:rgba(255,250,240,.92);border:1px solid var(--line);border-radius:5px}.tool-dock{padding:18px 9px}.tool-dock>.section-label{text-align:center}.tool-list{display:grid;gap:7px;margin-top:15px}.tool{position:relative;min-height:68px;border:1px solid transparent;border-radius:4px;background:transparent;display:grid;place-items:center;align-content:center;gap:2px;cursor:pointer}.tool span{font-family:Georgia,serif;font-size:1.45rem}.tool b{font-size:.66rem}.tool:hover{background:#f1eadc}.tool.is-active{border-color:var(--elle);background:var(--elle-soft);color:#205d59}.tool small{position:absolute;right:2px;top:2px;background:var(--gold);font-size:.47rem;padding:2px 3px}.tool.locked-tool:not(.is-unlocked){opacity:.45}.model-stage{min-width:0;display:grid;grid-template-rows:auto minmax(420px,1fr) auto;overflow:hidden}.stage-toolbar{height:52px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px}.mode-switch{display:flex;background:#eae4d8;padding:3px;border-radius:4px}.mode-switch button{border:0;background:transparent;border-radius:3px;padding:7px 13px;font-size:.69rem;font-weight:900;cursor:pointer}.mode-switch button.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #0001}.camera-tools{display:flex;align-items:center;gap:4px}.camera-tools button{border:0;background:transparent;width:34px;height:34px;cursor:pointer;font-size:1.15rem}.camera-tools span{font-size:.62rem;color:var(--muted);min-width:60px;text-align:center}.viewport{position:relative;min-height:420px;overflow:hidden;background:linear-gradient(#dcebe7 0 64%,#a9b88b 64% 67%,#7f9561 67%);isolation:isolate}.viewport::before{content:"";position:absolute;inset:64% -5% 0;background:repeating-linear-gradient(125deg,transparent 0 45px,rgba(39,71,45,.09) 46px 47px),linear-gradient(14deg,#748a59,#a7b37f);clip-path:polygon(0 10%,29% 3%,56% 15%,76% 5%,100% 12%,100% 100%,0 100%)}#model{position:absolute;inset:0;width:100%;height:100%;z-index:2;touch-action:none;user-select:none}.sky-copy{position:absolute;z-index:1;left:18px;top:15px;color:#526e68;font-size:.56rem;letter-spacing:.1em}.sky-copy b{display:block;margin-top:2px;color:#78908a}.stage-hint{position:absolute;z-index:5;left:50%;bottom:13px;transform:translateX(-50%);margin:0;padding:7px 13px;background:rgba(255,250,240,.88);border-radius:99px;font-size:.65rem;box-shadow:0 3px 15px #30443b22;white-space:nowrap}.model-shadow{fill:rgba(36,47,34,.18)}.tree-trunk{fill:#775139}.tree-branch{stroke:#775139;stroke-width:34;stroke-linecap:round}.tree-ring{fill:none;stroke:#557442;stroke-width:22;stroke-linecap:round;opacity:.9}.floor-top{fill:#c79564;stroke:#5f432e;stroke-width:2}.floor-side{fill:#855638;stroke:#5f432e;stroke-width:2}.wall-front{fill:#e7ba7e;stroke:#694a31;stroke-width:2}.wall-side{fill:#c88f57;stroke:#694a31;stroke-width:2}.roof-left{fill:#c95d5d;stroke:#6d3d3b;stroke-width:2}.roof-right{fill:#9e444d;stroke:#6d3d3b;stroke-width:2}.roof-edge{stroke:#f0c8ab;stroke-width:8;stroke-linecap:round}.window-frame{fill:#f5e9c8;stroke:#4d635e;stroke-width:5}.window-glass{fill:#a8d8df}.door{fill:#7f5034;stroke:#553624;stroke-width:4}.support{stroke:#6c4932;stroke-width:15;stroke-linecap:round}.brace{stroke:#b27b50;stroke-width:9;stroke-linecap:round}.ladder-rail{stroke:#6d4930;stroke-width:10;stroke-linecap:round}.ladder-rung{stroke:#d0a46b;stroke-width:7;stroke-linecap:round}.furniture{fill:#e7c85f;stroke:#695b35;stroke-width:2}.model-handle{fill:#fffaf0;stroke:var(--elle);stroke-width:5;cursor:grab;filter:drop-shadow(0 2px 3px #2333)}.model-handle:active{cursor:grabbing}.handle-line{stroke:var(--elle);stroke-width:3;stroke-dasharray:7 6}.view-overlay{pointer-events:none}.jay-overlay{stroke:var(--jay);fill:none;stroke-width:9;stroke-dasharray:10 8;stroke-linecap:round}.kay-overlay{stroke:var(--kay);fill:none;stroke-width:6;stroke-linecap:round}.elle-overlay{stroke:var(--elle);fill:none;stroke-width:2;stroke-dasharray:5 5}.overlay-label{font-size:15px;font-weight:900;paint-order:stroke;stroke:#fffaf0;stroke-width:5;stroke-linejoin:round}.xray .wall-front,.xray .wall-side,.xray .roof-left,.xray .roof-right{opacity:.18}.xray .floor-top{opacity:.45}.xray .view-overlay{opacity:1}.inspector{min-height:72px;padding:10px 14px;display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);background:#fffaf0}.control-group{min-width:155px;flex:1}.control-group label{display:flex;justify-content:space-between;gap:10px;font-size:.65rem;font-weight:900;margin-bottom:7px}.control-group output{color:var(--elle)}input[type=range]{width:100%;accent-color:var(--elle)}.choice-row{display:flex;gap:6px}.choice-row button{flex:1;border:1px solid var(--line);background:#fff;padding:8px;border-radius:3px;font-size:.67rem;font-weight:800;cursor:pointer}.choice-row button.is-active{background:var(--elle);border-color:var(--elle);color:#fff}.inspector-note{flex:1;margin:0;color:var(--muted);font-size:.7rem;line-height:1.35}.thinking-panel{padding:18px 17px;display:flex;flex-direction:column}.character-switch{display:grid;gap:6px;margin-top:13px}.character{--who:var(--jay);display:grid;grid-template-columns:38px 1fr 8px;gap:9px;align-items:center;width:100%;border:1px solid transparent;background:transparent;border-radius:4px;padding:7px;text-align:left;cursor:pointer}.character.kay{--who:var(--kay)}.character.elle{--who:var(--elle)}.character:hover{background:#f1eadc}.character.is-active{background:color-mix(in srgb,var(--who) 14%,white);border-color:color-mix(in srgb,var(--who) 45%,white)}.character .avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--who);color:#fff;font-family:Georgia,serif;font-weight:bold}.character b,.character small{display:block}.character b{font-family:Georgia,serif;font-size:.9rem}.character small{font-size:.58rem;color:var(--muted);margin-top:1px}.character i{width:7px;height:7px;border-radius:50%;border:1px solid var(--who)}.character.is-tested i{background:var(--who)}.thought{margin:15px -17px 0;padding:17px;background:var(--jay-soft);border-block:1px solid #ebd5c0}.thought-kicker{font-size:.57rem;font-weight:900;letter-spacing:.12em;color:#9b532d}.thought blockquote{margin:8px 0 0;font-family:Georgia,serif;font-size:1rem;line-height:1.35}.concerns{padding-top:15px;flex:1}.concerns-head{display:flex;justify-content:space-between;font-size:.55rem;letter-spacing:.1em;color:var(--muted)}.concerns-head b{letter-spacing:0;color:var(--ink)}.concerns ul{list-style:none;padding:0;margin:8px 0}.concerns li{display:grid;grid-template-columns:17px 1fr;gap:7px;padding:7px 0;border-top:1px solid #e8e1d3;font-size:.65rem;line-height:1.3}.concerns li::before{content:"?";display:grid;place-items:center;width:15px;height:15px;border:1px solid currentColor;border-radius:50%;font-size:.52rem}.concerns li.is-met{color:var(--elle)}.concerns li.is-met::before{content:"✓"}.test-button{width:100%;min-height:44px;border:0;border-radius:3px;background:var(--jay);color:#fff;font-weight:900;cursor:pointer;font-size:.75rem}.test-button:hover{filter:brightness(.94)}.test-button span{margin-right:7px}.walk-view{position:absolute;z-index:4;inset:0;background:linear-gradient(115deg,#d7b17e 0 17%,#edc994 17% 82%,#c7925e 82%);perspective:700px;overflow:hidden}.walk-room{position:absolute;inset:0}.walk-ceiling{position:absolute;top:0;left:0;width:100%;height:23%;background:#a96b4d;clip-path:polygon(0 0,100% 0,82% 100%,17% 100%)}.walk-rug{position:absolute;bottom:-12%;left:23%;width:55%;height:45%;background:#d96861;transform:rotateX(67deg);border-radius:50%;border:8px solid #f2b76a}.walk-books{position:absolute;right:8%;bottom:12%;font-size:6rem;color:#72503a}.walk-person{position:absolute;left:10%;bottom:8%;font-size:4rem;color:#293638}.walk-person span{display:block;width:35px;height:120px;background:#293638;margin:-10px auto}.walk-window{position:absolute;z-index:2;left:39%;top:34%;width:23%;height:29%;display:grid;place-items:center;background:#a8d8df;border:13px solid #f2dfb4;box-shadow:0 0 0 4px #52655d;font-size:3rem}.walk-window small{position:absolute;top:110%;width:180px;text-align:center;padding:5px;background:#fffaf0;border-radius:10px;font-size:.6rem}.walk-controls{position:absolute;z-index:3;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px}.walk-controls button{border:0;background:#fffaf0;padding:9px 13px;border-radius:99px;font-weight:800;box-shadow:0 3px 10px #0002}.test-weather{position:absolute;z-index:6;inset:0;pointer-events:none;background:repeating-linear-gradient(105deg,transparent 0 22px,#b9d4e4 23px 25px,transparent 26px 42px);animation:rain .65s linear infinite;opacity:.65}.test-weather:empty{display:none}@keyframes rain{to{background-position:-42px 95px}}.sheet,.debate-sheet,.town-sheet,.complete-sheet{width:min(660px,calc(100% - 24px));max-height:90vh;border:0;border-radius:6px;background:#fffaf0;color:var(--ink);padding:0;box-shadow:0 30px 100px #25373555}.debate-sheet,.town-sheet{width:min(980px,calc(100% - 24px))}dialog::backdrop{background:#263b3d99;backdrop-filter:blur(5px)}dialog form{position:relative;padding:clamp(25px,4vw,48px)}dialog h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(1.8rem,4vw,3rem);margin:9px 0 12px}.dialog-close{position:absolute;right:18px;top:16px;width:37px;height:37px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:1.35rem;cursor:pointer}.primary{border:0;background:var(--ink);color:#fff;padding:12px 18px;border-radius:3px;font-weight:900;cursor:pointer}.needs-list{list-style:none;padding:0;margin:25px 0}.needs-list li{display:flex;gap:14px;align-items:center;padding:11px 0;border-top:1px solid var(--line);font-family:Georgia,serif;font-size:1.05rem}.needs-list li span{color:var(--elle);font:700 .62rem inherit;letter-spacing:.1em}.help-list{padding:0;list-style:none;margin:25px 0}.help-list li{display:grid;grid-template-columns:80px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:.85rem}.help-list b{color:var(--elle)}.debate-intro{color:var(--muted)}.debate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0}.debate-card{--who:var(--jay);border-top:4px solid var(--who);background:#f5eadc;padding:18px;min-height:230px}.debate-card.kay{--who:var(--kay);background:#f4e4e5}.debate-card.elle{--who:var(--elle);background:#e2eee9}.debate-card header{display:flex;align-items:center;gap:8px}.debate-card .avatar{display:grid;place-items:center;width:34px;height:34px;background:var(--who);color:#fff;border-radius:50%;font-family:Georgia,serif}.debate-card h3{font-family:Georgia,serif;margin:0}.debate-card blockquote{font-family:Georgia,serif;margin:18px 0 12px;line-height:1.45}.debate-card small{color:var(--muted)}.debate-action{border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;align-items:center;gap:20px}.debate-action p{margin:0;font-size:.78rem}.town-heading{display:flex;justify-content:space-between;gap:20px}.town-heading strong{color:var(--elle)}.town-map{min-height:330px;margin:20px 0;background:linear-gradient(145deg,#9fbf9a,#6e9c86);position:relative;overflow:hidden;border:9px solid #e1d6bd}.town-map::before{content:"";position:absolute;inset:-20%;background:repeating-linear-gradient(30deg,transparent 0 65px,#e8d5a1 67px 78px,transparent 80px 145px),repeating-linear-gradient(115deg,transparent 0 110px,#88bfd0 112px 130px,transparent 132px 260px);opacity:.9}.town-plot{position:absolute;z-index:2;border:0;background:#fffaf0;border-radius:50%;width:70px;height:70px;display:grid;place-items:center;box-shadow:0 5px 15px #274f4533;font-size:1.8rem}.town-plot span{position:absolute;top:74px;background:#fffaf0;padding:4px 8px;border-radius:3px;font-size:.57rem;font-weight:900;white-space:nowrap}.town-plot.treehouse{left:15%;top:14%;background:#f2c980}.town-plot.library{left:43%;top:49%}.town-plot.market{right:14%;top:22%}.town-plot.school{right:27%;bottom:3%}.town-plot.is-locked{filter:grayscale(1);opacity:.68}.town-note{font-size:.76rem;color:var(--muted);max-width:700px}.complete-sheet{text-align:center;width:min(580px,calc(100% - 24px))}.complete-mark{font-size:4rem;color:var(--elle)}.complete-sheet p{color:var(--muted);line-height:1.55}.unlocks{margin:25px 0;background:var(--elle-soft);padding:20px}.unlocks span,.unlocks strong{display:block}.unlocks span{font-size:.58rem;font-weight:900;letter-spacing:.12em}.unlocks strong{font-family:Georgia,serif;font-size:2rem;margin:6px}.unlocks p{margin:0}.complete-actions{display:flex;justify-content:center;gap:7px}.complete-actions button{padding:12px 18px;border:1px solid var(--line);background:transparent;font-weight:800}.complete-actions .primary{background:var(--ink)}.game-footer{max-width:1500px;margin:auto;padding:13px clamp(16px,3vw,44px) 25px;display:flex;justify-content:space-between;color:var(--muted);font-size:.68rem}.game-footer button{border:0;background:none;text-decoration:underline;cursor:pointer;color:var(--muted)}.celebrate{animation:celebrate .75s ease both}@keyframes celebrate{50%{transform:scale(1.03)}100%{transform:none}}
@media(max-width:1050px){.studio-grid{grid-template-columns:78px minmax(450px,1fr)}.thinking-panel{grid-column:1/-1;display:grid;grid-template-columns:170px 1fr 1fr 160px;gap:14px;align-items:center}.thinking-panel>.section-label{display:none}.character-switch{margin:0}.thought{margin:0;padding:12px;border:1px solid var(--line)}.concerns{padding:0}.test-button{align-self:center}.concerns li{padding:5px 0}.studio-grid{align-items:start}}
@media(max-width:720px){.game-bar{height:auto;min-height:67px;grid-template-columns:1fr auto;padding:8px 12px}.project-title{display:none}.wordmark small{display:none}.game-actions .text-button:first-of-type{display:none}.studio-shell{padding-inline:9px}.brief-strip{padding-inline:7px}.brief-strip h1{font-size:1.25rem}.brief-button{font-size:0}.brief-button::before{content:"Brief";font-size:.75rem}.studio-grid{display:flex;flex-direction:column}.tool-dock{width:100%;padding:6px;overflow:auto}.tool-dock>.section-label{display:none}.tool-list{display:flex;min-width:520px;margin:0}.tool{min-width:76px;min-height:54px}.model-stage{width:100%;grid-template-rows:auto 390px auto}.viewport{min-height:390px}.thinking-panel{width:100%;display:flex}.character-switch{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.character{grid-template-columns:32px 1fr;padding:5px}.character i{display:none}.character small{display:none}.thought{width:100%;min-height:94px}.concerns{width:100%}.test-button{width:100%}.inspector{flex-wrap:wrap;gap:9px}.control-group{min-width:130px}.inspector-note{flex-basis:100%}.process-rail ol{justify-content:flex-start}.debate-grid{grid-template-columns:1fr}.debate-card{min-height:0}.debate-action{align-items:flex-start;flex-direction:column}.town-map{min-height:300px}.town-plot{transform:scale(.8)}.stage-hint{max-width:86%;overflow:hidden;text-overflow:ellipsis}.game-footer{padding-bottom:90px}}
@media(max-width:430px){.wordmark strong{font-size:.9rem}.game-actions .text-button:last-child{display:none}.brief-strip h1{font-size:1.05rem}.model-stage{grid-template-rows:auto 340px auto}.viewport{min-height:340px}.mode-switch button{padding:7px 9px}.camera-tools span{display:none}.town-plot{transform:scale(.7)}.complete-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Second-pass gameplay surfaces */
.model-stage{grid-template-rows:auto minmax(420px,1fr) auto auto}
.camera-tools .whatif-trigger{width:auto;min-width:65px;margin-right:6px;padding:0 9px;border:1px solid var(--line);border-radius:999px;font-size:.62rem;font-weight:900;background:#fffaf0}
.camera-tools .whatif-trigger:hover{background:var(--elle-soft)}
.consequence-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:#f0eadf}
.consequence{min-width:0;padding:9px 12px;border-right:1px solid var(--line)}.consequence:last-child{border-right:0}
.consequence span,.consequence b,.consequence small{display:block}.consequence span{font-size:.52rem;font-weight:900;letter-spacing:.1em;color:var(--muted)}
.consequence b{margin-top:2px;font-family:Georgia,serif;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.consequence small{margin-top:1px;color:var(--elle);font-size:.55rem}
.scenario-overlay{position:absolute;z-index:8;left:50%;top:18px;transform:translateX(-50%);width:min(430px,calc(100% - 28px));padding:14px 16px;background:#fffaf0;border-left:5px solid var(--gold);box-shadow:0 10px 35px #29383244}
.scenario-overlay strong,.scenario-overlay span{display:block}.scenario-overlay strong{font-family:Georgia,serif;font-size:1.05rem}.scenario-overlay span{margin-top:4px;font-size:.68rem;color:var(--muted);line-height:1.35}
.scenario-crowd{position:absolute;z-index:7;inset:auto 23% 25% 23%;display:flex;align-items:end;justify-content:space-around;pointer-events:none}
.scenario-person{display:block;width:22px;height:55px;border-radius:13px 13px 4px 4px;background:var(--jay);box-shadow:0 -18px 0 -3px var(--ink)}
.scenario-person:nth-child(2){background:var(--kay);height:50px}.scenario-person:nth-child(3){background:var(--elle);height:58px}.scenario-person:nth-child(4){background:var(--gold);height:53px}
.whatif-sheet{width:min(760px,calc(100% - 24px));max-height:90vh;border:0;border-radius:6px;background:#fffaf0;color:var(--ink);padding:0;box-shadow:0 30px 100px #25373555}
.scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:24px}.scenario-grid button{display:grid;grid-template-columns:44px 1fr;column-gap:11px;text-align:left;padding:15px;border:1px solid var(--line);background:#f7f1e6;cursor:pointer}.scenario-grid button:hover{border-color:var(--elle);background:var(--elle-soft)}
.scenario-grid span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff;color:var(--elle);font-family:Georgia,serif;font-weight:900}.scenario-grid b{align-self:end}.scenario-grid small{color:var(--muted);font-size:.67rem;margin-top:3px}
.debate-card{display:flex;flex-direction:column}.debate-card blockquote{flex:1}.debate-focus{margin-top:14px;border:1px solid color-mix(in srgb,var(--who) 45%,white);background:rgba(255,255,255,.55);padding:9px;font-size:.66rem;font-weight:900;cursor:pointer}.debate-focus:hover{background:#fff}
.chapter-roadmap{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:17px 0}.chapter-chip{position:relative;min-height:72px;padding:9px;border:1px solid var(--line);background:#f5efe4;text-align:left}.chapter-chip span,.chapter-chip b,.chapter-chip small{display:block}.chapter-chip span{font-size:.5rem;color:var(--elle);font-weight:900;letter-spacing:.1em}.chapter-chip b{margin-top:5px;font:500 .76rem Georgia,serif}.chapter-chip small{margin-top:3px;color:var(--muted);font-size:.53rem;line-height:1.2}.chapter-chip.is-current{background:#f1ca85;border-color:#ba8d3f}.chapter-chip.is-built::after{content:"BUILT";position:absolute;right:5px;top:5px;color:var(--elle);font-size:.45rem;font-weight:900}
@media(max-width:1050px){.model-stage{grid-template-rows:auto minmax(420px,1fr) auto auto}.chapter-roadmap{grid-template-columns:repeat(4,1fr)}}
@media(max-width:720px){.model-stage{grid-template-rows:auto 390px auto auto}.consequence-strip{grid-template-columns:1fr 1fr}.consequence:nth-child(2){border-right:0}.consequence:nth-child(-n+2){border-bottom:1px solid var(--line)}.scenario-grid{grid-template-columns:1fr}.chapter-roadmap{grid-template-columns:repeat(2,1fr)}.camera-tools .whatif-trigger{min-width:58px;padding-inline:7px}.scenario-overlay{top:9px}}
@media(max-width:430px){.model-stage{grid-template-rows:auto 340px auto auto}.consequence{padding:7px 9px}.chapter-chip{min-height:66px}}

/* Open chapter navigation and device-specific layouts */
html{min-height:100%;background:var(--paper)}
body{min-height:100svh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.game-bar{padding-left:max(clamp(16px,3vw,44px),env(safe-area-inset-left));padding-right:max(clamp(16px,3vw,44px),env(safe-area-inset-right))}
.game-footer{padding-bottom:max(25px,env(safe-area-inset-bottom))}
.sheet,.debate-sheet,.town-sheet,.complete-sheet,.whatif-sheet{max-height:min(90vh,90dvh);overflow:auto;overscroll-behavior:contain}
.chapter-chip{font:inherit;color:inherit;cursor:pointer;border-radius:3px;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.chapter-chip:hover{border-color:var(--elle);background:var(--elle-soft);transform:translateY(-1px)}
.chapter-chip:focus-visible{position:relative;z-index:2}
.chapter-chip.is-current{box-shadow:inset 0 0 0 2px #ba8d3f}
.town-plot{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.town-plot:hover{transform:translateY(-2px);box-shadow:0 8px 20px #274f4555}
.town-note strong{color:var(--elle)}

@media(pointer:coarse){
  button{min-height:44px}
  .tool{min-height:58px}
  input[type=range]{min-height:32px}
}

/* iPhone-class portrait screens, including iPhone 14 Pro (393 × 852). */
@media(max-width:430px) and (orientation:portrait){
  .game-bar{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
  .studio-shell{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}
  .brief-strip{min-height:72px;gap:8px}
  .model-stage{grid-template-rows:auto clamp(320px,44svh,380px) auto auto}
  .viewport{min-height:320px}
  .stage-toolbar{padding-inline:8px}
  .tool-list{min-width:500px}
  .tool{min-width:72px}
  dialog form{padding:24px 18px max(24px,env(safe-area-inset-bottom))}
  .town-map{min-height:260px;margin-block:14px}
  .chapter-roadmap{gap:7px}
}

/* Short phone landscape screens, including iPhone 14 Pro (852 × 393). */
@media(orientation:landscape) and (max-height:500px) and (max-width:950px){
  .game-bar{height:54px;min-height:54px;padding-block:4px}
  .game-bar .mark{width:38px;height:38px}
  .process-rail ol{padding-block:6px}
  .brief-strip{min-height:58px;padding-block:8px}
  .brief-strip h1{margin-top:2px;font-size:1.05rem}
  .model-stage{grid-template-rows:auto clamp(260px,68svh,320px) auto auto}
  .viewport{min-height:260px}
  .thinking-panel{padding:12px}
  .thought{min-height:0}
  .town-sheet,.debate-sheet,.whatif-sheet{width:min(940px,calc(100% - 16px));max-height:calc(100dvh - 12px)}
  dialog form{padding:20px 24px max(18px,env(safe-area-inset-bottom))}
  dialog h2{font-size:1.55rem;margin-block:5px 8px}
  .chapter-roadmap{grid-template-columns:repeat(4,1fr)}
}

/* Kindle Fire HD 8 portrait uses a roomy tablet layout at roughly 800 × 1280. */
@media(min-width:721px) and (max-width:900px) and (orientation:portrait){
  .studio-grid{grid-template-columns:76px minmax(0,1fr)}
  .model-stage{grid-template-rows:auto minmax(460px,52svh) auto auto}
  .viewport{min-height:460px}
  .chapter-roadmap{grid-template-columns:repeat(3,1fr)}
}

/* JayKayElle family visual system, aligned with Counterexample. */
:root{
  --paper:#fffaf0;--cream:#fffef9;--ink:#22304a;--muted:#5f6d82;--line:rgba(34,48,74,.13);
  --jay:#e78968;--jay-soft:#fbe5d7;--kay:#d985a6;--kay-soft:#f8e3eb;--elle:#75639a;--elle-soft:#eee7f7;
  --wood:#a77352;--wood-dark:#724a36;--leaf:#69a174;--gold:#f3dfa2;
  --shadow:0 12px 32px rgba(54,60,80,.13);
  font-family:"Trebuchet MS","Avenir Next",Avenir,system-ui,sans-serif;
}
body{min-width:320px;color:var(--ink);background:radial-gradient(circle at 14% 10%,rgba(243,191,209,.24),transparent 26rem),radial-gradient(circle at 92% 82%,rgba(185,218,237,.25),transparent 30rem),var(--paper)}
button,a,input{-webkit-tap-highlight-color:transparent}
.game-bar{position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(34,48,74,.1);background:rgba(255,250,240,.94)}
.wordmark .mark{width:46px;height:46px;border-radius:15px;color:var(--ink);background:var(--gold);box-shadow:0 5px 13px rgba(54,60,80,.12)}
.wordmark strong{font-family:inherit;font-size:1.08rem;font-weight:900}.wordmark small{font-size:.72rem}
.project-title span,.section-label{color:#6b557e}.project-title strong{font-family:Georgia,"Times New Roman",serif;color:var(--ink);font-size:1.2rem}
.text-button,.icon-button{border-radius:12px}.icon-button:hover,.text-button:hover{background:rgba(185,218,237,.42)}
.studio-shell{max-width:1500px}
.process-rail{border:0}.process-rail ol{padding:16px 0}.process-rail li{color:#8d96a5}.process-rail span{width:24px;height:24px;border-width:2px}.process-rail .is-done{color:#487c67}.process-rail .is-current span{color:var(--ink);background:var(--gold);border-color:#d4bd75}
.brief-strip h1{color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.05;letter-spacing:-.025em}
.brief-button{min-height:44px;border:2px solid rgba(34,48,74,.13);border-radius:14px;background:var(--cream);box-shadow:0 5px 13px rgba(54,60,80,.1)}
.studio-grid{gap:16px}
.tool-dock,.thinking-panel,.model-stage{border:1px solid rgba(34,48,74,.11);border-radius:20px;background:rgba(255,254,249,.97);box-shadow:var(--shadow)}
.tool-dock{padding:18px 9px;background:linear-gradient(180deg,#f8f1fb,var(--cream) 44%)}
.tool{border:2px solid transparent;border-radius:14px}.tool:hover{background:#edf6fb}.tool.is-active{border-color:#487c67;color:var(--ink);background:#e7f5eb;box-shadow:0 4px 10px rgba(54,60,80,.08)}
.tool small{right:5px;top:4px;border-radius:999px;padding:3px 5px;color:var(--ink);background:var(--gold)}
.model-stage{border-radius:22px}
.stage-toolbar{height:58px;border-bottom:1px solid var(--line);background:#fffdf7}
.mode-switch{border-radius:13px;background:#edf0f4}.mode-switch button{min-height:38px;border-radius:10px;padding-inline:15px}.mode-switch button.is-active{box-shadow:0 3px 9px rgba(54,60,80,.14)}
.camera-tools .whatif-trigger{border:0;border-radius:12px;background:var(--gold);box-shadow:0 4px 10px rgba(54,60,80,.11)}
.camera-tools .whatif-trigger:hover{background:#f8eab9}.camera-tools button{border-radius:10px}.camera-tools button:hover{background:#edf6fb}
.viewport{background:linear-gradient(rgba(219,240,234,.64),rgba(255,250,240,.5)),url("assets/backgrounds/build-the-world-backyard.jpg") center/cover no-repeat}
.viewport::before{display:none}
#model{filter:drop-shadow(0 12px 10px rgba(45,45,55,.16));display:block;cursor:grab}#model:active{cursor:grabbing}
.stage-hint{padding:9px 15px;color:var(--ink);background:rgba(255,254,249,.94);box-shadow:0 5px 13px rgba(54,60,80,.14);font-weight:800}
.inspector{border-top:1px solid var(--line);background:#fffdf7}.choice-row button{min-height:42px;border:2px solid #d6dae0;border-radius:11px}.choice-row button.is-active{border-color:#487c67;background:#e7f5eb;color:var(--ink)}
input[type=range]{accent-color:#487c67}
.consequence-strip{background:#f7f1fb}.consequence:nth-child(2){background:#fff3f7}.consequence:nth-child(3){background:#eff7fb}.consequence:nth-child(4){background:#edf7f0}.consequence small{color:#487c67}
.thinking-panel{background:linear-gradient(180deg,#fffef9,#f8f1fb)}
.character{grid-template-columns:56px 1fr 8px;min-height:70px;border:2px solid transparent;border-radius:16px;padding:5px 8px}.character:hover{background:#edf6fb}.character.is-active{border-color:color-mix(in srgb,var(--who) 55%,white);background:color-mix(in srgb,var(--who) 15%,white)}
.character .avatar{display:grid;width:52px;height:60px;overflow:hidden;border:0;border-radius:15px;background:#edf6fb;box-shadow:0 4px 10px rgba(54,60,80,.12)}
.character.kay .avatar{background:#fff1f5}.character.elle .avatar{background:#f2ecf8}
.character .avatar img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.character b{font-family:inherit;font-weight:900}.character i{border-width:2px}
.thought{position:relative;margin:16px -17px 0;border:0;border-radius:0;background:var(--jay-soft);box-shadow:inset 0 1px rgba(34,48,74,.08),inset 0 -1px rgba(34,48,74,.08)}
.thought blockquote{font-family:Georgia,"Times New Roman",serif}.concerns li{border-color:rgba(34,48,74,.1)}
.test-button{min-height:48px;border-radius:14px;box-shadow:0 5px 13px rgba(54,60,80,.13)}
.sheet,.debate-sheet,.town-sheet,.complete-sheet,.whatif-sheet{border-radius:24px;background:var(--cream);box-shadow:0 30px 100px rgba(34,48,74,.36)}
dialog h2{color:var(--ink);font-family:Georgia,"Times New Roman",serif;letter-spacing:-.025em}.dialog-close{min-height:44px;width:44px;height:44px;border:2px solid var(--line);background:white}
.primary{min-height:46px;border-radius:14px;background:var(--ink);box-shadow:0 5px 13px rgba(54,60,80,.14)}
.debate-card{border-radius:18px;box-shadow:0 5px 13px rgba(54,60,80,.1)}
.debate-card header{min-height:68px}.debate-card .avatar{display:grid;width:58px;height:66px;overflow:hidden;border-radius:16px;background:#edf6fb}.debate-card .avatar img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.debate-card h3{font-family:inherit;font-weight:900}
.debate-focus{min-height:44px;border-radius:12px}
.town-map{border:8px solid #e7b896;border-radius:25px;background:linear-gradient(rgba(255,250,240,.25),rgba(185,218,237,.2)),url("assets/backgrounds/build-the-world-backyard.jpg") center/cover no-repeat;box-shadow:inset 0 0 0 2px rgba(255,255,255,.72)}
.town-map::before{display:none}.town-plot{border:3px solid white;box-shadow:0 7px 18px rgba(34,48,74,.22)}.town-plot span{border-radius:9px;color:var(--ink);background:white;box-shadow:0 4px 10px rgba(34,48,74,.11)}
.chapter-chip{border:2px solid rgba(34,48,74,.12);border-radius:14px;background:var(--cream);box-shadow:0 4px 10px rgba(54,60,80,.08)}
.chapter-chip:nth-child(4n+1){background:#edf7f0}.chapter-chip:nth-child(4n+2){background:#fff3f7}.chapter-chip:nth-child(4n+3){background:#eff7fb}.chapter-chip:nth-child(4n+4){background:#f7f1fb}.chapter-chip.is-current{border-color:#8a672c;background:#fff3c9;box-shadow:0 0 0 3px rgba(243,223,162,.62)}
.complete-sheet form{overflow:hidden}.complete-character{position:absolute;right:18px;bottom:-18px;width:118px;height:190px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 7px rgba(45,45,55,.18))}.complete-sheet form>*:not(.complete-character){position:relative;z-index:1}.complete-sheet form{padding-right:130px}.unlocks{border-radius:16px;background:#edf7f0}
.game-footer{color:var(--muted)}

@media(max-width:720px){
  .game-bar{border-radius:0}.tool-dock{border-radius:16px}.tool{border-radius:12px}.model-stage,.thinking-panel{border-radius:18px}
  .character{grid-template-columns:44px 1fr;min-height:62px}.character .avatar{width:42px;height:50px}
  .complete-sheet form{padding-right:18px;padding-bottom:150px}.complete-character{left:50%;right:auto;bottom:-35px;transform:translateX(-50%);height:180px}
}

/* Every chapter gets its own scene treatment as well as its own editable model. */
.viewport[data-chapter="workshop"]{background:linear-gradient(rgba(244,225,204,.76),rgba(255,250,240,.5)),url("assets/backgrounds/build-the-world-backyard.jpg") 18% center/cover no-repeat}
.viewport[data-chapter="reading"]{background:linear-gradient(rgba(235,226,247,.78),rgba(255,254,249,.54)),url("assets/backgrounds/build-the-world-backyard.jpg") 66% center/cover no-repeat}
.viewport[data-chapter="houses"]{background:linear-gradient(rgba(239,247,251,.78),rgba(255,250,240,.52)),url("assets/backgrounds/build-the-world-backyard.jpg") 50% center/cover no-repeat}
.viewport[data-chapter="library"]{background:linear-gradient(rgba(212,234,244,.78),rgba(255,254,249,.5)),url("assets/backgrounds/build-the-world-backyard.jpg") 78% center/cover no-repeat}
.viewport[data-chapter="market"]{background:linear-gradient(rgba(255,237,244,.72),rgba(255,249,224,.52)),url("assets/backgrounds/build-the-world-backyard.jpg") 25% center/cover no-repeat}
.viewport[data-chapter="school"]{background:linear-gradient(rgba(255,243,204,.76),rgba(239,247,251,.5)),url("assets/backgrounds/build-the-world-backyard.jpg") 70% center/cover no-repeat}
.viewport[data-chapter="pavilion"]{background:linear-gradient(rgba(209,236,239,.78),rgba(255,254,249,.45)),url("assets/backgrounds/build-the-world-backyard.jpg") 92% center/cover no-repeat}
.viewport[data-chapter="street"]{background:linear-gradient(rgba(246,224,214,.78),rgba(255,254,249,.48)),url("assets/backgrounds/build-the-world-backyard.jpg") 8% center/cover no-repeat}
.viewport[data-chapter="modular"]{background:linear-gradient(rgba(225,232,246,.78),rgba(255,254,249,.48)),url("assets/backgrounds/build-the-world-backyard.jpg") 45% center/cover no-repeat}
.viewport[data-chapter="station"]{background:linear-gradient(rgba(223,233,245,.78),rgba(255,254,249,.45)),url("assets/backgrounds/build-the-world-backyard.jpg") 85% center/cover no-repeat}
.viewport[data-chapter="hall"]{background:linear-gradient(rgba(245,229,238,.77),rgba(255,252,238,.5)),url("assets/backgrounds/build-the-world-backyard.jpg") 50% center/cover no-repeat}

.quick-start{margin:-8px 0 22px;padding:12px 14px;border-left:4px solid var(--elle);background:var(--elle-soft);font-size:.84rem;line-height:1.45}.quick-start b{display:block;margin-bottom:2px;color:var(--elle);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.zoning-card{border-top:1px solid var(--line);background:#fffbf3;padding:14px 16px 12px}.zoning-card header{display:flex;align-items:baseline;gap:9px}.zoning-card header strong{font-family:Georgia,serif;font-size:1.05rem}.zoning-card header small{margin-left:auto;color:var(--muted);font-size:.65rem}.zoning-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:11px}.zoning-metric{min-width:0;padding:9px 8px;border:1px solid var(--line);border-radius:4px;background:#fff}.zoning-metric span,.zoning-metric small{display:block;font-size:.55rem;font-weight:900;letter-spacing:.06em}.zoning-metric span{color:var(--muted)}.zoning-metric b{display:block;margin:4px 0;font-family:Georgia,serif;font-size:.94rem;white-space:nowrap}.zoning-metric small{color:#487c67;letter-spacing:0}.zoning-metric.is-review{border-color:#d7a54d;background:#fff8e7}.zoning-metric.is-review small{color:#9b6427}.zoning-card>p{margin:10px 0 0;color:var(--muted);font-size:.68rem;line-height:1.4}@media(max-width:720px){.zoning-card{padding:13px 12px}.zoning-grid{grid-template-columns:repeat(2,1fr)}.zoning-card header{flex-wrap:wrap}.zoning-card header small{margin-left:0;flex-basis:100%}}
