:root{--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--bg: #0c0d10;--surface: #15161b;--surface-2: #1c1e24;--fg: #f2f1ee;--muted: #8b8d96;--accent: #d4d7de;--accent-fg: #0c0d10;--border: rgb(242 241 238 / 12%);--font: "Segoe UI", system-ui, -apple-system, sans-serif;--display: Georgia, "Times New Roman", serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}button:disabled{opacity:.4;cursor:default}html.tessera-drag,html.tessera-drag body{touch-action:none;overflow:hidden}html.tessera-drag header,html.tessera-drag footer{pointer-events:none}.app{position:relative;height:100dvh;min-height:100dvh;overflow:hidden;-webkit-user-select:none;user-select:none;background:var(--bg);color:var(--fg)}.app canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.hud{pointer-events:none;position:absolute;inset-inline:0;top:0;z-index:20;display:flex;align-items:center;gap:.5rem;padding:max(.75rem,var(--sat)) 1rem .5rem}.hud .title{pointer-events:auto;font-family:var(--display);font-size:1.125rem;font-weight:500;letter-spacing:-.02em}.hud .score-wrap{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center}.hud .label{font-size:.65rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.hud .score{font-family:var(--display);font-size:1.5rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.02em}.hud .actions{pointer-events:auto;display:flex;align-items:center;gap:.25rem}.icon-btn{width:2.75rem;height:2.75rem;border-radius:.5rem;display:inline-flex;align-items:center;justify-content:center;color:var(--fg)}.icon-btn:hover{background:var(--surface-2)}.icon-btn:active{transform:scale(.98)}.hint{pointer-events:none;position:absolute;inset-inline:0;top:4.5rem;z-index:20;padding:0 1.25rem;text-align:center;font-size:.875rem;color:var(--muted);text-wrap:pretty}.foot{pointer-events:none;position:absolute;inset-inline:0;bottom:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:.25rem 1.25rem max(.75rem,var(--sab));font-size:.75rem;color:var(--muted)}@media(min-width:640px){.foot{display:none}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto;background:var(--bg);padding:max(1rem,var(--sat)) 1.5rem max(1rem,var(--sab))}.panel{width:100%;max-width:24rem;display:flex;flex-direction:column;align-items:center;text-align:center}.logo{width:72px;height:72px;border-radius:16px;background:var(--surface)}.panel h1{margin:1.25rem 0 0;font-family:var(--display);font-size:3rem;font-weight:500;letter-spacing:-.03em;text-wrap:balance}.panel h2{margin:0;font-family:var(--display);font-size:1.875rem;font-weight:500;letter-spacing:-.02em}.panel .tag{margin:.5rem 0 0;font-size:1rem;color:var(--muted);text-wrap:pretty}.panel .meta{margin:.75rem 0 0;font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}.howto{width:100%;margin:1.5rem 0 0;padding:0;list-style:none;text-align:left;font-size:.875rem;line-height:1.35}.howto li{display:flex;gap:.75rem;margin-top:.625rem}.howto li:first-child{margin-top:0}.howto .n{width:1rem;flex-shrink:0;font-weight:500;font-variant-numeric:tabular-nums}.howto .t{color:var(--muted);text-wrap:pretty}.actions-col{width:100%;margin-top:2rem;display:flex;flex-direction:column;gap:.75rem}.btn{width:100%;height:3rem;border-radius:.5rem;font-size:1rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;transition:opacity .15s ease,transform .15s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{opacity:.9}.btn-outline{border:1px solid var(--border);background:transparent;color:var(--fg)}.btn-outline:hover{background:var(--surface-2)}.over-label{margin:0;font-size:.75rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.over-score{margin:.75rem 0 0;font-family:var(--display);font-size:3rem;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.03em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
