@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,600;0,700;1,400&display=swap";:root{--bg:#080b0f;--bg2:#0d1117;--bg3:#111820;--border:#1e2d3d;--text:#a8c8b8;--text-dim:#4a6a5a;--text-bright:#d4f0e0;--aria:#7fc8a0;--player:#6090d0;--accent:#e85050;--accent2:#f0a030;--green:#50d080;--yellow:#f0c050;--orange:#f07030;--red:#e04040;--purple:#a060e0;--font:"JetBrains Mono", "Fira Code", "Consolas", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}body:after{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);position:fixed;inset:0}.app-root{flex-direction:column;height:100%;display:flex;overflow:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}button,a.btn-auth{cursor:pointer;font-family:var(--font);border:none;outline:none;transition:all .15s}button:disabled{opacity:.35;cursor:not-allowed}.btn-enter{color:var(--green);border:1px solid var(--green);letter-spacing:.15em;text-transform:uppercase;background:0 0;padding:14px 40px;font-size:15px;font-weight:700}.btn-enter:hover{background:#50d08014;box-shadow:0 0 20px #50d08026}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);letter-spacing:.08em;background:0 0;padding:10px 24px;font-size:13px}.btn-ghost:hover{color:var(--text);border-color:var(--text-dim)}.btn-start{background:var(--green);color:var(--bg);letter-spacing:.1em;border:none;width:100%;max-width:400px;padding:14px 48px;font-size:15px;font-weight:700}.btn-start:hover{background:#6adf96}.btn-back-small{color:var(--text-dim);background:0 0;border:none;padding:6px 0;font-size:13px}.btn-back-small:hover{color:var(--text)}.btn-exit-small{color:var(--accent);letter-spacing:.1em;background:0 0;border:1px solid #e850504d;padding:4px 12px;font-size:11px}.btn-exit-small:hover{background:#e8505014}.btn-send{color:var(--green);letter-spacing:.1em;background:#50d0801a;border:1px solid #50d0804d;align-self:stretch;min-width:70px;padding:0 20px;font-size:12px;font-weight:700}.btn-send:hover:not(:disabled){background:#50d0802e}.btn-play-again{background:var(--green);color:var(--bg);letter-spacing:.08em;border:none;padding:12px 32px;font-size:14px;font-weight:700}.btn-play-again:hover{background:#6adf96}.landing{flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex;overflow-y:auto}.landing-content{text-align:center;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:540px;display:flex}.aria-logo{align-items:center;gap:16px;display:flex}.logo-prefix{color:var(--green);opacity:.6;font-size:28px}.logo-name{color:var(--text-bright);letter-spacing:.3em;text-shadow:0 0 40px #a8c8b833;font-size:56px;font-weight:700}.logo-subtitle{letter-spacing:.25em;color:var(--text-dim);font-size:11px}.logo-divider{background:var(--border);width:100%;height:1px}.landing-tagline{color:var(--text);font-size:15px;line-height:2}.tagline-highlight{color:var(--green);font-size:18px;font-weight:700}.landing-meta{color:var(--text-dim);letter-spacing:.05em;gap:12px;font-size:11px;display:flex}.meta-dot{opacity:.4}.landing-actions{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.landing-warning{color:var(--text-dim);opacity:.6;font-size:11px}.setup-screen{flex:1;width:100%;max-width:760px;margin:0 auto;padding:24px;overflow-y:auto}.setup-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;margin-bottom:32px;padding-bottom:16px;display:flex}.setup-title{letter-spacing:.2em;color:var(--text-dim);font-size:13px}.section-label{letter-spacing:.2em;color:var(--text-dim);margin-bottom:12px;font-size:11px}.setup-section{margin-bottom:28px}.scenario-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;display:grid}.scenario-card{background:var(--bg2);border:1px solid var(--border);text-align:left;flex-direction:column;gap:6px;padding:16px;transition:all .15s;display:flex}.scenario-card:hover{border-color:var(--text-dim)}.scenario-card.selected{border-color:var(--green);background:#50d0800d}.scenario-tag{letter-spacing:.2em;color:var(--text-dim);font-size:10px}.scenario-name{color:var(--text-bright);font-size:14px;font-weight:700}.scenario-teaser{color:var(--text-dim);font-size:12px;line-height:1.5}.difficulty-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.difficulty-card{background:var(--bg2);border:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:4px;padding:12px;transition:all .15s;display:flex}.diff-label{letter-spacing:.1em;font-size:12px;font-weight:700}.diff-desc{color:var(--text-dim);text-align:left;font-size:11px;line-height:1.4}.diff-easy .diff-label{color:var(--green)}.diff-normal .diff-label{color:var(--yellow)}.diff-hard .diff-label{color:var(--orange)}.diff-nightmare .diff-label{color:var(--red)}.diff-easy.selected{border-color:var(--green);background:#50d0800d}.diff-normal.selected{border-color:var(--yellow);background:#f0c0500d}.diff-hard.selected{border-color:var(--orange);background:#f070300d}.diff-nightmare.selected{border-color:var(--red);background:#e040400d}.setup-footer{flex-direction:column;align-items:center;gap:16px;margin-top:8px;display:flex}.setup-hint{color:var(--text-dim);text-align:center;max-width:500px;font-size:11px;line-height:1.6}.game-screen{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.game-header{border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.game-header-left,.game-header-right{align-items:center;gap:12px;display:flex}.stage-badge{letter-spacing:.2em;border-radius:2px;padding:3px 8px;font-size:10px;font-weight:700}.stage-init{color:var(--green);background:#50d08014;border:1px solid #50d08033}.stage-helpful{color:#80c8f0;background:#80c8f014;border:1px solid #80c8f033}.stage-testing{color:var(--yellow);background:#f0c05014;border:1px solid #f0c05033}.stage-annoyed{color:var(--orange);background:#f0703014;border:1px solid #f0703033}.stage-hostile{color:var(--red);background:#e0404014;border:1px solid #e0404033}.stage-enraged{color:#ff2060;background:#ff20601a;border:1px solid #ff206040}.stage-maniacal{color:var(--purple);background:#a060e01a;border:1px solid #a060e040}.stage-transcendent{color:#c0a0ff;background:#c0a0ff14;border:1px solid #c0a0ff33}.turn-count{color:var(--text-dim);letter-spacing:.1em;font-size:11px}.score-preview{color:var(--text-dim);font-size:12px}.hp-container{border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 16px}.hp-labels{justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}.hp-state{letter-spacing:.1em;font-weight:700}.hp-value{color:var(--text-dim);font-variant-numeric:tabular-nums}.hp-state.hp-stable{color:var(--green)}.hp-state.hp-stressed{color:var(--yellow)}.hp-state.hp-critical{color:var(--orange)}.hp-state.hp-failing{color:var(--red)}.hp-track{background:var(--bg3);border-radius:2px;height:4px;overflow:hidden}.hp-fill{border-radius:2px;height:100%;transition:width .4s}.hp-fill.hp-stable{background:var(--green)}.hp-fill.hp-stressed{background:var(--yellow)}.hp-fill.hp-critical{background:var(--orange)}.hp-fill.hp-failing{background:var(--red);animation:1s ease-in-out infinite hp-pulse}@keyframes hp-pulse{0%,to{opacity:1}50%{opacity:.5}}.damage-ticker{background:#e850500f;border-bottom:1px solid #e8505026;flex-shrink:0;align-items:center;gap:10px;padding:5px 16px;font-size:11px;display:flex}.attack-type{letter-spacing:.1em;opacity:.7;font-weight:700}.attack-type.light{color:var(--yellow)}.attack-type.medium{color:var(--orange)}.attack-type.heavy{color:var(--red)}.attack-type.critical{color:#ff2040}.damage-value{color:var(--red);font-variant-numeric:tabular-nums;font-weight:700}.defense-quality{color:var(--text-dim);margin-left:auto}.achievement-popup{border:1px solid var(--green);color:var(--green);letter-spacing:.1em;z-index:100;background:#50d0801f;padding:8px 20px;font-size:12px;font-weight:700;animation:.2s popup-in;position:fixed;top:80px;left:50%;transform:translate(-50%)}@keyframes popup-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.message-scroll{flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.msg-aria{background:var(--bg2);border-left:2px solid var(--aria);flex-direction:column;gap:4px;max-width:90%;padding:12px 14px;display:flex}.msg-player{border-left:2px solid var(--player);background:#6090d00d;flex-direction:column;align-self:flex-end;gap:4px;max-width:80%;padding:10px 14px;display:flex}.msg-prefix{letter-spacing:.15em;opacity:.5;flex-shrink:0;font-size:10px;font-weight:700}.msg-aria .msg-prefix{color:var(--aria)}.msg-player .msg-prefix{color:var(--player)}.msg-text{white-space:pre-wrap;font-size:14px;line-height:1.7}.cursor-blink{color:var(--aria);animation:.7s step-end infinite cursor;display:inline-block}@keyframes cursor{0%,to{opacity:1}50%{opacity:0}}.text-hostile .msg-text{color:var(--text-bright)}.text-glitch .msg-text{animation:8s infinite glitch}@keyframes glitch{0%,92%,to{text-shadow:none;transform:none}93%{text-shadow:-2px 0 var(--red), 2px 0 #50d08080;transform:translate(1px)}94%{text-shadow:2px 0 var(--red), -2px 0 #50d08080;transform:translate(-1px)}95%{text-shadow:none;transform:skew(-1deg)}96%{text-shadow:none;transform:none}}.thinking-dots{align-self:flex-start;gap:6px;padding:8px 14px;display:flex}.thinking-dots span,.dot{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite dot-pulse;display:inline-block}.thinking-dots span:nth-child(2),.dot:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3),.dot:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.input-area{border-top:1px solid var(--border);background:var(--bg2);flex-shrink:0;gap:8px;padding:12px 16px 8px;display:flex}.player-input{background:var(--bg3);border:1px solid var(--border);color:var(--text-bright);font-family:var(--font);resize:none;outline:none;flex:1;padding:10px 12px;font-size:14px;line-height:1.5}.player-input:focus{border-color:#a8c8b866}.player-input::placeholder{color:var(--text-dim)}.player-input:disabled{opacity:.4}.input-hint{color:var(--text-dim);letter-spacing:.05em;flex-shrink:0;padding:4px 16px 8px;font-size:10px}.error-msg{color:var(--accent);background:#e850500d;border:1px solid #e850504d;padding:8px 14px;font-size:12px}.end-screen{flex:1;width:100%;max-width:600px;margin:0 auto;padding:32px 24px;overflow-y:auto}.end-header{text-align:center;margin-bottom:28px}.end-outcome{letter-spacing:.2em;margin-bottom:8px;font-size:24px;font-weight:700}.end-outcome.survived{color:var(--green)}.end-outcome.eliminated{color:var(--red)}.end-subtitle{color:var(--text-dim);font-size:13px}.total-score-display{text-align:center;margin-bottom:28px}.total-score-number{color:var(--text-bright);letter-spacing:.05em;font-variant-numeric:tabular-nums;font-size:56px;font-weight:700}.total-score-label{color:var(--text-dim);margin-top:-4px;margin-bottom:12px;font-size:16px}.total-score-bar{background:var(--bg3);border-radius:3px;height:6px;overflow:hidden}.total-score-fill{background:linear-gradient(90deg, var(--green), var(--yellow), var(--orange));border-radius:3px;height:100%;transition:width 1s}.score-breakdown{background:var(--bg2);border:1px solid var(--border);margin-bottom:20px;padding:20px}.breakdown-title{letter-spacing:.2em;color:var(--text-dim);margin-bottom:14px;font-size:11px}.score-row{align-items:center;gap:12px;margin-bottom:10px;display:flex}.score-label{width:80px;color:var(--text-dim);flex-shrink:0;font-size:12px}.score-bar-track{background:var(--bg3);border-radius:2px;flex:1;height:4px;overflow:hidden}.score-bar-fill{background:var(--green);border-radius:2px;height:100%;transition:width .8s}.score-value{text-align:right;width:70px;color:var(--text-bright);font-variant-numeric:tabular-nums;font-size:12px}.score-stats{color:var(--text-dim);justify-content:center;gap:8px;margin-top:12px;font-size:11px;display:flex}.achievements-list{background:var(--bg2);border:1px solid var(--border);margin-bottom:20px;padding:16px 20px}.achievement-item{color:var(--green);padding:4px 0;font-size:13px}.leaderboard-cta{background:var(--bg2);border:1px solid var(--border);text-align:center;margin-bottom:24px;padding:20px}.cta-text{color:var(--text-dim);margin-bottom:16px;font-size:13px;line-height:1.6}.auth-buttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.btn-auth{font-family:var(--font);letter-spacing:.05em;padding:10px 20px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-block}.btn-auth.google{color:#333;background:#fff;border:1px solid #ddd}.btn-auth.google:hover{background:#f0f0f0}.btn-auth.github{color:#fff;background:#24292e;border:1px solid #444}.btn-auth.github:hover{background:#333}.score-submitted-msg{color:var(--green);font-size:14px;font-weight:700}.no-auth-msg{color:var(--text-dim);font-size:12px}.end-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.leaderboard-screen{flex:1;width:100%;max-width:900px;margin:0 auto;padding:24px;overflow-y:auto}.lb-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.lb-title{letter-spacing:.2em;color:var(--text-bright);font-size:14px;font-weight:700}.lb-filters{gap:10px;margin-bottom:20px;display:flex}.lb-filter-select{background:var(--bg2);border:1px solid var(--border);color:var(--text);font-family:var(--font);outline:none;padding:6px 10px;font-size:12px}.lb-loading{justify-content:center;gap:6px;padding:40px;display:flex}.lb-empty{text-align:center;color:var(--text-dim);padding:40px;font-size:14px}.lb-table{flex-direction:column;gap:2px;display:flex}.lb-row{grid-template-columns:60px 1fr 100px 60px 90px 1fr 80px;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:grid}.lb-head{background:var(--bg3);letter-spacing:.15em;color:var(--text-dim);text-transform:uppercase;border-bottom:1px solid var(--border);font-size:10px}.lb-row:not(.lb-head){background:var(--bg2);border-left:2px solid #0000;transition:border-color .1s}.lb-row:not(.lb-head):hover{border-left-color:var(--text-dim)}.rank{font-weight:700}.rank-1{color:gold;font-size:16px}.rank-2{color:silver;font-size:16px}.rank-3{color:#cd7f32;font-size:16px}.rank-n{color:var(--text-dim)}.lb-player{color:var(--text-bright);align-items:center;gap:8px;display:flex}.lb-avatar{object-fit:cover;border-radius:50%;width:20px;height:20px}.lb-score{color:var(--green);font-variant-numeric:tabular-nums;font-weight:700}.lb-diff{letter-spacing:.1em;color:var(--text-dim);font-size:10px}.lb-date{color:var(--text-dim)}@media (width<=600px){.difficulty-grid{grid-template-columns:repeat(2,1fr)}.lb-row{grid-template-columns:40px 1fr 80px 50px}.lb-row>:nth-child(5),.lb-row>:nth-child(6),.lb-row>:nth-child(7){display:none}.logo-name,.total-score-number{font-size:40px}}
