:root{font-family:Georgia,'Times New Roman','Noto Serif',serif;color:#293d38;background:#ede8d9;font-synthesis:none;font-variant-numeric:lining-nums tabular-nums}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,summary{font:inherit}
button{min-height:44px;border:1px solid #435f4924;border-radius:30px;padding:10px 18px;background:#fbf7e8a3;color:#2e453f;cursor:pointer;transition:background .2s,transform .2s}
button:hover{background:#fffbed}button:active{transform:scale(.97)}button:disabled{opacity:.42;cursor:default}
button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #567a6a;outline-offset:4px}
.primary{background:#3d6457!important;color:#fff9e7;border-color:#3d6457!important}
#scene,#world{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;touch-action:none}
#world canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#node-controls{position:absolute;inset:0;pointer-events:none}.localized{visibility:hidden}.ready .localized{visibility:visible}
.glass{background:#f4f0dfb8;box-shadow:0 8px 28px #263c290b,inset 0 1px 0 #fff8;border:1px solid #ffffffa6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:20px}
#garden-meta{position:fixed;right:max(28px,env(safe-area-inset-right));top:calc(76px + env(safe-area-inset-top));width:min(330px,34vw);text-align:right;pointer-events:none}
#chapter{letter-spacing:.12em;font:10px/1.4 system-ui;color:#65766a}
h1{font-size:clamp(22px,2.4vw,32px);font-weight:400;margin:7px 0 9px;letter-spacing:.025em}
#garden-goal{font:12px/1.6 system-ui;margin:0 0 9px;color:#40584d}
#target-row{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px 12px}
.target-label{font:11px/1.5 system-ui;color:#4e665a;white-space:nowrap}
.target-label::before{content:'';display:inline-block;width:4px;height:4px;margin:0 5px 2px 0;border-radius:50%;background:#7e907a}
.target-label.full{color:#315a44}.target-label.full::before{background:#416455}
#garden-count{font:10px/1.5 system-ui;margin-top:8px;letter-spacing:.03em;color:#6a7a6b}
#play-controls{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 32px));padding:11px 12px 7px}
#selection{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:2px 12px;font:11px/1.5 system-ui;color:#627265;pointer-events:none;text-align:center}
#selection-label{color:#344f43;font-weight:600}#selection-choice{white-space:nowrap}
#selection-buffer{flex-basis:100%;font-size:11px;color:#455c4b}
#instruction{font:12px/1.5 system-ui;text-align:center;color:#3e5549;margin:7px 5px 8px;pointer-events:none;overflow-wrap:anywhere}#instruction:empty{display:none}
#dock{display:flex;align-items:stretch;justify-content:center;gap:4px}
#dock button{min-width:0;border-color:transparent;font:12px/1.3 system-ui;padding:10px 15px;white-space:normal}#dock .primary{font-weight:600}
#panel{position:fixed;right:20px;bottom:calc(92px + env(safe-area-inset-bottom));width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 175px);overflow:auto;padding:23px;z-index:10;color:#283c34}
#panel h2{font-size:25px;font-weight:400;margin:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-heading button{font:12px system-ui}#brand{font:12px system-ui;opacity:.7}
.settings{display:grid;gap:12px;margin:22px 0;font:13px/1.5 system-ui}.settings label{display:flex;align-items:center;gap:8px;min-height:44px}.settings input{width:20px;height:20px;accent-color:#486f5a}
details{font:13px/1.7 system-ui;border-block:1px solid #45674623;padding:10px 0}summary{cursor:pointer;min-height:44px;display:list-item;align-content:center}
#panel h3{font-size:21px;font-weight:400;margin-bottom:10px}#album-count,#connection,#save-status{font:12px/1.6 system-ui}#connection{opacity:.65}
#album{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}#album button{border-radius:14px;text-align:left;min-height:65px;font-size:13px;white-space:normal}#album button span{display:block;font:10px/1.7 system-ui;opacity:.75}#album button.completed{border-color:#67846675;background:#d7e0c68f}#album button.current{box-shadow:inset 0 0 0 1px #587860}
#completion{position:fixed;z-index:9;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;padding:36px;width:min(380px,calc(100vw - 36px));animation:arrive .5s ease-out}#completion h2{font-size:28px;font-weight:400}#completion p{font:14px/1.7 system-ui}#completion button{margin:5px;font:13px system-ui}
.seal{display:inline-grid;place-items:center;border:1px solid #a26348;color:#a26348;border-radius:50%;width:45px;height:45px;font-size:24px}
#fatal{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%);padding:25px;z-index:20;width:min(400px,90vw);font:14px/1.7 system-ui}
.node-button{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);width:44px;height:44px;border:0;padding:0;background:transparent;border-radius:50%;color:transparent;font:11px system-ui}
.node-button::before{content:'';position:absolute;left:18px;top:18px;width:8px;height:8px;border-radius:50%;background:#f8f3df26;border:1px solid #56715a55;z-index:-1;transition:background .2s,width .2s,height .2s,left .2s,top .2s}
.node-button:hover{background:transparent;color:#354f44}
.node-button:hover::before,.node-button:focus-visible::before,.node-button.selected::before{left:10px;top:10px;width:24px;height:24px;background:#f8f3dfe6;border-color:#59766170}
.node-button.selected{color:#fff9e7}.node-button.selected::before{background:#416455;border-color:#416455}
.node-button:active{transform:translate(-50%,-50%) scale(.97)}
.embedded #brand{display:none}[hidden]{display:none!important}
@keyframes arrive{from{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}
@media(max-width:900px){#garden-meta{width:min(320px,calc(100vw - 104px));right:20px}#panel{right:50%;transform:translateX(50%)}}
@media(max-width:600px){
#garden-meta{top:calc(72px + env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:calc(100vw - 96px)}
#chapter{font-size:10px;letter-spacing:.06em}h1{font-size:24px;margin:5px 0 7px}#garden-goal{font-size:11px;line-height:1.5;margin-bottom:7px}
#target-row{gap:4px 10px}.target-label{font-size:10px}#garden-count{display:none}
#play-controls{bottom:calc(12px + env(safe-area-inset-bottom));width:calc(100vw - 24px);padding:10px 8px 6px}
#selection{font-size:11px;gap:2px 9px}#selection-buffer{font-size:10px}#instruction{font-size:11px;margin:6px 3px 7px}
#dock{gap:3px}#dock button{flex:1 1 0;padding:9px 5px;font-size:11px;line-height:1.25}
#panel{bottom:calc(78px + env(safe-area-inset-bottom));padding:18px;max-height:calc(100dvh - 150px)}
}
@media(max-height:500px){
#garden-meta{top:calc(70px + env(safe-area-inset-top));right:14px;width:min(300px,calc(100vw - 92px))}#chapter,#garden-count{display:none}
h1{font-size:20px;margin:0 0 5px}#garden-goal{font-size:10px;line-height:1.4;margin-bottom:5px}.target-label{font-size:10px}
#play-controls{bottom:calc(8px + env(safe-area-inset-bottom));padding:6px 8px 5px;width:min(500px,calc(100vw - 24px))}
#selection{font-size:10px;line-height:1.3}#selection-buffer{font-size:10px;line-height:1.3}#instruction{font-size:10px;line-height:1.4;margin:4px 2px 5px}#dock button{font-size:11px;padding:8px}
#panel{bottom:70px;max-height:calc(100dvh - 85px)}#completion{padding:15px}#completion h2{font-size:21px;margin:9px}#completion p{font-size:12px}.seal{width:32px;height:32px;font-size:18px}
}
@media(max-width:320px){#garden-meta{right:10px;width:calc(100vw - 84px)}h1{font-size:19px}#garden-goal{font-size:10px}#play-controls{width:calc(100vw - 16px)}#dock button{font-size:10px;padding:8px 4px}#album{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before{animation:none!important;transition:none!important}}
