:root{--paper: #f4edda;--paper-2: #efe6cf;--card: #fffdf6;--ink: #23242c;--ink-soft: #4a4c57;--muted: #8a8472;--gold: #e3a72c;--gold-deep: #c2891b;--red: #c4382e;--green: #2f7d4f;--green-deep: #245f3c;--line: #e0d7c0;--grey: #ece5d3;--grey-mid: #c8bfa6;--radius: 12px;--shadow: 0 1px 3px rgba(35, 36, 44, .07);--shadow-lg: 0 8px 26px rgba(35, 36, 44, .16);--transition: .16s ease;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Oswald", var(--font-body);--font-wordmark: "Anton", var(--font-display)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--paper);background-image:radial-gradient(circle at 50% -10%,#ffffff73,#fff0 55%);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;line-height:1.45;min-height:100vh}button{font-family:var(--font-display);cursor:pointer;border:none;border-radius:10px;transition:transform var(--transition),background var(--transition),color var(--transition),opacity var(--transition)}button:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed}.app{max-width:480px;margin:0 auto;padding:22px 18px 64px;position:relative;min-height:100vh}.wc-ribbon{position:fixed;top:0;right:0;width:138px;height:138px;overflow:hidden;pointer-events:none;z-index:70}.wc-ribbon span{position:absolute;top:28px;right:-54px;width:210px;transform:rotate(45deg);background:var(--gold);color:var(--ink);font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;text-align:center;padding:6px 0;box-shadow:0 2px 6px #23242c38}.header{text-align:center;margin-bottom:22px;padding-top:4px}.logo{font-family:var(--font-wordmark);font-size:clamp(2.8rem,15vw,4.2rem);line-height:.92;letter-spacing:.01em;text-transform:uppercase;margin:0;color:var(--gold);text-shadow:2px 2px 0 var(--ink)}.subtitle{margin:8px 0 0;font-family:var(--font-display);font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);font-size:.8rem}.puzzle-number{display:inline-block;margin-top:12px;font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:3px 13px;border-radius:999px}.help-button{position:absolute;top:20px;left:18px;width:34px;height:34px;border-radius:50%;background:var(--card);border:1.5px solid var(--ink);font-size:1rem;font-weight:700;color:var(--ink);font-family:var(--font-display);z-index:65}.help-button:hover{background:var(--gold)}.board{display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);padding:14px}.badge-row{display:flex;align-items:center;gap:2px;overflow-x:auto;padding:2px 2px 6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.badge-item{display:flex;align-items:center;flex:0 0 auto}.club-badge{width:54px;height:54px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.club-badge.text{color:#fff;font-weight:700;font-size:.82rem;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.25);font-family:var(--font-display)}.club-badge.logo{background:#fff;border:1px solid var(--line);padding:6px}.club-logo{width:100%;height:100%;object-fit:contain;display:block}.badge-arrow{color:var(--grey-mid);font-size:1.2rem;padding:0 2px}.clue-panel{display:flex;gap:12px}.clue-box{flex:1;background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px;text-align:center;transition:border-color var(--transition)}.clue-box.locked{background:transparent;color:var(--grey-mid);border-style:dashed;box-shadow:none}.clue-box.revealed{border:1.5px solid var(--green);animation:clue-pop .32s ease}.clue-label{font-family:var(--font-display);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;opacity:.8}.clue-value{margin-top:6px;font-size:1.05rem;font-weight:700;min-height:1.3em}.clue-flag{font-size:1.2rem}.player-search{position:relative}.search-input-row{display:flex;gap:8px}.search-input{flex:1;font-family:var(--font-body);font-size:1rem;padding:13px 14px;border-radius:10px;border:1.5px solid var(--grey-mid);background:var(--card);color:var(--ink);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.search-input:focus{border-color:var(--gold-deep);box-shadow:0 0 0 3px #e3a72c40}.search-input:disabled{background:var(--grey)}.submit-btn{background:var(--ink);color:var(--paper);font-weight:600;font-size:1rem;text-transform:uppercase;letter-spacing:.06em;padding:0 20px}.submit-btn:hover:not(:disabled){background:var(--gold);color:var(--ink)}.search-dropdown{list-style:none;margin:6px 0 0;padding:4px;position:absolute;z-index:30;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);max-height:320px;overflow-y:auto}.search-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer}.search-option.highlighted{background:var(--paper-2)}.option-flag{font-size:1.2rem}.option-name{flex:1;font-weight:600}.option-position{font-family:var(--font-display);font-size:.66rem;font-weight:600;letter-spacing:.06em;color:var(--ink);background:var(--gold);padding:3px 8px;border-radius:999px}.guess-history{display:flex;flex-direction:column;gap:8px}.guess-row{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:10px;border:1px solid var(--line);padding:12px 14px;min-height:48px}.guess-row.empty{background:transparent;border-style:dashed}.guess-mark{font-weight:700;width:1.1rem;text-align:center}.guess-row.wrong{color:var(--muted)}.guess-row.wrong .guess-mark{color:var(--red)}.guess-row.correct{border-color:var(--green);background:#2f7d4f14}.guess-row.correct .guess-mark{color:var(--green)}.guess-name{flex:1;font-weight:600}.guess-tag{font-family:var(--font-display);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green)}.game-over{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);padding:22px 18px;text-align:center}.game-over.won{border-top:4px solid var(--green)}.game-over.lost{border-top:4px solid var(--muted)}.result-title{font-family:var(--font-display);font-size:1.4rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.answer-name{font-family:var(--font-display);font-size:1.5rem;font-weight:700;margin-top:6px;color:var(--green-deep)}.answer-meta{margin-top:4px;font-size:1rem}.answer-meta.muted{color:var(--muted);font-size:.92rem}.answer-flag{font-size:1.2rem}.next-puzzle{margin-top:18px;font-family:var(--font-display);font-size:.86rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.share-card{margin-top:16px}.share-text{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92rem;white-space:pre-wrap;margin:0 0 10px;text-align:center;line-height:1.5}.copy-btn{width:100%;background:var(--ink);color:var(--paper);font-weight:600;font-size:1rem;text-transform:uppercase;letter-spacing:.06em;padding:13px}.copy-btn:hover{background:var(--gold);color:var(--ink)}.landing-card{text-align:center;padding:30px 22px;margin-top:10px}.landing-kick{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;color:var(--muted)}.landing-countdown{font-family:var(--font-wordmark);font-size:clamp(2.4rem,12vw,3.4rem);color:var(--gold);text-shadow:2px 2px 0 var(--ink);letter-spacing:.02em;margin:8px 0 16px;font-variant-numeric:tabular-nums}.landing-blurb{color:var(--ink-soft);font-size:.92rem;max-width:none;margin:0 auto;text-wrap:balance}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#23242c80;display:flex;align-items:center;justify-content:center;padding:18px;z-index:100;animation:fade-in .2s ease}.modal-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);padding:24px 22px;max-width:400px;width:100%;box-shadow:var(--shadow-lg)}.modal-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px;color:var(--ink)}.howto-list{margin:0 0 20px;padding-left:20px}.howto-list li{margin-bottom:10px}.kickoff-btn{width:100%;background:var(--ink);color:var(--paper);font-weight:600;font-size:1.05rem;text-transform:uppercase;letter-spacing:.06em;padding:14px}.kickoff-btn:hover{background:var(--gold);color:var(--ink)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes clue-pop{0%{transform:scale(.96)}60%{transform:scale(1.03)}to{transform:scale(1)}}.admin{max-width:760px;margin:0 auto;padding:18px 16px 64px}.admin-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.admin-header h1{font-family:var(--font-display);text-transform:uppercase;color:var(--ink);margin:0;font-size:1.5rem}.admin-tag{font-family:var(--font-display);font-size:.66rem;background:var(--gold);color:var(--ink);padding:2px 8px;border-radius:999px;vertical-align:middle;letter-spacing:.08em}.admin-exit{color:var(--ink-soft);text-decoration:none;font-weight:600;font-size:.9rem}.admin-intro{color:var(--ink);font-size:.95rem}.admin-export{background:var(--card);border:1.5px solid var(--gold);border-radius:var(--radius);padding:12px;margin-bottom:16px}.admin-export-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.admin-copy{background:var(--ink);color:var(--paper);font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:7px 14px}.admin-copy:hover{background:var(--gold);color:var(--ink)}.admin-export-json{background:var(--paper-2);border-radius:8px;padding:10px;font-size:.82rem;overflow-x:auto;margin:0}.admin-hint,.admin-hint code{font-size:.82rem;color:var(--muted)}.admin-hint code{background:var(--grey);padding:1px 5px;border-radius:4px}.admin-missing-all{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px 14px;margin-bottom:18px}.admin-missing-all>strong{display:block;margin-bottom:10px}.admin-subhead{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:1.1rem;margin:0 0 10px;color:var(--ink)}.admin-days{display:flex;flex-direction:column;gap:12px}.admin-day{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px 14px;border-left:4px solid var(--green)}.admin-day.warn{border-left-color:var(--red)}.admin-day.today{outline:2px solid var(--gold)}.admin-day-head{display:flex;align-items:center;justify-content:space-between}.admin-num{font-family:var(--font-display);font-weight:700;color:var(--gold-deep)}.admin-date{color:var(--muted);font-variant-numeric:tabular-nums}.admin-live{font-family:var(--font-display);font-size:.62rem;font-weight:600;background:var(--green);color:#fff;padding:2px 6px;border-radius:4px;letter-spacing:.08em}.admin-approve{font-size:.85rem;font-weight:600;color:var(--ink-soft);display:flex;align-items:center;gap:6px;cursor:pointer}.admin-answer{margin:8px 0;font-size:.95rem}.admin-badges{display:flex;flex-wrap:wrap;gap:8px}.admin-badge{width:44px;height:44px;border-radius:10px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;padding:5px}.admin-badge img{width:100%;height:100%;object-fit:contain}.admin-badge.missing{background:#c4382e14;border:1px dashed var(--red)}.admin-badge-x{color:var(--red);font-weight:800}.admin-missing{margin-top:10px;display:flex;flex-direction:column;gap:8px}.admin-missing-row{display:flex;align-items:center;gap:8px}.admin-missing-row label{flex:0 0 130px;font-size:.85rem;font-weight:700}.admin-missing-row input{flex:1;padding:8px 10px;border:1.5px solid var(--grey-mid);border-radius:8px;font-size:.85rem;font-family:var(--font-body)}.admin-missing-row input:focus{outline:none;border-color:var(--gold-deep)}.admin-missing-preview{width:32px;height:32px;object-fit:contain;border:1px solid var(--line);border-radius:6px;background:#fff}.admin-swapped{font-family:var(--font-display);font-size:.62rem;font-weight:600;background:var(--gold);color:var(--ink);padding:2px 6px;border-radius:4px;letter-spacing:.08em;margin-left:4px}.admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.admin-play,.admin-swap-btn,.admin-reset-btn{font-family:var(--font-display);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:7px 14px;border-radius:8px}.admin-play{background:var(--green);color:#fff}.admin-play:hover{background:var(--green-deep)}.admin-swap-btn{background:var(--ink);color:var(--paper)}.admin-swap-btn:hover{background:var(--gold);color:var(--ink)}.admin-reset-btn{background:transparent;color:var(--muted);border:1px solid var(--grey-mid)}.admin-reset-btn:hover{color:var(--ink);border-color:var(--ink)}.admin-picker{margin-top:10px;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:10px}.admin-picker-input{width:100%;padding:9px 11px;border:1.5px solid var(--grey-mid);border-radius:8px;font-size:.9rem;font-family:var(--font-body)}.admin-picker-input:focus{outline:none;border-color:var(--gold-deep)}.admin-picker-list{list-style:none;margin:8px 0 0;padding:0}.admin-picker-list li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer}.admin-picker-list li:hover{background:var(--card)}.admin-picker-name{flex:1;font-weight:600}.admin-picker-cancel{margin-top:8px;background:transparent;color:var(--muted);font-size:.8rem;padding:4px 8px}.demo-bar{display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);border-radius:10px;padding:8px 12px;margin-bottom:16px}.demo-tag{font-family:var(--font-display);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--gold);color:var(--ink);padding:2px 8px;border-radius:999px}.demo-date{flex:1;font-family:var(--font-display);font-size:.82rem;letter-spacing:.04em}.demo-exit{background:var(--paper);color:var(--ink);font-weight:600;font-size:.8rem;padding:6px 12px}.demo-exit:hover{background:var(--gold)}@media (min-width: 720px){.app{padding-top:40px}.club-badge{width:58px;height:58px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}
