:root{--bg: #06050b;--ink: #2a2130;--paper: #f6efe0;--paper-2: #ebe1cc;--edge: #1a1420;--accent: #c8423b;--accent-2: #3d6fa8;--muted: #5e5262;--hud: rgba(20, 16, 28, .82);--hud-ink: #f6efe0;--pixel: "Pixelify Sans", ui-monospace, monospace;--text: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--bg);overflow:hidden;overscroll-behavior:none}body{font-family:var(--text);color:var(--hud-ink);-webkit-tap-highlight-color:transparent}#game{position:fixed;inset:0}#game canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;outline:none;touch-action:none}#loading{position:fixed;inset:0;display:grid;place-items:center;font:600 20px var(--pixel);color:#9aa0c8;letter-spacing:4px;pointer-events:none}#loading .zzz{animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.plain-link{position:fixed;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));z-index:30;font:600 14px var(--pixel);color:var(--hud-ink);text-decoration:none;background:var(--hud);padding:5px 10px;border:2px solid #4a3f58;border-radius:2px}.hud-top-left{position:fixed;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));z-index:30;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.hud-top-left .plain-link{position:static}.portrait{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;cursor:pointer;background:#1c1624eb;border:2px solid #c9b596;border-radius:3px;color:var(--hud-ink);box-shadow:0 0 0 2px #1a1420,0 3px 0 2px #0006;font:600 13px var(--pixel);text-align:left}.portrait[hidden]{display:none}.portrait:hover,.portrait:focus-visible{background:#2c2440}.portrait .face{width:48px;height:39px;image-rendering:pixelated;background:#3d6fa8;border:2px solid #1a1420;box-shadow:inset 0 0 0 2px #5689c2}.portrait .stats{display:grid;gap:3px}.portrait .stat{position:relative;display:block;width:132px;height:14px;background:#1a1420;border:1px solid #0b0910;overflow:hidden}.portrait .stat .bar{position:absolute;inset:0;width:calc(var(--f) * 100%);background:var(--c);box-shadow:inset 0 2px #ffffff40}.portrait .stat .txt{position:relative;display:block;padding:0 4px;font:600 11px/14px var(--pixel);color:#fff;text-shadow:1px 1px 0 #000}.portrait.unseen{animation:glowpulse 1.4s ease-in-out infinite}@keyframes glowpulse{50%{box-shadow:0 0 0 2px #1a1420,0 0 14px 4px #ffd447b3;border-color:#ffd447}}.hud-top-right{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:30;display:flex;flex-direction:column;gap:6px;align-items:flex-end}.hud-row{display:flex;gap:8px;align-items:center}.minimap{display:flex;align-items:center;padding:6px;background:#1c1624eb;border:2px solid #4a3f58;border-radius:3px}.minimap[hidden]{display:none}.mm-room{width:58px;height:34px;cursor:pointer;border:2px solid #1a1420;display:grid;place-items:center;font:600 12px var(--pixel);color:#2a2130;padding:0}.mm-room[data-room=dorm]{background:#ecdfc6}.mm-room[data-room=home]{background:#d3ecda}.mm-room.here{outline:3px solid #ffd447;outline-offset:0;cursor:default}.mm-room:not(.here):hover{filter:brightness(1.08);text-decoration:underline}.mm-door{width:12px;height:4px;background:#c9b596}.title-card{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:29;font:600 20px var(--pixel);color:#fff6e0;background:#1a1420;padding:8px 18px;border:2px solid #c9b596;box-shadow:0 0 0 2px #1a1420,0 4px 0 2px #0006;pointer-events:none;opacity:0;white-space:nowrap}.title-card.show{animation:titlecard 3s ease-in-out forwards}@keyframes titlecard{0%{opacity:0;transform:translate(-50%,-8px)}15%,80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.counter,.hud-btn{font:600 15px var(--pixel);color:var(--hud-ink);background:var(--hud);border:2px solid #4a3f58;border-radius:2px;padding:6px 10px;line-height:1}.counter{color:#ffe9a8}.hud-btn{cursor:pointer;min-width:40px;min-height:32px}.hud-btn:hover,.hud-btn:focus-visible{background:#2c2440}.hud-btn[aria-pressed=true]{color:#ffe9a8}:focus-visible{outline:3px solid #ffd447;outline-offset:2px}.prompt{position:fixed;left:0;top:0;z-index:20;white-space:nowrap;display:flex;gap:6px;pointer-events:none}.chip{pointer-events:auto;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font:600 15px var(--pixel);color:var(--hud-ink);background:#14101ceb;padding:4px 9px 5px 5px;border:2px solid #fff6c8;border-radius:3px;min-height:32px;box-shadow:0 2px #00000080}.chip:hover{background:#2c2440}.chip:active{transform:translateY(1px)}.chip-door{padding-left:9px;border-color:#ffc070}.chip kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;font:600 13px var(--pixel);background:#fff6c8;color:var(--ink);border-radius:2px;box-shadow:inset 0 -3px #c9b596,0 0 0 1px #1a1420}.chip-info kbd{background:#bfe0ff;box-shadow:inset 0 -3px #7aa3d0,0 0 0 1px #1a1420}body.touch .chip{padding-left:9px}.bubble{position:fixed;left:0;top:0;z-index:21;pointer-events:none;max-width:min(320px,80vw);font:600 15px/1.3 var(--pixel);color:var(--ink);background:#fffdf6;padding:6px 10px;border:2px solid #1a1420;border-radius:3px;box-shadow:0 3px #00000059;text-align:center}.bubble[hidden]{display:none}.bubble:after{content:"";position:absolute;left:50%;bottom:-8px;width:10px;height:8px;transform:translate(-50%);background:#fffdf6;clip-path:polygon(0 0,100% 0,50% 100%)}.bubble-thought{font-size:11px;line-height:1.25;font-style:italic;padding:2px 7px;max-width:150px;opacity:.72;color:#4a4050;background:#f2eefc;border:1px dashed rgba(26,20,32,.6);border-radius:9px;box-shadow:none;animation:thought 2.8s ease-in-out forwards}.bubble-thought:after{width:4px;height:4px;bottom:-6px;border-radius:50%;clip-path:none;background:#f2eefc;border:1px solid rgba(26,20,32,.6)}@keyframes thought{0%{opacity:0}12%,75%{opacity:.72}to{opacity:0}}.bubble-small{font-size:14px;padding:3px 8px}.bubble-need{font-size:12px;line-height:1.2;padding:2px 7px;max-width:180px;border-width:1px;box-shadow:0 2px #0000004d}.bubble-need:after{bottom:-6px;width:8px;height:6px}.portrait .stat.low .bar{animation:lowpulse 1.6s ease-in-out infinite}@keyframes lowpulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.portrait .stat.low .bar{animation:none}}.message{position:fixed;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:25;font:600 18px var(--pixel);color:var(--hud-ink);background:var(--hud);padding:10px 16px;border:2px solid #4a3f58;border-radius:2px;text-align:center;max-width:calc(100vw - 32px)}.message{pointer-events:none}.message.wake{animation:pulse 1.6s ease-in-out infinite;border-color:#fff6c8;cursor:pointer;pointer-events:auto}.toast{pointer-events:none}@keyframes pulse{50%{opacity:.55}}.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%);z-index:26;font:600 17px var(--pixel);color:var(--ink);background:var(--paper);padding:8px 14px;border:2px solid var(--edge);border-radius:2px;box-shadow:0 3px 0 var(--edge)}.toast.has-btn{pointer-events:auto;display:flex;gap:10px;align-items:center}.toast-btn{font:600 15px var(--pixel);cursor:pointer;padding:4px 10px;color:#fff;background:var(--accent-2);border:2px solid var(--edge);box-shadow:0 2px 0 var(--edge)}.rotate-hint{display:none}body.touch .rotate-hint{position:fixed;top:54px;left:50%;transform:translate(-50%);z-index:24;pointer-events:none;font:600 14px var(--pixel);color:#cfc8e6;text-align:center;width:max-content;max-width:calc(100vw - 32px)}@media(orientation:portrait){body.touch .rotate-hint{display:block}}.joystick{position:fixed;left:max(22px,env(safe-area-inset-left));bottom:max(22px,env(safe-area-inset-bottom));z-index:22;width:120px;height:120px;border-radius:50%;background:#ffffff1a;border:3px solid rgba(255,255,255,.25);touch-action:none;display:grid;place-items:center}.joystick .knob{width:52px;height:52px;border-radius:50%;background:#ffffff8c;border:3px solid rgba(255,255,255,.8)}.act-btns{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(26px,env(safe-area-inset-bottom));z-index:22;display:flex;gap:12px;align-items:flex-end}.act-btn{width:78px;height:78px;border-radius:50%;font:600 15px/1.1 var(--pixel);color:#fff;padding:4px;background:#ffffff2e;border:3px solid rgba(255,255,255,.6);touch-action:manipulation;overflow:hidden;text-overflow:ellipsis}.act-btn.act-e{width:88px;height:88px;border-color:#fff6c8}.act-btn.act-f{border-color:#bfe0ff;margin-bottom:30px}.act-btn:disabled{opacity:.35}.act-btn:active:not(:disabled){background:#ffffff61}body.touch .message{bottom:160px}.panel-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;grid-template-columns:minmax(0,1fr);background:#06050b8c;opacity:0;transition:opacity .12s}.panel-backdrop.open{opacity:1}.panel-backdrop.closing{opacity:0;pointer-events:none}.panel{width:min(760px,100%);max-height:min(86vh,900px);display:flex;flex-direction:column;background:var(--paper);color:var(--ink);border:3px solid var(--edge);box-shadow:0 0 0 3px #c9b596,0 0 0 6px var(--edge),0 10px 0 6px #00000073;transform:scale(.94) translateY(6px);transition:transform .14s cubic-bezier(.2,1.4,.4,1);font-size:17px;line-height:1.55}.panel-backdrop.open .panel{transform:none}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 10px 18px;background:var(--paper-2);border-bottom:3px solid var(--edge)}.panel-head h2{margin:0;font:600 24px/1.2 var(--pixel)}.panel-close{font:600 20px var(--pixel);width:40px;height:40px;flex:none;cursor:pointer;background:var(--paper);color:var(--ink);border:2px solid var(--edge);box-shadow:0 2px 0 var(--edge)}.panel-close:hover{background:#fff}.panel-close:active{transform:translateY(2px);box-shadow:none}.panel-body{overflow-y:auto;padding:20px;overscroll-behavior:contain}.panel-body>:first-child,.tabpanel>:first-child{margin-top:0}.panel .panel-body>:last-child,.panel .tabs-wrap .tabpanels,.panel .tabpanel>:last-child,.panel .tabpanel>:last-child>:last-child{margin-bottom:0}.panel.panel-compact{width:min(560px,100%)}.panel-body p{margin:0 0 12px}.subtitle{color:var(--muted);font-weight:600}.sec-title{font:600 21px/1.25 var(--pixel);margin:4px 0 6px}.list-title{font:600 17px var(--pixel);margin:14px 0 4px}.list{margin:0 0 12px;padding-left:22px}.list li{margin:2px 0}.todo{background:#ffe58a;color:#3a2c00;padding:0 4px;border-radius:2px;font-size:.92em}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:4px 0 14px}.facts div{background:#fff;border:2px solid var(--edge);padding:6px 10px}.facts dt{font:600 14px var(--pixel);color:var(--muted)}.facts dd{margin:0;font-weight:600}.facts.facts-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr}@media(max-width:520px){.facts.facts-3{grid-template-columns:repeat(2,minmax(0,1fr))}}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}.tags .tag{font:600 13px var(--pixel);padding:2px 8px;border:2px solid var(--edge);background:#fff}.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:4px 0 14px;padding:0}.chips.one-line{flex-wrap:nowrap;gap:6px}.chips.one-line .tag{font-size:13px;padding:4px 8px;white-space:nowrap}@media(max-width:760px){.chips.one-line{flex-wrap:wrap}}.chips .tag{font:600 14px var(--font-label);padding:4px 10px;border:2px solid var(--edge);background:#fff;box-shadow:0 2px 0 var(--edge)}.list-plain{margin:0 0 12px}.fun-fact{background:#fff6c8;border:2px solid var(--edge);padding:6px 10px}.links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.links.links-top{margin:2px 0 14px}.link{display:inline-block;padding:6px 12px;border:2px solid var(--edge);background:#fff;color:var(--accent-2);font-weight:600;text-decoration:none;box-shadow:0 2px 0 var(--edge)}a.link:hover{background:#eef4ff;text-decoration:underline}.link-ico{width:18px;height:18px;margin-right:6px;vertical-align:-3px;border-radius:5px;image-rendering:auto}.todo-link{color:var(--muted)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pair{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:8px 18px;align-items:center;margin:0 0 16px}.pair .chips{margin:0}.pair .chips .tag{line-height:1.45;padding:8px 12px}.pair-imgs{display:grid;gap:8px;align-items:start}.pair:has(.pair-imgs>:nth-child(2)){grid-template-columns:minmax(0,1fr) 340px}.pair-imgs:has(>:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:520px){.pair,.pair:has(.pair-imgs>:nth-child(2)){grid-template-columns:1fr}.pair-imgs{grid-template-columns:repeat(auto-fit,minmax(120px,160px))}}.gallery{display:grid;gap:10px;margin:8px 0 14px}.gallery.single{grid-template-columns:minmax(0,360px)}.gallery.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.gallery.viewer{grid-auto-flow:column;grid-auto-columns:minmax(240px,80%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.gallery.viewer .media{scroll-snap-align:start}.gallery.slides{grid-auto-flow:column;grid-auto-columns:360px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.gallery.slides .media{scroll-snap-align:start}@media(max-width:520px){.gallery.slides{grid-auto-columns:85%}}.gallery.scroll{display:flex;align-items:flex-start;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;overscroll-behavior-x:contain}.gallery.scroll .media{display:table;flex:none;scroll-snap-align:start}.gallery.scroll .media img{height:var(--h, 320px);width:auto;max-width:none}.gallery.scroll figcaption{display:table-caption;caption-side:bottom;font-size:14px;line-height:1.4}.gallery .media.video.in-gallery{margin:0}.gallery.scroll .media.in-gallery video{height:var(--h, 320px);width:auto;max-width:none;max-height:none;border:2px solid var(--edge)}@media(max-width:520px){.gallery.scroll .media img,.gallery.scroll .media.in-gallery video{height:calc(var(--h, 320px) * .75)}}.gallery.full{grid-template-columns:minmax(0,1fr);gap:14px}.gallery.stack{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row dense;gap:14px}.gallery.stack .media{grid-column:1 / -1}.gallery.stack .media.tall{grid-column:auto}.gallery.stack .media.tall img{aspect-ratio:4 / 5;object-fit:cover}.gallery.row{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px}.gallery.row img{aspect-ratio:4 / 5;object-fit:cover}.gallery.row figcaption{font-size:13px;text-align:center}.gallery.polaroid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;padding:8px 4px}.gallery.polaroid .media{background:#fff;padding:8px 8px 4px;box-shadow:0 3px #00000040;border:1px solid #d8cfbd}.gallery.polaroid .media:nth-child(odd){transform:rotate(-2deg)}.gallery.polaroid .media:nth-child(2n){transform:rotate(1.5deg)}.media{margin:0}.gallery .media.wide{grid-column:1 / -1}.media img{width:100%;height:auto;display:block;border:2px solid var(--edge)}.media figcaption{font-size:15px;color:var(--muted);margin-top:4px}.ph-img,.ph-video{aspect-ratio:4 / 3;display:grid;place-items:center;text-align:center;padding:10px;background:repeating-linear-gradient(45deg,#ece2cd 0 8px,#e4d8bf 8px 16px);border:2px dashed #9b8a6c;color:var(--muted);font-size:15px}.ph-video{aspect-ratio:16 / 9;margin:8px 0 14px}.embed{position:relative;width:100%;margin:8px 0 14px;border:3px solid var(--edge);background:#000}.embed.video{aspect-ratio:16 / 9}.embed.spotify{height:96px;border:0;background:transparent;border-radius:12px;overflow:hidden}.embed-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.embed-row .embed{margin:8px 0 14px}@media(max-width:640px){.embed-row{grid-template-columns:1fr;gap:0}}.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.media.video{margin:8px 0 14px}.embed.mp4{display:block;width:100%;height:auto;margin:0;max-height:70vh}.story-box{margin:6px 0 18px;background:#fffdf8;border:2px solid var(--edge);box-shadow:0 3px 0 var(--edge)}.story-title{margin:0;padding:10px 14px;font:600 17px var(--pixel);background:#efe4cd;border-bottom:2px solid var(--edge)}.story-scroll{max-height:340px;overflow-y:auto;padding:14px 16px 4px;overscroll-behavior:contain}.story-scroll:focus-visible{outline:3px solid var(--accent-2);outline-offset:-3px}.story-scroll p{line-height:1.7}.story-more{margin:2px 0 14px}.story-more summary{display:inline-block;cursor:pointer;list-style:none;padding:6px 12px;margin-bottom:10px;font:700 14px var(--font-label);color:var(--accent-2);background:#fff;border:2px solid var(--edge);box-shadow:0 2px 0 var(--edge)}.story-more summary::-webkit-details-marker{display:none}.story-more summary:after{content:" +"}.story-more[open] summary:after{content:" -"}.story-more summary:hover{background:#eef4ff}.tabs-wrap{margin-top:6px}.tablist{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tab{font:600 16px var(--pixel);cursor:pointer;padding:8px 12px;color:var(--ink);background:var(--paper-2);border:2px solid var(--edge);box-shadow:0 2px 0 var(--edge)}.tab[aria-selected=true]{background:var(--ink);color:var(--paper)}.tab:active{transform:translateY(2px);box-shadow:none}.tabpanel:focus-visible{outline-offset:4px}.tabs-notes .tablist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:14px 16px;padding:16px;background:#c69863;border:3px solid #6b4429;margin-bottom:12px}.tab-notes{position:relative;display:flex;align-items:flex-start;gap:8px;text-align:left;min-height:96px;font:600 16px/1.3 var(--pixel);padding:14px 12px 12px 10px;border:none;box-shadow:2px 3px #3c1e0a59;background:var(--note);color:var(--ink);transform:rotate(var(--tilt))}.tab-notes:nth-child(6n+1){--note: #f7de6a;--tilt: -1.5deg}.tab-notes:nth-child(6n+2){--note: #f2a6b8;--tilt: 1deg}.tab-notes:nth-child(6n+3){--note: #a9d2f2;--tilt: -.5deg}.tab-notes:nth-child(6n+4){--note: #b5e3a6;--tilt: 1.5deg}.tab-notes:nth-child(6n+5){--note: #f7de6a;--tilt: -1deg}.tab-notes:nth-child(6n+6){--note: #f5b36a;--tilt: .5deg}.tab-notes .check{flex:none;display:grid;place-items:center;width:20px;height:20px;background:#fff;border:2px solid var(--ink);color:#2f8a3a;font:700 15px/1 var(--text)}.tab-notes:before{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:#d33a3a;box-shadow:0 1px #7a1a1a}.tab-notes[aria-selected=true]{background:var(--note);color:var(--ink);outline:3px solid var(--ink);outline-offset:2px;transform:rotate(0) scale(1.03)}.tabs-shelf{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:start}.tabs-shelf .tablist{flex-direction:row;gap:6px;background:#8f5f3d;border:3px solid var(--edge);padding:6px}.tab-shelf{flex:1;text-align:center;background:#5a3e2a;color:#f6efe0;border:none;border-bottom:5px solid #b88a5a;box-shadow:none;padding:12px 10px;margin:0}.tab-shelf[aria-selected=true]{background:#fff6c8;color:var(--ink)}.panel.piano{width:min(560px,100%)}.piano-hint{color:var(--muted)}.sound-off{background:#fff6c8;border:2px solid var(--edge);padding:6px 10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sound-off .link{cursor:pointer;font:inherit;font-weight:600}.keys{position:relative;display:grid;grid-template-columns:repeat(8,1fr);height:190px;margin-top:8px;background:#22232a;padding:10px 10px 12px;border:3px solid var(--edge)}.key{cursor:pointer;border:2px solid var(--edge);font:600 15px var(--pixel);touch-action:manipulation}.key.white{background:#f6f3ea;color:var(--muted);display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;box-shadow:inset 0 -6px #d8d2c2}.key.white.down,.key.white:active{background:#fff6c8;box-shadow:inset 0 -2px #d8d2c2}.key.black{position:absolute;top:10px;width:calc((100% - 20px)*.075);height:58%;left:calc(10px + (100% - 20px) / 8 * var(--at) - (100% - 20px) / 8 * .3);background:#22232a;box-shadow:inset 0 -5px #000}.key.black.down,.key.black:active{background:#4a4d57}.panel.snapshot{width:min(640px,100%)}.polaroid{margin:6px auto 0;background:#fff;padding:12px 12px 6px;border:1px solid #d8cfbd;box-shadow:0 4px #00000040;transform:rotate(-1.5deg);animation:slidein .35s ease-out}.polaroid img{width:100%;display:block;image-rendering:pixelated;border:2px solid var(--edge)}.polaroid figcaption{font:600 16px var(--pixel);color:var(--muted);text-align:center;padding-top:6px}@keyframes slidein{0%{transform:translateY(40px) rotate(4deg);opacity:0}to{transform:rotate(-1.5deg);opacity:1}}.flash{position:fixed;inset:0;z-index:60;background:#fff;pointer-events:none;animation:flash .45s ease-out forwards}.flash.soft{background:#ffffff59}@keyframes flash{0%{opacity:1}to{opacity:0}}.suggest{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:45;width:min(360px,calc(100vw - 24px));padding:12px 14px;background:var(--paper);color:var(--ink);border:3px solid var(--edge);box-shadow:0 4px 0 var(--edge);font:600 15px/1.35 var(--pixel);text-align:center}.suggest p{margin:0 0 10px}.suggest-btns{display:flex;gap:10px;justify-content:center;margin:0!important}.suggest .menu-btn{font-size:15px;padding:8px 12px}.panel.pause{width:min(360px,100%)}.pause-body{display:flex;flex-direction:column;gap:10px}.menu-btn{font:600 18px var(--pixel);padding:10px 14px;cursor:pointer;text-align:center;text-decoration:none;color:var(--ink);background:#fff;border:2px solid var(--edge);box-shadow:0 3px 0 var(--edge)}.menu-btn:hover{background:#fff6c8}.menu-btn.danger{color:var(--accent)}.now-playing{font:600 13px var(--pixel);color:var(--muted);margin:4px 0 0;text-align:center}.pause-hint{font-size:15px;color:var(--muted);margin:6px 0 0;text-align:center}@media(max-width:640px){.panel{font-size:16px;max-height:92vh}.panel-head h2{font-size:20px}.tab-shelf{padding:10px 6px}.tabs-notes .tablist{grid-template-columns:1fr 1fr;padding:8px}.portrait .stat{width:104px}}@media(max-width:560px){.portrait{padding:4px 6px 4px 4px;gap:6px}.portrait .face{width:32px;height:26px}.portrait .stat{width:84px;height:11px}.portrait .stat .txt{font-size:9px;line-height:11px}.hud-row{flex-wrap:wrap;justify-content:flex-end;max-width:150px;gap:4px}.hud-row .counter{order:3}.counter,.hud-btn{font-size:13px;padding:5px 8px}.hud-btn{min-height:30px}.mm-room{width:44px;height:24px;font-size:10px}.title-card{top:140px}body.touch .rotate-hint{top:196px}.title-card{font-size:16px}.plain-link{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.panel{transform:none}.title-card.show{opacity:1}}@media(max-height:500px){.plain-link,.counter,.hud-btn{font-size:13px;padding:5px 8px}.hud-btn{min-height:28px;min-width:34px}.message,body.touch .message{bottom:auto;top:50px;font-size:15px;padding:7px 12px}.toast{bottom:auto;top:96px}.joystick{width:104px;height:104px}.act-btn{width:64px;height:64px;font-size:13px}.act-btn.act-e{width:72px;height:72px}.act-btn.act-f{margin-bottom:20px}.portrait{padding:4px 6px 4px 4px;gap:6px}.portrait .face{width:32px;height:26px}.portrait .stat{width:92px;height:11px}.portrait .stat .txt{font-size:9px;line-height:11px}.mm-room{width:44px;height:24px;font-size:10px}.title-card{font-size:16px;padding:5px 12px}}.is-off{visibility:hidden}.hud-top-left,.hud-top-right{opacity:.78;transition:opacity .15s}.hud-top-left:hover,.hud-top-left:focus-within,.hud-top-right:hover,.hud-top-right:focus-within{opacity:1}.hud-top-left{top:8px;left:8px;gap:4px}.portrait{padding:3px 6px 3px 3px;gap:6px;border-width:1px;box-shadow:0 0 0 1px #1a1420}.portrait .face{width:30px;height:25px;border-width:1px;box-shadow:none}.portrait .stats{gap:2px}.portrait .stat{width:104px;height:11px}.portrait .stat .txt{font-size:9px;line-height:11px;padding:0 3px}.plain-link,.hud-top-left .plain-link{font-size:11px;padding:3px 7px;border-width:1px}.hud-top-right{top:8px;right:8px;gap:4px;width:44px;align-items:stretch}.hud-row{flex-direction:column;align-items:stretch;gap:4px}.hud-row .counter{order:3}.hud-btn{min-width:0;min-height:30px;padding:4px 0;font-size:12px;border-width:1px}.counter{display:grid;justify-items:center;gap:1px;padding:3px 0;border-width:1px;font-size:11px}.counter .c-l{font-size:8px;opacity:.85}.counter .c-n{font-size:11px}.minimap{flex-direction:column;padding:3px;border-width:1px}.mm-room{width:36px;height:20px;font-size:8px;border-width:1px}.mm-door{width:3px;height:5px}.mm-room.here{outline-width:2px}@media(max-width:560px),(max-height:500px){.portrait .stat{width:78px}.hud-row{flex-wrap:nowrap;max-width:none}.counter,.hud-btn{font-size:11px;padding:3px 0}.mm-room{width:36px;height:18px;font-size:8px}}.panel{font-family:var(--font-body);font-size:17px;line-height:1.65}.panel-head h2{font:400 15px/1.5 var(--font-heading)}.panel-body p,.media figcaption,.list li,.piano-hint,.pause-hint{font-family:var(--font-body)}.subtitle{font:700 14px/1.5 var(--font-label);letter-spacing:.02em;color:var(--muted)}.sec-title{font:700 19px/1.3 var(--font-label)}.list-title{font:700 13px var(--font-label);text-transform:uppercase;letter-spacing:.08em}.facts dt{font:700 11px var(--font-label);text-transform:uppercase;letter-spacing:.08em}.facts dd{font-family:var(--font-body)}.tags .tag{font:700 12px var(--font-label);letter-spacing:.04em}.tab,.tab-notes{font-family:var(--font-label);font-weight:700;font-size:14px;letter-spacing:.02em}.link,.toast-btn,.sound-off,.sound-off .link{font-family:var(--font-label);font-weight:700;font-size:14px}.menu-btn{font:700 15px var(--font-label);letter-spacing:.04em}.now-playing{font:400 12px var(--font-label)}.writeup strong,.fun-fact strong{font-family:var(--font-label);font-size:13px;text-transform:uppercase;letter-spacing:.06em}.chip{font:700 13px var(--font-label);letter-spacing:.02em}.chip kbd{font:700 12px var(--font-label)}.polaroid figcaption{font:700 14px var(--font-label)}.todo{font-family:var(--font-body)}.plain-link,.hud-top-left .plain-link{position:fixed;top:max(8px,env(safe-area-inset-top));left:50%;z-index:31;transform:translate(-50%);white-space:nowrap;opacity:.85;transition:opacity .45s ease,visibility 0s linear 0s}.plain-link:hover,.plain-link:focus-visible{opacity:1}body.title-on .plain-link{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}@media(max-width:560px){.plain-link,.hud-top-left .plain-link{top:calc(max(8px,env(safe-area-inset-top)) + 50px);left:8px;transform:none}}@media(prefers-reduced-motion:reduce){.plain-link{transition:none}}.portrait{padding:5px 10px 5px 5px;gap:8px;border-width:2px;box-shadow:0 0 0 2px #1a1420,0 3px 0 2px #0006}.portrait .face{width:48px;height:39px;border-width:2px}.portrait .stats{gap:3px}.portrait .stat{width:136px;height:14px}.portrait .stat .txt{font-size:11px;line-height:14px;padding:0 4px}.plain-link,.hud-top-left .plain-link{top:max(14px,env(safe-area-inset-top));font:600 20px var(--pixel);color:#fff6e0;background:#1a1420;padding:8px 18px;text-decoration:none;border:2px solid #c9b596;border-radius:0;box-shadow:0 0 0 2px #1a1420,0 4px 0 2px #0006}.plain-link:hover,.plain-link:focus-visible{background:#2c2440;text-decoration:underline}@media(max-height:500px){.plain-link,.hud-top-left .plain-link{font-size:16px;padding:5px 12px}.portrait .face{width:36px;height:29px}.portrait .stat{width:104px;height:12px}.portrait .stat .txt{font-size:9px;line-height:12px}}@media(max-width:560px){.portrait .face{width:34px;height:28px}.portrait .stat{width:92px;height:11px}.portrait .stat .txt{font-size:9px;line-height:11px}.plain-link,.hud-top-left .plain-link{top:calc(max(8px,env(safe-area-inset-top)) + 56px);left:8px;transform:none;font-size:14px;padding:5px 10px}}.portrait .stat .bar{transition:width .7s cubic-bezier(.22,1,.36,1)}.portrait .stat.refill{animation:statflash .9s ease-out}@keyframes statflash{0%,40%{box-shadow:0 0 0 2px #fff3b0}to{box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.portrait .stat .bar{transition:none}.portrait .stat.refill{animation:none}}.hud-top-right{width:80px;right:max(6px,env(safe-area-inset-right));gap:6px;opacity:.95}.hud-row{gap:6px}.hud-btn,.counter{display:grid;justify-items:center;align-content:center;gap:3px;min-height:52px;padding:6px 4px;font:600 13px/1 var(--pixel);color:var(--hud-ink);background:#221a2c;border:2px solid #c9b596;border-radius:2px;box-shadow:0 0 0 2px #1a1420,inset 0 -4px #00000059,0 3px 0 2px #00000059}.hud-btn .ico{font-size:20px;line-height:1;color:#fff6e0}.hud-btn .lbl{font-size:12px}.hud-btn[aria-pressed=true] .ico,.hud-btn[aria-pressed=true] .lbl{color:#ffe9a8}.hud-btn:hover,.hud-btn:focus-visible{background:#34284a}.hud-btn:active{transform:translateY(2px);box-shadow:0 0 0 2px #1a1420,inset 0 -2px #00000059}.counter{cursor:default;color:#ffe9a8}.counter[hidden]{display:none}.counter .c-l{font-size:11px;opacity:.9;color:var(--hud-ink)}.counter .c-n{font-size:20px}.counter.secrets .c-n{color:#9fe6ff}.counter.pop{animation:secretpop .9s ease-out}@keyframes secretpop{0%,35%{box-shadow:0 0 0 2px #1a1420,0 0 14px 4px #9fe6ffcc}to{box-shadow:0 0 0 2px #1a1420}}.minimap{padding:6px;gap:0;border-width:2px;border-color:#c9b596;box-shadow:0 0 0 2px #1a1420}.mm-room{width:64px;height:36px;font-size:13px;border-width:2px}.mm-door{width:6px;height:8px}.mm-room.here{outline-width:3px}@media(max-width:560px),(max-height:500px){.hud-top-right{width:66px;gap:4px}.hud-row{gap:4px}.hud-btn,.counter{min-height:38px;padding:3px 2px;gap:2px}.hud-btn .ico{font-size:15px}.hud-btn .lbl,.counter .c-l{font-size:9px}.counter .c-n{font-size:14px}.mm-room{width:54px;height:26px;font-size:10px}}.hud-btn .ico .spk{display:block;width:18px;height:20px}.hud-btn .ico.off{opacity:.45;text-decoration:line-through}@media(max-width:560px),(max-height:500px){.hud-btn .ico .spk{width:14px;height:16px}}.portrait{position:relative}.portrait.unseen:after{content:"";position:absolute;left:calc(100% + 6px);top:50%;width:24px;height:33px;margin-top:-16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 11' shape-rendering='crispEdges'%3E%3Crect x='0' y='5' width='1' height='1' fill='%231a1420'/%3E%3Crect x='1' y='4' width='1' height='1' fill='%231a1420'/%3E%3Crect x='1' y='5' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='1' y='6' width='1' height='1' fill='%231a1420'/%3E%3Crect x='2' y='3' width='1' height='1' fill='%231a1420'/%3E%3Crect x='2' y='4' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='2' y='5' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='2' y='6' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='2' y='7' width='1' height='1' fill='%231a1420'/%3E%3Crect x='3' y='2' width='1' height='1' fill='%231a1420'/%3E%3Crect x='3' y='3' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='3' y='4' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='3' y='5' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='3' y='6' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='3' y='7' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='3' y='8' width='1' height='1' fill='%231a1420'/%3E%3Crect x='4' y='1' width='1' height='1' fill='%231a1420'/%3E%3Crect x='4' y='2' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='4' y='3' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='4' y='4' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='4' y='5' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='4' y='6' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='4' y='7' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='4' y='8' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='4' y='9' width='1' height='1' fill='%231a1420'/%3E%3Crect x='5' y='0' width='1' height='1' fill='%231a1420'/%3E%3Crect x='5' y='1' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='2' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='3' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='4' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='5' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='6' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='7' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='8' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='9' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='5' y='10' width='1' height='1' fill='%231a1420'/%3E%3Crect x='6' y='0' width='1' height='1' fill='%231a1420'/%3E%3Crect x='6' y='1' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='6' y='2' width='1' height='1' fill='%23fff4b0'/%3E%3Crect x='6' y='3' width='1' height='1' fill='%23fff4b0'/%3E%3Crect x='6' y='4' width='1' height='1' fill='%23fff4b0'/%3E%3Crect x='6' y='5' width='1' height='1' fill='%23fff4b0'/%3E%3Crect x='6' y='6' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='6' y='7' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='6' y='8' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='6' y='9' width='1' height='1' fill='%23ffd447'/%3E%3Crect x='6' y='10' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='1' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='2' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='3' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='4' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='5' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='6' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='7' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='8' width='1' height='1' fill='%231a1420'/%3E%3Crect x='7' y='9' width='1' height='1' fill='%231a1420'/%3E%3C/svg%3E") center / contain no-repeat;image-rendering:pixelated;pointer-events:none;animation:aboutnudge .9s ease-in-out infinite}@keyframes aboutnudge{50%{transform:translate(7px)}}@media(max-width:560px),(max-height:500px){.portrait.unseen:after{width:16px;height:22px;margin-top:-11px;left:calc(100% + 5px)}}body.title-on .plain-link{opacity:.85;visibility:visible;pointer-events:auto}.title-card{top:calc(max(14px,env(safe-area-inset-top)) + 64px)}@media(max-height:500px){.title-card{top:calc(max(8px,env(safe-area-inset-top)) + 48px)}}@media(max-width:560px){.title-card{top:140px}}.key.white{flex-direction:column;align-items:center;justify-content:flex-end;gap:2px}.key .kl{font:600 16px var(--pixel);color:#3a3346}.key.white .kn{font-size:10px;opacity:.6}.key.black{display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px}.key.black .kl{color:#e8e4f0;font-size:13px}.panel.phonecard{max-width:360px}.ig-card{display:grid;justify-items:center;gap:8px;text-align:center;padding:6px 0 4px}.ig-logo{width:56px;height:56px;border-radius:14px;image-rendering:auto}.ig-ph{display:block;background:#c8417e}.ig-handle{margin:0;font:700 22px var(--font-label);color:var(--ink)}.ig-line{margin:0}.media-link{display:block;cursor:pointer}.media-link:hover img,.media-link:focus-visible img{outline:3px solid var(--edge);outline-offset:2px;filter:brightness(1.05)}.setlist{list-style:none;counter-reset:piece;margin:4px 0 14px;padding:0;border:2px solid var(--edge);background:#fffdf8}.setlist li{counter-increment:piece;display:grid;grid-template-columns:2em minmax(0,1fr);column-gap:4px;padding:5px 12px;line-height:1.4}.setlist li+li{border-top:1px dashed #c9b99a}.setlist li:before{content:counter(piece) ".";font-weight:700;color:var(--muted)}.setlist strong{margin-right:8px}.setlist span{color:var(--muted)}.setlist li p{margin:0}.panel.panel-id-about{width:min(880px,100%);max-height:min(94vh,960px)}.ab-top{display:grid;grid-template-columns:160px minmax(0,1fr);gap:22px;align-items:start}.ab-shot{width:160px;height:160px;object-fit:cover;display:block;background:var(--paper-2);border:3px solid var(--edge);box-shadow:0 0 0 3px #c9b596,0 0 0 6px var(--edge),0 6px 0 6px #0000002e;margin:6px}.panel-body .ab-hi{font:400 20px/1.4 var(--font-heading);margin:2px 0 12px;color:var(--ink)}.panel-body .ab-text{margin:0 0 6px;font-size:17px;line-height:1.55}.panel-body .ab-callout,.panel-body .callout{display:inline-block;margin:8px 0 12px;padding:6px 12px;font:700 15px/1.45 var(--font-label);background:#fff6c8;border:2px solid var(--edge);box-shadow:0 2px 0 var(--edge)}.ab-links{display:flex;flex-wrap:wrap;gap:8px}.ab-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;cursor:pointer;font:700 14px var(--font-label);text-decoration:none;border:2px solid var(--edge);box-shadow:0 2px 0 var(--edge)}.ab-btn:active{transform:translateY(2px);box-shadow:none}.ab-primary{background:var(--accent-2);color:#fff}.ab-primary:hover{background:#2f5c8f}.ab-secondary{background:#fff;color:var(--accent-2)}.ab-secondary:hover{background:#eef4ff}.ab-btn:focus-visible{outline:3px solid #f0b43c;outline-offset:2px}.ab-ico{width:18px;height:18px;flex:none;border-radius:4px}svg.ab-ico{fill:currentColor;border-radius:0;width:15px;height:18px}.ab-how{margin-top:18px;padding-top:14px;border-top:2px dashed #c9b596}.panel-body .ab-how-h{font:700 13px var(--font-label);text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;color:var(--muted)}.ab-how-row{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px}.ab-how-item{display:flex;align-items:center;gap:9px}.ab-keys{display:inline-flex;gap:4px;align-items:center}.ab-key{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 4px;font:700 14px var(--font-label);color:var(--ink);background:#fff6c8;border-radius:3px;box-shadow:inset 0 -4px #c9b596,0 0 0 2px var(--edge)}.ab-mouse{width:24px;height:30px;fill:var(--ink)}.ab-how-l{font:700 14px var(--font-label)}.panel-body .ab-line{margin:2px 0 0;font-size:16px}.ab-foot{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 20px;background:var(--paper-2);border-top:3px solid var(--edge)}.ab-foot .ab-btn{padding:9px 18px;font-size:15px}@media(max-width:600px){.ab-top{grid-template-columns:minmax(0,1fr);justify-items:center;gap:12px}.ab-shot{width:120px;height:120px}.ab-intro{text-align:left;width:100%}.panel-body .ab-hi{font-size:16px;text-align:center}.ab-how-row{gap:10px 16px}.ab-key{min-width:26px;height:26px}.ab-foot{justify-content:stretch;padding:10px 14px}.ab-foot .ab-btn{flex:1 1 auto;justify-content:center;padding:9px 8px;font-size:13px;white-space:nowrap}}@media(prefers-reduced-motion:reduce){.ab-btn:active{transform:none}}
