:root{color-scheme:dark;--bg:#080808;--panel:#141414;--line:#383632;--ivory:#eee9df;--muted:#b8b2a8;--quiet:#aaa59c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 55% 32%,#1b1b1b 0%,#0b0b0b 49%,#030303 100%);color:var(--ivory);font-family:Georgia,'Times New Roman',serif;line-height:1.55;min-height:100vh}button,select{font:inherit}a{color:inherit}
.site-header{min-height:84px;padding:10px max(24px,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #34312d;background:rgba(5,5,5,.88)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}.brand img{width:56px;height:56px;object-fit:cover;border-radius:50%}.brand-name{display:block;font-size:1.28rem;letter-spacing:.22em;line-height:1.1}.brand-by{display:block;color:var(--quiet);font:.72rem/1.5 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;margin-top:5px}.header-link{text-decoration:none;color:#c5c0b6;text-transform:uppercase;letter-spacing:.15em;font:.82rem Arial,sans-serif;border-bottom:1px solid #77736d;padding-bottom:5px;white-space:nowrap}.header-link:hover,.header-link:focus-visible{color:white}
main{max-width:1280px;margin:auto;padding:36px 24px 80px}.tool-tabs,.primary-tabs{display:flex;gap:0;border-bottom:1px solid #5b5750;margin:0 0 34px;font:.84rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em}.tool-tabs a,.primary-tabs a{display:inline-flex;align-items:center;min-height:50px;padding:12px 24px;color:#b8b2a8;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tool-tabs a:hover,.tool-tabs a:focus-visible,.primary-tabs a:hover,.primary-tabs a:focus-visible{color:#fff;background:#1a1918}.tool-tabs a[aria-current=page],.primary-tabs a[aria-current=page]{color:#f4eee3;border-color:#e8e3d9;background:#1c1b19}.intro{margin-bottom:32px}.eyebrow{font:.78rem Arial,sans-serif;color:var(--quiet);letter-spacing:.24em;text-transform:uppercase;margin:0 0 12px}.intro h1{font-size:clamp(2.5rem,5vw,4.8rem);font-weight:400;line-height:1.04;letter-spacing:.04em;margin:0}.intro p:last-child{font:1rem/1.65 Arial,sans-serif;color:var(--muted);margin:16px 0 0;max-width:65ch}
.workspace{display:grid;grid-template-columns:minmax(265px,330px) minmax(0,1fr);gap:24px;align-items:start}.controls,.sheet{border:1px solid var(--line);background:linear-gradient(145deg,rgba(28,28,28,.96),rgba(12,12,12,.96));box-shadow:0 24px 55px rgba(0,0,0,.24)}.controls{padding:29px}.controls h2{margin:0 0 22px;font-size:1.46rem;font-weight:400;letter-spacing:.03em}.field{margin:0 0 22px}.field label{display:block;color:var(--ivory);font:.88rem Arial,sans-serif;margin-bottom:9px}.field select{width:100%;height:48px;border-radius:0;border:1px solid #68645e;background:#101010;color:var(--ivory);font:1rem Arial,sans-serif;padding:0 13px;cursor:pointer}.field select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #faf4e8;outline-offset:3px}.generate{width:100%;min-height:49px;border:1px solid #e8e3d9;background:#e8e3d9;color:#090909;cursor:pointer;font:.82rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.14em;transition:background .18s ease}.generate:hover{background:#fff}.small-note{font:.83rem/1.55 Arial,sans-serif;color:var(--quiet);margin:17px 0 0}
.sheet{min-height:450px;padding:32px clamp(24px,4vw,56px) 38px;position:relative}.sheet:before{content:'';position:absolute;inset:10px;border:1px solid rgba(226,218,203,.13);pointer-events:none}.sheet-top{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:18px}.sheet-kicker{color:var(--quiet);font:.76rem Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase;margin:0}.copy{background:none;border:1px solid #78736a;color:var(--ivory);cursor:pointer;min-width:96px;padding:10px 12px;font:.8rem Arial,sans-serif;letter-spacing:.06em}.copy:hover{background:#302d29}.sheet h2{font-size:clamp(2.3rem,4vw,3.7rem);font-weight:400;line-height:1.1;margin:27px 0 9px;letter-spacing:.03em}.identity{color:#c3bdb3;font:.83rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.16em;margin:0 0 28px}.premise{font-size:1.2rem;line-height:1.65;color:var(--ivory);max-width:66ch;margin:0 0 27px}.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px 28px}.detail{padding-top:14px;border-top:1px solid #383632}.detail h3{font:.73rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.18em;color:var(--quiet);margin:0 0 8px}.detail p{font:.97rem/1.55 Arial,sans-serif;color:#dad5cb;margin:0}.footer{padding:26px max(24px,calc((100vw - 1280px)/2));border-top:1px solid #34312d;display:flex;justify-content:space-between;gap:16px;color:#aaa59c;font:.8rem Arial,sans-serif}.footer a{text-underline-offset:3px}
.home-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:50px;align-items:center;padding:clamp(36px,6vw,88px) 0 clamp(60px,9vw,116px);border-bottom:1px solid var(--line)}.home-hero h1{font-size:clamp(3.8rem,10vw,8rem);font-weight:400;line-height:.98;letter-spacing:.14em;margin:0 0 28px}.home-hero .lead{font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.38;max-width:22ch;margin:0 0 23px}.home-hero .support{font:1rem/1.75 Arial,sans-serif;color:var(--muted);max-width:56ch;margin:0 0 30px}.hero-emblem{width:min(100%,360px);aspect-ratio:1;display:grid;place-items:center;margin:auto;border:1px solid #5b5750;border-radius:50%;padding:18%;box-shadow:0 0 0 14px #0b0b0b,0 0 0 15px #34312d}.hero-emblem img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:grayscale(1)}.action-link{display:inline-flex;align-items:center;min-height:48px;padding:11px 21px;background:var(--ivory);color:#111;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font:.83rem Arial,sans-serif}.action-link:hover,.action-link:focus-visible{background:white}.home-section{padding:58px 0 18px}.section-heading{font-weight:400;font-size:clamp(2rem,4vw,3rem);margin:0 0 12px}.section-copy{font:1rem/1.7 Arial,sans-serif;color:var(--muted);max-width:63ch;margin:0 0 30px}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.feature{display:block;text-decoration:none;padding:27px;border:1px solid var(--line);background:linear-gradient(145deg,#1c1b1a,#0e0e0e);min-height:180px}.feature:hover,.feature:focus-visible{border-color:#a49d90;background:#24211e}.feature small{font:.75rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.18em;color:var(--quiet)}.feature h2{font-weight:400;font-size:1.65rem;margin:15px 0 8px}.feature p{font:1rem/1.6 Arial,sans-serif;color:var(--muted);margin:0}.page-tail{margin-top:60px;padding-top:26px;border-top:1px solid var(--line);font:1rem/1.6 Arial,sans-serif;color:var(--muted)}.page-tail a{text-underline-offset:4px}
.dice-layout{display:grid;grid-template-columns:minmax(265px,330px) minmax(0,1fr);gap:24px;align-items:start}.dice-controls,.dice-result{border:1px solid var(--line);background:linear-gradient(145deg,rgba(28,28,28,.96),rgba(12,12,12,.96));padding:29px}.dice-controls h2{margin:0 0 20px;font-size:1.45rem;font-weight:400}.dice-controls input{width:100%;height:48px;border:1px solid #68645e;border-radius:0;background:#101010;color:var(--ivory);font:1rem Arial,sans-serif;padding:0 13px}.dice-result{min-height:320px;position:relative}.dice-result:before{content:'';position:absolute;inset:10px;border:1px solid rgba(226,218,203,.13);pointer-events:none}.dice-result>*{position:relative}.dice-total-label{font:.78rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.2em;color:var(--quiet);margin:0}.dice-total{font-size:clamp(4rem,8vw,7rem);line-height:1.1;font-weight:400;margin:17px 0}.dice-notation{font:1rem Arial,sans-serif;color:var(--muted);margin:0 0 28px}.dice-rolls{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:12px 0 0;padding:0}.dice-rolls li{display:grid;place-items:center;min-width:48px;height:48px;padding:0 9px;border:1px solid #716b60;background:#24211e;font:1.1rem Arial,sans-serif}.dice-hint{font:1rem/1.6 Arial,sans-serif;color:var(--muted);margin:22px 0 0}
@media(max-width:780px){main{padding-top:24px}.workspace,.home-hero,.dice-layout{grid-template-columns:1fr}.controls{padding:24px}.sheet{min-height:0}.intro{margin-bottom:25px}.home-hero{gap:44px;padding-top:44px}.hero-emblem{width:220px}}
@media(max-width:520px){.site-header{padding:12px 20px}.brand img{width:45px;height:45px}.brand-name{font-size:.96rem;letter-spacing:.16em}.brand-by{font-size:.62rem}.header-link{font-size:.73rem}.tool-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;border-bottom:0}.tool-tabs a{justify-content:center;text-align:center;padding:10px 8px;font-size:.75rem;min-height:50px;white-space:normal;border:1px solid #5b5750;margin-bottom:0}.tool-tabs a[aria-current=page]{border-color:#e8e3d9}.details,.feature-grid{grid-template-columns:1fr}.sheet{padding:25px 23px 30px}.sheet-top{align-items:start}.footer{flex-direction:column}.home-hero h1{font-size:clamp(3rem,14vw,4.8rem);letter-spacing:.08em}.hero-emblem{width:180px}}
.calc-jump{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px}.calc-jump a{border:1px solid #706a60;padding:10px 15px;text-decoration:none;font:.87rem Arial,sans-serif;color:var(--ivory)}.calc-jump a:hover,.calc-jump a:focus-visible{background:#272522;border-color:var(--ivory)}
.calc-card{scroll-margin-top:22px;display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,1.3fr);gap:32px;padding:clamp(22px,4vw,38px);margin:0 0 20px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(28,28,28,.96),rgba(12,12,12,.96))}.calc-intro h2{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:400;line-height:1.15;margin:0 0 16px}.calc-intro>p:last-child{color:var(--muted);font:1rem/1.65 Arial,sans-serif;max-width:34ch;margin:0}.calc-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.calc-fields .field{margin-bottom:17px}.calc-fields .calc-wide{grid-column:1/-1}.calc-fields label{line-height:1.4}.calc-fields input,.calc-fields select{width:100%;height:48px;border-radius:0;border:1px solid #68645e;background:#101010;color:var(--ivory);font:1rem Arial,sans-serif;padding:0 13px}.calc-fields input:focus-visible,.calc-fields select:focus-visible{outline:2px solid #faf4e8;outline-offset:3px}.calc-form .generate{max-width:330px}.calc-output{display:block;min-height:99px;border-top:1px solid var(--line);margin-top:23px;padding-top:18px;font:1rem/1.55 Arial,sans-serif}.calc-output strong{display:block;font:400 clamp(1.55rem,3vw,2.1rem)/1.25 Georgia,serif;margin-bottom:8px}.calc-output span{display:block;color:var(--muted);margin:3px 0}.calc-output.calc-error strong{color:#f1c9b2}
@media(max-width:780px){.calc-card{grid-template-columns:1fr;gap:22px}.calc-intro>p:last-child{max-width:65ch}}
@media(max-width:520px){.primary-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;border:0}.primary-tabs a{justify-content:center;text-align:center;border:1px solid #5b5750;margin:0;padding:10px 7px;font-size:.75rem;min-height:49px}.primary-tabs a[aria-current=page]{border-color:#e8e3d9}.calc-fields{grid-template-columns:1fr}.calc-form .generate{max-width:none}.calc-jump a{font-size:.82rem}}
.calculator-tabs{flex-wrap:wrap}.calculator-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.calc-single{display:block;max-width:950px}.calc-single .calc-form{max-width:750px}
@media(max-width:900px){.calculator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.calculator-grid{grid-template-columns:1fr}.calculator-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.calculator-tabs a:last-child{grid-column:1/-1}}
.generator-tabs{flex-wrap:wrap}.generator-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.encounter-details{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.generator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.encounter-details{grid-template-columns:1fr}}
@media(max-width:520px){.generator-grid{grid-template-columns:1fr}.generator-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.generator-tabs a:last-child{grid-column:1/-1}}
.coming-soon{min-height:55vh;display:grid;place-items:center;text-align:center;border:1px solid var(--line);background:linear-gradient(145deg,rgba(28,28,28,.96),rgba(12,12,12,.96));box-shadow:0 24px 55px rgba(0,0,0,.24)}.coming-soon h1{margin:0;padding:40px;font-size:clamp(2.8rem,7vw,6rem);font-weight:400;letter-spacing:.12em}
.about-story{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,7vw,90px);padding:clamp(30px,5vw,62px);border:1px solid var(--line);background:linear-gradient(145deg,rgba(28,28,28,.96),rgba(12,12,12,.96));box-shadow:0 24px 55px rgba(0,0,0,.24)}.about-lead{font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.55;margin:0}.about-copy{border-left:1px solid var(--line);padding-left:clamp(28px,5vw,64px)}.about-copy p{font:1rem/1.8 Arial,sans-serif;color:#d2ccc2;margin:0 0 24px}.about-copy p:last-of-type{margin-bottom:0}.about-motto{margin:38px 0 0;padding:26px 0 0;border-top:1px solid var(--line);font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.5;color:var(--ivory)}.about-motto strong{display:block;margin-top:6px;font-weight:400;letter-spacing:.06em}
@media(max-width:780px){.about-story{grid-template-columns:1fr}.about-copy{border-left:0;border-top:1px solid var(--line);padding:30px 0 0}}
.legal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.legal-grid .feature{min-height:215px}.policy-shell{max-width:920px;margin:0 auto}.policy-nav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px}.policy-nav a{border:1px solid #706a60;padding:10px 15px;text-decoration:none;font:.87rem Arial,sans-serif;color:var(--ivory)}.policy-nav a:hover,.policy-nav a:focus-visible,.policy-nav a[aria-current=page]{background:#272522;border-color:var(--ivory)}.policy{border:1px solid var(--line);background:linear-gradient(145deg,rgba(28,28,28,.96),rgba(12,12,12,.96));padding:clamp(26px,5vw,58px);box-shadow:0 24px 55px rgba(0,0,0,.24)}.policy h1{font-size:clamp(2.5rem,5vw,4.4rem);font-weight:400;line-height:1.06;margin:0 0 14px}.policy .policy-date{font:.82rem/1.6 Arial,sans-serif;color:var(--quiet);margin:0 0 34px}.policy h2{font-size:1.55rem;font-weight:400;margin:38px 0 12px;padding-top:22px;border-top:1px solid var(--line)}.policy p,.policy li{font:1rem/1.75 Arial,sans-serif;color:#d2ccc2}.policy ul{padding-left:23px}.policy a{text-underline-offset:3px}.policy-contact{margin-top:40px;padding:22px;border:1px solid var(--line);background:#101010}.policy-contact p{margin:4px 0}.legal-note{font:1rem/1.7 Arial,sans-serif;color:var(--muted);max-width:68ch;margin:0 0 30px}
@media(max-width:900px){.legal-grid{grid-template-columns:1fr}}
