:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{color:#e7e9ee;background:#12141a;min-height:100svh;margin:0}#root{min-height:100svh}button{font:inherit}.genre-select{min-height:100svh;padding-top:max(24px, env(safe-area-inset-top));padding-right:max(24px, env(safe-area-inset-right));padding-bottom:max(24px, env(safe-area-inset-bottom));padding-left:max(24px, env(safe-area-inset-left));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.game-title{letter-spacing:.04em;background:linear-gradient(135deg,#ffd166,#ef476f);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(36px,7vw,56px);font-weight:900}.game-subtitle{color:#9aa2b1;margin:0 0 32px;font-size:15px}.daily-challenge-button{color:#ffd166;cursor:pointer;background:linear-gradient(135deg,#ffd16638,#ef476f29);border:1px solid #ffd16680;border-radius:14px;margin-bottom:24px;padding:14px 28px;font-size:17px;font-weight:800;transition:border-color .15s,transform 80ms,background .15s}.daily-challenge-button:hover{border-color:#ffd166}.daily-challenge-button:active{background:linear-gradient(135deg,#ffd16652,#ef476f3d);transform:scale(.96)}.difficulty-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:18px;display:flex}.difficulty-button{color:#cdd3dd;cursor:pointer;background:0 0;border:1px solid #ffffff29;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700;transition:border-color .15s,color .15s,background .15s,transform 80ms}.difficulty-button:hover{border-color:#fff6}.difficulty-button:active{background:#ffffff1a;transform:scale(.94)}.difficulty-button-selected{color:#ffd166;background:#ffd1662e;border-color:#ffd166}.any-genre-button{color:#fff;letter-spacing:.02em;cursor:pointer;background:linear-gradient(135deg,#6a5cff,#ef476f);border:1px solid #fff3;border-radius:16px;width:100%;max-width:454px;margin-bottom:14px;padding:26px 18px;font-size:20px;font-weight:800;transition:transform .15s,box-shadow .15s,border-color .15s;box-shadow:0 8px 24px #6a5cff47}.any-genre-button:hover{border-color:#fff6;transform:translateY(-2px);box-shadow:0 10px 28px #6a5cff61}.any-genre-button:active{transition:transform 60ms,box-shadow 60ms;transform:scale(.97);box-shadow:0 4px 14px #6a5cff4d}.genre-grid{grid-template-columns:repeat(2,minmax(140px,220px));gap:14px;display:grid}.genre-button{color:#e7e9ee;cursor:pointer;background:linear-gradient(160deg,#1d212c,#14161d);border:1px solid #ffffff24;border-radius:14px;padding:22px 18px;font-size:16px;font-weight:700;transition:transform .15s,border-color .15s}.genre-button:hover{border-color:#ffd16699;transform:translateY(-2px)}.genre-button:active{background:linear-gradient(160deg,#23283a,#1a1c26);border-color:#ffd166;transition:transform 60ms,border-color 60ms,background 60ms;transform:scale(.96)}.puzzle-screen{min-height:100svh;padding-top:max(24px, env(safe-area-inset-top));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:max(40px, env(safe-area-inset-bottom));padding-left:max(16px, env(safe-area-inset-left));flex-direction:column;align-items:center;gap:28px;max-width:900px;margin:0 auto;display:flex}.puzzle-header{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.puzzle-genre{letter-spacing:.12em;text-transform:uppercase;color:#ffd166;font-size:13px;font-weight:800}.puzzle-header-actions{gap:10px;display:flex}.text-button{color:#cdd3dd;cursor:pointer;background:0 0;border:1px solid #ffffff29;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;transition:border-color .12s,color .12s,transform 80ms,background 80ms}.text-button:hover{color:#fff;border-color:#fff6}.text-button:active{background:#ffffff1f;border-color:#ffd166;transform:scale(.93)}.quote-board{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:14px 30px;width:100%;padding:28px 20px;display:flex}.quote-word{white-space:nowrap;align-items:flex-end;gap:4px;display:inline-flex}.quote-punct{color:#6d7382;align-self:flex-start;height:28px;padding-top:4px;font-size:22px;font-weight:700;line-height:28px}.quote-tile{cursor:pointer;width:34px;font:inherit;background:0 0;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:4px 0 6px;transition:box-shadow .12s,background .12s,transform 60ms;display:flex}.quote-tile:hover{background:#ffffff0f;box-shadow:0 0 0 2px #ffd16673}.quote-tile:active{background:#ffd16633;transform:scale(.9);box-shadow:0 0 0 2px #ffd166}.quote-tile-guess{color:#fff;border-bottom:3px solid #4a5063;width:100%;height:28px;font-size:20px;font-weight:800;line-height:28px;display:block}.quote-tile-cipher{color:#6d7382;letter-spacing:.05em;font-size:11px;font-weight:700;display:block}.quote-tile-related{background:#ffd16624;border-radius:8px}.quote-tile-related .quote-tile-guess{border-bottom-color:#ffd1668c}.quote-tile-selected{background:#ffd16638;border-color:#ffd166}.quote-tile-selected .quote-tile-guess{border-bottom-color:#ffd166}.legend{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.legend-cell{color:#e7e9ee;cursor:pointer;width:48px;font:inherit;background:#ffffff08;border:2px solid #ffffff1a;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;transition:border-color .12s,box-shadow .12s,background .12s,transform 60ms;display:flex}.legend-cell:hover{border-color:#ffd1668c;box-shadow:0 0 10px #ffd1664d}.legend-cell:active{background:#ffd16640;border-color:#ffd166;transform:scale(.92)}.legend-resolved{color:#ffd166;height:18px;font-size:15px;font-weight:800}.legend-plain-row{align-items:baseline;gap:3px;display:flex}.legend-plain{color:#6d7382;font-size:11px;font-weight:700}.legend-count{color:#4a5063;font-size:9px;font-weight:700}.legend-cell-selected{background:#ffd1662e;border-color:#ffd166}.controls{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.controls-buttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.control-button{color:#e7e9ee;cursor:pointer;background:linear-gradient(160deg,#1d212c,#14161d);border:1px solid #ffffff29;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:800;transition:border-color .12s,transform 80ms,background 80ms}.control-button:disabled{opacity:.35;cursor:default}.control-button:hover:not(:disabled){border-color:#fff6}.control-button:active:not(:disabled){background:linear-gradient(160deg,#262b3d,#1a1d28);border-color:#ffffff80;transform:scale(.94)}.control-button-submit{color:#ffd7de;background:linear-gradient(160deg,#4a1f2b,#2a1216);border-color:#ef476f99}.control-button-submit:hover{border-color:#ef476f}.control-button-submit:active:not(:disabled){background:linear-gradient(160deg,#5a2534,#351619);border-color:#ef476f}.controls-feedback{border-radius:8px;padding:8px 16px;font-size:13px;font-weight:700}.controls-feedback-wrong-person{color:#ffb6c6;background:#ef476f26;border:1px solid #ef476f66}.controls-feedback-track-good{color:#a4f0be;background:#65d88d26;border:1px solid #65d88d66}.controls-feedback-track-off{color:#ffe2a6;background:#ffd16626;border:1px solid #ffd16666}@media (width<=480px){.quote-tile{width:28px}.quote-tile-guess{height:24px;font-size:17px;line-height:24px}}.hidden-letter-input{opacity:0;border:none;outline:none;width:100px;height:40px;padding:0;font-size:16px;position:fixed;top:0;left:-9999px}.cipher-cracked-banner{color:#ffd166;text-align:center;letter-spacing:.01em;background:linear-gradient(135deg,#ffd16633,#ef476f24);border:2px solid #ffd166;border-radius:12px;width:100%;padding:14px 20px;font-size:18px;font-weight:800}.cipher-cracked-banner-pop{animation:.5s cubic-bezier(.34,1.56,.64,1) cracked-pop}@keyframes cracked-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.quote-board-container{width:100%;position:relative}.quote-board-container.is-cracked .quote-board{border-color:#ffd166;transition:border-color .3s,box-shadow .3s;box-shadow:0 0 0 2px #ffd16666,0 0 40px #ffd16640}.quote-board-container.is-flashing .quote-board{animation:1.1s cracked-flash}@keyframes cracked-flash{0%{box-shadow:0 0 #ffd16600}30%{box-shadow:0 0 0 6px #ffd1668c,0 0 60px #ffd1668c}to{box-shadow:0 0 0 2px #ffd16666,0 0 40px #ffd16640}}.confetti-burst{pointer-events:none;z-index:50;position:fixed;inset:0;overflow:hidden}.confetti-piece{animation:1.7s ease-in forwards confetti-fall;position:absolute;top:-40px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(80vh)rotate(360deg)}}.solved-reveal{text-align:center;background:#65d88d14;border:1px solid #65d88d59;border-radius:16px;flex-direction:column;align-items:center;gap:14px;width:100%;padding:36px 24px;display:flex}.solved-title{letter-spacing:.05em;color:#a4f0be;font-size:clamp(28px,5vw,40px);font-weight:900}.solved-quote{color:#e7e9ee;max-width:620px;margin:0;font-size:clamp(16px,2.6vw,20px);font-style:italic;line-height:1.5}.solved-person{color:#ffd166;font-size:18px;font-weight:800}.solved-work{color:#9aa2b1;margin-top:-8px;font-size:14px}.solved-actions{gap:10px;margin-top:10px;display:flex}.debug-panel{color:#ffe2a6;background:#ffd1660f;border:1px dashed #ffd16680;border-radius:10px;width:100%;max-width:520px;margin-top:12px;padding:10px 14px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.debug-panel-label{letter-spacing:.1em;color:#ff8d8d;margin-bottom:6px;font-size:10px;font-weight:800}.debug-panel-row{letter-spacing:.12em;white-space:nowrap;overflow-x:auto}.control-button-gimme{border-color:#ffd16680}.control-button-gimme-active{color:#ffd166;background:#ffd16638;border-color:#ffd166}.info-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 28px;width:100%;display:flex}.info-toolbar-item{align-items:center;gap:10px;display:flex}.info-toolbar-value{color:#9aa2b1;text-align:left;max-width:340px;font-size:13px}.answer-box{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:420px;display:flex}.answer-box-label{color:#a4f0be;font-size:13px;font-weight:700}.answer-box-row{gap:8px;width:100%;display:flex}.answer-box-input{color:#e7e9ee;background:#ffffff0a;border:1px solid #ffffff29;border-radius:10px;flex:1;padding:10px 12px;font-size:14px;font-weight:700}.answer-box-input:focus{border-color:#ffd166;outline:none}
