html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#3a1f5c}canvas,img{-webkit-user-drag:none}.tdh-root{--plum:#3a1f5c;--pink:#ff3ea5;--cream:#f4f1ea;--gold:#ffc861;--red:#e0262b;--lime:#9bea3c;background:var(--plum);color:var(--plum);font-family:var(--font-inter), system-ui, sans-serif;position:fixed;inset:0;overflow:hidden}.tdh-stage{position:absolute;inset:0}.tdh-stage canvas{touch-action:none;width:100%;height:100%;display:block}.tdh-ui{pointer-events:none;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));position:absolute;inset:0}.tdh-ui button,.tdh-ui [role=switch],.tdh-card,.tdh-zoomhost{pointer-events:auto}.tdh-display{font-family:var(--font-bungee), system-ui, sans-serif;letter-spacing:.01em;font-variant-numeric:lining-nums tabular-nums}.tdh-pill{background:var(--cream);border:3px solid var(--plum);min-height:44px;box-shadow:0 4px 0 var(--plum);white-space:nowrap;border-radius:14px;align-items:center;gap:8px;padding:0 14px;font-size:22px;line-height:1;display:inline-flex}.tdh-badge{white-space:nowrap;background:var(--pink);border:2px solid var(--plum);border-radius:8px;flex-shrink:0;align-items:center;padding:3px 8px;font-size:13px;display:inline-flex}.tdh-timer.low{background:var(--red);color:var(--cream);animation:.5s ease-in-out infinite alternate tdh-pulse}@keyframes tdh-pulse{0%{transform:scale(1)}to{transform:scale(1.07)}}.tdh-top{grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;display:grid}.tdh-col-right{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.tdh-icon-btn{background:var(--cream);border:3px solid var(--plum);width:44px;height:44px;box-shadow:0 3px 0 var(--plum);color:var(--plum);cursor:pointer;touch-action:manipulation;border-radius:12px;place-items:center;display:grid}.tdh-zoomhost{top:calc(max(12px, env(safe-area-inset-top)) + 116px);right:max(12px, env(safe-area-inset-right));position:absolute}.tdh-zoomhost .fz-zoom{flex-direction:column;position:static}.tdh-zoomhost .fz-zoom button{background:var(--cream);width:44px;height:44px;color:var(--plum);border:3px solid var(--plum);box-shadow:0 3px 0 var(--plum)}.tdh-zoomhost .fz-zoom button:hover{background:color-mix(in oklch, var(--cream) 85%, var(--pink));border-color:var(--plum)}.tdh-btn{border:3px solid var(--plum);background:var(--pink);min-height:48px;color:var(--plum);box-shadow:0 4px 0 var(--plum);font-family:var(--font-bungee), system-ui, sans-serif;white-space:nowrap;cursor:pointer;touch-action:manipulation;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:18px;transition:transform .2s cubic-bezier(.22,1,.36,1),background-color .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1);display:inline-flex}.tdh-btn.ghost{background:var(--cream)}@media (hover:hover){.tdh-btn:hover{background:color-mix(in oklch, var(--pink) 86%, var(--plum));box-shadow:0 6px 0 var(--plum);transform:translateY(-2px)}.tdh-btn.ghost:hover,.tdh-icon-btn:hover{background:color-mix(in oklch, var(--cream) 85%, var(--pink))}}.tdh-btn:active,.tdh-icon-btn:active{transform:scale(.98)}.tdh-btn:focus-visible,.tdh-icon-btn:focus-visible,.tdh-seg button:focus-visible{outline:3px solid var(--plum);outline-offset:3px}.tdh-overlay{padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:color-mix(in oklch, var(--plum) 45%, transparent);pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.tdh-overlay.clear{pointer-events:none;background:0 0}.tdh-card{overflow-wrap:anywhere;background:var(--cream);width:100%;max-width:min(460px,100%);max-height:100%;color:var(--plum);border:3px solid var(--plum);box-shadow:0 4px 0 var(--plum);border-radius:14px;padding:clamp(20px,5vw,32px);overflow-y:auto}.tdh-card h1,.tdh-card h2{margin:0;line-height:1.05}.tdh-wordmark{letter-spacing:.12em;text-transform:uppercase;color:var(--pink);-webkit-text-stroke:.5px var(--plum);font-size:13px}.tdh-row{flex-wrap:wrap;gap:10px;display:flex}.tdh-stats{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:10px;margin:18px 0;display:grid}.tdh-stat{border:2px solid var(--plum);background:#fff8;border-radius:10px;padding:8px 10px}.tdh-stat b{font-size:22px;line-height:1.1;display:block}.tdh-stat span{text-transform:uppercase;letter-spacing:.06em;font-size:12px}.tdh-muted{margin:8px 0 0;font-size:14px;line-height:1.45}.tdh-seg{flex-wrap:wrap;gap:6px;display:flex}.tdh-seg button{border:2px solid var(--plum);background:var(--cream);min-height:44px;color:var(--plum);cursor:pointer;white-space:nowrap;border-radius:10px;padding:0 14px;font-weight:700;transition:background-color .2s cubic-bezier(.22,1,.36,1)}.tdh-seg button[aria-pressed=true]{background:var(--pink)}.tdh-setting{justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin:12px 0;font-weight:650;display:flex}.tdh-label{text-transform:uppercase;letter-spacing:.1em;opacity:.8;font-size:12px;font-weight:800}.tdh-hints{left:0;right:0;bottom:max(10px, env(safe-area-inset-bottom));pointer-events:none;justify-content:center;gap:8px;display:flex;position:absolute}.tdh-chip{background:var(--cream);border:2px solid var(--plum);white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.tdh-restart{left:max(12px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom));pointer-events:auto;position:absolute}.hint-fine{display:none}@media (pointer:fine){.hint-fine{display:inline}.hint-coarse{display:none}}@media (max-width:480px){.tdh-pill{padding:0 10px;font-size:18px}}.tdh-toast{top:calc(max(12px, env(safe-area-inset-top)) + 64px);border:3px solid var(--plum);background:var(--cream);box-shadow:0 4px 0 var(--plum);white-space:nowrap;pointer-events:none;border-radius:12px;padding:8px 16px;font-size:22px;animation:1.2s cubic-bezier(.22,1,.36,1) both tdh-toast;position:absolute;left:50%;transform:translate(-50%)}.tdh-toast.good{background:var(--gold)}.tdh-toast.bad{background:var(--red);color:var(--cream)}@keyframes tdh-toast{0%{opacity:0;transform:translate(-50%,10px)}15%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0}}.tdh-tag{border:3px solid var(--plum);white-space:nowrap;pointer-events:none;will-change:transform;border-radius:10px;align-items:center;gap:6px;padding:4px 10px;font-size:16px;display:none;position:absolute;top:0;left:0}.tdh-tag.tell{background:var(--red);color:var(--cream)}.tdh-tag.open{background:var(--lime);color:var(--plum);outline:3px solid var(--lime);outline-offset:2px}.tdh-vignette{pointer-events:none;background:radial-gradient(#0000 45%,#e0262ba6 100%);animation:.12s linear both tdh-vig;position:absolute;inset:0}@keyframes tdh-vig{0%{opacity:1}to{opacity:1}}.tdh-fly{pointer-events:none;color:var(--plum);background:var(--gold);border:3px solid var(--plum);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:22px;animation:.9s cubic-bezier(.22,1,.36,1) both tdh-fly;display:inline-flex;position:absolute}@keyframes tdh-fly{0%{opacity:0;top:52%;left:50%;transform:translate(-50%)scale(.7)}15%{opacity:1;transform:translate(-50%,-10px)scale(1)}to{opacity:.2;top:36px;left:calc(100% - 70px);transform:translate(-50%)scale(.6)}}.tdh-coach-on{animation:.9s ease-in-out infinite alternate tdh-ring}@keyframes tdh-ring{0%{outline:4px solid var(--pink);outline-offset:2px}to{outline:4px solid var(--gold);outline-offset:7px}}.tdh-coach{left:50%;bottom:calc(max(10px, env(safe-area-inset-bottom)) + 52px);pointer-events:auto;width:min(380px,100% - 24px);position:absolute;transform:translate(-50%)}.tdh-coach.top{bottom:auto;top:calc(max(12px, env(safe-area-inset-top)) + 70px)}.tdh-load{border:3px solid var(--plum);background:#fff8;border-radius:999px;height:16px;margin-top:16px;overflow:hidden}.tdh-load i{background:var(--pink);height:100%;transition:width .4s cubic-bezier(.22,1,.36,1);display:block}.tdh-debug{color:#9f9;pointer-events:none;white-space:pre;background:#000a;border-radius:6px;padding:6px 8px;font:12px/1.4 ui-monospace,monospace;position:absolute;top:70px;left:12px}@media (prefers-reduced-motion:reduce){.tdh-timer.low,.tdh-coach-on,.tdh-toast{animation:none}.tdh-fly{animation-duration:10ms}.tdh-btn{transition:none}.tdh-btn:hover{transform:none}}
