@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Inter:wght@400;500;600;700&display=swap";:root{--sky-0:#06142b;--sky-1:#0b2447;--sky-2:#19376d;--ink:#0b1b33;--paper:#f6f1e7;--paper-2:#e9e1cf;--amber:#ffb627;--amber-ink:#3a2600;--green:#22c55e;--red:#ef4444;--blue:#3b82f6;--text:#eaf2ff;--muted:#9fb3d1;color:var(--text);background:var(--sky-0);font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--sky-0)}button{font:inherit;cursor:pointer}.kiosk{background:radial-gradient(1200px 600px at 80% -10%, #2a5aa0 0%, transparent 60%), radial-gradient(900px 500px at -10% 110%, #173e7a 0%, transparent 55%), linear-gradient(180deg, var(--sky-1), var(--sky-0));-webkit-user-select:none;user-select:none;flex-direction:column;height:100vh;display:flex;overflow:hidden}.k-header{padding:2.2vh 3vw 1vh}.k-brand{color:var(--amber);align-items:center;gap:1.2vw;display:flex}.k-brand svg{width:5.5vh;height:5.5vh;transform:rotate(45deg)}.k-brand h1{color:var(--text);letter-spacing:.5px;margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(22px,4.2vh,48px);font-weight:700}.k-brand p{color:var(--muted);margin:.3vh 0 0;font-size:clamp(14px,2.2vh,24px)}.k-main{flex:1;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:3vw;min-height:0;padding:1vh 3vw 3vh;display:grid}.k-panel{flex-direction:column;justify-content:center;align-self:stretch;gap:1.6vh;display:flex}.k-label{text-transform:uppercase;letter-spacing:.25em;color:var(--muted);font-size:clamp(13px,2vh,22px);font-weight:600}.k-target{color:var(--amber-ink);background:var(--amber);letter-spacing:.06em;word-break:break-all;border-radius:18px;padding:2vh 2.2vw;font-family:Space Grotesk,sans-serif;font-size:clamp(34px,8.5vh,110px);font-weight:700;line-height:1;animation:.45s cubic-bezier(.2,1.4,.4,1) pop;box-shadow:0 10px 40px #ffb62740}.k-letters{color:var(--muted);font-size:clamp(14px,2.2vh,24px)}.k-steps{color:#d4e2f7;margin:1vh 0 0;padding-left:1.4em;font-size:clamp(15px,2.5vh,28px);line-height:1.6}.k-steps b{color:var(--text)}.k-status{min-height:4vh;font-size:clamp(16px,2.8vh,30px);font-weight:600}.k-status .bad{color:#ff8a8a}.k-status .info{color:#8fd3ff}.k-hint{color:var(--amber);border:2px solid var(--amber);background:0 0;border-radius:999px;align-self:flex-start;padding:.8vh 1.6vw;font-size:clamp(14px,2.2vh,24px);font-weight:600}.k-hint-text{color:var(--amber);font-size:clamp(14px,2.2vh,24px)}.k-board{justify-content:center;align-items:center;display:flex}.k-grid{--size:min(calc(100vh - 17vh), 60vw);width:var(--size);height:var(--size);background:var(--paper);box-shadow:0 30px 80px #00000073, inset 0 0 0 6px var(--paper-2);touch-action:none;cursor:pointer;border-radius:20px;padding:0;display:grid;position:relative;overflow:hidden}.cell{z-index:2;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:calc(var(--size) / var(--n) * .52);color:var(--ink);justify-content:center;align-items:center;display:flex;position:relative}.cell.is-sel,.cell.is-anchor,.cell.is-found,.cell.is-wrong{color:#fff}.cell.is-anchor:before{content:"";background:var(--blue);z-index:-1;border-radius:50%;animation:1s ease-in-out infinite pulse;position:absolute;inset:8%}.cell.is-hint:after{content:"";border:4px solid var(--amber);border-radius:50%;animation:.8s ease-in-out infinite pulse;position:absolute;inset:6%}.k-lines{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ln{stroke-width:.78px;stroke-linecap:round}.ln.sel{stroke:var(--blue);opacity:.92}.ln.wrong{stroke:var(--red);opacity:.9}.ln.found{stroke:var(--green);animation:.4s ease-out draw}.shake{animation:.45s shake}.k-error{border:1px dashed var(--muted);text-align:center;background:#ffffff0f;border-radius:16px;padding:4vh 3vw;font-size:2.4vh}.k-error a{color:var(--amber)}.k-success{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#030c1cb8;justify-content:center;align-items:center;animation:.25s fade;display:flex;position:fixed;inset:0}.k-success-card{background:var(--paper);color:var(--ink);text-align:center;border-radius:28px;max-width:80vw;padding:5vh 5vw;animation:.5s cubic-bezier(.2,1.4,.4,1) pop;box-shadow:0 40px 120px #00000080}.k-check{background:var(--green);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:13vh;height:13vh;margin:0 auto 2vh;font-size:8vh;font-weight:700;display:flex}.k-success-card h2{margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(36px,8vh,96px)}.k-success-card p{margin:1.2vh 0;font-size:clamp(18px,3.2vh,36px)}.k-success-card .stamp{background:var(--amber);color:var(--amber-ink);border-radius:12px;margin-top:2vh;padding:1.4vh 2vw;font-weight:700;display:inline-block}.k-success-card button{background:var(--ink);color:#fff;border:0;border-radius:999px;margin:3vh auto 0;padding:1.6vh 3vw;font-size:clamp(16px,2.6vh,28px);font-weight:600;display:block}.k-gear{z-index:30;width:40px;height:40px;color:var(--text);opacity:.18;background:0 0;border:0;border-radius:50%;font-size:20px;position:fixed;bottom:10px;right:12px}.k-gear:hover{opacity:.8}.k-staff{z-index:30;background:#10284f;border:1px solid #2c4c80;border-radius:12px;flex-direction:column;gap:4px;min-width:220px;padding:8px;display:flex;position:fixed;bottom:58px;right:12px}.k-staff button,.k-staff a{color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:15px;text-decoration:none;display:flex}.k-staff button:hover,.k-staff a:hover{background:#1b3a6b}kbd{background:#24477d;border-radius:4px;padding:1px 6px;font-size:12px}@media (aspect-ratio<=1){.k-main{grid-template-rows:auto 1fr;grid-template-columns:1fr;gap:2vh}.k-steps,.k-letters{display:none}.k-target{text-align:center;font-size:clamp(28px,6vh,80px)}.k-label,.k-status{text-align:center}.k-hint{align-self:center}.k-grid{--size:min(94vw, calc(100vh - 38vh))}}@keyframes pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(.85)}}@keyframes draw{0%{stroke-width:0}to{stroke-width:.78px}}@keyframes shake{10%,90%{transform:translate(-3px)}20%,80%{transform:translate(6px)}30%,50%,70%{transform:translate(-10px)}40%,60%{transform:translate(10px)}}.admin{color:#1a2433;-webkit-user-select:text;user-select:text;background:#f3f5f9;min-height:100vh;padding:24px 16px 60px}.admin>*{max-width:1080px;margin-left:auto;margin-right:auto}.admin h1{margin:0;font-family:Space Grotesk,sans-serif;font-size:26px}.admin h2{margin:0 0 14px;font-size:18px}.a-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.a-actions{gap:8px;display:flex}.a-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:16px;display:grid}.card{background:#fff;border:1px solid #e1e6ee;border-radius:14px;padding:20px}.card.login{flex-direction:column;gap:12px;max-width:380px;margin-top:10vh;display:flex}.admin label{color:#4a5a70;flex-direction:column;flex:1;gap:6px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.admin input,.admin select,.admin textarea{font:inherit;color:#1a2433;background:#fff;border:1px solid #cfd7e3;border-radius:8px;width:100%;padding:9px 11px;font-size:15px;font-weight:400}.admin textarea{resize:vertical;font-family:ui-monospace,monospace}.admin .row{flex-wrap:wrap;gap:12px;display:flex}.admin button,.admin .btn{color:#1a2433;background:#fff;border:1px solid #cfd7e3;border-radius:8px;padding:9px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.admin button.primary{color:#fff;background:#0b2447;border-color:#0b2447}.admin button:disabled{opacity:.45;cursor:not-allowed}.admin button.link{color:#0b56c4;background:0 0;border:0;padding:0;text-decoration:underline}.admin .hint{color:#607089;margin:4px 0 14px;font-size:13px}.admin .muted{color:#607089;text-align:center;font-size:14px}.admin .err{color:#c62828;margin:0}.banner{background:#fff6dd;border:1px solid #f0d58a;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:14px}.toast{z-index:50;border-radius:10px;max-width:90vw;padding:12px 18px;font-weight:600;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000026}.toast.ok{color:#17693a;background:#e6f7ec}.toast.err{color:#a11d1d;background:#fdecec}.ok-list{color:#17693a;font-size:14px}.bad-list{color:#a11d1d;margin:0 0 12px;padding-left:0;font-size:14px;list-style:none}.warn{color:#7a5600;background:#fff6dd;border-radius:8px;padding:8px 12px;font-size:14px}.list-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.list-head h2{margin:0}.pill{color:#4a5a70;background:#eef2f8;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}.admin .search{flex:1;width:auto;min-width:140px;max-width:260px;margin-left:auto}.words{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.words li{border:1px solid #e1e6ee;border-radius:10px;align-items:center;padding:4px 4px 4px 10px;display:flex}.words li.off{opacity:.5;background:#f7f8fa}.words .toggle{color:#1a2433;cursor:pointer;flex-direction:row;align-items:center;gap:8px;margin:0;font-size:14px}.words .toggle input{width:auto}.words .toggle span{letter-spacing:.03em;font-family:Space Grotesk,sans-serif;font-weight:700}.words .toggle small{color:#8a98ad;font-weight:400}.admin .del{color:#a0acbd;background:0 0;border:0;padding:6px 10px}.admin .del:hover{color:#c62828}.admin .del.confirm{color:#fff;background:#c62828;border-radius:6px;padding:5px 8px;font-size:12px}
