@import"https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&family=Manrope:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box}:root{--hue: 300;--bg: oklch(.13 .012 300);--bg2: oklch(.16 .014 300);--panel: oklch(.205 .018 300);--panel-hi: oklch(.235 .02 300);--ink: oklch(.94 .008 300);--muted: oklch(.68 .014 300);--faint: oklch(.52 .016 300);--line: oklch(1 0 0 / .09);--line-2: oklch(1 0 0 / .16);--accent: oklch(.78 .14 var(--hue));--accent-hi:oklch(.86 .12 var(--hue));--green: oklch(.78 .16 145)}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}.bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,var(--bg2) 0%,var(--bg) 70%,oklch(.11 .01 300) 100%)}.bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(oklch(1 0 0 / .018) 1px,transparent 1px),linear-gradient(90deg,oklch(1 0 0 / .018) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 95%);mask-image:linear-gradient(180deg,#000 0%,transparent 95%)}.scan{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.4;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#0000001f 3px);mix-blend-mode:multiply}#loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#08060bf5}#loading-overlay.hidden{display:none}.spinner{width:52px;height:52px;border:3px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--faint);font-family:Silkscreen,monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;margin:0}section{display:none}section.active{display:flex}#start-screen,#results-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;align-items:center;justify-content:center;padding:24px;overflow-y:auto;background:#040305b8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}#session-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#040305}.panel{width:min(480px,100%);border:1px solid var(--line-2);padding:32px 30px;background:var(--panel);clip-path:polygon(0 10px,10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px));text-align:center}.result-panel{width:min(520px,100%)}.brand-logo{display:block;font-family:Silkscreen,monospace;font-size:.6rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.panel h1{margin:0 0 8px;color:var(--ink);font-family:Silkscreen,monospace;font-size:1.5rem;font-weight:700;letter-spacing:.02em;line-height:1.2;text-transform:uppercase}.panel-subtitle{margin:0 0 24px;font-family:Silkscreen,monospace;font-size:.6rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.config-group{margin-bottom:18px;text-align:left}.config-label{color:var(--faint);font-family:Silkscreen,monospace;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px}.btn-row{display:flex;gap:8px;justify-content:stretch}.btn-row button{flex:1;min-height:44px;border:1px solid var(--line-2);clip-path:polygon(0 5px,5px 0,calc(100% - 5px) 0,100% 5px,100% calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,0 calc(100% - 5px));padding:0 8px;color:var(--muted);background:var(--panel);font-family:Silkscreen,monospace;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.btn-row button:hover{background:var(--panel-hi);color:var(--ink)}.btn-row button.selected{background:oklch(.78 .14 var(--hue) / .2);border-color:var(--accent);color:var(--accent-hi)}.upload-input{display:block;width:100%;margin-top:10px;color:var(--muted);font-size:.8rem}.upload-info{margin:8px 0 0;color:var(--faint);font-size:.78rem}.upload-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.upload-thumbs .thumb{width:48px;height:48px;padding:0;border:1px solid var(--line-2);border-radius:4px;background-size:cover;background-position:center;background-repeat:no-repeat;cursor:pointer;position:relative;transition:border-color .15s,transform .15s}.upload-thumbs .thumb:hover{border-color:var(--accent);transform:scale(1.05)}.upload-thumbs .thumb:after{content:"×";position:absolute;top:-6px;right:-6px;width:16px;height:16px;line-height:15px;text-align:center;font-size:.7rem;color:var(--ink);background:#040305eb;border:1px solid var(--line-2);border-radius:50%;opacity:0;transition:opacity .15s}.upload-thumbs .thumb:hover:after{opacity:1}.hidden{display:none!important}#start-btn,.results-buttons button{display:block;width:100%;min-height:48px;margin-top:8px;border:1px solid var(--accent);clip-path:polygon(0 6px,6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px));padding:0 28px;color:var(--ink);background:oklch(.78 .14 var(--hue) / .15);font-family:Silkscreen,monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}#start-btn:hover,.results-buttons button:hover{background:oklch(.78 .14 var(--hue) / .3);color:var(--accent-hi)}#start-btn{margin-top:12px;margin-bottom:16px}.home-link{display:block;color:var(--faint);font-family:Silkscreen,monospace;font-size:.65rem;letter-spacing:.08em;text-decoration:none;text-align:center;transition:color .15s}.home-link:hover{color:var(--muted)}.home-link-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--line-2);clip-path:polygon(0 6px,6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px));color:var(--muted);background:var(--panel);font-family:Silkscreen,monospace;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .15s,color .15s}.home-link-btn:hover{background:var(--panel-hi);color:var(--ink)}#board-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#board-canvas.shake{animation:board-shake .5s cubic-bezier(.36,.07,.19,.97)}@keyframes board-shake{10%,90%{transform:translate(-6px)}20%,80%{transform:translate(10px)}30%,50%,70%{transform:translate(-16px)}40%,60%{transform:translate(16px)}}.fx-flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:11;pointer-events:none;opacity:0}.fx-flash.good{background:radial-gradient(circle at 50% 50%,oklch(.78 .16 145 / .55),transparent 70%);animation:fx-wash .6s ease-out}.fx-flash.bad{background:radial-gradient(circle at 50% 50%,oklch(.62 .22 25 / .6),transparent 72%);animation:fx-wash .55s ease-out}@keyframes fx-wash{0%{opacity:0}18%{opacity:1}to{opacity:0}}.camera-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;left:-9999px;top:-9999px}#status-bar{position:absolute;top:24px;left:50%;transform:translate(-50%);max-width:90%;padding:12px 26px;background:#000000b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line-2);color:var(--ink);font-family:Silkscreen,monospace;font-size:.72rem;letter-spacing:.05em;text-align:center;opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:13}#status-bar.visible{opacity:1}#status-bar.good{border-color:var(--green);color:var(--green);font-size:.92rem;box-shadow:0 0 24px #6ed27459}#status-bar.bad{border-color:#ee343b;color:#ffaba3;color:oklch(.82 .16 25);font-size:.98rem;font-weight:700;box-shadow:0 0 26px #ee343b73;animation:status-pop .45s ease}@keyframes status-pop{0%{transform:translate(-50%) scale(1)}35%{transform:translate(-50%) scale(1.12)}to{transform:translate(-50%) scale(1)}}.end-btn{position:absolute;top:20px;right:20px;z-index:14;min-height:40px;padding:0 18px;border:1px solid var(--line-2);clip-path:polygon(0 5px,5px 0,calc(100% - 5px) 0,100% 5px,100% calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,0 calc(100% - 5px));background:var(--panel);color:var(--muted);font-family:Silkscreen,monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.end-btn:hover{background:var(--panel-hi);color:var(--ink)}.results-data{margin:8px 0 24px;display:flex;flex-direction:column;gap:10px}.result-score{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px;border:1px solid var(--accent);background:oklch(.78 .14 var(--hue) / .1);margin-bottom:6px}.result-score-value{font-family:Silkscreen,monospace;font-size:2.4rem;font-weight:700;color:var(--accent-hi);line-height:1}.result-score-label{font-family:Silkscreen,monospace;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.result-stat{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border:1px solid var(--line);background:#ffffff05}.result-stat-label{color:var(--faint);font-family:Silkscreen,monospace;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}.result-stat-value{color:var(--accent-hi);font-family:Silkscreen,monospace;font-size:.82rem;font-weight:700;letter-spacing:.06em}.results-buttons{display:flex;align-items:center;gap:12px}.results-buttons button{flex:1;margin:0}@media(max-width:640px){.panel{padding:24px 18px}.panel h1{font-size:1.25rem}.btn-row button{font-size:.55rem;min-height:42px}}
