*{box-sizing:border-box}
@font-face{font-family:"Headline Games JP";font-style:normal;font-display:swap;font-weight:700;src:url('./art/noto-sans-jp-protein-crane-700.woff') format('woff')}
body.hg-game-page,body.hg-game-page *{font-family:"Headline Games JP",system-ui,-apple-system,"Segoe UI",sans-serif!important}
html:lang(ja) body.hg-game-page,html:lang(ja) body.hg-game-page *{font-family:"Headline Games JP","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif!important}
[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.game-main{width:100%;color:#24334c}.hg-feature-label{margin:0;padding:8px 14px;background:#24334c;color:#fff;text-align:center;font-size:.78rem;font-weight:950;letter-spacing:.08em}
.hero-stage{display:grid;place-items:center;min-height:280px;background:#fdf8ef;overflow:hidden}.hero-stage img{display:block;width:100%;max-height:600px;object-fit:cover}
.intro-copy h1{margin:.15em 0;font-size:clamp(2rem,6vw,4.8rem);line-height:.98;letter-spacing:-.04em}.intro-copy .dek{max-width:780px;margin:.6rem 0 1rem;font-size:clamp(1rem,2.4vw,1.25rem);line-height:1.65}
.eyebrow{margin:0;color:#bb5033;font-weight:950;letter-spacing:.08em}.unofficial{display:block;margin-top:14px;color:#526477;line-height:1.55}

#play{width:min(580px,100%);height:calc(var(--hg-visual-viewport-height,100dvh) - max(var(--hg-game-header-block,112px),112px));min-height:440px;margin:0 auto;padding:4px 8px 7px;background:#fdf8ef;overflow:hidden}
.play-shell{height:100%;display:grid;grid-template-rows:38px minmax(0,1fr);gap:5px}.play-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;align-items:stretch}
.status-ticket{min-width:0;padding:3px 2px;display:grid;place-items:center;text-align:center;background:#fff;border-bottom:3px solid #24334c;font-size:.58rem;line-height:1.05;pointer-events:none}.status-ticket b{display:block;font-size:.86rem;line-height:1.15;white-space:nowrap}
.machine-stage{position:relative;min-height:0;display:grid;place-items:center;overflow:hidden;background:#fdf8ef;border-bottom:2px solid #24334c}#boardHost{width:100%;height:100%;display:grid;place-items:center}
.crane-board{--claw-x:48%;position:relative;height:100%;max-height:650px;aspect-ratio:720/900;max-width:100%;overflow:hidden;outline:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:ew-resize;background:#fdf8ef}
.crane-board:focus-visible{outline:4px solid #0086ff;outline-offset:-5px}.crane-board.is-locked{cursor:progress}.crane-board.is-locked .gesture-cue{opacity:0}
.scene{position:absolute;inset:0;width:100%;height:100%}.scene-back{z-index:0}.scene-front{z-index:8;pointer-events:none}.scene-chute-cover{z-index:12;pointer-events:none;clip-path:polygon(79.4% 33.8%,94.2% 33.8%,94.2% 78%,79.4% 78%)}.tray-items{z-index:9;pointer-events:none}
.doll-layer{position:absolute;inset:0;z-index:3;pointer-events:none}.prize-doll{position:absolute;aspect-ratio:360/430;transform-origin:50% 50%;filter:drop-shadow(2px 3px 0 rgba(36,51,76,.14));will-change:left,top,transform}.prize-doll svg{display:block;width:100%;height:100%;overflow:visible}.prize-doll.is-held{z-index:7}
.carriage{position:absolute;z-index:10;left:var(--claw-x);top:2.5%;width:19%;height:auto;transform:translateX(-50%)}
.claw-rig{z-index:8;pointer-events:none;overflow:visible}.rig-cable{fill:none;stroke:#24334c;stroke-width:7;stroke-linecap:round}.rig-arm{fill:none;stroke:#ffc644;stroke-width:30;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 2px #24334c)}.rig-hub-outer{fill:#ffc644;stroke:#24334c;stroke-width:7}.rig-hub-inner{fill:#fdf8ef;stroke:#24334c;stroke-width:5}.rig-pad{fill:#bb5033;stroke:#24334c;stroke-width:6}
.drop-guide{position:absolute;z-index:6;left:var(--claw-x);top:20%;height:52%;width:0;transform:translateX(-50%);border-left:2px dashed rgba(36,51,76,.38);pointer-events:none;transition:opacity .12s linear}.drop-guide:after{content:"";position:absolute;left:-18px;bottom:-2px;width:34px;height:12px;border:3px solid rgba(187,80,51,.72);border-top:0;border-radius:0 0 9px 9px}.crane-board:not([data-phase="ready"]) .drop-guide{opacity:0}.crane-board.is-aiming .drop-guide{border-left-color:rgba(36,51,76,.72)}.crane-board.is-aiming .drop-guide:after{border-color:#bb5033;border-top:0}
.gesture-cue{position:absolute;z-index:11;left:var(--claw-x);top:17%;width:54px;height:14px;transform:translateX(-50%);border-top:4px solid #24334c;pointer-events:none;opacity:.85}.gesture-cue:before,.gesture-cue:after{content:"";position:absolute;top:-8px;width:10px;height:10px;border-top:4px solid #24334c;border-left:4px solid #24334c}.gesture-cue:before{left:0;transform:rotate(-45deg)}.gesture-cue:after{right:0;transform:rotate(135deg)}
.load-error{margin:.7rem 0 0;padding:.65rem .8rem;background:#fff2ed;border-left:6px solid #bb5033;font-weight:850;line-height:1.45}

#result{width:min(760px,calc(100% - 28px));margin:12px auto 40px}.result-card{padding:16px;text-align:center;background:#fdf8ef;border:4px solid #24334c;border-radius:24px;box-shadow:0 9px 0 rgba(36,51,76,.15)}
.result-visual{height:min(42dvh,350px);display:grid;place-items:center;overflow:hidden}#resultScene{display:grid;place-items:center;width:100%;height:100%}#resultScene .crane-board{pointer-events:none}
.result-caught{margin:0;font-size:clamp(3.4rem,14vw,6.4rem);font-weight:1000;line-height:.9}.result-caught small{display:block;margin-top:7px;font-size:.9rem;letter-spacing:.08em}.result-number{margin:.45rem 0 0;font-size:1.5rem;font-weight:950}.result-number small{font-size:.74rem;letter-spacing:.06em}#resultRank{margin:.35rem 0 .2rem;outline:none}.result-detail,.next-goal{max-width:600px;margin:.45rem auto;line-height:1.55}.next-goal{padding:.55rem .75rem;background:#fff;border-left:6px solid #ffc644;text-align:left}
.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}.result-actions button{min-height:52px;padding:10px 16px;font:900 .95rem inherit}

@media(max-width:680px){body.hg-game-active{overflow:hidden}.hg-game-active .hg-site-footer{display:none}#play{height:calc(var(--hg-visual-viewport-height,100dvh) - max(var(--hg-game-header-block,112px),112px))}}
@media(min-width:720px){.hero-stage{min-height:430px}#play{border:3px solid #24334c;border-radius:18px;margin-top:10px}.play-shell{grid-template-rows:42px minmax(0,1fr)}}
@media(max-width:360px){#play{padding-inline:5px}.play-shell{grid-template-rows:35px minmax(0,1fr);gap:3px}.status-ticket{font-size:.52rem}.status-ticket b{font-size:.76rem}.intro-copy h1{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.prize-doll{filter:none}.gesture-cue{opacity:.55}.drop-guide{transition:none}}
