:root{--felt-deep: #0b3d23;--felt-mid: #14532d;--lamp-warm: #ffd9a0;--rim-cool: #9fd8ff;--ink: #f4f7ee;--ink-dim: #b8c6ae;--panel-bg: rgba(35, 31, 26, .86);--panel-edge: rgba(255, 217, 160, .28);--accent: #ffc15b;--danger: #ff6b5e;--ok: #74ff91}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;background:#5f5143;color:var(--ink);font-family:Avenir Next,Segoe UI,system-ui,sans-serif}.shell{position:relative;width:100%;height:100vh}.viewport{position:relative;flex:1 1 auto;min-width:0}.stage,.stage canvas{width:100%;height:100%;display:block}#hud{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between}.panel{position:absolute;z-index:3;top:16px;right:16px;bottom:auto;width:min(196px,calc(100vw - 32px));max-height:min(520px,calc(100vh - 32px));background:#181511e0;border:1px solid var(--panel-edge);border-radius:14px;padding:10px 12px;overflow-y:auto;backdrop-filter:blur(4px)}.panel .sg-brand,.panel .controls-list,.panel .evidence-strip,.panel[data-capture=review] .precision-shot,.panel[data-capture=review] .controls-list,.panel[data-capture=review] .action-row,.panel[data-capture=review] .evidence-strip,.panel[data-capture=review] .power-meter,.panel[data-capture=review] .power-meta{display:none}body[data-capture=review] .result-card{opacity:0;pointer-events:none}.sg-brand h1{margin:0;font-size:1.25rem;letter-spacing:.04em}.sg-brand .eyebrow{margin:0 0 2px;font-size:.68rem;text-transform:uppercase;letter-spacing:.32em;color:var(--ink-dim)}.sg-strip{display:flex;gap:10px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px}.stat-grid article,.sg-stat{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:5px 6px}.stat-grid span,.sg-stat span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-dim)}.stat-grid strong,.sg-stat strong{display:block;font-size:1.35rem;line-height:1.2;color:var(--ink)}.power-meter{margin-top:14px;height:16px;border-radius:999px;border:1px solid var(--panel-edge);background:#00000073;overflow:hidden}.power-meter>span{display:block;height:100%;width:0%;background:linear-gradient(90deg,#7dd87d 0%,var(--accent) 55%,var(--danger) 100%);transition:width 40ms linear}.power-meta{display:flex;justify-content:space-between;font-size:.72rem;color:var(--ink-dim);margin-top:4px}.precision-shot{display:grid;gap:5px;margin-top:10px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#00000029;pointer-events:auto}.panel.result-open{visibility:hidden;pointer-events:none}.precision-shot label{display:flex;justify-content:space-between;color:var(--ink-dim);font-size:.68rem;letter-spacing:.04em}.precision-shot output{color:var(--ink);font-variant-numeric:tabular-nums}.precision-shot input{width:100%}.precision-shot button{margin-top:3px;padding:7px 8px;border-radius:7px;border:1px solid var(--panel-edge);color:var(--ink);background:#ffd9a01a}.controls-list{margin:14px 0 0;padding:10px 12px;list-style:none;border:1px solid rgba(255,255,255,.08);border-radius:8px;font-size:.78rem;color:var(--ink-dim);display:grid;gap:4px}.controls-list b{color:var(--ink);font-weight:600}.action-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;pointer-events:auto}.action-row button{flex:1 1 44%;padding:9px 10px;border-radius:8px;border:1px solid var(--panel-edge);background:#ffd9a014;color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer}.action-row button:hover{background:#ffd9a02e}.action-row button:active{transform:translateY(1px)}.evidence-strip{margin-top:14px;font-size:.7rem;color:var(--ink-dim);display:grid;gap:4px}.evidence-strip code{color:var(--rim-cool);word-break:break-all}.hole-banner{align-self:center;margin-top:14px;padding:8px 18px;border-radius:999px;background:var(--panel-bg);border:1px solid var(--panel-edge);font-size:.85rem;letter-spacing:.06em;color:var(--ink)}.result-card{align-self:flex-start;margin:0 0 11vh 24px;width:min(250px,calc(100vw - 48px));padding:14px 18px;border-radius:13px;background:#231f1ac7;border:1px solid var(--panel-edge);text-align:center;pointer-events:auto;box-shadow:0 14px 32px #1a120c3d}.result-card h2{margin:0 0 6px;font-size:1.25rem}.result-card p{margin:0;color:var(--ink-dim)}.result-card .stars{font-size:1.55rem;letter-spacing:.2em;color:var(--accent);margin-top:8px}.result-card.is-failed h2{color:var(--danger)}.result-card.is-hidden,.mobile-shot-controls{display:none}.star-row{font-size:1.4rem;letter-spacing:.24em;color:var(--accent)}@media(max-width:720px){.shell{flex-direction:column}.panel{display:flex;inset:10px 10px auto;width:auto;max-height:24vh;padding:8px 10px;gap:6px;overflow:hidden;background:#231f1a85}.panel .sg-brand,.panel .control-legend,.panel .telemetry,.panel .claim-boundary{display:none}.panel .stat-grid{margin-top:0}.hole-banner{margin-top:max(10px,env(safe-area-inset-top));max-width:calc(100vw - 24px);padding:7px 13px;font-size:.74rem}.result-card{align-self:center;width:min(300px,calc(100vw - 34px));margin:0 auto 18vh;padding:14px 20px}.mobile-shot-controls{display:grid;align-self:center;width:min(360px,calc(100vw - 22px));margin:auto 11px max(12px,env(safe-area-inset-bottom));padding:9px 10px 10px;gap:8px;border:1px solid rgba(255,232,190,.42);border-radius:16px;background:#27221ce0;box-shadow:0 8px 30px #18130e47;backdrop-filter:blur(7px);pointer-events:auto}.mobile-shot-readout{display:grid;grid-template-columns:72px 1fr 38px;align-items:center;gap:8px;color:#fff2d9;font-size:.72rem;letter-spacing:.06em}.mobile-shot-readout strong{text-align:right}.mobile-power-meter{height:9px;overflow:hidden;border-radius:999px;background:#0000006b;border:1px solid rgba(255,240,212,.28)}.mobile-power-meter>span{display:block;width:0;height:100%;background:linear-gradient(90deg,#f8d56b,#ed9b4a 58%,#c9473a)}.mobile-shot-buttons{display:grid;grid-template-columns:58px 1fr 58px;gap:8px}.mobile-shot-buttons button{min-height:44px;border:1px solid rgba(255,232,190,.36);border-radius:11px;background:#b4582a57;color:#fff7e8;font:700 .82rem/1 Avenir Next,Segoe UI,system-ui,sans-serif;touch-action:none}.mobile-shot-buttons button:first-child,.mobile-shot-buttons button:last-child{font-size:1.35rem}.mobile-shot-buttons button:active{background:#dc7d379e}}@media(prefers-reduced-motion:reduce){.power-meter>span{transition:none}}
