:root{font-synthesis:none;--paper:#f2e5bf;--paper-light:#f9edc9;--panel:#e4d9b7;--ink:#303329;--ink-line:#ead9ac;--muted:#646b55;--ink-deep:#242d27;--backdrop:#647361;--orange:#b95431;--gold:#e4b755;color:#2c3028;background:var(--backdrop);font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button:disabled{cursor:default}button,kbd{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:hover{filter:brightness(1.08)}button:active{transform:translateY(2px)}[hidden]{display:none!important}#game,#ui{position:fixed;inset:0}#game canvas{outline:none;width:100%;height:100%;display:block}#ui{pointer-events:none}#ui button,#ui .paper,#ui .title-card,#joystick{pointer-events:auto}.film-frame{box-shadow:0 0 0 100vmax var(--ink-deep);pointer-events:none;z-index:9;border:2px solid #e9dcad99;border-radius:24px;position:fixed;inset:12px}.film-frame:after{content:"";border:1px solid #e9dcad44;border-radius:19px;position:absolute;inset:5px}.grain{pointer-events:none;z-index:8;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.6' d='M0 0h160v160H0z'/%3E%3C/svg%3E");position:fixed;inset:0}.screen{pointer-events:auto;justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;inset:0}.title-screen{background:linear-gradient(90deg,#39453644,#0000 60%);justify-content:flex-start}.title-card{text-align:center;background:var(--paper);border:2px solid var(--ink);outline-offset:5px;outline:1px solid #e5d6ac;width:440px;margin-left:5.5vw;padding:34px 34px 20px;transform:rotate(-1.4deg);box-shadow:8px 10px #30332938}.eyebrow{letter-spacing:.2em;font-family:Trebuchet MS,sans-serif;font-size:10px;font-weight:800;display:block}.title-stars{color:#ae5231;margin:17px 0 10px;font-size:24px}h1{letter-spacing:-.055em;text-shadow:2px 3px #d9caa2;margin:0;font-size:52px;line-height:.9;transform:scaleX(1.08)}h1 em{color:var(--orange);letter-spacing:-.065em;text-shadow:3px 4px 0 var(--ink);font-size:58px;font-style:normal;line-height:1.02;display:inline-block;transform:rotate(-3deg)}.tagline{margin:18px 0;font-size:20px;font-style:italic}.intro{color:#59604c;margin:0 0 24px;font-size:15px;line-height:1.5}.primary{border:2px solid var(--ink);background:var(--orange);width:100%;color:var(--paper);box-shadow:3px 4px 0 var(--ink);letter-spacing:.08em;border-radius:2px;padding:16px;font-family:Trebuchet MS,sans-serif;font-size:13px;font-weight:900;display:block}.primary span{margin-left:10px;font-size:18px}.title-controls{justify-content:center;gap:20px;margin-top:24px;font-size:12px;display:flex}kbd{letter-spacing:.04em;border:1px solid;border-radius:3px;padding:3px 5px;font-family:Trebuchet MS,sans-serif;font-size:10px;font-weight:700;display:inline-block}.auto-note{color:#5e604b;margin:15px 0 25px;font-size:11px}.title-footer{letter-spacing:.12em;border-top:1px solid #30332955;justify-content:space-between;align-items:center;padding-top:13px;font:700 9px Trebuchet MS,sans-serif;display:flex}.character-label{color:var(--paper);text-shadow:1px 2px #343c31;font-size:21px;font-style:italic;position:absolute;bottom:22%;right:8%;transform:rotate(-7deg)}.character-label b{margin-left:-45px;font-size:55px;line-height:1;display:block;transform:rotate(25deg)}.utility{z-index:5;gap:8px;display:flex;position:absolute;bottom:29px;right:34px}.utility-button{letter-spacing:.12em;color:var(--paper);background:#2c372bd6;border:1px solid #ece0b26b;border-radius:3px;padding:10px 12px;font:700 10px Trebuchet MS,sans-serif}#hud{color:var(--paper);text-shadow:1px 2px #30372c;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:34px;left:40px;right:40px}.health-panel,.candy-panel{min-width:165px}.health-panel .eyebrow{margin-bottom:8px}#hearts{flex-wrap:wrap;gap:5px;max-width:230px;display:flex}.heart{color:#e29265;-webkit-text-stroke:1px #34382c;font-size:27px;line-height:1}.heart.empty{color:#303b2fb0;-webkit-text-stroke:1px #cec39c99}.clock-panel{text-align:center;background:#2d392ca6;border:1px solid #ebd9a64a;border-radius:0 0 65px 65px;min-width:214px;margin-top:-34px;padding:12px 27px 18px}.clock-panel .eyebrow{margin:17px 0 1px;font-size:8px}.clock-panel strong{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:49px;line-height:1.15}.clock-caption{font-size:12px;font-style:italic;display:block}.candy-panel{text-align:right}.candy-panel strong{font-variant-numeric:tabular-nums;font-size:33px;line-height:1.2;display:block}.candy-icon{color:var(--gold);font-size:25px}#level-label{letter-spacing:.15em;font:10px Trebuchet MS,sans-serif}.xp-track{background:#303a2d7a;border-radius:2px;height:4px;position:absolute;top:-17px;left:0;right:0;overflow:hidden}#xp-fill{background:var(--gold);width:0;height:100%;transition:width .15s}.movement-hint{color:var(--paper);letter-spacing:.06em;text-shadow:1px 1px var(--ink);font:700 10px Trebuchet MS,sans-serif;position:absolute;bottom:32px;left:37px}.movement-hint span{opacity:.5;margin:0 9px}.boo-button{background:var(--paper);border:2px solid var(--ink);width:150px;min-height:69px;color:var(--ink);border-radius:50%;padding:7px 14px 12px;position:absolute;bottom:30px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:3px 4px #30332977}.boo-button:active{transform:translate(-50%)translateY(2px)}.boo-button strong{z-index:1;font-size:28px;font-style:italic;line-height:1.15;display:block;position:relative}.boo-button span{z-index:1;letter-spacing:.1em;font:800 8px Trebuchet MS,sans-serif;display:block;position:relative}.boo-button i{transform-origin:0;pointer-events:none;background:#9aaf8259;position:absolute;inset:0}.boo-button.cooling{color:#5b6450;background:#c4c5a8}.modal-screen{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:4;background:#23302495}.paper{background:var(--paper);color:var(--ink);border:2px solid var(--ink);outline:1px solid var(--ink-line);outline-offset:5px;text-align:center;padding:42px;box-shadow:8px 10px #16261955}.modal{width:min(440px,100%)}h2{letter-spacing:-.04em;margin:15px 0;font-size:43px;font-style:italic;line-height:1.1}.paper p{color:#5d6350;font-size:15px;line-height:1.5}.modal .primary{margin-top:25px}.text-button{color:var(--ink);text-underline-offset:3px;background:0 0;border:0;margin:18px auto 0;font-size:12px;text-decoration:underline;display:block}.upgrade-modal{width:100%;max-width:900px;padding:33px}.upgrade-modal>p{margin:0 0 24px}#upgrade-options{gap:15px;display:flex}.upgrade-option{text-align:left;background:var(--panel);min-width:0;color:var(--ink);border:1px solid #7d8264;flex:1;padding:21px 20px;transition:background .12s;position:relative;box-shadow:3px 4px #30332933}.upgrade-option:hover{background:var(--paper-light)}.upgrade-option .symbol{color:var(--orange);height:45px;font-size:35px;display:block}.upgrade-option .rank{letter-spacing:.1em;font:9px Trebuchet MS,sans-serif;position:absolute;top:16px;right:14px}.upgrade-option strong{letter-spacing:-.04em;margin:12px 0 9px;font-size:24px;display:block}.upgrade-option .description{min-height:42px;font-size:13px;line-height:1.5;display:block}.upgrade-option .choose{letter-spacing:.12em;margin-top:22px;font:800 9px Trebuchet MS,sans-serif;display:block}.small-note{color:var(--muted);margin-top:24px;font-size:11px;display:block}.end-stat{border-bottom:1px solid #30332933;justify-content:space-between;padding:11px 0;font-size:14px;display:flex}.end-stat strong{font-variant-numeric:tabular-nums}#end-stats{margin:25px 0}#toast{text-align:center;color:var(--paper);text-shadow:2px 2px var(--ink);opacity:0;pointer-events:none;white-space:nowrap;font-size:24px;font-style:italic;transition:opacity .2s,transform .2s;position:absolute;top:26%;left:50%;transform:translate(-50%,-15px)}#toast.show{opacity:1;transform:translate(-50%)}#joystick{touch-action:none;background:#303a2d55;border:2px solid #ece0b26b;border-radius:50%;width:115px;height:115px;display:none;position:absolute;bottom:83px;left:37px}#joystick span{border:2px solid var(--ink);pointer-events:none;background:#eedbb8b3;border-radius:50%;width:43px;height:43px;position:absolute;top:34px;left:34px}.hit-flash{animation:.24s ease-out hit}@keyframes hit{0%{box-shadow:inset 0 0 120px 35px #d1664680}to{box-shadow:inset 0 0 #0000}}@media (pointer:coarse){#joystick{display:block}.movement-hint{display:none}.boo-button{bottom:88px;left:auto;right:37px;transform:none}.boo-button:active{transform:translateY(2px)}}@media (width<=800px){.title-card{width:365px;margin-left:0;padding:25px}h1{font-size:46px}h1 em{font-size:50px}.tagline{font-size:18px}.title-stars{margin:10px 0}.character-label{display:none}.title-screen{padding:38px}.health-panel,.candy-panel{min-width:100px}.clock-panel{min-width:170px;padding-left:12px;padding-right:12px}#hud{left:29px;right:29px}.heart{font-size:21px}.utility{bottom:27px;right:28px}.movement-hint{font-size:8px;left:28px}.movement-hint span{margin:0 4px}.boo-button{bottom:66px}.upgrade-modal{padding:24px}.upgrade-option{padding:16px 12px}.upgrade-option strong{font-size:22px}}@media (width<=550px){.film-frame{border-radius:17px;inset:7px}.film-frame:after{border-radius:12px;inset:4px}.screen{padding:25px}.title-screen{background:#2b39274a;justify-content:center}.title-card{width:min(360px,100%);padding:25px 23px 18px}.title-card .eyebrow{font-size:8px}.title-controls{gap:14px}.intro{margin-bottom:19px}.title-footer{font-size:8px}.auto-note{margin-bottom:18px}.utility-button{padding:9px;font-size:8px}.utility{bottom:19px;right:20px}#hud{top:28px;left:21px;right:21px}.health-panel,.candy-panel{min-width:65px}.health-panel .eyebrow,.candy-panel .eyebrow{letter-spacing:.1em;font-size:7px}#hearts{gap:2px;max-width:95px}.heart{font-size:18px}.clock-panel{min-width:122px;margin-top:-28px;padding:6px 8px 12px}.clock-panel .eyebrow{letter-spacing:.13em;font-size:6px}.clock-panel strong{font-size:36px}.clock-caption{font-size:10px}.candy-panel strong{font-size:25px}.candy-icon{font-size:19px}#level-label{font-size:8px}.xp-track{top:-14px}.paper{padding:26px 23px}h2{font-size:34px}#upgrade-options{flex-direction:column;gap:10px}.upgrade-modal{max-height:calc(100dvh - 48px);padding:22px;overflow-y:auto}.upgrade-modal h2{margin:10px 0;font-size:29px}.upgrade-modal>p{margin-bottom:16px;font-size:12px}.upgrade-option{min-height:94px;padding:12px 14px 12px 66px}.upgrade-option .symbol{font-size:28px;position:absolute;top:21px;left:17px}.upgrade-option strong{margin:0 0 4px;font-size:22px}.upgrade-option .rank{font-size:7px;top:12px;right:11px}.upgrade-option .description{max-width:90%;min-height:0;font-size:12px}.upgrade-option .choose{margin-top:8px;font-size:8px}.small-note{margin-top:15px;font-size:10px}#toast{white-space:normal;max-width:85%;font-size:19px}#joystick{width:104px;height:104px;bottom:78px;left:24px}#joystick span{top:29px;left:29px}.boo-button{width:126px;bottom:92px;right:24px}.movement-hint{display:none}}@media (height<=650px) and (width>=551px){.title-card{width:370px;padding:20px 28px 14px}.title-stars{display:none}h1{margin-top:16px;font-size:44px}h1 em{font-size:48px}.tagline{margin:12px 0;font-size:17px}.intro{margin-bottom:15px;font-size:13px}.primary{padding:12px}.title-controls{margin-top:18px}.auto-note{margin:12px 0}.title-footer{padding-top:10px}.paper,.modal-screen{padding:25px}h2{font-size:34px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=800px){.title-screen{justify-content:center;align-items:flex-end;padding-bottom:58px}.title-card{width:350px;margin:0;padding:19px 25px 14px;transform:rotate(-1.4deg)}.title-card .eyebrow{font-size:8px}.title-stars{display:none}.title-card h1{margin-top:15px;font-size:42px;line-height:.9}.title-card h1 em{font-size:46px;line-height:1}.tagline{margin:13px 0;font-size:16px}.intro{margin-bottom:17px;font-size:12px;line-height:1.4}.title-card .primary{padding:12px;font-size:11px}.title-controls{margin-top:17px;font-size:10px}.auto-note{margin:12px 0 17px;font-size:9px}.title-footer{padding-top:11px;font-size:7px}}@media (height<=660px) and (width<=800px){.title-screen{padding-bottom:40px}.title-card{width:320px;padding:15px 22px 12px}.title-card h1{margin-top:12px;font-size:34px}.title-card h1 em{font-size:36px}.title-card .intro{display:none}.title-controls{margin-top:13px}.title-footer{display:none}.auto-note{margin-bottom:0}}
