:root{--bg: #17130f;--bg-2: #211a14;--panel: #2a211a;--panel-2: #332a20;--edge: #4a3b2c;--ink: #f2e6d2;--ink-dim: #b39d80;--ink-faint: #7a6650;--amber: #ff9a2e;--amber-glow: rgba(255, 154, 46, .5);--teal: #38c6b4;--teal-glow: rgba(56, 198, 180, .45);--red: #e0553c;--green: #7bc86c;--mono: "DM Mono", ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 50% -10%,#2a2018 0%,transparent 60%),var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.app{max-width:560px;margin:0 auto;padding:20px 18px 40px;min-height:100%;display:flex;flex-direction:column}.topbar{text-align:center;padding:8px 0 18px;border-bottom:1px solid var(--edge);margin-bottom:18px}.logo{display:inline-flex;align-items:center;gap:8px}.logo__bolt{color:var(--amber);filter:drop-shadow(0 0 8px var(--amber-glow));font-size:22px}.logo__name{font-family:var(--mono);font-weight:700;font-size:30px;letter-spacing:6px;color:var(--ink);text-shadow:0 0 18px rgba(255,154,46,.15)}.topbar__sub{margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:1px;color:var(--ink-faint);text-transform:uppercase}.panel{background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:28px}.panel--center{text-align:center;color:var(--ink-dim)}.spinner{width:34px;height:34px;margin:0 auto 14px;border:3px solid var(--edge);border-top-color:var(--amber);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.err{color:var(--red);font-weight:600}.err__detail{color:var(--ink-faint);font-size:13px}.stage{display:flex;flex-direction:column;gap:18px}.deck{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--edge);border-radius:16px;padding:18px;box-shadow:inset 0 1px #ffffff08,0 10px 30px #00000059}.deck__prompt{font-size:14px;color:var(--ink-dim);margin-bottom:14px;text-align:center}.clip{display:flex;align-items:center;gap:14px;background:#1b1510;border:1px solid var(--edge);border-radius:12px;padding:12px 14px}.clip__btn{flex:0 0 auto;width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;font-size:16px;color:#1b1510;background:radial-gradient(circle at 35% 30%,#ffd08a,var(--amber));box-shadow:0 0 0 4px #ff9a2e1f,0 4px 14px var(--amber-glow);transition:transform .08s ease}.clip--teal .clip__btn{background:radial-gradient(circle at 35% 30%,#a8f0e6,var(--teal));box-shadow:0 0 0 4px #38c6b41f,0 4px 14px var(--teal-glow)}.clip__btn:active{transform:scale(.94)}.clip__btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.clip__body{flex:1 1 auto;min-width:0}.clip__label{font-size:12px;color:var(--ink-dim);margin-bottom:8px;letter-spacing:.3px}.clip__reel{height:8px;border-radius:5px;background:#0f0b08;overflow:hidden;border:1px solid #000}.clip__reel-fill{height:100%;background:linear-gradient(90deg,var(--amber),#ffd08a);box-shadow:0 0 10px var(--amber-glow);transition:width .15s linear}.clip--teal .clip__reel-fill{background:linear-gradient(90deg,var(--teal),#a8f0e6);box-shadow:0 0 10px var(--teal-glow)}.clip__meta{margin-top:7px;font-family:var(--mono);font-size:11px;color:var(--amber);letter-spacing:1px}.clip--teal .clip__meta{color:var(--teal)}.hints{margin-top:14px;display:flex;flex-direction:column;gap:10px}.hints--empty p{margin:12px 0 0;font-size:12.5px;color:var(--ink-faint);text-align:center;font-style:italic}.hint{display:flex;gap:10px;align-items:flex-start;background:#1b1510;border:1px solid var(--edge);border-left:3px solid var(--amber);border-radius:10px;padding:10px 12px;animation:slidein .25s ease}.hint--clip{flex-direction:column;align-items:stretch;border-left-color:var(--teal)}.hint--location{border-left-color:var(--green)}.hint--location .hint__tag{color:var(--green);background:#7bc86c1f}@keyframes slidein{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.hint__tag{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--amber);background:#ff9a2e1a;padding:3px 7px;border-radius:5px;flex:0 0 auto}.hint--clip .hint__tag{color:var(--teal);background:#38c6b41a;align-self:flex-start;margin-bottom:8px}.hint__text{font-size:14px;color:var(--ink);line-height:1.45}.play{background:var(--panel);border:1px solid var(--edge);border-radius:16px;padding:16px}.play__hint{margin:12px 2px 0;font-size:11.5px;color:var(--ink-faint);text-align:center}.guesspanel{margin-bottom:14px}.guesspanel__counter{display:flex;align-items:center;gap:8px}.guessdot{width:12px;height:12px;border-radius:50%;background:#0f0b08;border:1px solid var(--edge)}.guessdot--used{background:var(--red);border-color:var(--red);box-shadow:0 0 8px #e0553c80}.guessdot--correct{background:var(--green);border-color:var(--green);box-shadow:0 0 8px #7bc86c99}.guessdot--next{border-color:var(--amber);box-shadow:0 0 8px var(--amber-glow)}.guesspanel__count{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-dim);letter-spacing:1px}.guesslog{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.guessrow{display:flex;justify-content:space-between;align-items:center;background:#1b1510;border:1px solid var(--edge);border-radius:8px;padding:8px 12px;font-size:13px}.guessrow__date{font-family:var(--mono);color:var(--ink-dim)}.guessrow__dir{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.5px}.guessrow__dir--later{color:var(--teal)}.guessrow__dir--earlier{color:var(--amber)}.guessrow__dir--correct{color:var(--green)}.datelock{display:flex;gap:8px;margin-bottom:14px}.datelock__slot{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:#1b1510;border:1px solid var(--edge);border-radius:10px;padding:9px 4px;transition:border-color .2s ease,box-shadow .2s ease}.datelock__slot--locked{border-color:var(--green);box-shadow:0 0 12px #7bc86c33}.datelock__val{font-family:var(--mono);font-size:17px;font-weight:700;letter-spacing:1px;color:var(--ink-faint)}.datelock__slot--locked .datelock__val{color:var(--green)}.datelock__lbl{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-faint)}.datelock__slot--locked .datelock__lbl{color:var(--green)}.cal{-webkit-user-select:none;user-select:none}.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal__nav{width:34px;height:34px;border-radius:8px;border:1px solid var(--edge);background:var(--panel-2);color:var(--ink);font-size:18px;cursor:pointer}.cal__nav:hover{border-color:var(--amber);color:var(--amber)}.cal__title{display:flex;align-items:center;gap:8px}.cal__month{font-family:var(--mono);font-size:15px;letter-spacing:1px;color:var(--ink)}.cal__year{font-family:var(--mono);font-size:14px;background:var(--panel-2);color:var(--amber);border:1px solid var(--edge);border-radius:6px;padding:3px 6px;cursor:pointer}.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal__grid--dow{margin-bottom:4px}.cal__dow{text-align:center;font-family:var(--mono);font-size:10px;color:var(--ink-faint);padding:2px 0}.cal__cell{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid transparent;font-family:var(--mono);font-size:13px;background:transparent;color:var(--ink-faint);cursor:default}.cal__cell--empty{border:none}.cal__cell--off{color:#4a3b2c}.cal__cell--show{background:var(--panel-2);border-color:var(--amber);color:var(--amber);cursor:pointer;box-shadow:0 0 10px #ff9a2e26;transition:transform .08s ease,box-shadow .15s ease}.cal__cell--show:hover:not(:disabled){transform:translateY(-1px);background:var(--amber);color:#1b1510;box-shadow:0 0 16px var(--amber-glow)}.cal__cell--guessed{background:#2a1a16!important;border-color:var(--red)!important;color:var(--red)!important;box-shadow:none!important;cursor:not-allowed}.cal__cell--ruledout{background:transparent!important;border-color:transparent!important;color:var(--ink-faint)!important;box-shadow:none!important;text-decoration:line-through;opacity:.4;cursor:not-allowed;transform:none!important}.cal__cell:disabled{cursor:not-allowed}.finale{display:flex;flex-direction:column;gap:16px}.reveal{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--edge);border-radius:16px;padding:22px;text-align:center;position:relative;overflow:hidden}.reveal--won{border-color:var(--green);box-shadow:0 0 30px #7bc86c26}.reveal--lost{border-color:var(--red)}.reveal__stamp{font-family:var(--mono);font-size:12px;letter-spacing:3px;padding:4px 10px;display:inline-block;border:1px dashed currentColor;border-radius:6px;margin-bottom:12px}.reveal--won .reveal__stamp{color:var(--green)}.reveal--lost .reveal__stamp{color:var(--red)}.reveal__date{margin:4px 0;font-size:22px;color:var(--ink)}.reveal__venue{color:var(--ink-dim);font-size:14px;margin-bottom:4px}.reveal__score{font-family:var(--mono);font-size:12px;color:var(--green);letter-spacing:1px}.reveal__setlist{text-align:left;margin:18px auto 0;max-width:360px}.reveal__setlist-title{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--edge);padding-bottom:6px;margin-bottom:8px}.reveal__setlist ol{margin:0;padding-left:22px}.reveal__setlist li{font-size:13.5px;color:var(--ink-dim);padding:2px 0}.reveal__link{display:inline-block;margin-top:18px;color:var(--amber);font-size:14px;text-decoration:none;border-bottom:1px solid var(--amber-glow);padding-bottom:2px}.reveal__link:hover{color:#ffd08a}.share{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:16px}.share__preview{margin:0;width:100%;text-align:center;font-family:var(--mono);font-size:15px;line-height:1.5;color:var(--ink-dim);background:#1b1510;border:1px solid var(--edge);border-radius:10px;padding:12px;white-space:pre-wrap;word-break:break-word}.share__btn{cursor:pointer;border:none;border-radius:10px;padding:12px 28px;font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:1px;color:#1b1510;background:radial-gradient(circle at 35% 30%,#a8f0e6,var(--teal));box-shadow:0 4px 14px var(--teal-glow);transition:transform .08s ease}.share__btn:active{transform:scale(.97)}.footer{margin-top:auto;padding-top:24px;text-align:center;font-size:11px;color:var(--ink-faint);line-height:1.5}
