:root{color:#23180f;background:#141414;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--stone: #151614;--stone-2: #25231f;--ink: #261a10;--parchment: #f2dfb8;--parchment-deep: #ddbd7b;--gold: #c89432;--gold-bright: #f0c35d;--red: #8e2f28;--green: #3f6b4b;--blue: #405c74;--shadow: rgba(0, 0, 0, .36)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#14141252,#141412f5),url(/stone-texture.svg),#151614}button,input{font:inherit}button{border:0}button:focus-visible,input:focus-visible,label:has(input:focus-visible){outline:3px solid #f0c35d;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.hero{min-height:clamp(210px,34vh,330px);display:flex;align-items:end;padding:clamp(28px,6vw,64px) 0 24px;color:#fff7df;position:relative}.hero:before{content:"";position:absolute;top:14px;right:-16px;bottom:0;left:-16px;background:linear-gradient(90deg,#8e2f2861,#1516141a 52%),radial-gradient(circle at 76% 18%,rgba(240,195,93,.2),transparent 32%),linear-gradient(135deg,rgba(64,92,116,.2),transparent 48%);border-bottom:1px solid rgba(240,195,93,.36);z-index:-1}.hero h1,.result-banner h1{margin:0;color:#f6d988;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,10vw,7.5rem);line-height:.88;letter-spacing:0;text-transform:uppercase;text-shadow:0 5px 22px rgba(0,0,0,.55)}.hero p{max-width:720px;margin:16px 0 0;color:#f7e8c3;font-size:clamp(1rem,2vw,1.2rem)}.eyebrow{color:var(--gold-bright);font-size:.78rem;font-weight:800;text-transform:uppercase}.setup-layout{display:grid;gap:20px}.setup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.panel,.history,.results-screen{border:1px solid rgba(96,55,26,.5);border-radius:8px;background:linear-gradient(180deg,#fff8ded6,#ebcf97f0),url(/parchment-texture.svg);box-shadow:0 16px 40px var(--shadow)}.panel{min-width:0;margin:0;padding:18px}.wide-panel{grid-column:1 / -1}legend{padding:0 8px;color:#f4d482;background:var(--red);border-radius:4px;font-family:Georgia,Times New Roman,serif;font-weight:800}.section-heading{display:grid;gap:4px;margin-bottom:14px}.section-heading.split{grid-template-columns:1fr auto;align-items:end}.section-heading span,.history h2,.result-columns h2{font-family:Georgia,Times New Roman,serif;color:#6b241e;font-size:1.35rem;font-weight:800}.section-heading small,.choice-card small,.toggle-row small,.number-control>span,.validation,.result-card em,.history-entry span,.horde{color:#5c4a33}.choice-grid,.player-grid,.toggle-stack{display:grid;gap:12px}.choice-card,.toggle-row,.map-token,.number-control{border:1px solid rgba(110,74,36,.32);background:#fff9e58f;border-radius:8px}.choice-card,.toggle-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:13px;cursor:pointer}.choice-card:has(input:checked),.toggle-row:has(input:checked),.map-token:has(input:checked){border-color:#8e2f28b8;box-shadow:inset 0 0 0 1px #8e2f284d}.choice-card span,.toggle-row span{display:grid;gap:2px}.choice-card strong,.toggle-row strong{color:var(--ink)}.warning:has(input:not(:checked)){background:#3f6b4b24}.number-control{display:grid;gap:10px;padding:14px}.stepper{display:grid;grid-template-columns:44px 1fr 44px;gap:8px}.stepper button,.map-actions button,.secondary-button,.primary-button,.reset-button{min-height:42px;border-radius:6px;cursor:pointer;font-weight:800;transition:transform .15s ease,filter .15s ease,background .15s ease}.stepper button,.map-actions button,.secondary-button{color:#f8ecd0;background:var(--stone-2)}.stepper button:hover:not(:disabled),.map-actions button:hover,.secondary-button:hover,.primary-button:hover,.reset-button:hover,.roll-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08)}.stepper input{width:100%;min-width:0;border:1px solid rgba(74,42,21,.35);border-radius:6px;background:#fff7df;color:var(--ink);font-size:1.2rem;font-weight:900;text-align:center}.map-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.map-actions button{padding:0 14px}.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.map-token{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;min-height:44px;padding:9px 11px;cursor:pointer;font-weight:750}.roll-block{display:grid;justify-items:center;gap:10px;padding:10px 0}.roll-button{min-height:92px;width:min(100%,520px);border:2px solid rgba(255,232,150,.78);border-radius:8px;color:#fff8dc;background:linear-gradient(180deg,#b43e32,#7f241e 62%,#4e1715),#8e2f28;box-shadow:0 18px 44px #0000006b,inset 0 2px #fff3;cursor:pointer;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.7rem,11vw,5.4rem);font-weight:900;letter-spacing:0;text-shadow:0 3px 0 rgba(0,0,0,.28);transition:transform .16s ease,filter .16s ease}.roll-button:active:not(:disabled),.primary-button:active,.secondary-button:active,.reset-button:active{transform:translateY(1px)}.roll-die{display:inline-grid;place-items:center;width:42px;height:42px;margin-right:12px;vertical-align:middle;border:2px solid rgba(255,245,210,.8);border-radius:50%;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.8rem;font-weight:950}.validation{min-height:22px;margin:0;color:#f0d8a4;text-align:center}.validation.ready{color:#d7e1bf}.reset-button{justify-self:center;padding:0 16px;color:#f5dfad;background:transparent;border:1px solid rgba(245,223,173,.45)}.results-screen{padding:clamp(18px,4vw,34px);animation:rise-in .32s ease-out}.result-banner{display:grid;gap:8px;place-items:center;padding:18px 12px 28px;text-align:center}.result-banner p,.result-banner span{margin:0;color:#68442a;font-weight:850;text-transform:uppercase}.result-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.result-columns h2{margin:0 0 12px}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.result-card{display:grid;gap:5px;min-height:132px;padding:16px;border:1px solid rgba(55,40,25,.35);border-radius:8px;background:#fffae5b8;animation:card-reveal .32s ease-out both}.result-card.ai{border-top:5px solid var(--red)}.result-card.human{border-top:5px solid var(--blue)}.result-card.goths{background:#8e2f2821}.player-label{color:#724d2c;font-size:.82rem;font-weight:900;text-transform:uppercase}.result-card strong{color:#1d1711;font-family:Georgia,Times New Roman,serif;font-size:1.55rem}.result-card small{color:#8e2f28;font-weight:900}.horde{margin:-4px 0 12px;padding:10px 12px;border-left:4px solid var(--red);background:#8e2f281f;font-weight:750}.horde.allies{border-left-color:var(--blue);background:#405c741f}.battlefield{display:grid;gap:6px;margin:24px 0;padding:clamp(18px,4vw,28px);border:2px solid rgba(96,55,26,.38);border-radius:8px;background:linear-gradient(90deg,#25231fe0,#405c74bd),url(/stone-texture.svg);color:#fff6d6;text-align:center}.battlefield span{color:#f0c35d;font-weight:900;text-transform:uppercase}.battlefield strong{font-family:Georgia,Times New Roman,serif;font-size:clamp(2.1rem,8vw,5rem);line-height:.95;text-transform:uppercase}.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.primary-button,.secondary-button{min-width:min(100%,170px);padding:0 18px}.primary-button{color:#23180f;background:linear-gradient(180deg,var(--gold-bright),var(--gold))}.history{margin-top:22px;padding:18px}.history h2{margin:0 0 12px}.history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.history-entry{display:grid;gap:4px;padding:12px;border-radius:8px;background:#fffae594}.history-entry time{color:#73432d;font-size:.78rem;font-weight:850}.history-entry strong{color:#1f1912}@keyframes rise-in{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.setup-grid,.result-columns{grid-template-columns:1fr}}@media(max-width:560px){.app-shell{width:min(100% - 20px,1180px);padding-top:16px}.hero{min-height:250px}.panel,.history,.results-screen{padding:14px}.section-heading.split{grid-template-columns:1fr}.roll-die{display:none}}
