:root{--ink:#162439;--navy:#25364f;--paper:#f3efe7;--cream:#fffdf8;--gold:#e8c56d;--red:#b8574b;--line:#d8d0c3;--muted:#647080}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:radial-gradient(circle at 86% -5%,#fff 0,transparent 31%),var(--paper);margin:0;font:16px/1.55 Arial,Helvetica,sans-serif}a{color:var(--navy);font-weight:700}button,input,textarea,select{font:inherit}button{cursor:pointer}.site-header{background:var(--navy);border-bottom:5px solid var(--gold);color:#fff;align-items:center;gap:25px;min-height:74px;padding:14px clamp(18px,5vw,68px);display:flex}.brand{color:#fff;letter-spacing:.1em;white-space:nowrap;align-items:center;gap:9px;font-family:Georgia,serif;text-decoration:none;display:flex}.brand span{border:1px solid var(--gold);width:30px;height:30px;color:var(--gold);border-radius:50%;place-items:center;font-size:20px;display:grid}.site-header nav{flex:1;gap:16px;display:flex}.site-header a{color:#fff;font-size:13px;text-decoration:none}.account{align-items:center;gap:12px;font-size:12px;display:flex}.account form{margin:0}.account button{color:#fff;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.hero,.dashboard,.character,.calendar,.table-page,.mj,.auth{max-width:1160px;margin:0 auto;padding:clamp(48px,8vw,96px) clamp(18px,5vw,56px)}.hero{min-height:590px;padding-top:118px}.eyebrow{color:var(--red);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:800}.hero h1,h1{letter-spacing:-.045em;margin:12px 0 20px;font:clamp(44px,7vw,82px)/.95 Georgia,serif}.lead{max-width:650px;color:var(--muted);font-size:19px}.row{flex-wrap:wrap;gap:12px;margin-top:29px;display:flex}.button{background:var(--red);border:0;border-radius:8px;padding:12px 16px;font-size:13px;font-weight:800;text-decoration:none;display:inline-block;box-shadow:0 3px #7c3833;color:#fff!important}.button:hover{background:#a1473d}.button.ghost,.ghost{border:1px solid var(--navy);box-shadow:none;color:var(--navy)!important;background:0 0!important}.small{box-shadow:none;padding:8px 11px}.cards{grid-template-columns:repeat(3,1fr);gap:18px;max-width:1160px;margin:0 auto;padding:0 clamp(18px,5vw,56px) 80px;display:grid}.cards article,.panel{background:var(--cream);border:1px solid var(--line);border-radius:15px;padding:25px;box-shadow:0 10px 25px #2e24160a}.cards b{color:var(--red);font:20px Georgia,serif}.cards h2,.panel h2{margin:8px 0;font:28px Georgia,serif}.cards p,.muted{color:var(--muted);font-size:14px}.callout{background:var(--navy);color:#fff;padding:67px max(18px,50vw - 524px)}.callout h2{margin:8px 0;font:42px Georgia,serif}.callout p:last-child{color:#dbe2ed;max-width:600px}.auth{max-width:560px;min-height:calc(100vh - 140px)}.auth h1{font-size:58px}.auth form,.panel form{gap:14px;display:grid}.auth label,.panel label{color:var(--navy);gap:5px;font-size:13px;font-weight:700;display:grid}small{color:var(--muted);font-weight:400}input,textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:10px}textarea{resize:vertical}.notice{border-left:4px solid var(--gold);background:#fff7d9;padding:12px 14px}.notice.error{border-color:var(--red);background:#fff0ed}.dashboard h1,.character h1,.calendar h1,.table-page h1,.mj h1{font-size:clamp(40px,5vw,64px)}.dashboard-grid{grid-template-columns:1fr 1fr;gap:18px;margin:22px 0;display:grid}.dashboard-grid .panel{min-height:220px}.entry{border-top:1px solid var(--line);padding:12px 0}.entry span{float:right;color:var(--muted);font-size:11px}.entry p{white-space:pre-wrap;font-size:13px}.character-grid{grid-template-columns:minmax(0,1fr) 310px;gap:20px;display:grid}.stack{gap:18px;display:grid}.two,.three{gap:12px;display:grid}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}.token{align-self:start;position:sticky;top:18px}.token h2{margin-top:0}.upload{text-align:center;cursor:pointer;border-radius:8px;padding:12px;border:1px dashed var(--gold)!important;display:block!important}.upload input{display:none}.token-preview{aspect-ratio:1;border:8px solid var(--gold);outline:2px solid var(--navy);width:230px;color:var(--navy);text-align:center;background:#dde2e5;border-radius:50%;place-items:center;margin:18px auto;font:25px/1 Georgia,serif;display:grid;overflow:hidden}.token-preview canvas{width:100%;height:100%}.event{justify-content:space-between;gap:25px;margin-top:18px;display:flex}.event h2{margin-top:0}.rsvp{flex-direction:column;align-self:center;gap:7px;min-width:120px;display:flex}.rsvp button{border:1px solid var(--line);color:var(--navy);background:#fff;border-radius:7px;padding:8px;font-size:12px;font-weight:700}.rsvp button.selected,.rsvp button:hover{background:var(--navy);border-color:var(--navy);color:#fff}.roster p{border-bottom:1px solid var(--line);padding-bottom:9px}.roster span{color:var(--muted);font-size:13px}code{color:var(--ink);word-break:break-all;background:#ece7dc;border-radius:4px;padding:2px 5px}footer{text-align:center;background:var(--navy);color:#d7dfeb;letter-spacing:.08em;padding:26px;font-size:11px}@media (max-width:800px){.site-header{flex-wrap:wrap;gap:10px}.site-header nav{flex-basis:100%;order:3;overflow:auto}.account{margin-left:auto}.cards,.dashboard-grid,.character-grid{grid-template-columns:1fr}.token{position:static}.event{display:block}.rsvp{flex-flow:wrap;margin-top:15px}.hero{min-height:500px}.three,.two{grid-template-columns:1fr}}
