#happy-dwarf-game{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:16px;border:0;background:#0a0b11;color:#f0ddba;font:14px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden}
#happy-dwarf-game::backdrop{background:#090a10}
#happy-dwarf-game::before{content:'';position:fixed;inset:0;background:linear-gradient(#10121c88,#0a0b10dd),url('assets/v19/match3_stage_background.png') center/cover;pointer-events:none}
#happy-dwarf-game *{box-sizing:border-box}
#happy-dwarf-game [hidden]{display:none!important}
#happy-dwarf-game button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#happy-dwarf-game button:focus-visible{outline:2px solid #f2d08e;outline-offset:3px}
.hd-shell{position:relative;display:flex;flex-direction:column;margin:auto;width:min(100%,1080px);height:100%;max-height:850px;overflow:hidden;border:1px solid #9b7950;border-radius:10px;background:#171923;box-shadow:0 16px 65px #000c,inset 0 0 0 3px #332c2b}
.hd-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid #856644;background:linear-gradient(100deg,#322832,#211f28);box-shadow:0 3px 12px #0007;z-index:2}
.hd-head h1{font-size:19px;letter-spacing:.03em;margin:0;font-weight:750}
.hd-head-actions{display:flex;gap:7px}
.hd-icon-button{display:grid;place-items:center;width:42px;height:40px;padding:7px;border:1px solid #91724d;border-radius:5px;background:#24232e;box-shadow:inset 0 1px #e6c58922,0 2px #090a0e;font-size:26px!important;line-height:1}
.hd-icon-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hd-flight{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none;isolation:isolate;background:#15151e;outline:none}
#hd-canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.hd-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #07091166}
.hd-top-distance{position:absolute;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:baseline;gap:5px;color:#ffedc4;text-shadow:0 2px #120d10,2px 0 #120d10,-2px 0 #120d10,0 -2px #120d10,0 3px 8px #000;pointer-events:none;font-weight:800;font-size:36px;font-variant-numeric:tabular-nums}
.hd-top-distance small{font-size:15px;color:#d7c5a8}
#hd-speed-multiplier{align-self:center;margin-left:5px;padding:3px 7px;border:1px solid #97764d77;border-radius:4px;background:#131722d9;color:#edd298;font-size:13px;line-height:1.3;text-shadow:none;font-variant-numeric:tabular-nums}
.hd-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:18px;background:#0d0e184a}
.hd-card{max-height:100%;overflow-y:auto;width:min(100%,380px);text-align:center;padding:22px 25px 21px;border:1px solid #a27a4d;border-radius:9px;background:linear-gradient(145deg,#29232bf5,#141824f5);box-shadow:0 14px 50px #0008,inset 0 0 0 4px #e4b46708}
.hd-card-ornament{color:#d5ac66;font-size:25px;line-height:1}
.hd-card h2{font-size:25px;line-height:1.2;margin:7px 0 13px}
.hd-card>p:not(.hd-controls){font:13px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;color:#c9c0b2;margin:0 0 19px}
.hd-card>p:empty{display:none}
.hd-action{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 23px;border:1px solid #c09760;border-radius:5px;background:linear-gradient(#80483d,#522f35);color:#fff0d0!important;font-weight:700!important;box-shadow:inset 0 1px #ffe5b62e,0 3px #0e1018}
.hd-action:hover{background:linear-gradient(#925346,#633740)}
.hd-action:active{transform:translateY(1px)}
.hd-action:disabled{opacity:.5;cursor:wait!important}
.hd-controls{margin:17px 0 0;font-size:10px;color:#bcae95;line-height:1.6}
.hd-controls span{display:block;color:#827f82}
.hd-footer{z-index:2;flex:none;display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(#28232b,#1b1c26);border-top:1px solid #80633e;font-size:11px;color:#bdae99}
.hd-progress{height:8px;min-width:30px;flex:1;padding:1px;border:1px solid #826b4a;border-radius:5px;background:#10131c;overflow:hidden}
.hd-progress i{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(#dfbd78,#96723d);box-shadow:0 0 7px #dbae5355}
#hd-distance{color:#ead6b4;white-space:nowrap;font-size:11px;font-variant-numeric:tabular-nums}
.hd-finish-icon{flex:none;width:15px;height:19px;fill:none;stroke:#c0a16c;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hd-victory{position:absolute;inset:0;z-index:3;overflow-y:auto;overscroll-behavior:contain;padding:20px;background:linear-gradient(#12131bf5,#1b151cf8)}
.hd-victory-content{width:min(100%,680px);margin:auto;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px}
.hd-victory-heading{text-align:center;flex:none}
.hd-victory-heading>span{color:#e8c37e;font-size:26px}
.hd-victory h2{font-size:clamp(17px,2.3vw,24px);line-height:1.3;letter-spacing:.045em;max-width:480px;margin:4px auto 0;color:#f2d49c}
.hd-poster{position:relative;display:grid;grid-template-columns:46% 1fr;align-items:center;width:100%;max-width:520px;min-height:220px;border:1px solid #a88150;border-radius:4px;background:radial-gradient(at 23% 40%,#6c33454a,transparent 70%),linear-gradient(120deg,#2c1d2b,#171b28);box-shadow:inset 0 0 0 5px #ae835211,0 12px 40px #0006;overflow:hidden;opacity:0}
.hd-has-won .hd-poster{animation:hd-poster-reveal .65s .85s both}
.hd-poster::after{content:'';position:absolute;inset:8px;border:1px solid #a17b3e55;pointer-events:none}
.hd-poster-portrait{align-self:stretch;display:flex;align-items:flex-end;overflow:hidden;padding-top:18px}
.hd-poster-portrait img{display:block;width:120%;max-width:none;margin:0 0 -4px -10%;image-rendering:pixelated;filter:drop-shadow(0 4px 8px #0008)}
.hd-poster-copy{z-index:1;padding:24px 22px 24px 8px;text-align:center}
.hd-poster-name{color:#bfa785;font-size:10px;letter-spacing:.04em}
.hd-poster-copy p{margin:15px 0;color:#f5deb0;font-size:22px;line-height:1.5;font-weight:750;text-wrap:balance}
.hd-poster-divider{color:#aa804a;font-size:10px}
.hd-story-bridge{text-align:center;margin:0;max-width:490px;font-size:12px;line-height:1.6;color:#b7a99c}
.hd-victory-actions{display:flex;gap:10px;align-items:center;margin-top:2px}
#hd-finish-close{min-height:44px;padding:8px 20px;background:transparent;border:1px solid #746149;border-radius:5px}
.hd-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}
body.hd-open #scene *{animation-play-state:paused!important}
@keyframes hd-poster-reveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:740px){#happy-dwarf-game{padding:0}.hd-shell{width:100%;max-height:none;border:0;border-radius:0}.hd-head{padding:calc(7px + env(safe-area-inset-top)) 10px 7px}.hd-head h1{font-size:17px}.hd-footer{padding:10px 11px calc(10px + env(safe-area-inset-bottom));gap:8px}.hd-footer>span{display:none}.hd-card{padding:19px 18px;width:min(100%,340px)}.hd-card h2{font-size:23px}.hd-top-distance{top:17px;font-size:32px}.hd-controls span{display:none}.hd-victory{padding:18px 16px}.hd-victory h2{font-size:18px;max-width:300px}.hd-poster{min-height:200px;grid-template-columns:44% 1fr}.hd-poster-copy{padding:24px 15px 24px 4px}.hd-poster-copy p{font-size:19px;margin:12px 0}.hd-poster-name{font-size:9px}.hd-story-bridge{font-size:11px}.hd-victory-content{gap:15px}.hd-victory-actions .hd-action{min-height:44px;padding:9px 22px}}
@media(max-height:600px){.hd-overlay{padding:10px}.hd-victory{padding:13px}.hd-victory-content{gap:10px}.hd-victory h2{font-size:16px}.hd-victory-heading>span{font-size:18px}.hd-poster{min-height:150px;max-width:420px}.hd-poster-portrait img{width:110%;max-height:210px;object-fit:contain;object-position:bottom}.hd-poster-copy p{font-size:18px;margin:7px 0}.hd-poster-copy{padding:15px 15px 15px 6px}.hd-story-bridge{font-size:10px}.hd-card{padding:15px 18px}.hd-card h2{font-size:21px;margin:5px 0 10px}.hd-card>p:not(.hd-controls){font-size:12px;line-height:1.5;margin-bottom:13px}.hd-controls{margin-top:12px}.hd-card-ornament{font-size:19px}}
@media(prefers-reduced-motion:reduce){.hd-has-won .hd-poster{animation:none;opacity:1}.hd-action:active{transform:none}}

.hd-ranking-button{min-height:40px;padding:7px 12px;border:1px solid #91724d;border-radius:5px;background:#24232e;font-size:12px!important}
.hd-save-notice{position:absolute;z-index:5;bottom:10px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);padding:6px 10px;border:1px solid #766045;background:#171b27ed;color:#cfc1a8;border-radius:4px;text-align:center;font-size:11px}
.hd-save-notice button{background:transparent;border:0;text-decoration:underline;color:#e3c491!important;margin-left:8px}
@media(max-width:740px){.hd-head h1{font-size:15px}.hd-ranking-button{padding:6px 9px;font-size:11px!important}}
