/* Version 3: the town is the play surface. */
body{font-size:16px}.play-header{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--line);background:#102620}.play-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:'Space Grotesk',sans-serif;font-size:19px;letter-spacing:1px}.play-brand>b{font-size:36px;color:var(--gold)}.play-brand small{display:block;font-size:11px;letter-spacing:1.6px;color:var(--muted);margin-top:4px}.version-badge{font-size:12px;padding:7px 10px;border:1px solid #6b8253;color:#d4e9aa;border-radius:4px;white-space:nowrap}.play-header nav{gap:5px;flex-wrap:wrap;justify-content:flex-end}.play-header nav button{font-size:14px;padding:9px}.play-main{max-width:1900px;padding:18px 24px}.quest-hud{display:grid;grid-template-columns:1fr auto;gap:10px 20px;align-items:center;margin-bottom:14px}.quest-hud h1{font-size:22px;letter-spacing:-.5px;margin:6px 0}.quest-hud .eyebrow{font-size:12px}.quest-hud .primary{font-size:14px;padding:12px 18px}.quest-stats{grid-column:1/-1;display:flex;gap:26px;font-size:14px;color:var(--muted);flex-wrap:wrap}.quest-stats b{color:var(--gold);margin-left:7px}.quest-stats button{padding:0}.play-surface{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.play-surface.panel-open{grid-template-columns:minmax(0,1fr) 390px}.world-wrap{position:relative;border-radius:7px}.world-viewport{overflow:auto;max-height:calc(100dvh - 245px);min-height:350px;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#849958 #203929}.world{width:100%;min-width:780px;aspect-ratio:1.5;overflow:hidden;cursor:crosshair}.world>img{user-select:none;pointer-events:none}.world .map-title{top:18px;left:20px;text-shadow:0 2px 4px #000;pointer-events:none}.map-title strong{font-size:27px}.world #route-line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.pin{z-index:4;padding:0;transform:translate(-50%,-100%);width:auto;position:absolute;display:flex;align-items:center;flex-direction:column;gap:3px;filter:drop-shadow(0 2px 3px #0008)}.pin .pin-icon{display:grid;place-items:center;width:36px;height:32px;background:#15291f;border:2px solid #eacd88;border-radius:5px;font-size:19px;color:#ffe3a1;animation:none;box-shadow:none}.pin .pin-label{display:block;position:static;transform:none;white-space:nowrap;background:#11251fea;color:#fff3cd;font-size:13px;padding:5px 8px;border:1px solid #799160;border-radius:3px;opacity:1}.pin.house .pin-label{font-size:12px;padding:4px}.pin:hover .pin-icon,.pin:focus-visible .pin-icon{background:#d9b96c;color:#182b23;transform:translateY(-3px)}.pin.target .pin-icon{box-shadow:0 0 0 5px #f3da8840,0 0 28px #ffdf8d}.pin.done .pin-icon{background:#244b37;color:#d8ecc0}.pin .for-sale{font-size:10px;color:#f6e6bd;letter-spacing:.8px;background:#835c34;padding:2px 5px;border-radius:2px}.pin .sale-label{display:flex;flex-direction:column;gap:3px;align-items:center}#traveler{z-index:6;position:absolute;transform:translate(-50%,-88%);width:40px;height:54px;pointer-events:none;transition:none;filter:drop-shadow(0 3px 1px #172315b0)}.walk-sprite{display:block;width:40px;height:54px;background-image:url('assets/walkers.png');background-size:164.55px 219.4px;background-repeat:no-repeat;background-position:-22px -1.8px;image-rendering:pixelated}#hero-name{position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);background:#14291fee;color:#fff5d1;padding:2px 5px;border-radius:3px;font-size:10px;white-space:nowrap}.destination-ring{position:absolute;width:22px;height:12px;border:2px solid #f5d989;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none}.treasure{position:absolute;transform:translate(-50%,-50%);z-index:4;border-radius:50%;border:1px solid #ffe7a1;background:#3d4c1cdd;color:#ffdf91;width:30px;height:30px;font-size:20px;box-shadow:0 0 20px #ffe98466}.map-toolbar{padding:10px 13px;gap:12px;min-height:46px;font-size:14px}.map-toolbar>span{font-size:14px}.map-toolbar button{white-space:nowrap;border:1px solid #668255;padding:6px 9px;border-radius:4px;font-size:13px}.map-actions{display:flex;gap:9px;align-items:center;padding:9px 12px;background:#142d24;border-top:1px solid var(--line);font-size:13px;color:var(--muted);flex-wrap:wrap}.map-actions .secondary{font-size:13px;padding:8px 11px}.map-actions>span{margin-right:auto}.activity{background:#152e25;border:1px solid #58714b;border-radius:7px;overflow:hidden;max-height:calc(100dvh - 176px);position:sticky;top:10px}.activity[hidden]{display:none}.activity-top{display:flex;gap:8px;align-items:center;padding:13px 15px;border-bottom:1px solid #496047}.activity-top>.eyebrow{margin-right:auto;font-size:12px;letter-spacing:1px}.activity-top button{font-size:18px;padding:4px 7px;border:1px solid #4d6748;border-radius:4px}#activity-body{padding:20px;max-height:calc(100dvh - 235px);overflow-y:auto;scrollbar-width:thin}#activity-body h2{font-size:25px;line-height:1.17;margin:0 0 12px;letter-spacing:-.7px}#activity-body h3{font-size:18px;margin:18px 0 8px}#activity-body p{font-size:16px;line-height:1.55;color:#d1dbca;margin:10px 0}.speaker-line{display:flex;align-items:center;gap:12px;margin-bottom:15px;font-size:14px;color:var(--gold)}.portrait{height:66px;width:49px;background:url('assets/walkers.png') no-repeat;background-size:201px 268px;flex-shrink:0;background-position:-27px -2px;image-rendering:pixelated}.speech{border-left:3px solid #d1b86f;padding:1px 0 1px 13px;margin:16px 0}.action-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.action-row button,.stack-actions button{font-size:14px;line-height:1.4;padding:11px 13px}.stack-actions{display:grid;gap:9px;margin-top:17px}.stack-actions button{text-align:left;border:1px solid #6b8254;border-radius:4px;background:#213d2d}.stack-actions button:hover{background:#385233}.stack-actions small{display:block;font-size:13px;color:#b8c9ad;margin-top:5px}.fact-note{padding:12px;background:#203b2c;border:1px solid #49613c;border-radius:4px;margin:16px 0;font-size:14px;line-height:1.55;color:#d2dcba}.fact-note a{font-size:13px;display:block;margin-top:7px}.muted-note{font-size:13px!important;line-height:1.55!important;color:#aabda9!important}.cost-list{margin:14px 0}.cost-list>div{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:14px;border-bottom:1px solid #344e37;padding:8px 0}.cost-list dt{color:#bdcbb5}.cost-list dd{margin:0;white-space:nowrap}.cost-list .total{font-weight:700;font-size:17px;color:var(--gold);border-top:1px solid #93a365;margin-top:7px}.money-big{font-family:'Space Grotesk',sans-serif;font-size:28px;color:var(--gold);margin:14px 0}.meter{height:12px;display:flex;border-radius:4px;overflow:hidden;background:#39513c;margin:10px 0}.meter span{height:100%}.meter .housing{background:#dfbd71}.meter .expenses{background:#65869a}.meter .savings{background:#729b60}.meter .left{background:#b7ce98}.range-field{display:block;margin:22px 0 13px;font-size:14px}.range-field output{float:right;color:var(--gold);font-weight:700}.range-field input{width:100%;margin-top:14px;accent-color:#e5ca85}.good{color:#c8e6ac!important}.caution{color:#ffbf92!important}.inventory-chips{display:flex;gap:8px;flex-wrap:wrap}.inventory-chips span{background:#304a32;padding:8px 11px;border:1px solid #617e4e;border-radius:4px;font-size:13px}.tour-art{position:relative;aspect-ratio:.63;background-image:url('assets/homes.png');background-size:300% 100%;background-repeat:no-repeat;margin:0 -20px 16px;min-height:360px}.tour-art .hotspot{position:absolute;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#172e24eb;border:2px solid #ffe3a1;color:#ffe9bb;box-shadow:0 0 0 5px #172e2440;font-weight:700}.tour-art .hotspot.seen{background:#557041;color:white}.tour-art .hotspot span{position:absolute;left:50%;top:40px;transform:translateX(-50%);white-space:nowrap;background:#182e24ec;font-size:12px;padding:4px 7px;border-radius:3px;font-weight:400}.home-meta{display:flex;gap:12px;font-size:13px;color:#c7d4bc;margin:10px 0 14px}.tour-find{padding:13px;background:#2e472e;color:#e8efd7;border-radius:4px;font-size:15px;line-height:1.5;margin:12px 0}.house-board{display:grid;gap:15px}.house-listing{border:1px solid #607b50;background:#203a2b;border-radius:5px;overflow:hidden}.listing-image{height:160px;background-image:url('assets/homes.png');background-size:300% auto;background-repeat:no-repeat;position:relative}.listing-image span{position:absolute;bottom:9px;left:10px;background:#17281eef;padding:6px 9px;font-size:13px}.listing-body{padding:14px}.listing-body h3{margin:0!important}.listing-body p{font-size:14px!important;margin:7px 0!important}.listing-body .primary{padding:8px 12px;font-size:14px}.compare-table{width:100%;border-collapse:collapse;font-size:14px}.compare-table th,.compare-table td{padding:12px 9px;text-align:right;border-bottom:1px solid #4c653f;white-space:nowrap}.compare-table th:first-child,.compare-table td:first-child{text-align:left;white-space:normal}.compare-scroll{overflow-x:auto}.journey-strip{display:flex;gap:7px;overflow-x:auto;margin:15px 0;padding-bottom:4px;scrollbar-width:thin}.journey-step{flex:1;min-width:138px;padding:11px 13px;border:1px solid #314b38;text-align:left;font-size:13px;color:#a5b99f;border-radius:5px;background:#132b23}.journey-step b{display:block;color:#d0b66e;margin-bottom:5px;font-size:12px}.journey-step.current{border-color:#d7be7f;background:#2a3e2a;color:#f8edd0}.journey-step.complete{border-color:#718851;color:#cde7b1}.paper-cards{display:grid;gap:9px;margin:16px 0}.paper-card{padding:13px;border:1px solid #5d7750;background:#213d2b;display:flex;gap:12px;text-align:left;border-radius:4px;font-size:15px;align-items:center}.paper-card.checked{background:#375333;border-color:#b5ce80}.paper-card b{font-size:22px;color:var(--gold)}.paper-card small{display:block;color:#c2d3b3;font-size:13px;margin-top:5px}.agent-card{padding:15px;border:1px solid #667e4e;border-radius:4px;margin:10px 0;background:#203a2b}.agent-card .speaker-line{margin-bottom:6px}.agent-card button{font-size:14px;padding:8px 11px}.agent-card p{font-size:14px!important}.closing-seal{font-size:70px;color:#f5d584;text-align:center;text-shadow:0 0 35px #e7c57788}.book-spread{display:grid;grid-template-columns:1fr 1fr;background:#f0e3ba;color:#243629;box-shadow:0 15px 45px #0004;border:1px solid #bb9e62;min-height:460px}.book-page{padding:28px}.book-page:first-child{border-right:1px solid #b8a272;background:linear-gradient(90deg,#f0e3ba 92%,#cab88d)}.book-page h2{font-size:28px}.book-page p{font-size:16px!important;color:#344430!important;line-height:1.65}.book-page .eyebrow{color:#79632f}.book-page .book-lesson{border-left:3px solid #7a8c4b;padding-left:13px;margin:22px 0}.book-art{height:200px;background-size:cover;background-image:url('assets/hearthvale.webp');border:2px solid #a08f5c;margin:15px 0}.book-controls{display:flex;gap:10px;justify-content:space-between;align-items:center;margin:20px 0}.book-controls select{font:inherit;max-width:60%;padding:9px;border:1px solid #58714b;background:#1d382b;color:var(--ink)}.book-guide{max-width:1040px;margin:auto;padding:25px}.book-guide>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.book-guide .book-caption{font-size:14px;color:var(--muted)}.utility:has(.book-spread){max-width:980px;width:95vw}.utility:has(.book-spread) #utility-body{padding:20px}.book-turn{animation:bookturn .32s ease-out;transform-origin:left center}@keyframes bookturn{from{opacity:.35;transform:perspective(1100px) rotateY(-8deg)}to{opacity:1;transform:none}}.ending-home{height:250px;background-image:url('assets/homes.png');background-size:300% auto;background-repeat:no-repeat;margin:14px -20px}.setup-content .privacy-note{font-size:13px}.utility p{font-size:16px}.utility .small{font-size:14px}.play-main footer{font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}.world-viewport.panning{scroll-behavior:auto}
@media(min-width:1550px){.play-surface.panel-open{grid-template-columns:minmax(0,1fr) 430px}.world-viewport{max-height:calc(100dvh - 240px)}}
@media(max-width:1150px){.play-header .version-badge{display:none}.play-header nav button span{display:none}.play-surface.panel-open{grid-template-columns:minmax(0,1fr) 345px}.play-main{padding:14px}.quest-hud h1{font-size:20px}.world-viewport{max-height:65dvh}.activity{max-height:80dvh}#activity-body{max-height:calc(80dvh - 52px)}}
@media(max-width:760px){.play-header{padding:10px 12px;gap:8px}.play-brand{font-size:15px;gap:7px}.play-brand small{font-size:9px;letter-spacing:.6px}.play-brand>b{font-size:27px}.play-header nav{gap:3px}.play-header nav button{padding:7px;font-size:15px}.play-main{padding:12px 8px}.quest-hud{gap:9px}.quest-hud h1{font-size:18px}.quest-hud .eyebrow{font-size:10px;letter-spacing:1px}.quest-hud .primary{padding:10px;font-size:12px;max-width:112px}.quest-stats{gap:10px 17px;font-size:12px}.quest-stats b{margin-left:4px}.play-surface.panel-open{grid-template-columns:1fr}.world-viewport{min-height:320px;max-height:58dvh}.world{min-width:840px}.play-surface.panel-open .world-viewport{min-height:250px;max-height:38dvh}.activity{position:static;max-height:none}#activity-body{max-height:none;padding:18px}.tour-art{max-height:580px;min-height:0;width:min(100% + 36px,420px);margin:0 auto 15px}.map-toolbar{font-size:12px;padding:9px}.map-toolbar>span{font-size:12px}.map-actions>span{display:none}.map-actions{justify-content:space-between}.journey-step{min-width:124px;font-size:12px}.book-spread{grid-template-columns:1fr}.book-page{padding:23px}.book-page:first-child{border:0;border-bottom:1px solid #b8a272;background:#eadbb0}.book-art{height:170px}.book-guide{padding:15px}.book-guide>header h1{font-size:27px}.book-guide>header{gap:15px}.book-controls{font-size:13px}.book-controls select{max-width:52%;font-size:13px}.book-controls button{padding:10px}.welcome{max-width:92vw}.welcome-body h2{font-size:32px}.welcome-meta{font-size:13px}.hero-card small{font-size:12px!important}.hero-card .hero-selected{font-size:12px!important}.play-main footer{gap:10px;flex-wrap:wrap}.activity .tour-find{font-size:16px}.book-spread .book-page h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.topic-select{display:block;width:100%;margin-top:10px;padding:12px;background:#213c2b;color:var(--ink);border:1px solid #738957;font:inherit;border-radius:4px}.helper-actions{padding-top:14px;border-top:1px solid #4c653c}.profile-details{margin-top:22px}.profile-details summary{font-size:14px;cursor:pointer;color:var(--gold);padding:10px 0}.journal-log li,.closing-gates li{font-size:14px;line-height:1.6;margin:10px 0}.money-big small{font-family:'DM Sans',sans-serif;font-size:13px;margin-left:6px}.messenger{position:absolute;width:40px;height:54px;transform:translate(-50%,-88%);z-index:5;pointer-events:none;filter:drop-shadow(0 3px 1px #172315b0)}.messenger small{background:#14291ff0;font-size:11px;white-space:nowrap;position:absolute;top:-20px;left:50%;transform:translateX(-50%);padding:4px 6px;border:1px solid #d0b67e;border-radius:4px}.offer-input{width:100%;font:600 27px 'Space Grotesk',sans-serif;color:var(--gold);padding:12px;background:#142e23;border:1px solid #688354;border-radius:4px;margin:12px 0}.negotiation-log{padding-left:20px}.negotiation-log li{font-size:14px;line-height:1.5;margin:8px 0}
