:root{color-scheme:dark;--cream:#f8e8cc;--paper:#f3e4c8;--ink:#334541;--teal:#294f4a;--gold:#d7b77a;--muted:#ad9b7e;--game-w:420px;--game-h:780px;--game-top:0px;--game-left:0px;font-family:"Avenir Next",Avenir,"Trebuchet MS",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#242f2b}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;-webkit-appearance:none;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e2b667;outline-offset:4px}button svg,svg.icon{height:22px;width:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}button:active{transform:translateY(2px)}[hidden]{display:none!important}.symbols{position:absolute;width:0;height:0;overflow:hidden}#app{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate;overflow:hidden}.screen{position:absolute;inset:0}.scene-extension{position:absolute;inset:0;background:linear-gradient(#263a36a8,#2d3832d9),url('assets/tower.webp') center/auto 70%;opacity:.7}#game{position:absolute;inset:0;width:100%;height:100%;touch-action:none;outline:none}.menu{z-index:3;overflow:hidden}.menu-art{position:absolute;inset:0;background:#493029 url('assets/menu.webp') center 66%/cover no-repeat}.menu-shade{position:absolute;inset:0;background:linear-gradient(180deg,#1e25224d 0%,#25282335 34%,transparent 62%,#1c252a00 81%,#171f20c4 100%)}.menu-content{position:absolute;top:max(28px,calc(env(safe-area-inset-top) + 5.2%));left:50%;transform:translateX(-50%);width:min(78%,340px);text-align:center}.title-lockup{position:relative;text-shadow:0 3px 0 #513a2a,0 8px 30px #291c20aa}.title-flourish{display:flex;align-items:center;justify-content:center;gap:14px;color:#e5c995;margin-bottom:3px}.title-flourish span{width:37px;height:1px;background:linear-gradient(90deg,transparent,#d8b77e)}.title-flourish span:last-child{transform:scaleX(-1)}.title-flourish svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.3}h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-weight:normal;color:#ffedcf}.title-cozy{display:block;font-size:clamp(70px,21vw,96px);line-height:.99;font-weight:700;letter-spacing:-.055em;margin-left:-.04em}.title-tower{display:block;font-size:clamp(36px,10.5vw,47px);line-height:1.2;text-transform:uppercase;letter-spacing:.21em;padding-left:.21em;margin-top:3px;font-weight:normal}.best-menu{display:flex;justify-content:center;align-items:center;gap:7px;color:#f4e5ca;font-size:12px;margin:25px 0 17px;text-shadow:0 2px 5px #1b2625}.best-menu svg{width:15px;height:15px;fill:none;stroke:#e3c180;stroke-width:1.6}.best-menu strong{font-size:20px;font-family:Georgia,serif;font-weight:normal}.best-menu span:last-child{font-size:11px;opacity:.9}.button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:52px;width:100%;padding:13px 22px;border-radius:7px 17px 7px 17px;font-weight:600;letter-spacing:.03em;transition:transform .12s,background .12s,box-shadow .12s}.primary{background:linear-gradient(175deg,#fae9c8,#e7cca0);color:#2c4d46;border:1px solid #ffe9be;box-shadow:inset 0 1px #fff4da,0 4px 0 #94704b,0 10px 25px #1a26254d}.primary:hover{background:linear-gradient(175deg,#fff0d5,#edcf99)}.primary:active{box-shadow:inset 0 1px #fff4da,0 2px 0 #94704b,0 5px 15px #1a262540}.play{font-family:Georgia,serif;font-size:27px;min-height:59px;letter-spacing:.05em;position:relative}.play:before,.play:after{content:"";position:absolute;top:13px;bottom:13px;width:1px;background:#bda27166;left:13px}.play:after{left:auto;right:13px}.play svg{width:21px;stroke-width:1.3;fill:currentColor}.menu-nav{display:flex;gap:9px;margin-top:25px;justify-content:center}.menu-nav button{background:#24463ee8;box-shadow:inset 0 1px #a8b89642,0 3px 7px #1d26233d;border:1px solid #cfbb8c36;border-radius:11px;min-height:64px;flex:1;max-width:94px;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;color:#f4e5c6;font-size:11px;font-weight:500;letter-spacing:.025em}.menu-nav button:hover{background:#355c50}.menu-nav svg{width:21px;height:21px}footer{position:absolute;bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px));left:10px;right:10px;text-align:center;color:#f1e1c7;text-shadow:0 1px 7px #171e20}footer p{font-size:11px;letter-spacing:.035em;margin:0 0 8px}footer strong{font-weight:600}.disclosure{font-size:10px;letter-spacing:0;margin:0;opacity:.86}#hud{position:absolute;z-index:2;pointer-events:none;top:calc(var(--game-top) + max(16px,env(safe-area-inset-top)));left:var(--game-left);width:var(--game-w);padding:0 18px;display:flex;align-items:flex-start;justify-content:space-between}.height-badge{background:#24443ce8;color:#f6e5c5;min-width:94px;padding:10px 15px 10px;border-radius:4px 13px 5px 13px;position:relative;box-shadow:0 3px 0 #131f1d60,inset 0 1px #cfbe8640;border-top:2px solid #bda26b}.height-badge>span{text-transform:uppercase;font-size:9px;letter-spacing:.17em;display:block}.height-badge div{display:flex;align-items:baseline;gap:6px}.height-badge strong{font-family:Georgia,serif;font-size:31px;font-weight:normal;line-height:1.2;font-variant-numeric:tabular-nums}.height-badge small{font-size:9px;opacity:.8}#record-dot{position:absolute;right:8px;top:8px;width:5px;height:5px;border-radius:50%;background:#e5c372}.icon-button{width:46px;height:46px;border-radius:50%;background:#26473fe8;color:#f6e7ca;display:grid;place-items:center;box-shadow:inset 0 1px #cfbe8650,0 3px 6px #201e2430;flex:none}.pause-button{pointer-events:auto}.loading{z-index:8;display:grid;place-items:center;background:#263e36 url('assets/menu.webp') center/cover}.loading:before{content:"";position:absolute;inset:0;background:#233d34e5}.load-mark{z-index:1;text-align:center;min-width:210px}.load-mark>svg{width:42px;height:42px;fill:none;stroke:#d9bd85;stroke-width:1.2}.load-mark h1{font-size:38px;margin:16px 0 25px}.load-mark p{font-size:12px;color:#e2d0b0}.load-track{height:3px;background:#cdb98e30;border-radius:3px;overflow:hidden}.load-track span{display:block;width:0;height:100%;background:#d7b879;transition:width .3s}.load-mark .button{margin-top:22px}.overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#152d2a99;padding:max(16px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.panel{width:min(100%,350px);max-height:100%;overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at top left,#fbf0db,#eeddbd);color:#35493e;border-radius:9px 26px 9px 26px;padding:24px 27px 26px;box-shadow:0 18px 60px #14241f66,inset 0 1px #fff4df;outline:0;animation:panel-in .18s ease-out;scrollbar-width:thin;scrollbar-color:#9b9c82 transparent}.panel-head{display:flex;align-items:center;position:relative;gap:11px;margin-bottom:24px}.panel-head h2{font-family:Georgia,serif;font-weight:normal;font-size:29px;letter-spacing:-.025em;margin:0;flex:1}.panel-head .icon-button{width:38px;height:38px;background:transparent;color:#4e6353;box-shadow:none;margin-right:-10px}.panel-rule{width:5px;height:28px;border-radius:3px;background:#b78d52;transform:rotate(7deg)}.panel .button{margin-top:13px;background:#30594d;color:#f7e8cc;box-shadow:inset 0 1px #aac2a341,0 3px 0 #233f37;border:1px solid #264f41;font-size:15px}.panel .button.primary{background:linear-gradient(170deg,#355f51,#274b40)}.panel .button.secondary{color:#3b5547;background:transparent;border:1px solid #71826b55;box-shadow:none;font-size:13px;min-height:47px}.panel .button.danger{color:#8f4a3e;border-color:#aa6c5344}.panel p{font-size:13px;line-height:1.6;color:#53604b;margin:12px 0}.panel .quiet{font-size:11px;color:#77775e}.panel .credit-title{font-family:Georgia,serif;font-size:27px;color:#354d40;margin-bottom:3px}.panel .credit-creator{margin-top:4px}.panel .credit-art{position:relative;width:96px;height:87px;margin:auto;transform:scale(.9)}.panel .credit-art:before{content:"";position:absolute;left:0;top:0;width:88px;height:87px;background-image:url('assets/cat-atlas.png');background-size:352px 352px;background-position:0 0;background-repeat:no-repeat}.score-result{position:relative;text-align:center;padding:12px 0 20px;border-top:1px solid #b9a17755;border-bottom:1px solid #b9a17755;margin-bottom:22px}.score-result .score-number{font-family:Georgia,serif;font-size:78px;line-height:1.1;letter-spacing:-.04em;color:#2b5145}.score-result .score-label{font-size:10px;text-transform:uppercase;letter-spacing:.18em;display:block;color:#73775a;margin-top:4px}.score-result .result-best{margin-top:17px;font-size:13px;color:#636b53}.new-best{display:inline-flex;align-items:center;gap:7px;color:#8d6236;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:11px}.new-best svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7}.setting{padding:11px 0;border-bottom:1px solid #87937930;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.setting label{font-size:13px;display:flex;align-items:center;gap:10px;min-height:28px}.setting output{font-size:11px;color:#74765c;font-variant-numeric:tabular-nums}.setting input[type=range]{width:100%;height:24px;accent-color:#31594a;margin:0;touch-action:pan-x}.setting input[type=checkbox]{appearance:none;-webkit-appearance:none;width:39px;height:23px;border-radius:20px;background:#b7b8a0;border:1px solid #8c9c8555;position:relative;cursor:pointer;margin:0;transition:background .15s}.setting input[type=checkbox]:before{content:"";position:absolute;background:#faf0d9;width:17px;height:17px;border-radius:50%;top:2px;left:2px;box-shadow:0 1px 3px #354d3b40;transition:transform .15s}.setting input:checked{background:#376353}.setting input:checked:before{transform:translateX(15px)}.setting select{color:#3a5644;background:#f5e8cf;border:1px solid #74896966;border-radius:6px;padding:8px;min-height:40px;font-size:12px;max-width:125px}.settings-footer{margin-top:22px}.controls-illustration{display:block;width:100%;height:137px;margin:0 auto 20px}.controls-illustration text{font:11px "Trebuchet MS",sans-serif;fill:#53644d}.control-copy{text-align:center!important;font-size:16px!important;line-height:1.6!important;color:#365243!important;margin:10px -7px 15px!important}.control-copy strong{display:block;font-weight:600}.keyboard-hint{text-align:center;border-top:1px solid #929e7c38;padding-top:17px;font-size:11px!important;color:#73775d!important}kbd{display:inline-block;border:1px solid #adb495;border-bottom-width:2px;background:#f8edd7;border-radius:4px;padding:2px 5px;font-size:10px;font-family:inherit;line-height:1.3}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reduced *{scroll-behavior:auto}.reduced .panel{animation:none}.reduced *{transition:none!important}@keyframes panel-in{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
@media(min-aspect-ratio:1/1){.menu-art{background-size:auto 118%;background-position:calc(50% + 230px) 65%;background-color:#332b25}.menu-shade{background:linear-gradient(90deg,#273c33 0%,#283b32ed 28%,#283b3233 63%,#26383220),linear-gradient(0deg,#1d2b2a8c,transparent 20%)}.menu-content{left:calc(50% - 210px);top:50%;transform:translate(-50%,-53%);width:320px}.title-cozy{font-size:100px}.title-tower{font-size:49px}.menu-nav{margin-top:27px}footer{left:calc(50% - 375px);right:auto;width:330px;bottom:max(20px,env(safe-area-inset-bottom))}.best-menu{margin-top:31px}.menu-nav button{min-height:65px}}
@media(max-height:650px) and (max-aspect-ratio:1/1){.menu-content{top:max(16px,env(safe-area-inset-top));width:70%}.title-cozy{font-size:62px}.title-tower{font-size:30px}.title-flourish{display:none}.best-menu{margin:10px 0}.play{min-height:48px;font-size:24px}.menu-nav{margin-top:14px}.menu-nav button{min-height:48px;gap:4px}.menu-nav svg{width:18px;height:18px}.panel{padding:18px 22px}.panel-head{margin-bottom:15px}}
@media(max-height:530px) and (min-aspect-ratio:1/1){.menu-content{left:28%;width:240px;transform:translate(-50%,-53%)}.title-cozy{font-size:66px}.title-tower{font-size:32px}.title-flourish{display:none}.best-menu{margin:11px 0}.play{min-height:46px;font-size:23px}.menu-nav{margin-top:15px}.menu-nav button{min-height:49px;gap:3px}.menu-nav svg{height:16px}footer{left:4%;width:48%;bottom:7px}footer p{font-size:9px;margin-bottom:3px}.disclosure{font-size:8px}.panel{max-width:430px;padding:16px 25px}.panel-head{margin-bottom:12px}.controls-illustration{height:80px;margin-bottom:10px}.control-copy{font-size:14px!important}.score-result{padding:4px 0 9px;margin-bottom:10px}.score-result .score-number{font-size:46px}.score-result .result-best{margin-top:4px}.button{min-height:44px}.panel .button{margin-top:9px}.panel-head h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.panel{animation:none}*{transition:none!important}}

.low .overlay{backdrop-filter:none;-webkit-backdrop-filter:none}
@font-face{font-family:PlayloafInter;src:url('assets/fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
.playloaf-lockup{display:inline-flex;align-items:center;justify-content:center;gap:5.22px;min-height:44px;padding:0 8px;margin:-5px 0 1px;color:#fcfbf9;font-family:PlayloafInter,sans-serif;font-size:14.5px;font-weight:850;line-height:1;letter-spacing:-.07em;text-decoration:none;text-shadow:none;touch-action:manipulation}
.playloaf-lockup img{width:30.74px;height:30.74px;object-fit:contain}.playloaf-dot{color:#c78c59}.playloaf-lockup:focus-visible{outline:2px solid #86c3f8;outline-offset:1px;border-radius:5px}
.recovery-status{position:relative;display:flex;align-items:center;gap:5px;margin:0 auto 0 10px;padding:4px 8px 9px;background:#24443ce8;border-radius:4px 10px 4px 10px;color:#f8e8cc;font-size:11px;font-variant-numeric:tabular-nums;min-width:68px}.recovery-status img{object-fit:contain}.recovery-track{position:absolute;bottom:5px;left:9px;right:9px;height:2px;background:#eac68130;overflow:hidden}.recovery-track i{display:block;width:100%;height:100%;background:#eac681;transform-origin:left}
@media(max-height:430px) and (min-aspect-ratio:1/1){footer{left:auto;right:3%;width:38%;bottom:max(9px,env(safe-area-inset-bottom))}}
