:root{--bg-0: #ece8df;--bg-1: #f6f3ec;--panel: rgba(255, 255, 255, .72);--panel-border: rgba(0, 0, 0, .08);--panel-shadow: 0 18px 44px -18px rgba(20, 18, 12, .25);--text: #15151a;--text-dim: rgba(21, 21, 26, .62);--text-faint: rgba(21, 21, 26, .42);--accent: #d63ad0;--accent-2: #2658d6;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.confetti{position:fixed;inset:0;pointer-events:none;z-index:100;overflow:hidden}.confetti-piece{position:absolute;top:30vh;width:8px;height:12px;border-radius:2px;opacity:0;animation:confetti-fall 2.2s cubic-bezier(.18,.7,.3,1) forwards;will-change:transform,opacity}@keyframes confetti-fall{0%{transform:translate(0) rotate(0);opacity:1}85%{opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}html{width:100%;min-height:100%;min-height:100dvh;min-height:-webkit-fill-available;background-color:var(--bg-0);background-image:radial-gradient(ellipse at 50% 55%,var(--bg-1) 0%,var(--bg-0) 70%);background-repeat:no-repeat;background-attachment:fixed;background-size:cover}body{width:100%;min-height:100%;min-height:100dvh;min-height:-webkit-fill-available;overflow:hidden;background:transparent;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}#canvas{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.safe-area-heel{position:fixed;left:0;right:0;bottom:0;height:env(safe-area-inset-bottom,0px);background-color:var(--bg-0);z-index:25;pointer-events:none}.topbar{position:fixed;top:max(12px,env(safe-area-inset-top,0px));left:0;right:0;display:flex;justify-content:center;align-items:flex-start;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);pointer-events:none;z-index:4}.topbar-inner{width:min(720px,calc(100vw - 24px));display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.topbar-tools{display:flex;align-items:center;gap:8px;pointer-events:auto;flex-shrink:0}.topbar .title{pointer-events:none}.identity-wrap{display:inline-flex;align-items:center;gap:0;min-width:0;max-width:min(320px,52vw);font:500 11.5px var(--mono);letter-spacing:.035em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.identity-name-group{display:inline-flex;align-items:center;gap:3px;min-width:0;flex:0 1 auto}.identity-name{min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--text)}.identity-stats{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim)}.name-edit-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:6px;background:#0000000d;color:var(--text-faint);cursor:pointer}.name-edit-btn:hover{background:#00000017;color:var(--text-dim)}.name-edit-icon{display:block}.topbar-btn{flex:0 0 auto;padding:8px 15px;font-size:13px;font-weight:600;border-radius:8px}.title{display:inline-flex;align-items:center;gap:8px}.title .dot{width:11px;height:11px;border-radius:50%;background:conic-gradient(from 0deg,#ff3b3b,#ffb13b,#f8ff3b,#4dff3b,#3bffd5,#3b7bff,#b13bff,#ff3bb1,#ff3b3b);box-shadow:0 0 18px #d63ad059}.title h1{font-size:18px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.stage{position:fixed;top:50%;left:50%;--stage-lift: clamp(24px, 5vh, 36px);transform:translate(-50%,calc(-50% - var(--stage-lift)));z-index:3;display:flex;justify-content:center;align-items:center}.card{background:var(--panel);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);border:1px solid var(--panel-border);border-radius:14px;box-shadow:var(--panel-shadow);animation:cardIn .32s cubic-bezier(.2,.7,.2,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes cardInFade{0%{opacity:0}to{opacity:1}}.card-label{font:600 9.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.card-help{font-size:11.5px;line-height:1.4;color:var(--text-dim)}.btn.start-btn{flex:0 0 auto;padding:20px 48px;font:600 19px var(--sans);letter-spacing:.02em;border-radius:13px;animation:cardIn .32s cubic-bezier(.2,.7,.2,1) both}.color-overlay{position:fixed;inset:0;z-index:10;background:var(--bg-0);opacity:0;pointer-events:none;transition:opacity .28s ease}.color-overlay-fill{position:absolute;top:env(safe-area-inset-top,0px);right:env(safe-area-inset-right,0px);bottom:env(safe-area-inset-bottom,0px);left:env(safe-area-inset-left,0px);background:transparent}@media (pointer: coarse){.color-overlay-fill{bottom:max(env(safe-area-inset-bottom,0px),28px)}}.color-overlay.show{opacity:1;pointer-events:auto}.color-overlay-stack{position:absolute;z-index:1;left:50%;bottom:calc(48px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;width:max-content}.color-overlay-cue{margin:0;font:600 17px var(--sans);letter-spacing:.02em;white-space:nowrap}.color-overlay-bar{width:220px;height:4px;background:#0000002e;border-radius:999px;overflow:hidden}.color-overlay-bar-fill{height:100%;width:100%;background:#0000008c;transform-origin:left;transform:scaleX(1)}.result-card{--result-extra-lift: clamp(92px, 13.5vh, 140px);position:fixed;left:50%;top:50%;z-index:3;width:260px;padding:14px 14px 12px;display:flex;flex-direction:column;gap:10px;transform:translate(-50%,calc(-50% - var(--stage-lift) - var(--result-extra-lift)));animation:cardInFade .32s cubic-bezier(.2,.7,.2,1) both}.score-block{text-align:center;padding:2px 0 4px}.score-pct{font:700 54px var(--sans);letter-spacing:-.04em;line-height:1;background:linear-gradient(180deg,#15151a,#4a4a55);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums}.score-pct-suffix{font:700 24px var(--sans);color:var(--text-dim);margin-left:2px;vertical-align:top;position:relative;top:6px}.result-streak{text-align:center;padding:9px 8px;border-radius:11px;display:flex;flex-direction:column;align-items:center;gap:4px;line-height:1.35}.result-streak--broken{background:transparent;border:none;color:var(--text);animation:streak-broken-in .62s cubic-bezier(.22,1,.36,1) both}.result-streak--broken .result-streak-title{font:800 14px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--text)}.result-streak--broken .result-streak-detail{font:500 12.5px var(--sans);color:var(--text-dim)}.result-streak--broken .result-streak-detail strong{font-weight:800;color:var(--text)}.result-streak--alive .result-streak-main{font:700 14px var(--sans);letter-spacing:.01em;color:var(--text)}.result-streak--alive .result-streak-detail{font:500 11.5px var(--sans);color:var(--text-dim)}.result-streak--idle{padding-top:2px;padding-bottom:2px}.result-streak--idle .result-streak-main{font:600 12.5px var(--sans);color:var(--text-dim)}.result-streak--idle .result-streak-detail{font:500 11.5px var(--sans);color:var(--text-faint)}@keyframes streak-broken-in{0%{opacity:0;transform:scale(.97) translateY(4px)}55%{opacity:1;transform:scale(1.02) translateY(0)}to{opacity:1;transform:scale(1) translateY(0)}}.result-stats{display:flex;justify-content:center;gap:6px;font:500 12.5px var(--sans);color:var(--text-dim)}.result-stats .k{color:var(--text-faint);margin-right:3px;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.result-stats .sep{color:#0000002e}.result-lb{text-align:center;font:500 12.5px var(--sans);color:var(--text-dim);min-height:16px}.result-lb .lb-rank{font-weight:700;color:var(--accent-2)}.lb-backdrop,.name-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f0f1438}.lb-backdrop{z-index:30}.name-backdrop{z-index:35}@media (pointer: coarse){.lb-backdrop,.name-backdrop{background:transparent}}.lb-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.lb-header h2{font-size:17px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.lb-top-n{font-weight:600;letter-spacing:.05em;color:var(--text-dim)}.lb-x{width:34px;height:34px;border:none;border-radius:8px;background:#0000000f;color:var(--text-dim);font-size:22px;line-height:1;cursor:pointer}.lb-x:hover{background:#0000001a}.name-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.name-header h2{margin:0;font-size:17px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.name-panel{width:min(360px,100%);max-height:min(320px,86vh);overflow:hidden;padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;pointer-events:auto;backdrop-filter:none;-webkit-backdrop-filter:none;background:#fffffff0;border-radius:14px;border:1px solid var(--panel-border);box-shadow:var(--panel-shadow)}.name-help{margin:0;font-size:12.5px;line-height:1.45;color:var(--text-dim)}.name-input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid rgba(0,0,0,.12);border-radius:10px;font:500 14px var(--sans);color:var(--text);background:#ffffffeb}.name-input:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px #2658d62e}.name-error{margin:0;min-height:1.3em;font-size:12.5px;font-weight:600;color:#b42318}.name-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.lb-panel{width:min(380px,100%);max-height:min(520px,86vh);overflow:hidden;padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;pointer-events:auto;backdrop-filter:none;-webkit-backdrop-filter:none;background:#fffffff0}.lb-rules{flex-shrink:0;margin:0;font-size:12.5px;line-height:1.45;color:var(--text-dim)}.lb-rules strong{font-weight:600;color:var(--text)}.lb-you{flex-shrink:0;font-size:13.5px;line-height:1.45;color:var(--text-dim)}.lb-list{list-style:none;margin:0;padding:0 6px 0 4px;display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-height:0;overflow-y:auto}.lb-row,.lb-empty{display:grid;grid-template-columns:30px 1fr minmax(52px,auto) 40px;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;font-size:13px;background:#0000000a;border:1px solid transparent}.lb-row.you{border-color:#2658d659;background:#2658d614}.lb-ellipsis{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 10px 4px}.lb-ellipsis-dot{width:4px;height:4px;border-radius:50%;background:var(--text-faint);opacity:.55}.lb-i{font:600 12px var(--mono);color:var(--text-faint)}.lb-n{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-s{font:600 13px var(--mono);text-align:right;color:var(--accent-2)}.lb-t{font-size:11px;line-height:1.2;text-align:right;color:var(--text-faint);white-space:nowrap}.lb-empty{grid-template-columns:1fr;text-align:center;font-size:13px;color:var(--text-faint)}.result-actions{display:flex;gap:7px;margin-top:2px}.btn{flex:1;padding:10px 12px;font:600 13.5px var(--sans);letter-spacing:.02em;border:none;border-radius:9px;cursor:pointer;transition:transform .1s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.btn:active{transform:translateY(1px)}.btn-primary{color:#f4f4f7;background:linear-gradient(180deg,#1a1a20,#0d0d12);box-shadow:0 8px 18px -10px #00000073}.btn-primary:hover{filter:brightness(1.08)}.btn-secondary{color:var(--text);background:#0000000d;border:1px solid rgba(0,0,0,.08)}.btn-secondary:hover{background:#00000017}.hud{position:fixed;bottom:max(14px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:flex;max-width:calc(100vw - 20px);flex-wrap:wrap;justify-content:center;row-gap:4px;gap:10px;align-items:center;font:500 12px var(--mono);letter-spacing:.06em;color:var(--text-faint);text-transform:uppercase;pointer-events:none;z-index:2}.hud .sep{color:#00000026}.bmc-anchor{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:max(14px,env(safe-area-inset-bottom,0px));z-index:3;pointer-events:none;line-height:0}.bmc-anchor .bmc-btn-container{pointer-events:auto}.bmc-anchor .bmc-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 6px 20px -8px #14120c59}.hud .hud--coarse{display:none}@media (pointer: coarse){.hud .hud--pointer{display:none}.hud .hud--coarse{display:inline}}.toast{position:fixed;left:50%;bottom:56px;transform:translate(-50%,8px);padding:8px 13px;background:#14141aeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.2);border-radius:999px;font:500 13px var(--sans);color:#f4f4f7;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:5}.toast.show{opacity:1;transform:translate(-50%)}@media (max-width: 640px){.topbar-inner{flex-direction:column;align-items:stretch;gap:10px;width:min(720px,calc(100vw - 16px))}.topbar-tools{width:100%;justify-content:space-between;gap:8px}.title{justify-content:center}.title h1{font-size:15px}.identity-wrap{flex:1 1 auto;max-width:none;font-size:10.5px}.name-edit-btn{width:24px;height:24px}.topbar-btn{padding:7px 12px;font-size:12px}.btn.start-btn{padding:16px 36px;font-size:17px;border-radius:12px}.color-overlay-cue{font-size:15px}.result-card{--result-extra-lift: clamp(44px, 7vh, 72px)}}@media (max-width: 540px){.result-card{width:min(260px,calc(100vw - 32px));--result-extra-lift: clamp(36px, 6vh, 58px)}.score-pct{font-size:48px}.hud{font-size:10px;gap:6px;letter-spacing:.04em;bottom:calc(58px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 20px)}.bmc-anchor{right:max(10px,env(safe-area-inset-right,0px));bottom:max(10px,env(safe-area-inset-bottom,0px))}.bmc-anchor .bmc-btn{min-width:48px!important;width:48px!important;height:48px!important;padding:0!important;justify-content:center!important;border-radius:12px!important}.bmc-anchor .bmc-btn-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.bmc-anchor .bmc-btn svg{height:26px!important;margin:0!important}.toast{bottom:calc(104px + env(safe-area-inset-bottom,0px))}.color-overlay-stack{bottom:calc(88px + env(safe-area-inset-bottom,0px))}.color-overlay-bar{width:180px}}
