:root{--ink: #1b1b1f;--muted: #5b5b63;--paper: #fffaf2;--accent: #ff4a1c;--line: rgba(27, 27, 31, .12);--edge: 16px;--top: calc(var(--edge) + env(safe-area-inset-top, 0px) + var(--vv-top, 0px));--left: calc(var(--edge) + env(safe-area-inset-left, 0px) + var(--vv-left, 0px));--right: calc(var(--edge) + env(safe-area-inset-right, 0px) + var(--vv-right, 0px));--bottom: calc(var(--edge) + env(safe-area-inset-bottom, 0px) + var(--vv-bottom, 0px))}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;background:#a8dcff;color:var(--ink);font-family:Space Grotesk,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:pointer}.eyebrow{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.06em;color:var(--accent);text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 22px;border-radius:999px;font:600 15px Space Grotesk,sans-serif;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform .2s ease,background .2s ease}.btn:active{transform:scale(.97)}.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover{background:var(--accent)}.btn.primary:disabled{opacity:.75;cursor:progress;background:linear-gradient(100deg,var(--ink) 30%,#4a4a55 50%,var(--ink) 70%) 0 0 / 250% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-250% 0}}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}kbd{display:inline-block;min-width:26px;padding:3px 7px;margin-right:3px;border-radius:7px;border:1px solid var(--line);border-bottom-width:3px;background:#fff;font:600 12px JetBrains Mono,monospace;text-align:center}.intro{position:fixed;inset:0;display:flex;overflow-y:auto;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#a8dcff59;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:20;transition:opacity .5s ease}.intro.hidden{opacity:0;pointer-events:none}.intro-card{margin:auto;width:min(520px,100%);padding:34px;border-radius:28px;background:var(--paper);box-shadow:0 30px 80px #143c5a40;display:flex;flex-direction:column;gap:16px}.intro-card h1{font-size:clamp(2.6rem,9vw,4rem);line-height:1;letter-spacing:-.04em;font-weight:700}.intro-card h1 em{color:var(--accent);font-style:italic}.lead{color:var(--muted);line-height:1.55}.keys{list-style:none;display:grid;gap:8px;font-size:14px;color:var(--muted)}.hud{position:fixed;top:var(--top);left:var(--left);display:flex;flex-direction:column;align-items:flex-start;gap:10px;z-index:10;pointer-events:none}.brand{pointer-events:auto;font-weight:700;font-size:18px;color:var(--ink);text-decoration:none;background:var(--paper);padding:9px 16px;border-radius:999px;box-shadow:0 8px 24px #143c5a26}.brand span{font:400 12px JetBrains Mono,monospace;color:var(--muted)}.stats{display:flex;flex-wrap:wrap;gap:8px;max-width:min(420px,62vw)}.stat{background:var(--paper);padding:7px 13px;border-radius:999px;font:400 12px JetBrains Mono,monospace;box-shadow:0 8px 24px #143c5a1f}.stat b{color:var(--accent);font-size:14px}.stat.pop{animation:pop .45s ease}@keyframes pop{40%{transform:scale(1.18)}}.corner{position:fixed;top:var(--top);right:var(--right);display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:10}#minimap{width:150px;height:150px;border-radius:50%;background:#fffaf2d9;box-shadow:0 8px 24px #143c5a2e}.corner-buttons{display:flex;gap:6px}.icon-btn{--spring: cubic-bezier(.34, 1.56, .64, 1);display:inline-flex;align-items:center;gap:7px;height:38px;min-width:38px;padding:0 14px 0 11px;border-radius:999px;border:1px solid rgba(255,255,255,.55);background:#fffaf2d1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink);font:600 12px JetBrains Mono,monospace;cursor:pointer;box-shadow:0 6px 18px #143c5a26;transition:transform .35s var(--spring),box-shadow .3s ease,background .3s ease,color .3s ease}.icon-btn.icon-only{padding:0;justify-content:center}.icon-btn.icon-only .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.icon-btn:hover,.icon-btn:focus-visible{transform:translateY(-2px);color:var(--accent);box-shadow:0 12px 26px #143c5a38}.icon-btn:active{transform:translateY(0) scale(.94);transition-duration:.1s}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-btn[aria-pressed=true]:not(#sound){background:var(--accent);border-color:transparent;color:#fff}.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.ic .fill{fill:currentColor;stroke:none}.ic .rays,.ic .petals,.ic .needle,.ic .moon,.ic .note{transform-origin:12px 12px;transition:transform .6s var(--spring)}#mood .ic>g{display:none}#mood[data-mood=morning] .i-morning,#mood[data-mood=golden] .i-golden,#mood[data-mood=night] .i-night,#mood[data-mood=sakura] .i-sakura{display:inline;animation:icon-in .5s var(--spring)}@keyframes icon-in{0%{opacity:0;transform:scale(.4) rotate(-40deg)}}#mood .i-morning .rays,#mood .i-sakura .petals{transition:none}#mood:hover .i-morning .rays,#mood:hover .i-sakura .petals{animation:spin 4s linear infinite}#mood .i-golden .sunset{transition:transform .5s var(--spring)}#mood:hover .i-golden .sunset{transform:translateY(-2px)}#mood:hover .i-golden .rays{animation:twinkle 1s ease-in-out infinite}#mood:hover .i-night .moon{transform:rotate(-18deg)}#mood:hover .i-night .star{animation:twinkle .9s ease-in-out infinite}#view .lens{transition:transform .4s var(--spring)}#view:hover .lens{transform:translate(1.5px)}#view:hover .rec{animation:twinkle .8s steps(2) infinite}#music:hover .note{animation:dance .7s ease-in-out infinite}#music[aria-pressed=true] .note{animation:dance 1.4s ease-in-out infinite}#compass:hover .needle{transform:rotate(360deg)}#compass[aria-pressed=true] .needle{animation:seek 2.4s ease-in-out infinite}#sound .mute,#sound[aria-pressed=false] .wave{display:none}#sound[aria-pressed=false] .mute{display:inline}#sound:hover .w1{animation:twinkle .9s ease-in-out infinite}#sound:hover .w2{animation:twinkle .9s ease-in-out .2s infinite}#zoom-in .ic,#zoom-out .ic{transition:transform .4s var(--spring)}#zoom-in:hover .ic{transform:scale(1.18)}#zoom-out:hover .ic{transform:scale(.84)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes twinkle{50%{opacity:.25}}@keyframes dance{25%{transform:translateY(-2px) rotate(-8deg)}75%{transform:translateY(-1px) rotate(8deg)}}@keyframes seek{25%{transform:rotate(-25deg)}60%{transform:rotate(15deg)}}.hint{position:fixed;left:50%;bottom:var(--bottom);max-width:calc(100vw - 32px);transform:translate(-50%);padding:8px 16px;border-radius:999px;background:#1b1b1fc7;color:#fff;font:400 12px JetBrains Mono,monospace;white-space:nowrap;z-index:10;pointer-events:none;transition:opacity .6s ease}.toast{position:fixed;left:50%;top:max(22vh,280px);max-width:calc(100vw - 32px);text-align:center;transform:translate(-50%,10px);padding:10px 18px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;opacity:0;z-index:12;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.toast.show{opacity:1;transform:translate(-50%)}.stat-btn{border:0;cursor:pointer;pointer-events:auto;color:var(--ink)}.stat-btn:hover{color:var(--accent)}.prompt{position:fixed;left:50%;bottom:calc(var(--bottom) + 48px);max-width:calc(100vw - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:translate(-50%,12px);padding:12px 22px;border-radius:999px;border:0;background:var(--accent);color:#fff;font:700 15px Space Grotesk,sans-serif;box-shadow:0 12px 30px #ff4a1c59;cursor:pointer;opacity:0;pointer-events:none;z-index:12;transition:opacity .2s ease,transform .2s ease}.prompt.show{opacity:1;transform:translate(-50%);pointer-events:auto}.gamebar{position:fixed;left:50%;top:var(--top);max-width:calc(100vw - 32px);transform:translate(-50%,-80px);display:flex;align-items:center;gap:12px;padding:8px 8px 8px 18px;border-radius:999px;background:var(--ink);color:#fff;font:400 13px JetBrains Mono,monospace;z-index:12;transition:transform .35s cubic-bezier(.16,1,.3,1)}.gamebar.show{transform:translate(-50%)}.gamebar button{border:0;border-radius:999px;padding:6px 12px;background:#fff;color:var(--ink);font:600 12px JetBrains Mono,monospace;cursor:pointer}#panel-text{white-space:pre-line}.mood-buttons .icon-btn{background:#1b1b1fb8;border-color:#ffffff24;color:#fff}.mood-buttons .icon-btn:hover,.mood-buttons .icon-btn:focus-visible{background:var(--accent);color:#fff}.letterbox{position:fixed;left:0;right:0;height:9vh;background:#0b0b0d;z-index:9;pointer-events:none;transition:transform .9s cubic-bezier(.16,1,.3,1)}.letterbox.top{top:0;transform:translateY(-100%)}.letterbox.bottom{bottom:0;transform:translateY(100%)}.cinematic .letterbox{transform:none}.hud,#minimap,.corner-buttons:not(.mood-buttons),.hint,.panel,.prompt{transition:opacity .6s ease}.cinematic .hud,.cinematic #minimap,.cinematic .corner-buttons:not(.mood-buttons),.cinematic .hint,.cinematic .panel,.cinematic .prompt{opacity:0!important;pointer-events:none!important}.cinematic .corner{top:calc(9vh + var(--top))}.panel{position:fixed;right:var(--right);bottom:var(--bottom);width:min(380px,calc(100vw - 32px));max-height:calc(100vh - 290px);max-height:calc(100dvh - var(--top) - var(--bottom) - 256px);overflow:auto;padding:22px;border-radius:24px;background:var(--paper);box-shadow:0 24px 60px #143c5a40;display:flex;flex-direction:column;gap:12px;z-index:11;transform:translateY(calc(100% + 40px));transition:transform .45s cubic-bezier(.16,1,.3,1)}.panel.open{transform:none}.panel h2{font-size:1.6rem;letter-spacing:-.03em;line-height:1.1}.panel img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:14px;display:none}.panel img.show{display:block}.panel p{color:var(--muted);line-height:1.55;font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{padding:4px 10px;border-radius:999px;border:1px solid var(--line);font:400 11px JetBrains Mono,monospace}.links{display:flex;flex-wrap:wrap;gap:8px}.links .btn{padding:10px 16px;font-size:14px}#mood[data-mood=cycle] .i-cycle{display:inline;animation:icon-in .5s var(--spring)}#mood .hand-h,#mood .hand-m{transform-origin:12px 12px;transition:transform .8s ease}#mood .spin-m{transform-origin:12px 12px}#mood:hover .spin-m{animation:spin 1.2s linear infinite}#weather .ic>g{display:none}#weather[data-wx=clear] .i-clear,#weather[data-wx=rain] .i-rain,#weather[data-wx=snow] .i-snow{display:inline;animation:icon-in .5s var(--spring)}#weather .rays,#weather .flake{transform-origin:12px 12px}#weather:hover .i-clear .rays{animation:twinkle 1s ease-in-out infinite}#weather:hover .cloud{animation:drift 1.6s ease-in-out infinite}#weather:hover .drop{animation:fall .8s linear infinite}#weather:hover .d2{animation-delay:.25s}#weather:hover .d3{animation-delay:.5s}#weather:hover .flake{animation:spin 3s linear infinite}#guestbook-btn .page{transform-origin:12px 12px;transition:transform .5s var(--spring)}#guestbook-btn:hover .page{animation:flip 1.1s ease-in-out infinite}@keyframes drift{50%{transform:translate(1.5px)}}@keyframes fall{0%{transform:translateY(-3px);opacity:0}40%{opacity:1}to{transform:translateY(3px);opacity:0}}@keyframes flip{50%{transform:scaleX(-1)}}.gb{margin:auto;width:min(560px,calc(100vw - 24px));max-height:min(86vh,760px);padding:26px;border:0;border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 30px 80px #14283c59;overflow:auto;scrollbar-width:thin}.gb[open]{animation:gb-in .45s cubic-bezier(.34,1.56,.64,1)}.gb::backdrop{background:#141e2d73;backdrop-filter:blur(4px)}@keyframes gb-in{0%{opacity:0;transform:translateY(24px) scale(.96)}}.gb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.gb h2{margin:4px 0 16px;font-size:30px}.gb-form{display:grid;gap:12px}.gb-form label{display:grid;gap:6px;font:600 12px JetBrains Mono,monospace;color:var(--muted)}.gb-form input,.gb-form textarea{font:500 15px Space Grotesk,sans-serif;color:var(--ink);padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;resize:vertical;transition:border-color .2s ease,box-shadow .2s ease}.gb-form input:focus,.gb-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff4a1c26}.gb-hp{position:absolute;left:-9999px}.gb-row{display:flex;justify-content:space-between;align-items:center}.gb-count,.gb-status{font:400 12px JetBrains Mono,monospace;color:var(--muted);margin:0;min-height:1em}.gb-list{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.gb-note{position:relative;padding:18px 14px 12px;background:var(--paper);border-radius:4px;box-shadow:0 6px 14px #281e0a24;transform:rotate(var(--tilt));animation:note-in .5s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:calc(min(var(--i),12)*40ms);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.gb-note:before{content:"";position:absolute;top:6px;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#e3342f;box-shadow:0 2px 3px #00000040}.gb-note:hover{transform:rotate(0) scale(1.04)}.gb-note.fresh{animation:note-pin .7s cubic-bezier(.34,1.56,.64,1)}.gb-note strong{display:block;font-size:15px}.gb-note p{margin:6px 0 8px;font-size:14px;line-height:1.4;overflow-wrap:anywhere}.gb-note time{font:400 11px JetBrains Mono,monospace;color:var(--muted)}.gb-empty{grid-column:1 / -1;color:var(--muted);font:400 13px JetBrains Mono,monospace}@keyframes note-in{0%{opacity:0;transform:translateY(14px) rotate(0)}}@keyframes note-pin{0%{opacity:0;transform:translateY(-40px) rotate(-12deg) scale(1.2)}}@media (max-width: 1000px){:root{--edge: 12px}.gamebar{top:auto;bottom:calc(var(--bottom) + 52px);transform:translate(-50%,200px)}.panel{left:var(--left);right:auto;max-height:calc(100vh - 200px);max-height:calc(100dvh - var(--top) - var(--bottom) - 180px)}.corner{display:grid;grid-template-columns:auto auto;grid-auto-flow:column;justify-items:end;align-items:start}#minimap{grid-column:1 / -1;grid-row:1}.corner-buttons{flex-direction:column;grid-row:2}.icon-btn{width:40px;height:40px;padding:0;justify-content:center}.icon-btn .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}@media (max-width: 700px){.gamebar{font-size:11px}.prompt{bottom:calc(var(--bottom) + 64px)}.toast{top:auto;bottom:calc(var(--bottom) + 128px)}#minimap{width:104px;height:104px}.stats{max-width:calc(100vw - 140px)}.hint{font-size:11px;white-space:normal;text-align:center;width:calc(100vw - 32px);border-radius:16px}.panel{left:var(--left);right:var(--right);bottom:var(--bottom);width:auto;max-height:52vh;max-height:max(200px,min(52dvh,calc(100dvh - 365px)));padding:18px}.panel img{aspect-ratio:16 / 8}.intro-card{padding:24px}}@media (max-width: 700px) and (max-height: 620px) and (orientation: portrait){.icon-btn{width:36px;height:36px;min-width:36px}.corner-buttons{gap:5px}}@media (max-height: 500px) and (orientation: landscape){:root{--edge: 10px}.corner{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:8px;row-gap:6px;justify-items:end;align-items:start}#minimap{width:86px;height:86px;grid-column:2;grid-row:1 / span 2}.corner-buttons{flex-direction:row;grid-column:1}.mood-buttons{grid-row:1}.corner-buttons:not(.mood-buttons){grid-row:2}.icon-btn{width:38px;height:38px;min-width:38px;padding:0;justify-content:center}.icon-btn .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.brand{font-size:15px;padding:7px 13px}.stats{gap:6px;max-width:calc(100vw - 360px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}.stat{padding:5px 10px;font-size:11px}.hint{display:none}.prompt{bottom:var(--bottom)}.toast{top:auto;bottom:calc(var(--bottom) + 60px)}.gamebar{top:auto;bottom:var(--bottom);transform:translate(-50%,200px)}.panel{left:var(--left);right:auto;top:auto;bottom:var(--bottom);width:min(380px,52vw);max-height:calc(100vh - 118px);max-height:calc(100dvh - 118px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.gb{max-height:94vh;max-height:94dvh;padding:18px}.cinematic .corner{top:var(--top)}}@media (prefers-reduced-motion: reduce){.panel,.toast,.intro{transition:none}}#scene{transition:filter 1.4s ease}.art{position:fixed;inset:0;z-index:8;pointer-events:none}.art-vignette{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;background:radial-gradient(ellipse at center,transparent 55%,rgba(20,15,10,.4) 100%)}body:is(.style-spirit,.style-koi,.style-windmill,.style-shrine,.style-sakura) .art-vignette{opacity:1}.gl-art .art-vignette{display:none}@media (prefers-reduced-motion: reduce){.ic *{animation:none!important;transition:none!important}}.travel{position:fixed;inset:0;z-index:30;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 50%,#fff,#eef5ff 55%,#cfe3ff);transition:opacity .6s ease}.travel.show{opacity:1}input,textarea{-webkit-user-select:text;user-select:text}
