*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#080808;color:#ffcf76;display:flex;justify-content:center;align-items:center;min-height:100vh;overscroll-behavior:none}#app{text-align:center;max-width:500px;width:100%;padding:16px;padding-bottom:env(safe-area-inset-bottom,16px)}#loading{font-size:18px;color:#ffe585}h1{font-size:22px;margin-bottom:8px}#timer{font-size:28px;font-variant-numeric:tabular-nums;margin:8px 0 12px;color:#fffaf0}#crossword-grid{display:inline-grid;gap:2px;background:#080808;border:2px solid #080808;margin:0 auto}.grid-cell{width:56px;height:56px;position:relative;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;background:#415896;color:#fffaf0}.grid-cell.block{background:#615330;cursor:default}.grid-cell.selected{background:#ff971d}.grid-cell.highlighted{background:#fda64d}.grid-cell.correct{background:#2ecc71;color:#1a160e}.grid-cell .label{position:absolute;top:2px;left:4px;font-size:10px;font-weight:500;color:#080808}.grid-cell .letter{font-size:24px}#current-clue{margin:12px 0;font-size:16px;min-height:24px;color:#fffaf0}#clue-carousel{display:flex;align-items:center;gap:8px;margin:12px 0;min-height:48px;max-width:100%}#clue-carousel button{flex-shrink:0;width:40px;height:40px;border:none;border-radius:6px;background:#615330;color:#fda64d;font-size:20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;-webkit-tap-highlight-color:transparent}#clue-carousel button:hover,#clue-carousel button:active{background:#615330}#clue-display{flex:1;min-width:0;text-align:center;font-size:15px;line-height:1.4;color:#fffaf0;padding:4px 8px}#clue-prefix{font-weight:700;margin-right:8px;color:#ff971d;white-space:nowrap}#clue-text{color:#fffaf0}@media(max-width:400px){#clue-carousel button{width:36px;height:36px;font-size:18px}#clue-display{font-size:14px}#welcome-logo{width:90px}#puzzle-info{font-size:13px}}#completion-message{margin-top:16px;font-size:20px;font-weight:700;color:#2ecc71}@media(max-width:380px)and (pointer:coarse){.grid-cell{width:42px;height:42px;font-size:18px}#crossword-grid{grid-template-columns:repeat(5,42px)!important}.kb-key{height:40px;font-size:14px}}#onscreen-keyboard{display:none}@media(pointer:coarse){#onscreen-keyboard{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px 12px;width:100%;max-width:500px;margin:8px auto 0;user-select:none;-webkit-user-select:none}.kb-row{display:flex;justify-content:center;gap:4px;width:100%}.kb-key{flex:1;max-width:36px;height:44px;border:none;border-radius:5px;background:#415896;color:#fff29c;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .1s}.kb-key:active{background:#ff971d}.kb-key-wide{flex:1.5;max-width:54px;font-size:20px}}#loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:24px}#loading-screen h1{font-size:24px;color:#ffcf76}#progress-bar-container{width:200px;height:4px;background:#4f545c;border-radius:2px;overflow:hidden}#progress-bar{width:40%;height:100%;background:#2e478b;border-radius:2px;animation:indeterminate 1.2s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}#welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:24px}#welcome-screen h1{font-size:24px;color:#ffcf76;font-weight:700}#welcome-screen .welcome-name{font-size:18px;color:#ff971d}#welcome-screen button{padding:14px 40px;border:none;border-radius:8px;background:#2e478b;color:#ffcf76;font-size:18px;font-weight:600;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent;margin-top:8px}#welcome-screen button:hover{background:#2e478b}#welcome-screen button:active{background:#415896}#crossword-header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:4px}#crossword-header h1{margin-bottom:0}#back-button{position:absolute;left:0;padding:8px 12px;border:none;border-radius:6px;background:transparent;color:#ffcf76;font-size:14px;font-weight:600;cursor:pointer;transition:color .15s,background .15s;-webkit-tap-highlight-color:transparent}#back-button:hover{color:#ffcf76;background:#ff971d}#back-button:active{background:#415896;color:#ffcf76}#welcome-logo{width:120px;height:auto;display:block;margin:0 auto}#puzzle-info{font-size:14px;color:#72767d;margin-top:12px}
