.ui-panelS{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/panelS.501fa3bb2a.png) 0 14 0 11 fill repeat;border-width:0 calc(14 * var(--px)) 0 calc(11 * var(--px));height:calc(28 * var(--px));min-width:calc(26 * var(--px));image-rendering:pixelated}.ui-panelL{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/panelL.e5b9261092.png) 0 14 0 14 fill repeat;border-width:0 calc(14 * var(--px)) 0 calc(14 * var(--px));height:calc(31 * var(--px));min-width:calc(29 * var(--px));image-rendering:pixelated}.ui-bar-track{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/bar_track.25dd6d4846.png) 0 11 0 10 fill repeat;border-width:0 calc(11 * var(--px)) 0 calc(10 * var(--px));height:calc(16 * var(--px));min-width:calc(22 * var(--px));image-rendering:pixelated}.ui-bar-fill{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/bar_fill.dd64c67eec.png) 0 6 0 6 fill repeat;border-width:0 calc(6 * var(--px)) 0 calc(6 * var(--px));height:calc(12 * var(--px));min-width:calc(13 * var(--px));image-rendering:pixelated}.ui-btn-wide{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/btn_wide.3ea3d4f940.png) 0 4 0 3 fill repeat;border-width:0 calc(4 * var(--px)) 0 calc(3 * var(--px));height:calc(21 * var(--px));min-width:calc(8 * var(--px));image-rendering:pixelated}.ui-btn-wide-pressed{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/btn_wide_pressed.e5b6f1a0f4.png) 0 3 0 4 fill repeat;border-width:0 calc(3 * var(--px)) 0 calc(4 * var(--px));height:calc(19 * var(--px));min-width:calc(8 * var(--px));image-rendering:pixelated}.ui-btn-primary{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/btn_primary.e86201b53b.png) 0 3 0 3 fill repeat;border-width:0 calc(3 * var(--px)) 0 calc(3 * var(--px));height:calc(21 * var(--px));min-width:calc(7 * var(--px));image-rendering:pixelated}.ui-btn-primary-pressed{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/btn_primary_pressed.e5f5fdc5a0.png) 0 3 0 4 fill repeat;border-width:0 calc(3 * var(--px)) 0 calc(4 * var(--px));height:calc(20 * var(--px));min-width:calc(8 * var(--px));image-rendering:pixelated}.ui-input{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/input.d9aed923de.png) 0 4 0 4 fill repeat;border-width:0 calc(4 * var(--px)) 0 calc(4 * var(--px));height:calc(18 * var(--px));min-width:calc(9 * var(--px));image-rendering:pixelated}.ui-key-space{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/key_space.ae719231d2.png) 0 3 0 3 fill repeat;border-width:0 calc(3 * var(--px)) 0 calc(3 * var(--px));height:calc(18 * var(--px));min-width:calc(7 * var(--px));image-rendering:pixelated}.ui-banner{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/banner.920cd2ce38.png) 0 18 0 18 fill repeat;border-width:0 calc(18 * var(--px)) 0 calc(18 * var(--px));height:calc(21 * var(--px));min-width:calc(37 * var(--px));image-rendering:pixelated}.ui-panelS-box{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/panelS.501fa3bb2a.png) 11 14 6 11 fill repeat;border-width:calc(11 * var(--px)) calc(14 * var(--px)) calc(6 * var(--px)) calc(11 * var(--px));image-rendering:pixelated}.ui-panelL-box{border-style:solid;border-color:transparent;box-sizing:border-box;border-image:url(/assets/game/ui/panelL.e5b9261092.png) 10 14 7 14 fill repeat;border-width:calc(10 * var(--px)) calc(14 * var(--px)) calc(7 * var(--px)) calc(14 * var(--px));image-rendering:pixelated}.ui-btn-wide:active,.ui-btn-wide.pressed{border-image:url(/assets/game/ui/btn_wide_pressed.e5b6f1a0f4.png) 0 3 0 4 fill repeat;border-width:0 calc(3 * var(--px)) 0 calc(4 * var(--px))}.ui-btn-primary:active,.ui-btn-primary.pressed{border-image:url(/assets/game/ui/btn_primary_pressed.e5f5fdc5a0.png) 0 3 0 4 fill repeat;border-width:0 calc(3 * var(--px)) 0 calc(4 * var(--px))}.ui-badge{display:inline-block;width:calc(33 * var(--px));height:calc(29 * var(--px));background:url(/assets/game/ui/badge.95406ad295.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-heart{display:inline-block;width:calc(29 * var(--px));height:calc(26 * var(--px));background:url(/assets/game/ui/icon_heart.ade0269846.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-heart-empty{display:inline-block;width:calc(30 * var(--px));height:calc(26 * var(--px));background:url(/assets/game/ui/icon_heart_empty.b8df7d13ea.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-bone{display:inline-block;width:calc(30 * var(--px));height:calc(18 * var(--px));background:url(/assets/game/ui/icon_bone.ad2518a923.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-golden{display:inline-block;width:calc(32 * var(--px));height:calc(23 * var(--px));background:url(/assets/game/ui/icon_golden.ae54f94d2e.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-golden-empty{display:inline-block;width:calc(32 * var(--px));height:calc(22 * var(--px));background:url(/assets/game/ui/icon_golden_empty.ffba4c7f8a.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-full-belly{display:inline-block;width:calc(26 * var(--px));height:calc(26 * var(--px));background:url(/assets/game/ui/icon_full_belly.bd8d4a07ed.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-clock{display:inline-block;width:calc(27 * var(--px));height:calc(33 * var(--px));background:url(/assets/game/ui/icon_clock.3909513426.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-icon-paw{display:inline-block;width:calc(29 * var(--px));height:calc(27 * var(--px));background:url(/assets/game/ui/icon_paw.40eea8a7bb.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-bar-divider{display:inline-block;width:calc(10 * var(--px));height:calc(17 * var(--px));background:url(/assets/game/ui/bar_divider.958ffcb210.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-bar-wubby{display:inline-block;width:calc(40 * var(--px));height:calc(30 * var(--px));background:url(/assets/game/ui/bar_wubby.fe983e45f1.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-bar-thief{display:inline-block;width:calc(40 * var(--px));height:calc(33 * var(--px));background:url(/assets/game/ui/bar_thief.6196cd6297.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-bar-thief-pulse{display:inline-block;width:calc(39 * var(--px));height:calc(35 * var(--px));background:url(/assets/game/ui/bar_thief_pulse.34ffb7181e.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-play{display:inline-block;width:calc(33 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_play.1c49e3c8cf.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-pause{display:inline-block;width:calc(33 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_pause.346e5ed52a.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-sound-on{display:inline-block;width:calc(33 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_sound_on.bd3d6672bb.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-sound-off{display:inline-block;width:calc(33 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_sound_off.e0a3ebdb63.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-restart{display:inline-block;width:calc(33 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_restart.61b9886b3b.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-share{display:inline-block;width:calc(34 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_share.b03510c42b.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-download{display:inline-block;width:calc(33 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_download.e6fbf58b63.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-btn-home{display:inline-block;width:calc(33 * var(--px));height:calc(31 * var(--px));background:url(/assets/game/ui/btn_home.11f734b03f.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-key{display:inline-block;width:calc(20 * var(--px));height:calc(20 * var(--px));background:url(/assets/game/ui/key.7d350ac0a4.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.ui-cursor{display:inline-block;width:calc(26 * var(--px));height:calc(30 * var(--px));background:url(/assets/game/ui/cursor.8c2c53cdbc.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:block;src:url(/assets/fonts/pixelify-sans-latin.4a5633a0c9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:block;src:url(/assets/fonts/pixelify-sans-latin-ext.0afa0101fd.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/caveat-latin.891951df5e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/caveat-latin-ext.f626b95c1e.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--px: 2px;--px-hud: 1px;--px-mark: 1px;--px-end: 2px;--ink: #5a3418;--ink-soft: #8a5a36;--cream: #fff3dc;--accent: #ffd84a;--font: "Pixelify Sans", system-ui, sans-serif;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:var(--font);color:var(--ink)}body{background:#1d1410;cursor:url(/assets/game/ui/cursor.8c2c53cdbc.png) 6 2,auto}.hidden{display:none!important}#gameCanvas{position:fixed;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated}img{image-rendering:pixelated}button{font-family:inherit;background:none;border:none;color:inherit;cursor:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:0 calc(6 * var(--px));font-size:calc(10 * var(--px));font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap;line-height:1}.btn-primary{color:#fff;min-width:calc(80 * var(--px));text-shadow:0 calc(1 * var(--px)) 0 rgba(90,30,10,.6)}.btn{transition:transform .16s var(--ease-out)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5}.icon-btn{pointer-events:all}.hud{--px: var(--px-hud);--gap: calc(4 * var(--px));position:fixed;top:0;left:0;right:0;z-index:100;padding:calc(6 * var(--px)) calc(8 * var(--px));pointer-events:none}.hud-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:calc(3 * var(--gap))}.hud-left{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap)}.hud-panel{display:flex;align-items:center;gap:calc(2 * var(--px))}.hud-panel>span[class^=ui-]{flex:none}.hud-text{min-width:3.4ch;font-size:calc(12 * var(--px));font-weight:600;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.hud-buttons{display:flex;align-items:center;gap:var(--gap)}.icon-btn{pointer-events:all;transition:transform .16s var(--ease-out)}.icon-btn:active{transform:scale(.95)}.journey{justify-self:center;display:flex;align-items:center;gap:var(--gap);width:min(calc(300 * var(--px)),100%);min-width:0}.journey-bar{position:relative;flex:1;min-width:0}.journey-track{width:100%}.journey-inner{position:relative;height:100%}.journey-fill{position:absolute;left:calc(-6 * var(--px));top:50%;transform:translateY(-50%);max-width:calc(100% + 12 * var(--px))}.journey-divider{position:absolute;top:50%;transform:translate(-50%,-50%)}.journey-wubby{--px: var(--px-mark);position:absolute;top:50%;left:0;transform:translate(-50%,-62%);z-index:2}.journey-labels{position:absolute;top:100%;left:calc(10 * var(--px));right:calc(11 * var(--px));display:flex;margin-top:calc(1 * var(--px))}.journey-labels span{flex:1;text-align:center;font-size:calc(11 * var(--px));font-weight:500;line-height:1;color:var(--cream);text-shadow:1px 0 0 var(--ink),-1px 0 0 var(--ink),0 1px 0 var(--ink),0 -1px 0 var(--ink),0 2px 0 rgba(40,20,0,.45)}.journey-thief{--px: var(--px-mark);flex:none}.journey-thief.pulsing{animation:thiefPulse .6s ease-in-out infinite}@keyframes thiefPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.level-banner{position:fixed;top:20%;left:50%;z-index:120;max-width:calc(100vw - 32px);opacity:0;transform:translate(-50%);pointer-events:none}.banner-ribbon{display:flex;align-items:center;padding:0 calc(2 * var(--px));padding-bottom:calc(3 * var(--px));font-size:calc(9 * var(--px));font-weight:500;color:#fff;white-space:nowrap;text-shadow:0 calc(1 * var(--px)) 0 rgba(90,20,0,.7);overflow:hidden}.level-banner.show{animation:levelBanner 2.8s ease forwards}@keyframes levelBanner{0%{opacity:0;transform:translate(-50%,-6px)}11%{opacity:1;transform:translate(-50%)}82%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.screen{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;background:#1e120880;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.panel{display:flex;flex-direction:column;align-items:center;gap:calc(5 * var(--px));max-width:min(560px,100%);max-height:100%;overflow-y:auto;padding:calc(2 * var(--px)) calc(4 * var(--px));text-align:center}.panel.wide{max-width:min(900px,100%)}.heading{font-size:calc(14 * var(--px));font-weight:600;color:var(--ink)}.muted{font-size:calc(6 * var(--px));line-height:1.5;color:var(--ink-soft)}.error{font-size:14px;color:#c0392b;background:var(--cream);padding:6px 10px;border-radius:6px}.label-text{font-size:calc(7 * var(--px));font-weight:600}.title-screen{background:radial-gradient(ellipse 34% 40% at 50% 50%,#fff6e461,#fff6e438 55%,#fff6e400),radial-gradient(ellipse 72% 78% at 50% 48%,#180c0400 45%,#180c0480)}.title-stack{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(5 * var(--px));text-align:center}.logo{width:calc(212 * var(--px));height:calc(89 * var(--px));margin-bottom:calc(2 * var(--px));animation:logoIn .9s cubic-bezier(.2,1.6,.4,1) both,logoBob 4.5s ease-in-out .9s infinite}@keyframes logoIn{0%{opacity:0;transform:translateY(-40px) scale(.6)}60%{opacity:1}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes logoBob{0%,to{transform:translateY(0)}50%{transform:translateY(calc(-1 * var(--px)))}}.play-btn{min-width:calc(108 * var(--px));font-size:calc(13 * var(--px));animation:playPulse .64s var(--ease-in-out) 1.05s 1}@keyframes playPulse{0%,to{transform:scale(1)}45%{transform:scale(1.06)}}.story{max-width:44ch;margin:0 0 calc(2 * var(--px));font-size:calc(9 * var(--px));font-weight:600;line-height:1.35;color:#3b2416;text-wrap:balance;text-shadow:1px 0 0 #fff3dc,-1px 0 0 #fff3dc,0 1px 0 #fff3dc,0 -1px 0 #fff3dc,1px 1px 0 #fff3dc,-1px 1px 0 #fff3dc,1px -1px 0 #fff3dc,-1px -1px 0 #fff3dc,0 0 calc(4 * var(--px)) rgba(255,243,220,.85)}.title-love{position:absolute;left:0;right:0;bottom:max(16px,env(safe-area-inset-bottom));font-size:calc(7 * var(--px));font-weight:500;color:#fff3dce6;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.6),0 0 6px rgba(0,0,0,.45);animation:fadeIn .4s ease both}.controls-hint{--px: var(--px-hud);position:fixed;left:50%;top:34%;z-index:120;display:flex;align-items:center;gap:10px;padding:8px 16px;border-radius:999px;background:#22160eb8;font-size:15px;font-weight:500;white-space:nowrap;color:var(--cream);opacity:0;transform:translate(-50%,4px);transition:opacity .5s ease,transform .5s var(--ease-out);pointer-events:none}.controls-hint.show{opacity:1;transform:translate(-50%);transition-delay:.3s}.controls-hint b{font-weight:700;color:var(--accent)}.hint-dot{opacity:.5}.touch-only{display:none}@media(pointer:coarse){.touch-only{display:inline}.kbd-only{display:none}.controls-hint{font-size:13px}}.music-credit{max-width:30ch;font-size:calc(5 * var(--px));font-weight:500;color:var(--ink-soft);opacity:.85}.pause-keys{display:flex;gap:calc(8 * var(--px));margin-top:calc(1 * var(--px));font-size:calc(7 * var(--px));font-weight:600;color:var(--ink-soft)}.keys{display:inline-flex;align-items:center;gap:calc(2 * var(--px))}.key{display:inline-flex;align-items:center;justify-content:center;font-size:calc(8 * var(--px));color:var(--ink);text-shadow:none;padding-bottom:calc(2 * var(--px))}.key-space{min-width:calc(40 * var(--px));padding:0 calc(3 * var(--px)) calc(2 * var(--px))}.card-screen{--px: var(--px-end);--pad: clamp(12px, 3vmin, 36px);--gap: clamp(6px, 1.7vmin, 16px);top:0;bottom:auto;height:100vh;height:100dvh;padding:max(var(--pad),env(safe-area-inset-top)) var(--pad) max(var(--pad),env(safe-area-inset-bottom));overflow:hidden;background:#1c1008b3}.end-layout{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gap);width:100%;height:100%;min-height:0;text-align:center}.end-photo{container-type:size;flex:1 1 0;min-height:0;max-height:calc((100vw - 2 * var(--pad)) * 1.2);width:100%;display:flex;align-items:center;justify-content:center}.polaroid-drop{transform-origin:50% 0;animation:polaroidDrop .72s var(--ease-out) both}@keyframes polaroidDrop{0%{opacity:0;transform:translateY(-36px) rotate(-7deg) scale(.96)}55%{opacity:1;transform:translateY(4px) rotate(1.4deg) scale(1)}80%{transform:translateY(-1px) rotate(-.5deg)}to{opacity:1;transform:none}}.polaroid-frame{aspect-ratio:1080 / 1350;height:min(94cqh,117cqw,820px);transform:rotate(-2deg)}.card-canvas{display:block;width:100%;height:100%;box-shadow:0 18px 40px #00000059,0 3px 8px #00000040}.end-content{flex:none;display:flex;flex-direction:column;align-items:center;gap:var(--gap);width:min(400px,100%)}@media(min-aspect-ratio:11/10){.end-layout{flex-direction:row;justify-content:center;gap:clamp(20px,4vw,72px)}.end-photo{flex:0 1 calc((100dvh - 2 * var(--pad)) * .86);height:100%;max-height:none;max-width:55%}.end-content{width:clamp(280px,32vw,400px)}}.name-row,.card-actions,.love,.end-footer{animation:rise .32s var(--ease-out) both;font-weight:400}.name-row{animation-delay:.3s}.card-actions{animation-delay:.36s}.love{animation-delay:.42s}.end-footer{animation-delay:.48s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.name-row{display:flex;flex-direction:column;align-items:center;gap:calc(2 * var(--px));width:100%}.name-row .label-text{font-size:clamp(12px,1.6vmin + 6px,15px);font-weight:500;color:var(--cream);opacity:.85}.name-field{display:flex;align-items:center;width:min(calc(150 * var(--px)),100%)}#nameInput{width:100%;background:transparent;border:none;outline:none;font-family:var(--font);font-size:calc(8 * var(--px));font-weight:600;color:var(--ink);text-align:center}#nameInput::placeholder{color:var(--ink-soft);opacity:.7}.card-actions{display:flex;flex-direction:column;align-items:center;gap:calc(3 * var(--px))}.card-actions .btn-primary{min-width:calc(110 * var(--px))}.text-action{padding:4px 10px;font-size:clamp(13px,1.5vmin + 7px,16px);font-weight:600;color:#fff3dcd9;text-decoration:underline;text-decoration-color:#fff3dc59;text-underline-offset:4px;transition:color .16s ease,text-decoration-color .16s ease,transform .16s var(--ease-out)}.text-action:active{transform:scale(.97)}.card-status{margin-top:calc(var(--gap) * -.5);font-size:14px;color:var(--cream);text-shadow:0 1px 0 rgba(0,0,0,.5)}.card-status:empty{display:none}.love{display:flex;flex-direction:column;align-items:center;gap:calc(var(--gap) * .6)}.love-text{font-size:clamp(13px,1.4vmin + 7px,15px);font-weight:500;color:#fff3dce0;animation:fadeIn .24s ease both}.love-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px 8px 14px;border-radius:999px;background:#fff3dc1a;box-shadow:inset 0 0 0 1px #fff3dc38;font-size:clamp(13px,1.4vmin + 7px,15px);font-weight:600;color:var(--cream);transition:transform .16s var(--ease-out),background-color .2s ease,box-shadow .2s ease}.love-btn:active:not(:disabled){transform:scale(.96)}.love-heart{position:relative;font-size:17px;line-height:1;color:#ff8fa8;transition:transform .2s var(--ease-out)}.love-btn.sent{background:#ff8fa824;box-shadow:inset 0 0 0 1px #ff8fa859;cursor:default}.love-particle{position:absolute;left:50%;top:50%;font-size:11px;color:#ff8fa8;pointer-events:none}@media(hover:hover)and (pointer:fine){.love-btn:hover:not(:disabled){background:#fff3dc29}.text-action:hover{color:var(--cream);text-decoration-color:currentColor}}.creator{--px: var(--px-mark);display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;animation:creatorIn .42s var(--ease-out) both}@keyframes creatorIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.creator-name{font-family:var(--font);font-size:clamp(14px,1.5vmin + 8px,17px);font-weight:600;color:var(--ink)}.creator-tagline{font-size:clamp(12px,1.2vmin + 7px,14px);line-height:1.35;color:var(--ink-soft);text-wrap:balance}.creator-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;margin-top:4px}.creator-cta{--px: var(--px-end);font-size:calc(7 * var(--px))}.creator-link{font-size:clamp(13px,1.2vmin + 8px,15px);font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:#5a341866;text-underline-offset:3px;transition:text-decoration-color .16s ease}.end-footer a{color:#fff3dccc;text-decoration:underline;text-decoration-color:#fff3dc59;text-underline-offset:3px;transition:color .16s ease,text-decoration-color .16s ease}@media(hover:hover)and (pointer:fine){.creator-link:hover{text-decoration-color:currentColor}.end-footer a:hover{color:var(--cream);text-decoration-color:currentColor}}.end-footer{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:12px;color:#fff3dc80}.creator:not(.hidden)~.end-footer{display:none}@media(max-height:740px)and (max-aspect-ratio:11/10),(max-height:520px){.creator-tagline{display:none}}.touch-controls{--px: calc(var(--px-hud) * 3);display:none;position:fixed;left:0;right:0;bottom:0;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));justify-content:space-between;align-items:flex-end;z-index:150;pointer-events:none}.touch-group{display:flex;gap:12px}.touch-btn{display:inline-flex;align-items:center;justify-content:center;padding-bottom:calc(2 * var(--px));font-size:calc(7 * var(--px));font-weight:600;color:var(--ink);pointer-events:all;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;opacity:.9}.touch-btn.jump{min-width:calc(34 * var(--px));font-size:calc(5 * var(--px))}.touch-btn.pressed{transform:translateY(calc(1 * var(--px)));filter:brightness(.9)}@media(pointer:coarse){body.in-level .touch-controls{display:flex}}@media(max-width:560px){.hud-row{grid-template-columns:minmax(0,1fr) auto}.journey{grid-column:1 / -1;grid-row:2;width:100%}}@media(prefers-reduced-motion:reduce){.polaroid-drop,.name-row,.card-actions,.love,.end-footer,.creator,.logo{animation:fadeIn .2s ease both}.journey-thief.pulsing,.play-btn{animation:none}.controls-hint{transform:translate(-50%)}.btn:active,.love-btn:active:not(:disabled),.text-action:active,.icon-btn:active{transform:none}}html,body{height:100%;overscroll-behavior:none}body{position:fixed;inset:0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%}#gameCanvas{touch-action:none}button,a{touch-action:manipulation}#nameInput{-webkit-user-select:text;user-select:text}.screen{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.btn{--px: var(--px-btn);font-size:clamp(16px,calc(8 * var(--px)),18px)}.btn-primary{font-size:18px}.heading{font-size:clamp(20px,calc(14 * var(--px)),28px)}.label-text{font-size:clamp(12px,calc(7 * var(--px)),16px)}.muted,.music-credit{font-size:clamp(12px,calc(5 * var(--px)),14px)}.hud{padding-top:max(calc(6 * var(--px)),env(safe-area-inset-top));padding-left:max(calc(8 * var(--px)),env(safe-area-inset-left));padding-right:max(calc(8 * var(--px)),env(safe-area-inset-right))}.hud-text{font-size:max(12px,calc(12 * var(--px)))}.journey-labels span{font-size:max(12px,calc(11 * var(--px)))}.hud-buttons{gap:max(10px,var(--gap))}.icon-btn{position:relative}.icon-btn:after{content:"";position:absolute;inset:min(0px,calc((31 * var(--px) - 44px) / 2)) min(0px,calc((33 * var(--px) - 44px) / 2))}.hearts-full,.hearts-compact{display:flex;align-items:center;gap:calc(2 * var(--px))}.hearts-compact{display:none}@media(max-width:560px),(max-height:500px){.hearts-full{display:none}.hearts-compact{display:flex}.hud-left{flex-wrap:nowrap}}.level-banner{top:max(18%,calc(env(safe-area-inset-top) + 72px));max-width:90vw;display:flex;flex-direction:column;align-items:center;gap:6px}.banner-ribbon{--px: var(--px-btn);justify-content:center;font-size:clamp(18px,1vw + 14px,24px)}.banner-sub{max-width:90vw;font-size:clamp(14px,.6vw + 12px,16px);font-weight:600;color:#fff;text-align:center;text-shadow:0 1px 0 rgba(60,20,0,.8),0 0 6px rgba(40,20,0,.6)}.skip-hint{position:fixed;left:50%;bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px));z-index:160;padding:6px 14px;border-radius:999px;background:#22160e99;font-size:clamp(14px,.5vw + 12px,16px);font-weight:500;color:var(--cream);white-space:nowrap;opacity:0;transform:translate(-50%);transition:opacity .3s ease;pointer-events:none}.skip-hint.show{opacity:1}body.touch .skip-hint{bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--touch-size) + 18px)}.controls-hint{font-size:clamp(14px,.5vw + 12px,16px)}@media(pointer:coarse){.controls-hint{font-size:14px}}:root{--touch-size: clamp(64px, 17vmin, 84px)}.touch-controls{--px: calc(var(--touch-size) / 20);padding:0 max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.touch-group{gap:14px}.touch-btn{width:var(--touch-size);height:var(--touch-size);padding-bottom:calc(2 * var(--px));font-size:calc(var(--touch-size) * .34);opacity:.75;transition:transform 80ms var(--ease-out),opacity 80ms ease}.touch-btn.jump{width:calc(var(--touch-size) * 1.6);min-width:0;font-size:calc(var(--touch-size) * .24)}.touch-btn.pressed{transform:translateY(2px) scale(.96);filter:none;opacity:.95}@media(pointer:coarse){body.in-level .touch-controls{display:none}}body.touch.in-level .touch-controls{display:flex}.pause-card{position:relative;width:min(90vw,420px);max-height:calc(100dvh - 32px);overflow:hidden;gap:12px;animation:popIn .2s var(--ease-out) both}@keyframes popIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.pause-close{position:absolute;top:4px;right:4px;width:44px;height:44px;font-size:28px;line-height:1;color:var(--ink-soft);transition:transform .16s var(--ease-out),color .16s ease}.pause-close:active{transform:scale(.94)}.pause-actions{display:grid;gap:10px;width:100%}.pause-actions .btn{width:100%;min-width:0}@media(min-aspect-ratio:1/1){.pause-actions{grid-template-columns:1fr 1fr}.pause-actions .btn-primary{grid-column:1 / -1}}.pause-keys{font-size:clamp(12px,calc(7 * var(--px)),14px)}.pause-keys .key{font-size:clamp(12px,calc(8 * var(--px)),16px)}body.touch .pause-keys{display:none}@media(hover:hover)and (pointer:fine){.pause-close:hover{color:var(--ink)}}.play-btn{--px: max(var(--px-btn), 2.2858px);min-width:0;width:min(280px,84vw);font-size:18px}.story{font-size:clamp(14px,.6vw + 12px,16px)}.title-love{bottom:max(16px,calc(env(safe-area-inset-bottom) + 8px));font-size:clamp(12px,.4vw + 11px,14px)}@media(max-aspect-ratio:4/5){.title-screen{align-items:flex-start;padding-top:max(6dvh,calc(env(safe-area-inset-top) + 16px));background:radial-gradient(ellipse 60% 26% at 50% 22%,#fff6e461,#fff6e433 55%,#fff6e400),radial-gradient(ellipse 90% 80% at 50% 45%,#180c0400 50%,#180c0473)}.title-stack{gap:clamp(10px,2dvh,18px);width:100%}.logo{width:min(80vw,340px);height:auto;margin-bottom:0}.story{max-width:min(44ch,88vw)}}.card-screen{padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right))}.name-field{--px: var(--px-input)}.creator-cta{--px: var(--px-btn);font-size:16px}.text-action,.love-btn,.creator-link{min-height:44px}.text-action,.creator-link{display:inline-flex;align-items:center;padding:0 12px}.end-footer a{display:inline-block;padding:14px 6px;margin:-14px 0}.end-footer{padding:14px 0}@media(max-aspect-ratio:11/10){.card-actions .btn-primary{width:min(100%,320px)}}@media(min-aspect-ratio:11/10)and (max-height:500px){.card-actions{flex-direction:row;gap:12px}.card-actions .btn-primary{min-width:0;padding:0 18px}.love{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px 12px}.end-footer{padding:6px 0}}@media(prefers-reduced-motion:reduce){.pause-card{animation:fadeIn .2s ease both}.touch-btn.pressed,.pause-close:active{transform:none}}body.touch .touch-only{display:inline}body.touch .kbd-only{display:none}#nameInput{height:100%}@media(max-height:500px)and (min-aspect-ratio:4/5){.title-stack{gap:8px}.logo{width:auto;height:min(32dvh,calc(89 * var(--px)));margin-bottom:0}}@media(min-aspect-ratio:11/10)and (min-height:501px){.end-layout{max-width:920px;margin:0 auto;gap:clamp(56px,6vw,72px);align-items:center}.end-photo{flex:0 0 auto;width:calc(min(60dvh,520px)*.8 + 32px);max-width:none;height:calc(min(60dvh,520px) + 32px)}.polaroid-frame{height:min(60dvh,520px)}.end-content{width:360px;flex:none;align-items:stretch;gap:0;text-align:left}.name-row{align-items:stretch;gap:8px}.name-row .label-text,.love-text{font-size:14px}.name-field{width:100%}.card-actions{align-items:stretch;gap:12px;margin-top:16px}.card-actions .btn-primary{width:100%}.text-action{align-self:flex-start;padding:0}.card-status{margin-top:8px}.love{align-items:flex-start;gap:12px;margin-top:32px}.creator{margin-top:32px;align-items:flex-start;text-align:left}.creator-links{justify-content:flex-start}.end-footer{margin-top:24px;padding:0}}.creator{gap:0;padding:20px 24px}.creator-name{font-size:clamp(15px,.4vw + 13px,16px);line-height:1.25}.creator-tagline{margin-top:6px;max-width:34ch;font-size:13px;color:var(--ink-soft);text-wrap:balance}.creator-links{flex-wrap:nowrap;align-items:center;gap:16px;margin-top:16px}.creator-cta{white-space:nowrap}.creator-link{padding:0;white-space:nowrap}.creator-cta{padding:0 14px;font-size:15px}.creator-links{flex-wrap:wrap;row-gap:8px}.creator-cta{--px: 2.1px;padding:0 12px}.creator-link{font-size:14px}@media(min-aspect-ratio:11/10)and (min-height:501px){.end-content{width:380px}.creator{padding:20px 22px}}.loading-screen{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:#1d1410}.loading-card{--px: var(--px-btn);display:flex;flex-direction:column;align-items:center;gap:14px;width:min(320px,86vw);text-align:center}.loading-text{font-size:16px;font-weight:600;color:var(--cream);letter-spacing:.02em}.loading-track{--px: 2px;width:100%}.loading-inner{position:relative;height:100%}.loading-fill{--px: 2px;position:absolute;left:calc(-6 * var(--px));top:50%;width:0;max-width:calc(100% + 12 * var(--px));transform:translateY(-50%);transition:width .2s var(--ease-out)}.loading-error{max-width:32ch;font-size:14px;line-height:1.4;color:var(--cream)}@media(prefers-reduced-motion:reduce){.loading-fill{transition:none}}.title-screen{animation:none}.loading-text{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
