:root{--bg:#101311;--panel:#181d19;--raised:#20261f;--line:#343b30;--gold:#d7b37b;--gold-dark:#9f7949;--text:#eee9df;--muted:#abb0a2;--green:#8bbd93;--red:#dc8e7c;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:var(--gold);text-decoration:none}button{border:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15}h2{font-size:38px}h3{font-size:23px}.eyebrow{color:var(--gold);font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase}.muted{color:var(--muted)}.small{font-size:12px}.gold{color:var(--gold)}.topbar{height:86px;border-bottom:1px solid #ffffff12;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:relative;z-index:2;background:#10131185}.brand{display:flex;gap:12px;align-items:center;color:var(--text);background:none;padding:0;letter-spacing:3px;font-family:var(--serif);font-size:18px}.brand img{width:38px;height:38px}.brand small{display:block;font:8px/1.8 system-ui;letter-spacing:2.8px;color:var(--muted)}.nav{display:flex;align-items:center;gap:24px}.linkbtn{color:var(--muted);background:none;padding:8px 0;font-size:13px}.linkbtn:hover{color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:13px 24px;min-height:47px;border:1px solid var(--line);background:#222820;color:var(--text);border-radius:3px;font-size:13px;font-weight:600;transition:background .2s,transform .2s}.btn:hover:not(:disabled){background:#31382d;transform:translateY(-1px)}.btn.primary{background:var(--gold);color:#1d2119;border-color:var(--gold)}.btn.primary:hover:not(:disabled){background:#e7c796}.btn.ghost{background:#0c100b65;border-color:#8f8e6d60}.btn.slim{padding:8px 14px;min-height:36px;font-size:12px}.btn.danger{color:var(--red)}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.home-hero{position:relative;min-height:670px;display:flex;align-items:center;overflow:hidden;margin-top:-86px;padding:150px 7vw 95px}.home-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101311 0%,#101311e8 23%,#10131150 63%,#10131115),linear-gradient(0deg,#101311 1%,transparent 35%),url('/assets/realm.webp') center center/cover}.hero-copy{position:relative;max-width:630px;z-index:1}.hero-copy h1{font-size:clamp(44px,6.7vw,100px);letter-spacing:1px;margin:26px 0 0;line-height:.95}.hero-subtitle{font-family:var(--serif);font-size:clamp(20px,2.5vw,32px);color:var(--gold);letter-spacing:5px;margin:14px 0 28px}.hero-copy .intro{font-size:16px;max-width:440px;color:#bfc2b6;line-height:1.85;margin-bottom:30px}.hero-meta{display:flex;gap:22px;font-size:11px;letter-spacing:.5px;color:var(--muted);margin-top:27px}.hero-meta span:before{content:'◇';color:var(--gold);margin-right:8px}.hero-caption{position:absolute;right:6vw;bottom:65px;text-align:right;color:#c3c4b5;font-size:11px;letter-spacing:1.7px}.home-body{padding:0 7vw 60px;max-width:1600px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.section-head h2{font-size:30px;margin:7px 0 0}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mode-card{background:linear-gradient(125deg,#222a20,#141914);border:1px solid var(--line);padding:27px 30px;display:flex;gap:24px;align-items:start;border-radius:5px}.mode-icon{color:var(--gold);font-size:30px;border:1px solid #5c6044;width:58px;height:66px;display:grid;place-items:center;flex-shrink:0;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);background:#303726}.mode-card h3{margin:0 0 10px}.mode-card p{color:var(--muted);font-size:13px;margin:0 0 13px}.arrow-link{background:none;color:var(--gold);font-size:12px;letter-spacing:.5px;padding:0}.lore-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:40px;padding:26px 0;gap:30px}.lore-strip div{display:flex;gap:15px;align-items:start}.lore-strip b{color:var(--gold);font:24px var(--serif)}.lore-strip p{font-size:12px;color:var(--muted);margin:0}.lore-strip strong{display:block;color:var(--text);font-weight:500;margin-bottom:4px}.footer{display:flex;justify-content:space-between;gap:20px;margin-top:25px;color:#929987;font-size:11px}.page{padding:38px 5vw 60px;max-width:1500px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-title h1{font-size:38px;margin:5px 0 0}.empty{padding:60px 20px;text-align:center;border:1px dashed var(--line);border-radius:4px}.campaigns{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.campaign-card{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:4px}.campaign-card h3{margin:15px 0 10px}.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:4px 9px;border-radius:3px;font-size:10px;letter-spacing:.8px;color:var(--muted);text-transform:uppercase}.badge.live{color:var(--green)}.badge.live:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green)}.gamebar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:15px 5vw;border-bottom:1px solid var(--line);font-size:12px;background:#171c17}.gamebar .trail{color:var(--muted)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;max-width:1480px;margin:auto;min-height:calc(100vh - 140px)}.game-main{min-width:0;padding:28px 35px 45px}.side{border-left:1px solid var(--line);padding:25px 22px;background:#141914}.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow:auto;white-space:nowrap}.tabs button{background:none;color:var(--muted);font-size:12px;padding:0 0 13px;letter-spacing:.3px;border-bottom:2px solid transparent}.tabs button.active{color:var(--gold);border-color:var(--gold)}.scene-art{height:230px;position:relative;border:1px solid var(--line);border-radius:5px 5px 0 0;overflow:hidden;background:url('/assets/realm.webp') center 55%/cover}.scene-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#131913ee,transparent 80%)}.scene-art .art-label{position:absolute;bottom:20px;left:25px;z-index:1}.scene-art .art-label h3{font-size:29px;margin:6px 0 0}.scene-art .act-tag{position:absolute;right:20px;top:16px;background:#101311bc;z-index:1;padding:5px 10px;font-size:10px;letter-spacing:1px;color:var(--gold);border:1px solid #8a805344}.scene-content{padding:26px 28px 24px;border:1px solid var(--line);border-top:0;background:linear-gradient(120deg,#1c231b,#171c17);border-radius:0 0 5px 5px}.narrative{font:18px/1.85 var(--serif);color:#d7dbcd;white-space:pre-line;margin-bottom:22px}.objective{font-size:12px;color:var(--gold);border-left:2px solid var(--gold-dark);padding:3px 12px;margin-bottom:25px}.choice{width:100%;display:flex;text-align:left;align-items:center;gap:15px;margin-top:10px;padding:16px 17px;background:#232b21;border:1px solid #3a4433;color:var(--text);border-radius:4px;transition:border .2s,background .2s}.choice:hover:not(:disabled){border-color:var(--gold-dark);background:#2a3427}.choice .number{font:20px var(--serif);color:var(--gold);width:25px;flex-shrink:0}.choice .choice-body{flex:1;font-size:13px;line-height:1.5}.choice small{display:block;color:var(--muted);font-size:10px;margin-top:5px;letter-spacing:.3px}.choice .dc{font-size:11px;color:var(--gold);white-space:nowrap}.choice.voted{border-color:var(--gold);background:#33382a}.roll-settings{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:15px;font-size:12px;color:var(--muted)}.roll-settings select{width:auto;padding:7px 10px;max-width:200px}.checklabel{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}input[type=checkbox]{width:15px;height:15px;accent-color:var(--gold);margin:0}.subheading{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;align-items:center;margin:0 0 17px}.party-member{padding:14px 0;border-bottom:1px solid #343b3066;display:flex;gap:12px}.portrait{width:40px;height:46px;background:linear-gradient(135deg,#404a35,#21281e);border:1px solid #566044;color:var(--gold);display:grid;place-items:center;font:26px var(--serif);flex-shrink:0;border-radius:3px}.member-info{flex:1;min-width:0}.member-info strong{font-size:12px;font-weight:500;display:block}.member-info small{font-size:10px;color:var(--muted)}.health-track{height:3px;background:#343c2e;margin:9px 0 3px}.health-fill{height:100%;background:#8aab79}.member-details{font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.side-section{margin-top:28px}.vow{font:italic 15px/1.7 var(--serif);color:#c8cbb7;border-left:2px solid var(--gold-dark);padding-left:12px}.seal-list{display:grid;gap:10px;font-size:12px;color:#727c6b}.seal-list .found{color:var(--gold)}.seal-list span:before{content:'◇';margin-right:10px}.progress{height:3px;background:#30392c;margin:12px 0}.progress span{display:block;height:100%;background:var(--gold)}.result{padding:20px 23px;border:1px solid #617452;background:#252f21;border-radius:4px;margin-bottom:20px}.result.failure{border-color:#73513e;background:#2a241c}.result .result-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}.dice{width:50px;height:53px;display:grid;place-items:center;clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);background:var(--gold);color:#1d2418;font:25px var(--serif);flex-shrink:0}.result p{font-size:13px;margin:0 0 8px;color:#d0d5c5}.result .roll-math{font-size:11px;color:var(--muted)}.result .oath-line{color:var(--gold);font-size:11px}.note{border:1px solid var(--line);background:#1c231a;padding:14px 16px;font-size:12px;color:var(--muted);border-radius:4px;margin:15px 0}.chatbox{margin-top:27px}.chat-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.chat-header h3{font-size:22px;margin:0}.chat-feed{max-height:320px;overflow-y:auto}.message{padding:12px 15px;margin:8px 0;background:#1c231b;border-left:2px solid #4a5640;font-size:13px;white-space:pre-wrap}.message.narrator{border-color:var(--gold);background:#25271d;font-family:var(--serif);font-size:16px}.message strong{display:block;font:10px/1.8 system-ui;color:var(--gold);letter-spacing:1px;margin-bottom:4px}.chat-compose{display:flex;gap:8px;margin-top:12px}.chat-compose textarea{min-height:52px;max-height:120px;resize:vertical;flex:1}.chat-compose .btn{align-self:stretch;padding:10px 17px}.journal-item{border-left:1px solid var(--gold-dark);padding:0 0 24px 22px;position:relative}.journal-item:before{content:'◇';position:absolute;left:-7px;top:0;background:var(--bg);color:var(--gold);font-size:13px}.journal-item h3{font-size:22px;margin:5px 0 10px}.journal-item p{font-size:14px;color:var(--muted)}.map{border:1px solid var(--line);border-radius:5px;background:radial-gradient(ellipse,#2c3828,#111812);padding:25px}.map svg{width:100%;height:auto;display:block}.map text{font-family:Georgia,serif;fill:#ddceb1}.map path{stroke:#7e845a;stroke-width:1;fill:none;stroke-dasharray:4 7}.map circle{fill:#202b20;stroke:#b49260;stroke-width:2}.map .cleared{fill:#bc9d62}.map-title{text-align:center;margin-top:25px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.stat{padding:14px 8px;background:var(--raised);text-align:center;border:1px solid var(--line);border-radius:3px;font-size:11px;color:var(--muted)}.stat b{display:block;font:25px var(--serif);color:var(--gold)}.roomcode{font:28px/1.5 monospace;letter-spacing:5px;color:var(--gold);padding:15px;background:#0d120e;border:1px dashed #636b4f;text-align:center;margin:20px 0}.lobby{max-width:700px;margin:0 auto}.lobby h2{font-size:40px}.lobby-players{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.lobby-slot{padding:20px;border:1px solid var(--line);background:var(--panel);border-radius:4px;min-height:100px}.lobby-slot.empty-slot{border-style:dashed;color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:12px}.completion{text-align:center;padding:40px 20px;background:linear-gradient(#283020,#161c16);border:1px solid var(--gold-dark);border-radius:5px}.completion h2{font-size:43px;margin:20px 0}.completion p{font:19px/1.8 var(--serif);max-width:630px;margin:20px auto}.completion .actions{justify-content:center}.boot{min-height:80vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.sigil{font-size:60px;color:var(--gold)}dialog{width:min(740px,calc(100% - 24px));max-height:92dvh;overflow-y:auto;border:1px solid #5b624c;border-radius:7px;background:#181e18;color:var(--text);padding:30px;box-shadow:0 40px 100px #0008}dialog::backdrop{background:#050905c9;backdrop-filter:blur(5px)}.modal-head{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}.modal-head h2{margin:6px 0 0;font-size:32px}.close{font-size:24px;color:var(--muted);background:none;line-height:1;padding:6px}.field{margin:16px 0}.field>label{display:block;color:var(--muted);font-size:11px;margin-bottom:7px;letter-spacing:.4px}input,select,textarea{width:100%;padding:12px 14px;background:#10170f;color:var(--text);border:1px solid #3e4935;border-radius:3px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold)}.hero-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.hero-option{display:block;position:relative;cursor:pointer}.hero-option input,.oath-option input{position:absolute;opacity:0;pointer-events:none;width:1px}.hero-option>span{display:block;background:#222b1f;border:1px solid var(--line);border-radius:4px;padding:16px 8px;text-align:center;font-size:11px}.hero-option .hero-glyph{font:34px var(--serif);display:block;color:var(--gold);margin-bottom:8px}.hero-option input:checked+span,.oath-option input:checked+span{border-color:var(--gold);background:#343a28}.hero-option input:focus-visible+span,.oath-option input:focus-visible+span{outline:2px solid var(--gold)}.oath-options{display:grid;gap:8px}.oath-option{position:relative;cursor:pointer}.oath-option>span{display:block;padding:14px 16px;border:1px solid var(--line);background:#222b1f;border-radius:4px}.oath-option b{font-size:12px;font-weight:500}.oath-option small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.form-error{color:var(--red);font-size:13px;min-height:22px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);background:#ddd4bd;color:#20271c;padding:12px 20px;border-radius:5px;font-size:13px;z-index:50;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;box-shadow:0 5px 30px #0008}#toast.show{opacity:1;transform:translate(-50%,0)}.working{opacity:.7;pointer-events:none}.rules p{font-size:14px;color:var(--muted)}.rules strong{color:var(--text)}.mobile-party{display:none}.roll-overlay{position:fixed;inset:0;z-index:40;background:#0d130dd9;display:grid;place-content:center;justify-items:center;gap:25px;backdrop-filter:blur(4px)}.roll-overlay .dice{width:85px;height:94px;font-size:40px;animation:tumble .2s infinite alternate}.roll-overlay p{color:var(--gold);font-family:var(--serif);font-size:22px}@keyframes tumble{to{transform:rotate(16deg) scale(.94)}}@media(min-width:1500px){.home-hero{min-height:730px}.hero-copy h1{font-size:110px}}@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1fr) 240px}.game-main{padding:22px}.side{padding:22px 16px}.campaigns{grid-template-columns:repeat(2,1fr)}.home-hero{min-height:620px}.hero-copy{max-width:520px}.hero-copy h1{font-size:70px}.hero-subtitle{font-size:24px}.hero-caption{display:none}.hero-meta{gap:12px}.mode-card{padding:22px;gap:17px}}@media(max-width:720px){.topbar{height:72px;padding:0 20px}.brand{font-size:15px;letter-spacing:2px;gap:8px}.brand img{width:32px;height:32px}.brand small{font-size:7px;letter-spacing:1.9px}.nav{gap:13px}.nav .hide-mobile{display:none}.home-hero{margin-top:-72px;padding:300px 24px 44px;min-height:710px;align-items:end}.home-hero:before{background:linear-gradient(0deg,#101311 0%,#101311ed 28%,#10131105 80%),url('/assets/realm.webp') 62% 0/auto 530px no-repeat}.hero-copy h1{font-size:clamp(40px,11vw,65px);margin-top:16px}.hero-subtitle{font-size:18px;letter-spacing:3px;margin:10px 0 20px}.hero-copy .intro{font-size:14px;line-height:1.75;max-width:360px;margin-bottom:23px}.hero-meta{font-size:10px;gap:12px;margin-top:20px;flex-wrap:wrap}.home-body{padding:0 24px 35px}.mode-grid{grid-template-columns:1fr}.mode-card h3{font-size:24px}.lore-strip{grid-template-columns:1fr;gap:20px;margin-top:30px}.section-head h2{font-size:28px}.section-head>.eyebrow{display:none}.footer{flex-direction:column;gap:5px}.page{padding:28px 20px}.page-title{align-items:start}.page-title h1{font-size:29px}.page-title .actions{justify-content:end}.campaigns{grid-template-columns:1fr}.gamebar{padding:13px 18px;font-size:10px;align-items:start}.gamebar .trail{max-width:60%}.gamebar .actions{gap:7px}.game-layout{display:block}.side{display:none}.game-main{padding:18px 15px 30px}.tabs{gap:24px;margin-bottom:18px}.tabs button{font-size:11px}.mobile-party{display:block}.scene-art{height:180px}.scene-art .art-label{left:20px;bottom:17px}.scene-art .art-label h3{font-size:26px}.scene-content{padding:21px 18px}.narrative{font-size:17px;line-height:1.8}.choice{padding:14px 12px;gap:9px}.choice .number{width:19px}.choice .choice-body{font-size:12px}.choice .dc{font-size:10px}.result{padding:17px}.hero-picker{grid-template-columns:repeat(2,1fr)}.hero-option>span{padding:10px}.hero-option .hero-glyph{font-size:27px}.two-col{grid-template-columns:1fr;gap:0}dialog{padding:23px 19px}.modal-head h2{font-size:29px}.chat-header{align-items:start}.chat-header h3{font-size:20px}.chat-compose textarea{font-size:14px}.lobby h2{font-size:32px}.roomcode{font-size:23px;letter-spacing:3px}.completion h2{font-size:35px}.completion p{font-size:17px}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.account-icon{display:none}@media(max-width:720px){.account-name{display:none}.account-icon{display:inline;font-size:18px}.account-control{padding:5px 9px!important}}
