:root{--primary-color: #c8102e;--primary-hover: #a10d25;--secondary-color: #111827;--success-color: #1FA24A;--progress-color: #F28C28;--error-color: #b91c1c;--warning-color: #b45309;--background: #f3f4f6;--background-cyan: #e6f6f9;--background-red: #fef2f2;--surface: #ffffff;--border: #d1d5db;--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--shadow: 0 1px 2px 0 rgb(15 23 42 / .08);--shadow-lg: 0 10px 25px -8px rgb(15 23 42 / .18);--cell-size: 57px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--background);color:var(--text-primary);line-height:1.6}.container{max-width:1080px;margin:0 auto;padding:24px 16px 40px}.header{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.header h1{font-size:1.75rem;font-weight:700;color:var(--secondary-color)}.subtitle{font-size:.95rem;color:var(--text-secondary)}.puzzle-selector{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.puzzle-selector label{font-weight:500;color:var(--text-primary)}.puzzle-selector select{padding:6px 10px;border:1px solid var(--border);border-radius:4px;font-size:.95rem;background:var(--surface);color:var(--text-primary);min-width:220px}.puzzle-selector select:focus{outline:none;border-color:var(--primary-color)}button{padding:8px 16px;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;border:1px solid var(--primary-color);background:var(--primary-color);color:#fff}button:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button:disabled{background:#e5e7eb;border-color:#e5e7eb;color:var(--text-muted);cursor:not-allowed}button.success{background:var(--success-color);border-color:var(--success-color)}button.error{background:var(--error-color);border-color:var(--error-color)}button.warning{background:var(--warning-color);border-color:var(--warning-color)}.main-content{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.puzzle-info{margin-bottom:20px;padding:12px 16px;background:var(--surface);border-radius:4px;border:1px solid var(--border)}.puzzle-info-bar{position:relative;width:100%;height:10px;border-radius:999px;overflow:hidden;background:#f9fafb;border:1px solid #e5e7eb;margin-bottom:8px;display:flex}.puzzle-info-bar__green,.puzzle-info-bar__orange{height:100%;transition:width .25s ease-out}.puzzle-info-bar__green{background-color:#22c55e}.puzzle-info-bar__orange{background-color:#fb923c}.puzzle-meta{display:flex;align-items:center;color:var(--text-secondary);font-weight:500;font-size:.9rem}.completion-reopen{margin:8px 0 20px;text-align:right}.completion-reopen button{font-size:.85rem}.load-status{margin:8px 0 16px;padding:8px 12px;border-radius:4px;background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;font-size:.9rem}.game-container{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.9fr);gap:24px;align-items:flex-start}@media (max-width: 1024px){.game-container{grid-template-columns:1fr;gap:20px}}.crossword-container{display:flex;flex-direction:column;align-items:center;padding:16px;background:var(--surface);border-radius:6px;border:1px solid var(--border);box-shadow:var(--shadow-lg)}.crossword-grid{display:grid;gap:0;background:transparent;border-top:1px solid #000000;border-left:1px solid #000000;grid-auto-rows:var(--cell-size)}.crossword-grid-wrapper{display:flex;flex-direction:column;align-items:flex-start}.crossword-grid-inner{display:flex;flex-direction:row;align-items:flex-start}.crossword-overflow-row{display:grid;gap:0;grid-auto-rows:var(--cell-size);margin-left:.62px}.crossword-overflow-col{display:grid;gap:0;grid-auto-columns:var(--cell-size);margin-top:.6px}.overflow-placeholder{width:var(--cell-size);height:var(--cell-size);background:transparent}.crossword-overflow-row .cell.block.clue-cell{border-top:1px solid #000;border-right:1px solid #000;border-bottom:0px solid #000;border-left:none;box-shadow:-.6px 0 #000}.crossword-overflow-col .cell.block.clue-cell{border-left:1px solid #000;border-right:0px solid #000;border-top:none;box-shadow:0 -.6px #000}.cell{display:flex;align-items:center;justify-content:center;position:relative;border-radius:0;border-right:1px solid #000000;border-bottom:1px solid #000000;font-weight:600;font-size:1.1rem;cursor:pointer;transition:background-color .15s ease,color .15s ease}.cell-number{position:absolute;top:1px;left:2px;font-size:.65rem;font-weight:500;color:var(--text-primary);pointer-events:none;line-height:1}@media (max-width: 768px){:root{--cell-size: 47px}.cell{font-size:1rem}}.cell.block{background:#000;cursor:default}.cell.block.clue-cell{background:#e8e8e8;cursor:pointer;display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;padding:0;overflow:hidden}.cell.block.clue-cell:hover{background:#d0d0d0}.clue-slot{position:relative;display:flex;align-items:center;justify-content:flex-start;flex:1;padding:1px;overflow:hidden;cursor:pointer;min-height:0}.clue-slot:hover{background:#00000014}.clue-slot .clue-text{font-size:.52rem;font-weight:500;line-height:1.1;color:#111;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;flex:1;min-width:0}.clue-slot .clue-arrow{font-size:.65rem;line-height:1;flex-shrink:0;margin-right:1px;color:#111}.clue-arrow-right{order:99;margin-right:0;margin-left:1px}.clue-arrow-down{order:99;align-self:flex-end}.clue-arrow-down-right{order:99;align-self:flex-end;margin-left:1px}.clue-arrow-right-down{order:99;margin-right:0;align-self:center}.clue-cell-divider{height:1px;background:#888;flex-shrink:0;width:100%}.cell.empty,.cell.empty.filled{background:#fff;color:var(--text-primary)}.cell.empty input{background:transparent;color:inherit;font-weight:700;font-size:1.2rem;text-align:center;text-transform:uppercase;border:none;outline:none;width:100%;height:100%}.cell-number{color:var(--text-secondary);font-size:.6rem;font-weight:600;position:absolute;top:2px;left:2px;z-index:2}.cell.selected{background:#fff3b0!important;box-shadow:inset 0 0 0 2px var(--primary-color)}.cell.highlighted{background:#fef9c3!important}.cell.incorrect input{color:var(--error-color)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes correctBlink{0%{color:var(--success-color)}50%{color:var(--success-color)}to{color:var(--text-primary)}}.cell.revealed input{color:var(--text-primary)}@keyframes revealFlash{0%{opacity:1;background:#fb923c}60%{opacity:.4;background:#fb923c}to{opacity:0;background:transparent}}.cell-reveal-flash{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;animation:revealFlash .55s ease-out forwards;z-index:1}@media (prefers-reduced-motion: reduce){.cell-reveal-flash{animation:none}}@keyframes checkFlash{0%{opacity:1;background:#4ade80}60%{opacity:.4;background:#4ade80}to{opacity:0;background:transparent}}.cell-check-flash{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;animation:checkFlash .55s ease-out forwards;z-index:1}@media (prefers-reduced-motion: reduce){.cell-check-flash{animation:none}}@keyframes wrongFlash{0%{opacity:1;background:#9ca3af}60%{opacity:.4;background:#9ca3af}to{opacity:0;background:transparent}}.cell-wrong-flash{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;animation:wrongFlash .55s ease-out forwards;z-index:1}@media (prefers-reduced-motion: reduce){.cell-wrong-flash{animation:none}}.cell input{border:none;background:none;width:100%;height:100%;text-align:center;font-size:1.1rem;font-weight:600;color:inherit;outline:none;text-transform:uppercase;cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}.cell input::selection{background:transparent;color:inherit}.sidebar{display:flex;flex-direction:column;gap:20px}.completion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:40}.completion-dialog{background:var(--surface);border-radius:8px;padding:20px 20px 16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.completion-header h2{font-size:1.4rem;margin-bottom:4px}.completion-header p{color:var(--text-secondary);font-size:.95rem}.completion-score{margin:16px 0 20px;display:flex;align-items:baseline;gap:8px}.completion-score-label{font-size:.95rem;color:var(--text-secondary)}.completion-score-value{font-size:1.6rem;font-weight:700;color:var(--primary-color)}.completion-next-puzzle{margin:-8px 0 18px;font-size:.95rem;color:var(--text-secondary)}.completion-next-puzzle-time{display:inline-block;margin-left:6px;font-weight:700;color:var(--secondary-color);font-variant-numeric:tabular-nums}.completion-form{margin-bottom:18px}.completion-label{display:block;margin-bottom:6px;font-size:.9rem;color:var(--text-secondary)}.completion-input-row{display:flex;gap:8px;align-items:center}.completion-input{flex:1;padding:7px 10px;border-radius:4px;border:1px solid var(--border);font-size:.9rem}.completion-input:focus{outline:none;border-color:var(--primary-color)}.highscore-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}@media (max-width: 640px){.highscore-sections{grid-template-columns:1fr}}.highscore-section h3{font-size:1rem;margin-bottom:6px}.highscore-empty{font-size:.85rem;color:var(--text-muted)}.highscore-list{list-style:none;padding:0;margin:0}.highscore-item{display:grid;grid-template-columns:auto 1fr auto;column-gap:8px;row-gap:2px;font-size:.85rem;padding:4px 0;border-bottom:1px solid #f3f4f6}.highscore-item:last-child{border-bottom:none}.highscore-rank{font-weight:600}.highscore-name{font-weight:500}.highscore-score{justify-self:flex-end}.highscore-time{grid-column:2 / -1;font-size:.78rem;color:var(--text-muted)}.completion-actions{display:flex;justify-content:flex-end}.controls{background:var(--background-cyan);border-radius:4px;border:1px solid #e5e7eb;padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:8px}.controls h3{margin-bottom:8px;color:var(--text-primary);font-size:1rem;font-weight:600;grid-column:1 / -1}.control-group{margin-bottom:0}.control-group:last-child{margin-bottom:0}.control-group h4{margin-bottom:6px;color:var(--text-secondary);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.control-group button{display:block;width:100%;margin-bottom:4px;text-align:left;font-size:.9rem}.control-group button:last-child{margin-bottom:0}.controls button{background:transparent;color:var(--text-primary);border-color:transparent;padding:4px 0;display:inline-flex;align-items:center;justify-content:flex-start;gap:4px;box-shadow:none}.controls button:hover:not(:disabled){background:transparent;color:var(--primary-color);border-color:transparent}.controls button:disabled{background:transparent;color:var(--text-muted);border-color:transparent}#check-letter:before,#check-word:before,#check-all:before,#reveal-letter:before,#reveal-word:before{display:inline-block;font-size:.9rem}#check-letter:before,#check-word:before,#check-all:before{content:"🔍"}#reveal-letter:before,#reveal-word:before{content:"👁"}@media (max-width: 400px){.controls{grid-template-columns:1fr}}.clues{background:var(--surface);border-radius:4px;border:1px solid var(--border);padding:16px;max-height:640px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;row-gap:0}.clues h3{margin-bottom:10px;color:var(--text-primary);font-size:.95rem;font-weight:600;border-bottom:1px solid var(--border);padding-bottom:6px}.clues-section{margin-bottom:0}.clues-section:last-child{margin-bottom:0}.clues-list{display:flex;flex-direction:column;gap:4px}.clue-item{padding:4px 0;cursor:pointer;border-radius:2px;font-size:.9rem}.clue-item:hover{background:#f3f4f6}.clue-item.active{background:#fff3b0}.clue-item.completed{color:var(--text-muted)}.clue-number{font-weight:600;margin-right:8px}.clue-text{font-size:.95rem}.current-clue{position:relative;margin-bottom:12px;padding:10px 12px;background:#fff7ed;border-radius:4px;border:1px solid #fed7aa;font-size:.9rem}.current-clue strong{color:var(--primary-color);margin-right:8px}.current-clue span{color:var(--text-primary)}.footer{text-align:center;margin-top:40px;padding-top:16px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.8rem}.footer a{color:var(--primary-color);text-decoration:none}.footer a:hover{text-decoration:underline}@media (max-width: 768px){.container{padding:16px 10px 32px}.header h1{font-size:1.5rem}.puzzle-selector{flex-direction:column;gap:10px}.puzzle-selector select{min-width:auto;width:100%}.cell{font-size:.95rem}}@media (max-width: 480px){.cell{font-size:.85rem}.cell-number{font-size:.6rem}}.loading{display:inline-block;width:16px;height:16px;border:2px solid #e5e7eb;border-top:2px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auto-reveal-row{padding-top:24px;border-top:1px solid #e5e7eb;margin-top:4px;display:flex;flex-direction:column;gap:4px;overflow:visible}.auto-reveal-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0;width:fit-content}.auto-reveal-toggle input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.auto-reveal-track{position:relative;width:34px;height:19px;background:#d1d5db;border-radius:10px;transition:background .2s ease;flex-shrink:0}.auto-reveal-toggle input:checked~.auto-reveal-track{background:var(--success-color)}.auto-reveal-knob{position:absolute;top:2px;left:2px;width:15px;height:15px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000040;transition:transform .2s ease}.auto-reveal-toggle input:checked~.auto-reveal-track .auto-reveal-knob{transform:translate(15px)}.auto-reveal-label-text{font-size:.9rem;font-weight:500;color:var(--text-primary)}.auto-reveal-description{font-size:.75rem;color:var(--text-muted);margin:0 0 0 42px;font-style:italic}.robot{position:relative;display:inline-flex;align-items:flex-end;line-height:1;align-self:flex-start;width:fit-content}.robot__emoji{font-size:1.4rem;display:block;transition:transform .15s ease}@keyframes robotFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.robot--idle .robot__emoji{animation:robotFloat 2.4s ease-in-out infinite}.robot--sleeping .robot__emoji{filter:grayscale(.55) opacity(.75);animation:none}.robot__zzz{position:absolute;bottom:100%;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:1px;pointer-events:none}@keyframes zFloat{0%{opacity:0;transform:translate(0) scale(.7)}30%{opacity:1}to{opacity:0;transform:translate(4px,-8px) scale(1)}}.robot__zzz span:nth-child(1){font-size:.5rem;animation:zFloat 1.8s ease-in-out infinite 0s}.robot__zzz span:nth-child(2){font-size:.62rem;animation:zFloat 1.8s ease-in-out infinite .6s}.robot__zzz span:nth-child(3){font-size:.75rem;animation:zFloat 1.8s ease-in-out infinite 1.2s}.robot__thinking{position:absolute;bottom:108%;left:50%;transform:translate(-50%);display:flex;gap:3px;align-items:center;pointer-events:none}.robot__thinking span{width:5px;height:5px;border-radius:50%;background:var(--text-secondary)}@keyframes thinkingBounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}.robot__thinking span:nth-child(1){animation:thinkingBounce 3s ease-in-out infinite 0s}.robot__thinking span:nth-child(2){animation:thinkingBounce 3s ease-in-out infinite .5s}.robot__thinking span:nth-child(3){animation:thinkingBounce 3s ease-in-out infinite 1s}@keyframes robotReveal{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(.9)}to{transform:scale(1)}}.robot--revealing .robot__emoji{animation:robotReveal .5s ease-out forwards}.robot--done .robot__emoji{font-size:1rem;filter:grayscale(.7) opacity(.5);animation:none}@media (prefers-reduced-motion: reduce){.robot__emoji,.robot__zzz span,.robot__thinking span{animation:none!important}}.cell-robot{position:absolute;bottom:2px;right:2px;font-size:1.1rem;line-height:1;z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none;display:inline-flex;flex-direction:column;align-items:center}.cell-robot__emoji{display:block}.cell-robot__dots{display:flex;gap:2px;align-items:center;margin-bottom:2px}.cell-robot__dots span{width:3px;height:3px;border-radius:50%;background:var(--text-secondary, #555)}.cell-robot--thinking .cell-robot__dots span:nth-child(1){animation:thinkingBounce 3s ease-in-out infinite 0s}.cell-robot--thinking .cell-robot__dots span:nth-child(2){animation:thinkingBounce 3s ease-in-out infinite .5s}.cell-robot--thinking .cell-robot__dots span:nth-child(3){animation:thinkingBounce 3s ease-in-out infinite 1s}@keyframes cellRobotReveal{0%{transform:scale(1);opacity:1}45%{transform:scale(1.6);opacity:.9}to{transform:scale(0);opacity:0}}.cell-robot--revealing{animation:cellRobotReveal .55s ease-out forwards}@media (prefers-reduced-motion: reduce){.cell-robot__dots span,.cell-robot{animation:none!important}}
