:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eee6d2;--ink:#100f0d;--surface:#17140f;--surface-raised:#201b14;--gold:#c9a45b;--gold-bright:#e6c87f;--muted:#a99e89;--line:#4f4229;--danger:#e38b7e;background:#100f0d;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{min-height:100svh;margin:0}a{color:inherit}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.shell{min-height:100svh;padding:max(1.25rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));background:radial-gradient(circle at top,#302819,#100f0d 60%);place-items:center;display:grid}.card{background:#13110deb;border:1px solid #6f5a30;width:min(44rem,100%);padding:clamp(2rem,7vw,5rem);box-shadow:0 1.5rem 5rem #0009}.eyebrow{color:#caa85e;letter-spacing:.14em;text-transform:uppercase;font:600 .75rem/1.4 system-ui,sans-serif}h1{margin:.35rem 0 1rem;font-size:clamp(2.8rem,9vw,5.5rem);font-weight:500;line-height:.95}p{max-width:34rem;font-size:1.1rem;line-height:1.75}.status{color:#b9ad93;margin-top:2rem;font:.85rem/1.5 system-ui,sans-serif}.auth-page{background:radial-gradient(circle at 20% 8%,#4a3820 0,#19150f 34rem,#0d0c0a 70%);min-height:100svh}.auth-story{min-height:44svh;padding:max(2rem, env(safe-area-inset-top)) 1.35rem 2.25rem;flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.auth-story:after{content:"";border:1px solid #b9904930;border-radius:50%;width:18rem;height:18rem;position:absolute;top:-5rem;right:-8rem;box-shadow:0 0 0 3rem #b9904908,0 0 0 7rem #b9904905}.brand-mark{border:1px solid var(--gold);width:3rem;height:3rem;color:var(--gold-bright);place-items:center;margin-bottom:1.5rem;display:grid;transform:rotate(45deg)}.brand-mark span{font-size:1.55rem;transform:rotate(-45deg)}.auth-story h1{letter-spacing:-.055em;margin:.4rem 0 1rem;font-size:clamp(3.45rem,17vw,6.7rem)}.auth-lead{color:#d0c4ab;margin:0;font-size:1.05rem;line-height:1.65}.auth-panel{color:#242018;padding:1.25rem 1.25rem max(2rem, env(safe-area-inset-bottom));background:#eee7d7;border-radius:1.35rem 1.35rem 0 0;min-height:56svh}.auth-tabs{background:#d9cfbb;border-radius:.75rem;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;display:grid}.auth-tabs button{color:#5f5747;cursor:pointer;background:0 0;border:0;border-radius:.58rem;min-height:2.75rem;font:650 .88rem/1 system-ui,sans-serif}.auth-tabs button[aria-selected=true]{color:#242018;background:#fffaf0;box-shadow:0 .2rem .8rem #65573720}.auth-heading{margin:2.15rem 0 1.35rem}.auth-heading .eyebrow{color:#896b31}.auth-heading h2{margin:.35rem 0 .65rem;font-size:2rem;font-weight:500}.auth-heading>p:last-child{color:#665e50;margin:0;font:.93rem/1.55 system-ui,sans-serif}.auth-form,.new-campaign-form{gap:1rem;display:grid}.auth-form label,.new-campaign-form label{gap:.45rem;font:650 .78rem/1.3 system-ui,sans-serif;display:grid}.auth-form input,.new-campaign-form input{color:#242018;background:#fffaf0;border:1px solid #bfb29a;border-radius:.55rem;outline:none;width:100%;min-height:3.25rem;padding:.8rem .9rem;font:1rem/1.2 system-ui,sans-serif}.auth-form input:focus,.new-campaign-form input:focus{border-color:#806124;box-shadow:0 0 0 3px #a37c3025}.form-error{color:#9d3026;background:#a93d2910;border-left:3px solid #b64d3e;margin:0;padding:.65rem .8rem;font:.85rem/1.4 system-ui,sans-serif}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:.55rem;justify-content:center;align-items:center;gap:.65rem;min-height:3.25rem;padding:.8rem 1rem;font:700 .9rem/1 system-ui,sans-serif;text-decoration:none;transition:transform .18s,background .18s;display:inline-flex}.primary-button{color:#fff7e5;background:#30291d}.secondary-button{background:var(--gold);color:#1e1911}.primary-button:not(:disabled):active,.secondary-button:not(:disabled):active{transform:translateY(1px)}.primary-button:disabled,.secondary-button:disabled{opacity:.58;cursor:wait}.privacy-note{color:#756c5d;text-align:center;margin:1.35rem auto 0;font:.76rem/1.5 system-ui,sans-serif}.portal-page{background:radial-gradient(circle at 80% 0, #2d2517 0, var(--ink) 34rem);min-height:100svh}.portal-header{height:4.5rem;padding:0 max(1rem, env(safe-area-inset-right)) 0 max(1rem, env(safe-area-inset-left));z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#100f0de8;border-bottom:1px solid #8d744522;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.portal-brand{align-items:center;gap:.65rem;text-decoration:none;display:flex}.portal-brand>span{width:2rem;height:2rem;color:var(--gold-bright);border:1px solid var(--gold);place-items:center;display:grid;transform:rotate(45deg)}.portal-brand>span:first-letter{transform:rotate(-45deg)}.portal-brand strong{font-weight:500;display:none}.user-menu{color:var(--muted);align-items:center;gap:.65rem;font:.8rem/1 system-ui,sans-serif;display:flex}.text-button{border:1px solid var(--line);color:#e5d9c1;cursor:pointer;background:0 0;border-radius:.4rem;min-height:2.75rem;padding:0 .75rem}.campaign-hub{width:min(75rem,100%);padding:2.4rem max(1rem, env(safe-area-inset-right)) 4rem max(1rem, env(safe-area-inset-left));margin:0 auto}.hub-intro{max-width:42rem}.hub-intro h1,.game-heading h1{letter-spacing:-.045em;margin:.35rem 0 1rem;font-size:clamp(2.85rem,13vw,5.8rem);font-weight:500}.hub-intro>p:last-child{color:#c1b49d;margin:0}.campaign-section{margin-top:3.6rem}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.1rem;padding-bottom:1rem;display:flex}.section-heading h2,.new-campaign-section h2,.empty-campaigns h2{margin:.25rem 0 0;font-size:1.75rem;font-weight:500}.section-heading>span{color:var(--muted);white-space:nowrap;font:.75rem/1 system-ui,sans-serif}.campaign-grid{gap:1rem;display:grid}.campaign-card{background:var(--surface-raised);border:1px solid #6f5a3038;border-radius:.85rem;overflow:hidden;box-shadow:0 1.2rem 3rem #0003}.campaign-art{background:radial-gradient(circle at 50% 120%,#c19a4b55,#0000 55%),linear-gradient(145deg,#45341d,#17130e);place-items:center;min-height:9rem;display:grid;position:relative;overflow:hidden}.campaign-art:before,.campaign-art:after{content:"";border:1px solid #dbb96824;width:8rem;height:8rem;position:absolute;transform:rotate(45deg)}.campaign-art:after{width:4.5rem;height:4.5rem}.campaign-art-1{background:radial-gradient(circle at 30% 20%,#5f403c,#0000 48%),linear-gradient(145deg,#2e1d1c,#11100e)}.campaign-art-2{background:radial-gradient(circle at 70% 80%,#3d5e4c,#0000 48%),linear-gradient(145deg,#1e352a,#10110f)}.campaign-art span{color:#f2d99d;z-index:1;font-size:3rem}.campaign-card-body{padding:1.15rem}.campaign-date{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font:.7rem/1.4 system-ui,sans-serif}.campaign-card h3{margin:.3rem 0 .4rem;font-size:1.7rem;font-weight:500}.campaign-card-body>p:not(.campaign-date){color:#bcaf98;margin:0 0 1rem;font:.85rem/1.5 system-ui,sans-serif}.campaign-card .primary-button{background:#332b1f;border:1px solid #775f32;width:100%}.empty-campaigns{text-align:center;border:1px dashed var(--line);color:var(--muted);border-radius:.8rem;margin-top:3rem;padding:3.5rem 1rem}.empty-symbol{color:var(--gold);font-size:2rem}.empty-campaigns h2{color:#eee6d2}.new-campaign-section{border:1px solid var(--line);background:linear-gradient(145deg,#201b14,#15120e);border-radius:.85rem;gap:1.7rem;margin-top:3.5rem;padding:1.4rem;display:grid}.new-campaign-section>div>p:last-child{color:var(--muted);font:.9rem/1.55 system-ui,sans-serif}.new-campaign-form label{color:#d9ceb8}.new-campaign-form input{color:#f2e9d8;background:#12100d;border-color:#574a31}.game-shell{width:min(82rem,100%);padding:1.35rem max(1rem, env(safe-area-inset-right)) 4rem max(1rem, env(safe-area-inset-left));margin:0 auto}.game-breadcrumb{color:var(--muted);justify-content:space-between;gap:1rem;font:.75rem/1 system-ui,sans-serif;display:flex}.game-breadcrumb a{align-items:center;min-height:2.75rem;text-decoration:none;display:inline-flex}.game-breadcrumb span{align-items:center;display:flex}.game-heading{flex-direction:column;gap:1rem;padding:1.5rem 0 1.6rem;display:flex}.game-heading h1{margin-bottom:0;font-size:clamp(2.5rem,12vw,5rem)}.state-badge{color:#b9d6ad;background:#243320;border:1px solid #4e6648;border-radius:99px;width:fit-content;padding:.48rem .65rem;font:.68rem/1 system-ui,sans-serif}.game-layout{gap:1rem;display:grid}.character-hud,.narrative-panel{border:1px solid var(--line);background:#17140ff2;border-radius:.75rem}.character-hud{grid-template-columns:auto 1fr;align-items:center;gap:.85rem 1rem;padding:1.1rem;display:grid}.character-hud h2{margin:.2rem 0 0;font-weight:500}.avatar{border:1px solid var(--gold);color:#ffe5a8;background:#574522;border-radius:50%;place-items:center;width:3.5rem;height:3.5rem;font-size:1.45rem;display:grid}.resource{grid-column:1/-1}.resource>div:first-child{color:var(--muted);justify-content:space-between;font:.72rem/1 system-ui,sans-serif;display:flex}.resource strong{color:#e6d8be}.meter{background:#3a201c;border-radius:1rem;height:.38rem;margin-top:.5rem;overflow:hidden}.meter span{background:#b75d4e;height:100%;display:block}.resource.vigor .meter{background:#2e3020}.resource.vigor .meter span{background:#b4a34f}.narrative-panel{padding:clamp(1.25rem,5vw,3.6rem)}.scene-kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font:700 .68rem/1 system-ui,sans-serif}.narrative-panel h2{margin:.5rem 0 1.3rem;font-size:clamp(1.8rem,8vw,3.4rem);font-weight:500}.narrative-entry{color:#d3c8b3;line-height:1.85}.narrative-entry+.narrative-entry{border-top:1px solid #4f422966;margin-top:2rem;padding-top:2rem}.narrative-entry>p{margin-bottom:0}.turn-meta{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;font:700 .65rem/1 system-ui,sans-serif;display:flex}.turn-entry blockquote{border-left:2px solid var(--gold);color:#f0e4cd;margin:.9rem 0;padding-left:1rem;font-style:italic}.check-result{color:#cfc1a7;background:#221d14;border:1px solid #665534;border-radius:.4rem;justify-content:space-between;gap:.8rem;margin:1rem 0;padding:.65rem .75rem;font:.7rem/1.3 system-ui,sans-serif;display:flex}.check-result.success{color:#c6ddbd;background:#263122;border-color:#526c4b}.check-result.failure{color:#e1bbb2;background:#2f1f1b;border-color:#70443b}.system-note{color:#bfb197;background:#ae87310d;border:1px solid #8b6d303d;gap:.8rem;margin:2rem 0;padding:1rem;display:flex}.system-note>span{color:var(--gold)}.system-note p{margin:0;font:.8rem/1.55 system-ui,sans-serif}.action-composer{gap:.65rem;margin-top:2rem;display:grid}.action-composer label{color:#e4d7bf;font:650 .8rem/1 system-ui,sans-serif}.action-composer textarea{resize:vertical;color:#eee6d2;background:#0f0e0c;border:1px solid #4a402e;border-radius:.55rem;min-height:7rem;padding:.9rem}.composer-footer{justify-content:space-between;align-items:center;gap:1rem;display:flex}.composer-footer>span{color:var(--muted);font:.68rem/1 system-ui,sans-serif}.action-composer button{background:var(--gold);color:#1e1911;cursor:pointer;border:1px solid #8b6d30;border-radius:.5rem;min-height:3rem;padding:0 1.2rem;font:700 .8rem/1 system-ui,sans-serif}.action-composer button:disabled{opacity:.55;cursor:wait}@media (min-width:48rem){.auth-page{grid-template-columns:minmax(0,1.15fr) minmax(24rem,.85fr);display:grid}.auth-story{justify-content:center;min-height:100svh;padding:5rem clamp(3rem,8vw,8rem)}.auth-story h1{font-size:clamp(5rem,9vw,8.5rem)}.auth-lead{max-width:32rem}.auth-panel{min-height:100svh;padding:max(4rem, env(safe-area-inset-top)) clamp(2.5rem, 5vw, 5rem);border-radius:0;flex-direction:column;justify-content:center;display:flex}.portal-brand strong{display:inline}.campaign-hub{padding-top:4.5rem}.campaign-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.new-campaign-section{grid-template-columns:.85fr 1.15fr;padding:2.2rem}.game-heading{flex-direction:row;justify-content:space-between;align-items:end}.game-layout{grid-template-columns:16rem minmax(0,1fr);align-items:start}.character-hud{position:sticky;top:5.5rem}}@media (min-width:70rem){.campaign-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
