:root{--ink:#55534e;--muted:#79766e;--rule:#77736a33;--paper:#f8f7f1}*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;font-family:"Jost",sans-serif;color:var(--ink)}body{overflow:hidden;background:#e2dfcc}button,input{font:inherit}button{color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.35;cursor:default}button:focus-visible,[tabindex]:focus-visible{outline:1px solid #386d62;outline-offset:4px}button:hover:not(:disabled){color:#2d6256}svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}[hidden]{display:none!important}
#room-viewport{position:fixed;inset:0;overflow:hidden;scrollbar-width:none}#room-viewport::-webkit-scrollbar{display:none}#room-world{position:relative;top:50%;transform:translateY(-50%);height:max(100svh,37.5vw);width:max(100vw,266.6667svh);min-height:100%;user-select:none}.room-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}#room-plants{position:absolute;inset:0}.room-plant{position:absolute;transform:translate(-50%,-100%);padding:0;line-height:0}.room-plant img{display:block;width:100%;pointer-events:none}.room-plant.arriving{animation:arrive .8s ease-out both}@keyframes arrive{from{opacity:0;transform:translate(-50%,calc(-100% + 10px)) scale(.97)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}body[data-screen=room] #room-viewport{overflow-x:auto;touch-action:pan-x;cursor:grab}body[data-screen=room] #room-viewport.dragging{cursor:grabbing}
#paper{position:fixed;width:min(510px,calc(94svh * .666667),calc(100vw - 12px));aspect-ratio:2/3;left:50%;top:50%;transform:translate(-50%,-50%);filter:drop-shadow(1px 4px 4px #3d37251c);transition:opacity .45s ease,transform .45s ease;isolation:isolate;container-type:inline-size}.paper-texture{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}#paper.withdrawn{opacity:0;transform:translate(-50%,-49%) scale(.98);pointer-events:none}#menu-button{position:absolute;right:10%;top:9%;padding:8px;z-index:3}#menu-button svg{width:18px;height:18px}.paper-screen{position:absolute;inset:0;animation:print-in .22s ease both}@keyframes print-in{from{opacity:0}to{opacity:1}}h1,h2,p{margin:0}h1{font-size:7cqw;font-weight:300;line-height:1.3;letter-spacing:-.03em;margin:18px 0 24px}h2{font-size:5cqw;font-weight:400;letter-spacing:.12em}.eyebrow{font-size:2.05cqw;letter-spacing:.16em;font-weight:500}.fine{font-size:2.3cqw;line-height:1.7;color:var(--muted)}.start-copy{position:absolute;top:32%;left:13%;right:13%;text-align:center}.primary{display:block;width:100%;min-height:44px;border:1px solid #77736a75;font-size:3cqw;letter-spacing:.16em;padding:11px 14px;background:#fff2}.text-button{display:block;margin:8px auto;min-height:40px;letter-spacing:.12em;font-size:2.6cqw;padding:9px 12px}.sign-in-options{border-top:1px solid var(--rule);padding-top:17px;margin-top:15px}.sign-in-options p{font-size:2.8cqw;margin-bottom:7px}.sign-in-options button{display:block;width:100%;padding:8px;font-size:3cqw;min-height:38px}.sign-in-options small{display:block;font-size:2.1cqw;line-height:1.4;margin-top:8px;color:var(--muted)}#session-note{margin-top:8px}
.scores{position:absolute;top:20.1%;right:12%;display:flex;gap:0;text-align:center;width:33%}.scores>div{position:relative;flex:1}.scores>div+div{border-left:1px solid var(--rule)}.scores span{font-size:1.65cqw;letter-spacing:.1em;display:block}.scores strong{font-size:3.6cqw;font-weight:400;line-height:1.3;font-variant-numeric:tabular-nums}.scores i{position:absolute;top:0;right:4px;font-style:normal;font-size:2.5cqw}.gain{animation:score-up .65s ease-out forwards}@keyframes score-up{to{transform:translateY(-18px);opacity:0}}
#board{position:absolute;left:12.2%;right:11.7%;top:27%;height:55.8%;touch-action:none;user-select:none;border:1px solid var(--rule);border-radius:2px}.grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr)}.grid>div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}.grid>div:nth-child(4n){border-right:0}.grid>div:nth-child(n+13){border-bottom:0}#tiles{position:absolute;inset:0}.tile{position:absolute;width:25%;height:25%;left:calc(var(--x)*25%);top:calc(var(--y)*25%);transition:left .14s ease,top .14s ease;overflow:hidden}.tile img{width:100%;height:94%;object-fit:contain;pointer-events:none}.tile .value{position:absolute;left:7%;bottom:3%;font-size:2.45cqw;color:#8a887f;font-weight:300}.tile.new{animation:appear .22s ease-out}.tile.merged img{animation:grow .32s ease-out}.tile.final-tile img{animation:grow .5s ease-out}.tile.tool-target{outline:1px solid #66857666;outline-offset:-3px;cursor:pointer}.tile.tool-selected{outline:2px solid #47705c;outline-offset:-3px}@keyframes appear{from{opacity:0}to{opacity:1}}@keyframes grow{0%{transform:scale(.91)}65%{transform:scale(1.035)}100%{transform:scale(1)}}#garden-tools{position:absolute;left:16%;right:15%;top:85%;display:flex;height:7%}#garden-tools button{flex:1;position:relative;padding:0 5%;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px}#garden-tools button+button{border-left:1px solid var(--rule)}#garden-tools svg{height:6.1cqw;width:6.1cqw;stroke-width:1.6}#garden-tools .count{position:absolute;left:calc(50% + 3cqw);top:0;font-size:2cqw;background:#cccac2;border-radius:50%;width:3cqw;height:3cqw;display:grid;place-items:center}#garden-tools .label{font-size:1.95cqw;letter-spacing:.19em}.game-caption{position:absolute;bottom:4%;left:13%;right:12%;display:flex;justify-content:space-between;align-items:center;font-size:1.7cqw;letter-spacing:.1em}.game-caption button{padding:7px 0;font-size:inherit;letter-spacing:inherit}#selection-note{position:absolute;top:83%;left:12%;right:12%;bottom:7%;background:#f8f7f2f5;display:flex;align-items:center;gap:10px;justify-content:space-between;font-size:2.6cqw;padding:10px;z-index:2}#selection-note button{font-size:2.4cqw;padding:10px 4px;text-decoration:underline}
.result-screen{top:32%;bottom:9%;left:13%;right:13%;text-align:center}.result-screen .eyebrow{margin-bottom:12px}.result-screen h2{margin-bottom:12px}#final-art{height:64%;display:flex;justify-content:center;margin:0 auto 10px}#final-art img{width:80%;height:100%;object-fit:contain;animation:grow .65s ease-out}#completion-screen .primary{font-size:2.6cqw}#completion-screen .fine{margin-top:10px}#failure-screen{padding-top:12%}#discoveries{font-size:2.8cqw;line-height:1.7;margin:20px 0 32px}
#room-controls{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:24px;background:#f7f5ecd9;padding:14px 22px;font-size:11px;letter-spacing:.08em;max-width:calc(100% - 24px);width:max-content}#room-controls button{min-height:36px;white-space:nowrap;font-size:11px;letter-spacing:.08em}.room-hint{color:var(--muted)}
dialog{border:0;background:var(--paper);background-image:url('/assets/game-paper.png');background-size:240% auto;background-position:50% 70%;color:var(--ink);font-family:"Jost",sans-serif;width:min(420px,calc(100vw - 32px));padding:42px 32px 30px;max-height:85svh;overflow:auto;box-shadow:0 8px 25px #39332122}dialog::backdrop{background:#43412a38}dialog h2{font-size:20px;line-height:1.5;margin:0 0 15px}dialog p{font-size:14px;line-height:1.7;margin:12px 0}dialog .primary{font-size:12px;margin-top:16px}dialog .text-button{font-size:11px}dialog .eyebrow{font-size:10px;margin-bottom:12px}dialog .fine{font-size:11px}dialog .dialog-close{position:absolute;right:10px;top:10px;padding:5px}dialog .dialog-close svg{width:20px;height:20px}.menu-list{display:flex;flex-direction:column}.menu-list>button{min-height:44px;border-bottom:1px solid var(--rule);text-align:left;font-size:13px}.chapter-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.chapter-list button{padding:12px 3px;text-align:left;border-bottom:1px solid var(--rule);font-size:14px}.chapter-list small{display:block;font-size:10px;color:var(--muted)}.journey-list{display:flex;flex-wrap:wrap;gap:5px}.journey-list button{width:21%;padding:0}.journey-list img{width:100%;height:80px}.journey-list span{font-size:10px}.large-art{width:100%;height:230px;object-fit:contain}progress{width:100%;height:4px;accent-color:#52705a}#toast{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);padding:10px 20px;background:#f8f7ee;color:var(--ink);font-size:12px;max-width:90vw;opacity:0;pointer-events:none;transition:opacity .2s;box-shadow:0 2px 8px #2221;z-index:9}#toast.visible{opacity:1}.no-numbers .value{display:none}
@media(max-width:600px){#paper{width:min(calc(100vw - 4px),calc(98svh * .666667))}.room-hint{display:none}#room-controls{gap:10px;padding:10px 14px;bottom:12px;font-size:10px}#room-controls button{font-size:10px}.game-caption{font-size:2cqw}.start-copy{top:32%}.start-copy h1{margin:12px 0 18px}.sign-in-options{margin-top:8px;padding-top:10px}.sign-in-options small{font-size:2.4cqw}.eyebrow{font-size:2.4cqw}#garden-tools .label{font-size:2.3cqw}#garden-tools .count{font-size:2.4cqw;width:3.5cqw;height:3.5cqw}.fine{font-size:2.5cqw}}
@media(max-height:560px){body{overflow-y:auto}#paper{position:relative;top:auto;left:auto;margin:0 auto;transform:none;width:370px;max-width:100vw}#paper.withdrawn{transform:scale(.98)}}
@media(prefers-reduced-motion:reduce){*,*::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body.reduced *,body.reduced *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
#board:focus{outline:none}
@media(max-width:360px){.start-copy{top:29%}.start-copy h1{font-size:6.3cqw;margin:6px 0 10px}.start-copy .text-button{margin:4px auto}.sign-in-options{margin-top:4px;padding-top:6px}.sign-in-options small{margin-top:4px}.sign-in-options p{margin-bottom:2px}}
#completion-screen{display:flex;flex-direction:column;align-items:center}#completion-screen #final-art{flex:1;min-height:0;width:100%;height:auto}#completion-screen .primary{flex-shrink:0}
/* The same paper, with two quiet printed choices. */
.start-actions{position:absolute;top:55%;left:16%;right:16%;display:flex;flex-direction:column;gap:16px}.start-actions button{min-height:48px;font-size:2.8cqw;letter-spacing:.16em;font-weight:400;transition:color .15s,opacity .15s}.start-actions button:hover{opacity:.65}.start-actions button:active{opacity:.4}.provider-options{display:flex;flex-direction:column;gap:8px}.provider-options button{min-height:48px;font-size:14px}
.stage-name{position:absolute;top:23.8%;left:12.2%;padding:0;min-height:22px;font-size:2cqw;letter-spacing:.18em}.save-status{position:absolute;top:93%;left:32%;right:32%;min-height:24px;padding:0;font-size:1.8cqw;letter-spacing:.1em;color:var(--muted)}
.plant-asset{display:block;stroke:none;fill:none;pointer-events:none}.tile .plant-asset{position:absolute;left:6%;bottom:8%;width:88%;height:var(--growth)}.tile.merged .plant-asset,.tile.final-tile .plant-asset{animation:grow .35s ease-out}#final-art .plant-asset{width:86%;height:100%;animation:grow .65s ease-out}.room-plant .plant-asset{width:100%;height:auto}.large-art.plant-asset{height:230px;width:100%}.journey-list .plant-asset{width:100%;height:80px}
@media(max-width:600px){.start-actions button{font-size:3.1cqw}.stage-name{font-size:2.4cqw}.save-status{font-size:2.2cqw}}
.stage-name{top:16.9%;left:55%;right:12%;text-align:center;min-height:22px}.save-status{top:91.8%}
.start-actions button{border:1px solid #77736a75;background:#fff2}.start-actions button:active{background:#77736a10}
.plant-label{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:8px;padding:8px 12px;background:#f8f7eff0;white-space:nowrap;line-height:1.5;font-size:12px;letter-spacing:.04em;opacity:0;pointer-events:none;transition:opacity .15s;z-index:3}.plant-label small{display:block;font-size:9px;letter-spacing:.1em}.room-plant:hover,.room-plant:focus-visible{z-index:4}.room-plant:hover .plant-label,.room-plant:focus-visible .plant-label{opacity:1}.gift-notice{border:1px solid #768875;animation:gift-arrives .5s ease-out}@keyframes gift-arrives{from{opacity:0;bottom:5px}to{opacity:1;bottom:12px}}
/* Expanded supplied paper: 1024 × 1758. Taller specimen cells, unchanged artwork. */
body{overflow-y:auto;min-height:100svh;display:grid;place-items:center}
#paper{position:relative;left:auto;top:auto;transform:none;margin:10px auto;width:min(510px,max(360px,calc(96svh * .58248)),calc(100vw - 12px));max-width:calc(100vw - 12px);aspect-ratio:1024/1758}
#paper.withdrawn{transform:scale(.98)}
#board{top:24%;height:61.5%;left:11%;right:11%}
.scores{top:18.5%}.stage-name{top:15.6%}
#garden-tools{top:87%;height:6%}#selection-note{top:86%;bottom:6%}.save-status{top:94%}
.tile .plant-asset{left:3%;width:94%;bottom:6%}.tile .value{bottom:2%;font-size:2.3cqw}
.result-screen{top:27%;bottom:9%}.start-actions{top:53%}

.save-status{top:91%}
/* No document scrolling or native image dragging during play. */
html,body{height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}
body{position:fixed;inset:0;width:100%;height:100dvh}
#paper{width:min(510px,calc((100dvh - 16px) * .58248),calc(100vw - 12px));margin:0 auto;touch-action:pinch-zoom}
#paper,#room-viewport,#room-controls{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#paper img,#paper svg,#room-viewport img,#room-viewport svg{-webkit-user-drag:none;user-select:none}
#board{touch-action:none}
#room-viewport{overscroll-behavior:none}
dialog{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#garden-tools{top:86%;height:5.2%;min-height:40px}
.save-status{top:93%;min-height:14px}

/* Supplied intro components share the reference's 1024 × 1758 coordinates. */
body[data-screen=start] .paper-texture,body[data-screen=start] #menu-button{display:none}
#start-screen>img{position:absolute;pointer-events:none}
.intro-paper{left:3.02734%;top:1.87713%;width:94.04297%;height:93.85666%}
.intro-plants{left:9.08203%;top:24.51650%;width:80.85938%;height:43.11718%}
.intro-lines{left:11.03516%;top:72.18430%;width:78.32031%;height:12.45734%}
.intro-copyright{left:11.42578%;top:88.90785%;width:50.09766%;height:1.19454%}
.intro-action{position:absolute;left:11.03516%;width:78.32031%;height:6.02958%;padding:0;text-align:left}
.intro-action img{position:absolute;left:1.75%;width:96.63%;height:auto;pointer-events:none}
.intro-sign-in{top:72.412%}.intro-sign-in img{top:35.8%}
.intro-guest{top:78.4414%}.intro-guest img{top:34%}
.intro-action:hover{background:#76806b0a}.intro-action:active{background:#76806b18}
/* Align living UI to the printed title and tagline. */
#menu-button{top:7.9%;right:10%;width:44px;height:44px;display:grid;place-items:center;padding:0}
.stage-name{top:7.9%;left:auto;right:calc(10% + 47px);min-height:44px;max-width:31%;font-size:2.15cqw;display:flex;align-items:center;text-align:right;padding:0;justify-content:flex-end}
.scores{top:auto;bottom:78.4%}
.journey-art{height:80px;display:flex;align-items:flex-end;justify-content:center;width:100%}
.journey-list .journey-art .plant-asset{height:var(--journey-scale);width:100%}
.detail-art{height:230px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:16px}
.detail-art .large-art.plant-asset{height:var(--journey-scale);width:100%}
.room-plant .plant-label{top:0;transform:translate(-50%,-100%);margin-top:-6px}
#menu-button,.stage-name{top:calc(8.9% - 19px)}
.scores{bottom:77.6%}
/* Keep the tools centered in the actual remaining paper, with quiet spacing. */
#garden-tools{top:88.5%;height:5%;min-height:0;left:17%;right:17%}
#garden-tools svg{width:5cqw;height:5cqw}
#garden-tools button{gap:2px}
#garden-tools .count{top:2px;left:calc(50% + 2.5cqw)}
#room-controls{height:32px;padding:0 18px}
#room-controls button{min-height:32px;padding:0 6px}
.tile img.plant-asset{left:50%;transform:translateX(-50%);width:var(--asset-w);height:var(--asset-h);object-fit:contain;object-position:center bottom}
.tile.merged img.plant-asset,.tile.final-tile img.plant-asset{animation:specimen-grow .35s ease-out}
@keyframes specimen-grow{0%{transform:translateX(-50%) scale(.91)}65%{transform:translateX(-50%) scale(1.035)}100%{transform:translateX(-50%) scale(1)}}
.journey-list img.plant-asset,.detail-art img.plant-asset{object-fit:contain;object-position:center bottom}
@media(max-width:600px){#room-controls{height:28px;padding:0 10px;gap:8px}#room-controls button{min-height:28px}}
/* Explore only the exposed intro background; paper keeps its own hit surface. */
body[data-screen=start] #room-viewport{overflow-x:auto;touch-action:pan-x;cursor:grab}
body[data-screen=start] #room-viewport.dragging{cursor:grabbing}
body[data-screen=start] #room-plants{pointer-events:none}
#garden-tools{top:87.5%}
.plant-detail{text-align:center}
.detail-art{align-items:center}
.detail-art img.plant-asset{object-position:center}
.journey-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 8px}
.journey-list button{width:100%;display:flex;flex-direction:column;align-items:center;gap:5px}
.journey-art{align-items:center}
.journey-list img.plant-asset{object-position:center}
.journey-list .unknown{font-size:22px;font-weight:300;color:var(--muted)}
body[data-screen=start] #room-viewport{overflow:hidden;touch-action:none;cursor:default}
#final-art.tulip-portrait{align-items:center}
#final-art.tulip-portrait img.plant-asset{width:60.2%;height:70%}
#final-art{position:relative}
#final-art.portrait-loading img{visibility:hidden;animation:none}
.portrait-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.05em;color:var(--muted);text-align:center}
.portrait-status .text-button{font-size:12px;min-height:44px;padding:8px 12px}
#paper.withdrawn{transition-duration:.25s}
.room-plant.arriving{animation:plant-welcome .85s cubic-bezier(.2,.7,.2,1) both;z-index:3}
.room-plant.arriving::after{content:"";position:absolute;left:50%;bottom:5%;width:65%;aspect-ratio:2/1;border:1px solid #fff9;border-radius:50%;pointer-events:none;animation:welcome-ring 1.1s ease-out both}
.room-plant.arriving .plant-label{animation:welcome-label 2.8s ease both}
@keyframes plant-welcome{0%{opacity:0;transform:translate(-50%,calc(-100% + 8px)) scale(.94)}55%{opacity:1;transform:translate(-50%,-100%) scale(1.045)}100%{opacity:1;transform:translate(-50%,-100%) scale(1)}}
@keyframes welcome-ring{from{opacity:.8;transform:translateX(-50%) scale(.65)}to{opacity:0;transform:translateX(-50%) scale(1.8)}}
@keyframes welcome-label{0%,100%{opacity:0}15%,85%{opacity:1}}

/* Quiet paper link; keep keyboard focus and a generous touch target. */
dialog .privacy-link,dialog .privacy-link:visited{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font-size:12px;letter-spacing:.03em;text-decoration:none}
dialog .privacy-link:hover{color:#2d6256;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
dialog .privacy-link:focus-visible{outline:1px solid #386d62;outline-offset:4px;text-decoration:underline;text-underline-offset:4px}

.privacy-note{text-align:center}
.chapter-screen{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto;justify-items:center;align-items:center;gap:1.8cqw}
.chapter-screen h2{font-size:6cqw;letter-spacing:.12em;margin:0}
.chapter-screen .eyebrow{margin:0}
#chapter-art{height:100%;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;padding:2cqw 0}
#chapter-art img{width:76%;height:100%;object-fit:contain}
#chapter-copy{font-size:2.8cqw;line-height:1.6;max-width:90%;margin-bottom:1cqw}
.chapter-screen .text-button{margin:0}
