:root{color:#244a3e;font-synthesis:none;--green:#2c634f;--orange:#c66541;background:#f3efe4;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}*{box-sizing:border-box}body{background-image:radial-gradient(#4965480c .7px,#0000 .7px);background-size:7px 7px;min-width:280px;margin:0}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default;opacity:.4}button:focus-visible{outline-offset:4px;outline:3px solid #c77a32}.game-shell{width:min(1040px,100% - 48px);margin:24px auto 16px}.heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.eyebrow{letter-spacing:.16em;color:#637667;margin:0 0 8px;font-size:10px;font-weight:750}.eyebrow span{letter-spacing:.08em;color:#8a8c76;margin-left:16px}h1{letter-spacing:.12em;margin:0;font-size:clamp(27px,3vw,36px);font-weight:650;line-height:1.25}h1 em{color:var(--orange);font-style:normal}.title-dot{color:#c29153}.lead{color:#748071;letter-spacing:.025em;margin:9px 0 0;font-size:12px}.icon-button{width:44px;height:44px;color:var(--green);background:#faf8f0;border:1px solid #cbd1be;border-radius:50%;flex-shrink:0;font-family:Georgia,serif;font-size:21px}.play-card{background:#fcfaf2;border:1px solid #d7d9c8;border-radius:22px;overflow:hidden;box-shadow:0 12px 42px #35513c08,0 2px 4px #35513c05}.status-row{justify-content:space-between;align-items:center;gap:12px;padding:14px 25px 0;display:flex}.phase-label{color:#718474;letter-spacing:.17em;align-items:center;gap:7px;font-size:10px;display:flex}.phase-label:before{content:"";background:#87a385;border-radius:50%;width:6px;height:6px}.time-display{color:#667762;white-space:nowrap;align-items:baseline;gap:6px;font-size:10px;display:flex}.time-display output{text-align:right;font-variant-numeric:tabular-nums;color:#345d48;min-width:5ch;font:600 21px/1.2 Georgia,serif}.hold-indicator{color:#7c7959;align-items:center;gap:12px;font-size:11px;display:flex}progress{appearance:none;color:#c49440;background:#e5e3ce;border:0;border-radius:4px;width:82px;height:5px;overflow:hidden}progress::-webkit-progress-bar{background:#e5e3ce;border-radius:4px}progress::-webkit-progress-value{background:#c49440;border-radius:4px}progress::-moz-progress-bar{background:#c49440}.stage{aspect-ratio:960/620;width:min(100%,154.839dvh - 464.516px);min-width:min(100%,600px);margin:0 auto;position:relative}canvas{width:100%;height:100%;display:block}.handle{color:#386c54;touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize;background:#fcfaf2;border:1px solid #6d987d;border-radius:50%;width:48px;height:48px;padding:0;font-family:Georgia,serif;font-size:15px;font-weight:700;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px #a4b69750}.handle:before,.handle:after{content:"";border-top:1px solid #6b9276;border-left:1px solid #6b9276;width:6px;height:6px;position:absolute;left:calc(50% - 3px)}.handle:before{top:6px;transform:rotate(45deg)}.handle:after{bottom:6px;transform:rotate(225deg)}.handle:hover,.handle.dragging,.handle:focus-visible{background:#eaf0df;border-color:#396d4d}.handle:disabled{opacity:.65;cursor:default}.quick-retry{width:100%;color:var(--green);background:0 0;border:0;justify-content:center;align-items:flex-start;padding:24px 12px;display:flex;position:absolute;inset:0}.quick-retry[hidden]{display:none}.quick-retry span{background:#faf8eee8;border:1px solid #c7cfba;border-radius:24px;padding:10px 18px;font-size:12px;box-shadow:0 3px 12px #35513c0c}.quick-retry:hover span{background:#eaf0df}.play-footer{border-top:1px solid #e1e3d3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 25px;padding:15px 0 18px;display:flex}.message-area{min-width:0}.message-area p{margin:0}#message-title{letter-spacing:.03em;font-size:15px;font-weight:700}#message-detail{color:#75806c;margin-top:5px;font-size:11px}.actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.primary,.secondary,.text-button{border-radius:10px;min-height:44px;padding:0 18px;font-size:12px;font-weight:700}.primary{background:var(--green);color:#fffdf4;border:1px solid var(--green);justify-content:center;align-items:center;gap:22px;display:inline-flex}.primary:hover{background:#1f523f}.secondary{color:#4e6b54;background:0 0;border:1px solid #c7cfba}.text-button{color:#7c806c;text-underline-offset:4px;background:0 0;border:0;padding:0 8px;font-weight:500;text-decoration:underline}.hint{color:#7b826f;justify-content:space-between;gap:8px;margin:13px 6px 0;font-size:10px;display:flex}.hint b{margin-right:4px;font-size:14px}.target-dot{background:#d2ab4e;border-radius:50%;width:7px;height:7px;margin-right:4px;display:inline-block}dialog{color:#345744;background:#faf8ef;border:1px solid #d2d7c3;border-radius:20px;width:min(460px,100% - 32px);max-height:calc(100dvh - 40px);padding:30px;overflow-y:auto;box-shadow:0 20px 90px #173c3630}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#29453960}dialog h2{margin:12px 0 20px;font-size:22px}dialog ol{padding-left:23px;font-size:14px;line-height:1.8}dialog li{margin-bottom:10px;padding-left:4px}dialog p:not(.eyebrow){font-size:12px;line-height:1.8}.keyboard-help{color:#76816c;border-top:1px solid #d7ddc9;padding-top:14px}dialog .primary{width:100%;margin-top:10px}@media (max-width:650px){.game-shell{width:calc(100% - 24px);margin-top:22px}.heading{margin:0 4px 20px}.eyebrow{letter-spacing:.12em;font-size:8px}.eyebrow span{margin-left:8px}.lead{max-width:245px;font-size:11px;line-height:1.8}.stage{width:100%;min-width:0;margin:22px 0 8px}.status-row{padding:14px 15px 0}.hold-indicator{gap:8px;font-size:10px}progress{width:52px}.handle{width:44px;height:44px;font-size:14px}.status-row{flex-wrap:wrap;gap:12px 8px}.phase-label{flex:1}.time-display{margin-left:auto}.time-display output{font-size:20px}.hold-indicator{flex-basis:100%;justify-content:flex-end}.play-footer{flex-direction:column;align-items:stretch;gap:16px;margin:0 16px;padding:18px 0}.message-area{min-height:40px}#message-title{font-size:14px}#message-detail{font-size:11px;line-height:1.6}.actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.primary{flex:1}.primary,.secondary{padding:0 13px}.text-button{padding:0 7px;font-size:11px}.hint{flex-direction:column;align-items:center;gap:7px;margin-top:18px}.quick-retry{padding-top:12px}.quick-retry span{padding:8px 14px;font-size:11px}}@media (prefers-reduced-motion:reduce){dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}
