:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-page:#0a0a0f;--bg-page-gradient:#17141f;--bg-card:#131319;--bg-card-raised:#17171f;--bg-inset:#0e0e14;--border-subtle:#26262f;--border-strong:#34343f;--text-primary:#f3f1f7;--text-secondary:#9a99a8;--text-muted:#65646f;--accent:#7c6bf0;--accent-hover:#6c59e8;--accent-soft:#7c6bf024;--accent-border:#7c6bf059;--color-success:#3ecf6e;--color-success-soft:#3ecf6e24;--color-error:#e5544a;--color-error-soft:#e5544a1a;--color-warning:#d9a63e;--color-warning-soft:#d9a63e24;--cell-bg:#1b1b24;--cell-black:#05050a;--cell-border:#2c2c38;--cell-correct-bg:#1e3d2b;--cell-correct-text:#4fdb84;--cell-wrong-bg:#402226;--cell-wrong-text:#ef6a60;--cell-missing-bg:#3c3320;--cell-missing-text:#e6bb5c;--shadow-card:0 1px 0 #ffffff05 inset, 0 12px 30px #00000059}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f4f3f8;--bg-page-gradient:#fff;--bg-card:#fff;--bg-card-raised:#f7f6fb;--bg-inset:#edecf4;--border-subtle:#e3e1ec;--border-strong:#cfccdd;--text-primary:#1c1b22;--text-secondary:#5c5a68;--text-muted:#8b899a;--accent:#6c59e8;--accent-hover:#5a48d6;--accent-soft:#6c59e81a;--accent-border:#6c59e84d;--color-success:#1f9e52;--color-success-soft:#1f9e521f;--color-error:#d1392f;--color-error-soft:#d1392f1a;--color-warning:#b1811f;--color-warning-soft:#b1811f24;--cell-bg:#fff;--cell-black:#1c1b22;--cell-border:#dedcea;--cell-correct-bg:#e1f5e8;--cell-correct-text:#1f9e52;--cell-wrong-bg:#fbe4e2;--cell-wrong-text:#d1392f;--cell-missing-bg:#faf1dc;--cell-missing-text:#b1811f;--shadow-card:0 1px 0 #fff9 inset, 0 12px 30px #14121e14}*,:before,:after{box-sizing:border-box}body{background:radial-gradient(ellipse 1200px 600px at 50% -10%, var(--bg-page-gradient) 0%, var(--bg-page) 55%);min-height:100vh;color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;font-family:Cutive,Courier New,monospace;font-size:15px;line-height:1.5;transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1)}button{font-family:inherit}img{max-width:100%;display:block}::selection{background:var(--accent-soft);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{justify-content:center;min-height:100vh;padding:56px 20px 80px;display:flex}.page__inner{width:100%;max-width:1180px}.header{text-align:center;margin-bottom:32px}.logo{--ink:#171310;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;margin:0;line-height:1;display:flex}.logo span{--sprite:none;--rot:0deg;--scale:1;--rise:0px;--skew:0deg;--fs-delta:0px;min-width:1.3ch;font-family:Oswald,Arial Narrow,sans-serif;font-size:calc(clamp(1.5rem, 4.5vw, 2.6rem) + var(--fs-delta));color:var(--ink);background-image:var(--sprite);filter:drop-shadow(0 2px 2px #00000029);transform:translateY(var(--rise)) rotate(var(--rot)) skewX(var(--skew)) scale(var(--scale));background-position:50%;background-repeat:no-repeat;background-size:100% 100%;justify-content:center;align-items:center;padding:.18em .06em .24em;font-style:normal;font-weight:700;transition:transform .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.logo span:hover{transform:translateY(calc(var(--rise) - 4px)) rotate(var(--rot)) skewX(var(--skew)) scale(calc(var(--scale) * 1.04));z-index:999!important}.header__meta{flex-direction:column;align-items:center;gap:10px;margin-top:14px;display:flex}.strip{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;filter:grayscale()drop-shadow(0 2px 2px #00000024);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;justify-content:center;align-items:center;margin:0;font-family:Cutive,Courier New,monospace;display:inline-flex}@media (width<=480px){.strip{font-size:.72rem!important}}.strip--white{color:#171310;background-image:url(/sprites/strip_white.png);padding:1.05em 2.2em .66em;font-size:clamp(.85rem,2vw,1.05rem)}.strip--black{color:#f2f0ec;background-image:url(/sprites/strip_black.png);padding:.95em 2.2em .56em;font-size:clamp(.9rem,2.2vw,1.1rem)}.card{background:var(--bg-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);border-radius:16px;padding:22px;transition:background-color .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.card--stage-enter{animation:.32s cubic-bezier(.4,0,.2,1) both stage-enter}@keyframes stage-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.card--stage-enter{animation:none}}.card+.card{margin-top:20px}.section-gap{min-width:0;margin-top:20px}.upload-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}@media (width<=860px){.upload-layout{grid-template-columns:1fr}}.explainer{background:var(--bg-card);border-radius:16px;flex-direction:column;gap:16px;min-width:0;padding:24px;display:flex}.explainer__label{filter:grayscale()drop-shadow(0 2px 2px #00000024);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:#f2f0ec;background-image:url(/sprites/strip_black.png);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;justify-content:center;align-self:center;align-items:center;margin:0;padding:.95em 2.2em .56em;font-family:Cutive,Courier New,monospace;font-size:clamp(.85rem,2vw,1.05rem);display:inline-flex}[data-theme=light] .explainer__label{color:#171310;background-image:url(/sprites/strip_white.png);padding:1.05em 2.2em .66em}.explainer__description{color:var(--text-secondary);margin:0;font-family:Cutive,Courier New,monospace;font-size:15px;line-height:1.65}.banner{border:1px solid var(--border-subtle);background:var(--bg-card-raised);min-height:68px;color:var(--text-secondary);border-radius:10px;align-items:center;gap:14px;padding:14px 18px;font-size:14px;transition:background-color .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);display:flex}@media (width<=480px){.banner{flex-wrap:wrap}}.banner__icon{flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.banner__text{flex:1;min-width:0}.banner__text strong{color:var(--text-primary);font-weight:600}.banner__text a{color:inherit;text-underline-offset:2px;cursor:pointer;text-decoration:underline}.banner__text a:hover{color:var(--accent)}.banner__dots{gap:4px;margin-left:6px;display:inline-flex}.banner__dots span{background:var(--text-muted);border-radius:50%;width:4px;height:4px;animation:1.2s ease-in-out infinite dot-pulse}.banner__dots span:nth-child(2){animation-delay:.15s}.banner__dots span:nth-child(3){animation-delay:.3s}@keyframes dot-pulse{0%,80%,to{opacity:.25}40%{opacity:1}}.banner--info .banner__icon{color:var(--accent)}.banner--error{background:var(--color-error-soft);border-color:#e5544a59}.banner--error .banner__icon{color:var(--color-error)}.banner--error .banner__text{color:#f1c3bf}[data-theme=light] .banner--error .banner__text{color:#000}.banner--success{background:var(--color-success-soft);border-color:#3ecf6e59}.banner--success .banner__icon{color:var(--color-success)}.banner--success .banner__text strong{color:var(--text-primary)}.banner__action{flex-shrink:0}@media (width<=480px){.banner__action{flex-basis:100%}.banner__action .btn{width:100%}}.btn{appearance:none;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:9px 18px;font-size:14px;font-weight:600;line-height:1;transition:background-color .15s cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-hover)}.btn--ghost{border:1px solid var(--border-strong);color:var(--text-primary);background:0 0}.btn--ghost:hover{border-color:var(--accent-border);color:var(--accent)}.dropzone{border:1.5px dashed var(--border-strong);background:var(--bg-inset);text-align:center;border-radius:10px;flex-direction:column;align-items:center;margin-top:20px;padding:48px 24px 36px;transition:border-color .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1);display:flex}.dropzone.is-dragover{border-color:var(--accent);background:var(--accent-soft)}.dropzone__icon{color:var(--accent)}.dropzone__title{color:var(--text-primary);margin:18px 0 0;font-size:16px;font-weight:500}.dropzone__or{width:100%;max-width:200px;color:var(--text-muted);align-items:center;gap:14px;margin:22px 0;font-size:13px;display:flex}.dropzone__or:before,.dropzone__or:after{content:"";background:var(--border-subtle);flex:1;height:1px}.dropzone__hint{color:var(--text-muted);margin-top:14px;font-size:12.5px}.dropzone__input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.uploaded-photo{border:1px solid var(--border-subtle);background:var(--bg-inset);border-radius:10px;overflow:hidden}.uploaded-photo img{width:100%;display:block}.stat-cards{grid-template-columns:repeat(3,1fr);gap:12px;min-width:0;max-width:420px;margin:0 auto;display:grid}@media (width<=480px){.stat-cards{grid-template-columns:1fr}}.stat-card{background:var(--bg-card-raised);border:1px solid var(--border-subtle);border-radius:10px;align-items:center;gap:12px;min-width:0;padding:14px 16px;display:flex}.stat-card__ring{flex-shrink:0;width:48px;height:48px;transform:rotate(-90deg)}.stat-card__track{fill:none;stroke:var(--border-subtle);stroke-width:5px}.stat-card__value{fill:none;stroke-width:5px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1);animation:.5s cubic-bezier(.4,0,.2,1) both stat-ring-pop}.stat-card__value--success{stroke:var(--color-success)}.stat-card__value--error{stroke:var(--color-error)}.stat-card__value--warning{stroke:var(--color-warning)}.stat-card:nth-child(2) .stat-card__value{animation-delay:80ms}.stat-card:nth-child(3) .stat-card__value{animation-delay:.16s}@keyframes stat-ring-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.stat-card__value{animation:none}}.stat-card__meta{flex-direction:column;min-width:0;display:flex}.stat-card__percent{letter-spacing:.2px;font-size:18px;font-weight:700}.stat-card__percent--success{color:var(--color-success)}.stat-card__percent--error{color:var(--color-error)}.stat-card__percent--warning{color:var(--color-warning)}.stat-card__label{color:var(--text-secondary);font-size:12.5px}.legend{justify-content:center;gap:22px;margin-top:14px;padding:0 4px;display:flex}.legend__item{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.legend__swatch{border-radius:3px;width:12px;height:12px}.legend__swatch--success{background:var(--cell-correct-bg);box-shadow:inset 0 0 0 1px #4fdb8480}.legend__swatch--error{background:var(--cell-wrong-bg);box-shadow:inset 0 0 0 1px #ef6a6080}.legend__swatch--warning{background:var(--cell-missing-bg);box-shadow:inset 0 0 0 1px #e6bb5c80}.spinner{border:2px solid #ffffff26;border-top-color:currentColor;border-radius:50%;width:1em;height:1em;animation:.8s linear infinite spin}.spinner--lg{border-width:3px;width:34px;height:34px}@keyframes spin{to{transform:rotate(360deg)}}.theme-toggle{z-index:60;appearance:none;cursor:pointer;background:var(--bg-card-raised);border:1px solid var(--border-subtle);width:40px;height:40px;color:var(--text-secondary);box-shadow:var(--shadow-card);border-radius:999px;justify-content:center;align-items:center;transition:background-color .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:20px;right:20px}.theme-toggle:hover{border-color:var(--accent-border);color:var(--accent)}.theme-toggle:active{transform:translateY(1px)}.theme-toggle svg{display:block}.workspace{justify-content:center;min-width:0;display:flex}.grid-panel{flex-direction:column;gap:14px;width:100%;max-width:420px;margin:0 auto;display:flex}.crossword{background:var(--cell-border);border:1px solid var(--border-subtle);aspect-ratio:1;border-radius:6px;gap:2px;width:100%;padding:2px;display:grid}.cell{background:var(--cell-bg);color:var(--text-primary);justify-content:center;align-items:center;min-width:0;min-height:0;font-family:Iosevka Charon Mono,ui-monospace,Cascadia Code,monospace;font-size:clamp(13px,1.6vw,15px);font-weight:700;display:flex;position:relative}.cell.is-black{background:var(--cell-black)}.cell--correct{background:var(--cell-correct-bg);color:var(--cell-correct-text)}.cell--wrong{background:var(--cell-wrong-bg);color:var(--cell-wrong-text)}.cell--missing{background:var(--cell-missing-bg);color:var(--cell-missing-text)}.cell--reveal{animation:.35s cubic-bezier(.4,0,.2,1) both cell-reveal}@keyframes cell-reveal{0%{opacity:0;transform:scale(.55)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.cell--reveal{animation:none}}.devpanel{z-index:60;background:var(--bg-card-raised);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);border-radius:999px;align-items:center;gap:2px;padding:6px 7.5px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.devpanel__btn{width:40px;height:40px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:color .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.devpanel__btn:hover{color:var(--text-primary);background:var(--bg-inset)}.devpanel__btn.is-active{color:var(--accent)}.devpanel__btn.is-active:after{content:"";background:var(--accent);border-radius:999px;width:18px;height:2px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}
