:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;color-scheme:light;--ink: #183f36;--cream: #fff8e9;--accent: #f3cf57;--accent-hover: #ffdf76;--background: #245d50;--muted: #52685e;--surface-hover: #f1ebdc;--track: #d8ddd0;--positive: #527b53;--warning: #a65b31;--danger: #ac503a;--gold: #996115;--control-size: 44px;--radius-panel: 22px;--radius-item: 12px;--radius-control: 999px;--shadow-control: 0 2px 8px #102e2112;--shadow-panel: 0 8px 32px #102a3526;color:var(--cream);background:var(--background);scrollbar-color:var(--muted) var(--cream);scrollbar-width:thin}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}::selection{background:var(--accent);color:var(--ink)}button,summary{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{border:0}button:focus,summary:focus{outline:none}button:not(#again):focus-visible,summary:focus-visible{filter:brightness(.85)}#viewport:focus{outline:none}button:disabled{cursor:not-allowed;opacity:.55}main,#viewport,#scene{width:100%;height:100%;display:block}main{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh}#viewport{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;cursor:grab}#viewport:active{cursor:grabbing}.topbar,.hud{position:absolute;left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));display:flex;pointer-events:none;z-index:2}.topbar{top:max(24px,env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:16px}h1{margin:0;font-size:20px;line-height:1.2;letter-spacing:1px;font-weight:700;text-shadow:0 1px 8px #12392a80}.tools{display:flex;align-items:center;gap:8px;pointer-events:auto}.icon-button,#language{height:var(--control-size);border:0;border-radius:var(--radius-control);background:var(--cream);color:var(--ink);box-shadow:var(--shadow-control)}.icon-button{width:var(--control-size);display:grid;place-items:center;padding:12px}.icon-button svg,.primary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}#sound .sound-waves{display:none}#sound[aria-pressed=true] .sound-waves{display:block}#sound[aria-pressed=true] .sound-slash{display:none}.hud{bottom:max(24px,env(safe-area-inset-bottom));align-items:flex-end;justify-content:flex-end}.primary{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:52px;padding:14px 24px;border-radius:var(--radius-control);background:var(--accent);color:var(--ink);font-size:16px;line-height:1.5;font-weight:650;pointer-events:auto;box-shadow:var(--shadow-control)}button:not(:disabled):active{transform:translateY(1px)}.drag-hint{position:absolute;left:50%;bottom:152px;transform:translate(-50%);display:flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:12px 16px;border-radius:var(--radius-control);background:var(--ink);color:var(--cream);font-size:12px;line-height:1.5;text-align:center;pointer-events:none;transition:opacity .3s}.drag-hint .gesture-icons{font-size:18px;flex-shrink:0}#loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:var(--background);color:var(--cream);font-size:16px;line-height:1.5;text-align:center;z-index:5}.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}dialog{border:0;border-radius:var(--radius-panel);background:var(--cream);color:var(--ink);max-width:400px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:24px;box-shadow:var(--shadow-panel);text-align:left;overflow:auto}dialog::backdrop{background:#102b2770;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}dialog h2{margin:16px 0;font:500 28px/1.2 Georgia,serif;text-wrap:balance}dialog p{margin:0 0 16px;font-size:14px;line-height:1.6}dialog .primary{margin-top:8px;width:100%}.close{position:absolute;right:8px;top:8px;background:transparent;box-shadow:none}.gesture-icons{display:inline-flex;align-items:center;gap:.4em}.gesture-icons svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.help-gestures{margin:16px 0 0;font-size:32px;color:var(--positive)}dialog .help-keys{font-size:12px;color:var(--muted)}#language-picker{position:relative}#language{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:96px;padding:0 12px;font-size:12px;line-height:1.5;font-weight:500;list-style:none;-webkit-user-select:none;user-select:none}#language::-webkit-details-marker{display:none}#language::marker{content:""}#language svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}#language-picker[open]>#language{background:var(--accent)}.language-menu{position:absolute;top:calc(100% + 8px);right:0;width:152px;padding:8px;border-radius:var(--radius-panel);background:var(--cream);box-shadow:var(--shadow-panel)}.language-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--control-size);padding:8px 12px;border-radius:var(--radius-item);background:transparent;color:var(--ink);font-size:14px;line-height:1.5;text-align:left}.language-menu button[aria-pressed=true]{background:var(--accent);font-weight:650}#result{position:fixed;inset:auto max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));margin:0 auto;width:auto;max-width:440px;max-height:none;overflow:visible;z-index:4}#result::backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.result-heading{display:flex;align-items:flex-end;gap:16px;margin-bottom:16px}.result-heading>div{flex-shrink:0}.result-score-label{display:block;margin-bottom:8px;color:var(--muted);font-size:12px;line-height:1.4;font-weight:650}#result-score{display:flex;align-items:baseline}#result-score strong{display:block;font:900 italic 64px/1 Georgia,serif;letter-spacing:-.04em;color:var(--ink)}#result-score[data-rank=S] strong{color:var(--gold)}#result-score[data-rank=A] strong{color:var(--positive)}#result-score[data-rank=F] strong{color:var(--danger)}#result .result-heading h2{margin:0;min-width:0;font-size:24px;overflow-wrap:anywhere}.result-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:16px;border-top:1px solid var(--track)}.result-metric label{display:block;min-height:32px;font-size:12px;line-height:1.35;color:var(--muted);font-weight:600}.result-metric strong{display:block;margin:4px 0 8px;font-size:24px;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums}.result-metric meter{display:block;width:100%;height:6px;border:0;border-radius:0;background:var(--track);-moz-appearance:none;appearance:none;-webkit-appearance:none}.result-metric meter::-webkit-meter-bar{height:6px;border:0;border-radius:0;background:var(--track)}.result-metric meter::-webkit-meter-optimum-value{background:var(--positive)}.result-metric meter::-moz-meter-bar{background:var(--positive)}#result-flavour::-webkit-meter-optimum-value{background:var(--warning)}#result-flavour::-moz-meter-bar{background:var(--warning)}.flavour-scale{position:relative}.flavour-scale:after{content:"";position:absolute;left:50%;top:-3px;width:2px;height:12px;background:var(--ink);transform:translate(-50%);pointer-events:none}.flavour-ideal{display:block;margin-top:8px;color:var(--muted);font-size:11px;line-height:1.35}#result .primary{margin-top:24px}.show-results .hud,.show-results #drag-hint{display:none}@media(hover:hover){.icon-button:hover,#language:hover,.language-menu button:not([aria-pressed=true]):hover{background:var(--surface-hover)}.primary:not(:disabled):hover{background:var(--accent-hover)}}@media(max-width:600px){.topbar,.hud{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}.topbar{top:max(16px,env(safe-area-inset-top));gap:8px}.hud{bottom:max(16px,env(safe-area-inset-bottom))}h1{font-size:18px}}@media(max-width:350px){h1{font-size:16px;letter-spacing:0}.tools{gap:4px}#language{min-width:88px}dialog{padding:20px}.result-metrics{gap:8px}}@media(max-height:700px)and (max-aspect-ratio:1/1){#result{padding:16px}#result-score strong{font-size:56px}#result .result-heading h2{font-size:22px}#result .primary{margin-top:16px}}@media(min-aspect-ratio:1/1){#result{left:auto;right:max(24px,env(safe-area-inset-right));top:50%;bottom:auto;transform:translateY(-50%);width:min(400px,42vw);max-width:none}}@media(orientation:landscape)and (max-height:600px){.topbar{top:max(12px,env(safe-area-inset-top))}.hud{bottom:max(16px,env(safe-area-inset-bottom))}.drag-hint{bottom:24px}#instructions{padding:20px 24px}.help-gestures{margin:0;font-size:24px}#instructions h2{margin:12px 0;font-size:24px}#instructions p{margin-bottom:12px}}@media(max-height:420px)and (min-aspect-ratio:1/1){#result{padding:16px;top:auto;bottom:12px;transform:none}#result-score strong{font-size:48px}#result .result-heading h2{font-size:22px}.result-heading{margin-bottom:12px}.result-metrics{gap:8px;padding-top:12px}.result-metric strong{font-size:22px}#result .primary{margin-top:16px}}@media(prefers-reduced-motion:reduce){.drag-hint{transition:none}button:not(:disabled):active{transform:none}}
