/* Approved direction: Tristram workshop shell, Horadric recipe manuscript. */
@font-face{font-family:Alegreya;src:url('assets/fonts/alegreya.ttf') format('truetype');font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:Cinzel;src:url('assets/fonts/cinzel.ttf') format('truetype');font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('assets/fonts/sourcesans3.ttf') format('truetype');font-style:normal;font-weight:200 900;font-display:swap}
:root{--soot:#15120f;--iron:#29231d;--copper:#a87743;--bone:#e9ddc4;--ember:#e9954c;--ink:#302315;--parchment:#d9c8a6;--bg:var(--soot);--panel:#201b16;--panel-alt:var(--iron);--text:var(--bone);--muted:#c1b29c;--gold:#d4b17e;--line:#534332;--green:#b9c49b;--orange:var(--ember);--header:96px;--rail:220px;--motion-fast:120ms;--motion-menu:200ms;--forge-ease:cubic-bezier(.23,1,.32,1);font-family:Alegreya,Georgia,serif;background:var(--soot);color:var(--bone);line-height:1.6}
html{scroll-padding-top:calc(var(--header) + 20px)}
body{background-color:var(--soot);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.035' filter='url(%23n)'/%3E%3C/svg%3E")}
h1,h2,h3{font-family:Alegreya,Georgia,serif;text-wrap:balance}p{text-wrap:pretty}
button,input,select{font-family:'Source Sans 3',sans-serif}
a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:#a8774340}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ember);outline-offset:4px}
.topbar{padding:0 28px 0 calc(var(--rail) + 24px);height:var(--header);gap:24px;background:#15120ff5;border-bottom:1px solid var(--copper);backdrop-filter:none;box-shadow:0 4px 18px #0005}
.brand{font-family:Cinzel,Georgia,serif;font-size:clamp(20px,2.2vw,30px);letter-spacing:0;font-weight:600;gap:16px;flex:1}
.brand-logo{width:76px;height:76px}
.brand .brand-text small{font-family:Alegreya,Georgia,serif;font-size:18px;line-height:1.3;color:var(--bone);margin-top:3px}
.version{font:16px/1.4 Alegreya,Georgia,serif;letter-spacing:0;white-space:nowrap;gap:8px}
.version b{border:0;padding:0;font:inherit;color:var(--bone)}
.version span{font:inherit}.version span::after{content:' ·';color:var(--copper)}
.mobile-nav{background:transparent;border:0;border-left:1px solid var(--line);color:var(--bone);font:18px Alegreya,serif;padding:10px 0 10px 18px;min-height:44px;cursor:pointer}
.mobile-nav::before{content:'☰';font-family:'Source Sans 3',sans-serif;font-size:22px;margin-right:10px}
.layout{max-width:none;grid-template-columns:var(--rail) minmax(0,1fr)}
.sidebar{top:var(--header);height:calc(100dvh - var(--header));padding:14px 0 24px;background-color:#1c1915;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.32' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.08' filter='url(%23n)'/%3E%3C/svg%3E");border:1px solid #695239;border-top:0;scrollbar-color:var(--copper) transparent}
.aside-head{display:none}.sidebar nav{gap:4px}.sidebar nav a{gap:14px;padding:12px 20px;min-height:48px;font:16px/1.2 Alegreya,Georgia,serif;color:var(--bone);border-left:3px solid transparent;position:relative}
.sidebar nav a .nav-label{font:inherit;color:inherit;margin:0;min-width:0}
.nav-icon{width:24px;height:24px;flex:0 0 24px;color:var(--gold)}
.sidebar nav a:hover{background:#a877431a;color:#fff2da;border-left-color:var(--copper)}
.sidebar nav a.active{background:linear-gradient(100deg,#603b23,#33251a);border-left-color:var(--ember);box-shadow:inset 0 1px #a8774380,inset 0 -1px #a8774380;color:#fff1da}
.sidebar nav a.active::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:2px;background:var(--ember);box-shadow:0 0 12px var(--ember)}
.horadric-mark{display:block;width:80px;height:112px;color:var(--copper);margin:24px auto 0;opacity:.6}
.aside-footer{margin:20px 20px 0;padding-top:14px;font:12px/1.4 'Source Sans 3',sans-serif;letter-spacing:.5px;text-align:center}.aside-footer strong{font-size:12px}.aside-footer a{display:flex;justify-content:center;align-items:center;gap:8px;min-height:44px}
main{max-width:1200px;padding:44px 48px 0;font-size:18px}.chapter p{font-size:18px;line-height:1.65}.chapter h2{font:600 34px/1.2 Alegreya,Georgia,serif}.chapter h3{font-family:Alegreya,serif;font-size:23px}.page-intro h1{font:600 clamp(38px,4vw,54px)/1.12 Alegreya,serif}.page-intro>p{font-size:20px}.lead{font-size:18px}.chapter{scroll-margin-top:calc(var(--header) + 20px)}
.breadcrumbs{font:16px/1.4 Alegreya,serif}.small,.eyebrow{font-family:'Source Sans 3',sans-serif;letter-spacing:.7px}.chapter-num{font-family:Cinzel,serif}.note,.definition-grid p,.steps p,.plain-list,.timeline p{font-size:16px}.citations a{font:13px 'Source Sans 3',sans-serif;color:#bfc8a3;padding:3px}.sources .source strong{font-size:16px}.source small{font-size:13px}
.home-page main{max-width:none;padding:0}.forge-hero{position:relative;min-height:548px;overflow:hidden;border-bottom:1px solid var(--copper);isolation:isolate;background:var(--soot)}
.forge-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-1}
.forge-copy{position:relative;z-index:2;width:65%;padding:76px 0 150px 48px}
.forge-copy h1{font:700 clamp(36px,4vw,57px)/1.08 Alegreya,Georgia,serif;letter-spacing:-.6px;color:#f1e4cc;margin:0 0 24px;text-shadow:0 2px 9px #0008}
.forge-copy p{max-width:510px;font:23px/1.4 Alegreya,serif;margin:0 0 28px;color:#eee1c7;text-shadow:0 2px 6px #000}
.forge-emblem{position:absolute;right:2%;bottom:14px;width:43%;height:auto;max-width:570px;pointer-events:none;z-index:1}
.forge-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.forge-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:12px 28px;font:600 24px Alegreya,serif;min-height:58px;text-decoration:none;color:#fff0d6;background:linear-gradient(125deg,#8f4c29,#64381f);border:1px solid #dc9a59;box-shadow:inset 0 0 0 3px #482514,0 4px 12px #0006;border-radius:2px;transition:transform var(--motion-fast) var(--forge-ease)}
.forge-button:hover{color:#fff7e7;background:#99592f}.forge-button:active{transform:translateY(2px)}.arrow-icon{width:20px;height:20px;flex-shrink:0}.recipe-link{display:inline-flex;gap:8px;align-items:center;min-height:44px;font-size:20px;color:var(--bone);text-decoration:none;border-bottom:1px solid var(--copper)}
.workshop-directory{padding:22px 44px 24px}.workshop-directory h2{font:600 40px/1.2 Alegreya,serif;margin:0 0 18px;display:flex;align-items:center;gap:24px}.workshop-directory h2::after{content:'';height:1px;background:var(--copper);flex:1;opacity:.65}
.workshop-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px}.workshop-link{display:flex;align-items:flex-start;gap:22px;padding:12px 0 14px;color:var(--bone);text-decoration:none;border-bottom:1px solid #a8774350;min-height:78px}.workshop-link:hover{color:#fff0d1}.topic-icon{width:30px;height:30px;flex-shrink:0;color:var(--gold);margin-top:4px}.workshop-link strong{font:600 22px/1.3 Alegreya,serif;display:block}.workshop-link small{display:block;font:16px/1.35 Alegreya,serif;color:var(--muted);margin-top:3px}.workshop-link:hover .topic-icon{color:var(--ember)}
.catalogue-note{margin:8px 44px 24px;padding:12px 20px;background:var(--parchment) url('assets/grimoire-paper-seamless.png') center/cover;color:var(--ink);font-size:16px;text-align:center;border:1px solid var(--copper)}.catalogue-note a{color:#643c1b;font-weight:600}
.site-footer{margin-top:24px;padding:24px 0 28px;border-top:1px solid var(--copper);font-family:Alegreya,serif}.home-page .site-footer{padding:20px 44px 28px;margin:0}.footer-identity .brand-word,.footer-identity>p:first-of-type{display:none}.site-footer .footer-links{margin:8px 0 10px;gap:8px 24px}.site-footer .footer-links a{font-size:15px;color:var(--bone)}.site-footer p{font-size:14px}.site-footer .footer-disclaimer{font-size:12px;max-width:none}.site-footer>.footer-top{font-size:14px}
.recipes-page main{padding:64px 20px 0;max-width:none;background-image:url('assets/forge-workshop.png');background-position:top center;background-size:100% auto;background-repeat:no-repeat}
.manuscript{position:relative;background:var(--parchment) url('assets/grimoire-paper-seamless.png') top center/100% auto;color:var(--ink);padding:30px 48px 12px;border:1px solid #8a6540;box-shadow:0 0 0 5px #31241b,0 0 0 7px #90683d,0 8px 28px #0008;border-radius:3px;overflow:hidden}
.manuscript>.horadric-mark{position:absolute;right:48px;top:20px;width:110px;height:140px;margin:0;opacity:.23;pointer-events:none;color:#6d4c26}
.manuscript .page-intro{position:relative;padding-right:140px;margin-bottom:28px}.manuscript .page-intro h1{font:700 clamp(44px,4.5vw,62px)/1.08 Alegreya,serif;margin:12px 0 8px}.manuscript .page-intro>p{font-size:22px;color:var(--ink);margin:12px 0}.manuscript .breadcrumbs,.manuscript .lead{color:#59432a}.manuscript a{color:#69411e}.manuscript a:hover{color:#301c0b}.manuscript :is(a,button,summary):focus-visible{outline-color:#7d3415}.manuscript .chapter{border-top:1px solid #82674490;padding:28px 0 32px}.manuscript .chapter-heading{margin-bottom:22px}.manuscript .chapter-num{display:none}.manuscript .chapter h2{font:700 38px/1.2 Alegreya,serif}.manuscript .lead{font-size:20px}.manuscript .chapter strong{color:var(--ink)}
.manuscript .recipe-grid{display:block}.manuscript .recipe{display:grid;grid-template-columns:76px minmax(0,1fr) minmax(220px,34%);gap:24px;padding:24px 0;background:none;border-top:1px solid #82674480;align-items:start}.recipe-symbol{width:72px;height:80px;padding:18px;border:2px solid #866234;box-shadow:inset 0 0 0 3px #d9c8a6,inset 0 0 0 4px #866234;color:#473017;background:#c6ac7e60;margin-top:4px}.recipe-copy{min-width:0}.manuscript .recipe h3{font:700 34px/1.15 Alegreya,serif;color:#25190d;margin:0 0 8px}.manuscript .recipe .small{font:600 19px Alegreya,serif;color:#7d4223;letter-spacing:.1px}.manuscript .recipe p{font:18px/1.5 Alegreya,serif;color:var(--ink);margin:8px 0}.recipe-ingredients{border-left:1px solid #86623470;padding-left:24px;align-self:center}.ingredient-heading{font:700 20px Alegreya,serif}.manuscript .recipe .cost{font:600 20px/1.5 Alegreya,serif;font-variant-numeric:tabular-nums;color:var(--ink);padding:0;border:0;margin-top:8px}.manuscript .recipe .citations{margin-left:0}.manuscript .citations a{color:#70441e;font-size:13px}.manuscript .note{color:var(--ink);background:#9b652418;border-left-color:#9b6524}.manuscript .table-wrap{border-color:#86623490}.manuscript :is(caption,th){background:#b5966350;color:var(--ink);border-color:#86623490}.manuscript td{border-color:#86623470}.manuscript td:first-child{color:#583818}.manuscript tbody tr:hover{background:#9b652412}.manuscript .table-wrap:after{color:var(--ink);background:#d9c8a6}.manuscript .page-navigation{border-color:#86623490}.manuscript .page-navigation small{color:#59432a}
.floating-menu{background-color:#1c1915}.site-menu-button{display:block}.planner .topbar{padding-left:28px}.planner .topbar .brand{font-size:26px}.planner .topbar nav{font-family:'Source Sans 3',sans-serif;font-size:14px}.planner main{font-family:'Source Sans 3',sans-serif}.planner .page-heading h1{font:600 44px Alegreya,serif}.planner .panel{background:var(--panel);border-color:#695239}.planner .panel h2,.planner .section-head h2{font-family:Alegreya,serif;font-size:28px}.planner input,.planner select{background:#15120f;color:var(--bone);border-color:#695239}.planner .primary,.planner #generate,.planner .next-step{background:#79502c;border-color:#bd8b51;color:#fff0d8}.planner button:hover{border-color:var(--ember)}.planner .theory-note{color:var(--bone);background:#29231d;border-color:var(--copper)}.legal-page .topbar{padding-left:28px}.legal-page main{font-size:18px}
@media(min-width:1600px){.forge-copy{padding-top:100px;padding-left:64px}.forge-hero{min-height:620px}.forge-copy h1{font-size:64px}.workshop-directory{padding-left:64px;padding-right:64px}}
@media(max-width:1200px){:root{--rail:200px}.brand{font-size:23px}.brand .brand-text small{font-size:16px}.topbar{gap:16px;padding-right:20px}.brand-logo{width:66px;height:66px}.sidebar nav a{font-size:15px;padding-left:14px;padding-right:12px;gap:10px}.forge-copy{width:65%;padding:70px 0 132px 32px}.forge-copy h1{font-size:44px}.forge-copy p{font-size:21px;max-width:420px}.forge-hero{min-height:510px}.forge-emblem{right:-2%;width:46%}.forge-button{font-size:22px;padding:12px 20px}.forge-actions{gap:20px}.workshop-directory{padding-left:32px;padding-right:32px}.workshop-links{gap:0 32px}.catalogue-note{margin-left:32px;margin-right:32px}.manuscript{padding-left:32px;padding-right:32px}.manuscript .recipe{grid-template-columns:60px minmax(0,1fr) minmax(160px,30%);gap:16px}.recipe-symbol{width:58px;height:66px;padding:13px}.manuscript .recipe h3{font-size:28px}.recipe-ingredients{padding-left:16px}.manuscript .recipe .cost{font-size:18px}.manuscript>.horadric-mark{right:28px}.planner .topbar .brand{font-size:22px}}
@media(max-width:900px){:root{--header:90px}.topbar,.planner .topbar,.legal-page .topbar{padding:0 20px}.brand{font-size:22px}.brand-logo{width:60px;height:60px}.brand .brand-text small{font-size:15px}.mobile-nav{display:block;font-size:16px}.version{display:none}.sidebar{width:min(350px,90vw);padding-top:16px;z-index:7}.sidebar nav a{font-size:18px;padding:12px 24px;gap:16px}.sidebar.open{animation:forge-menu-in var(--motion-menu) var(--forge-ease)}.layout{display:block}.forge-copy{width:67%;padding-left:28px;padding-top:65px}.forge-copy h1{font-size:44px}.forge-copy p{font-size:22px;max-width:390px}.forge-emblem{width:43%;right:-3%;bottom:20px}.forge-actions{gap:16px}.recipe-link{font-size:18px}.forge-button{font-size:21px}.forge-hero{min-height:480px}.recipes-page main{padding:40px 18px 0}.manuscript .recipe{grid-template-columns:64px minmax(0,1fr) minmax(190px,32%)}.recipe-symbol{width:60px;height:68px}.planner .topbar nav{display:none}.legal-page .topbar>a:last-of-type{display:none}.legal-page .topbar .brand{flex:1}.floating-menu{left:auto;right:0}.workshop-directory h2{font-size:34px}}
@media(max-width:650px){:root{--header:106px}.topbar,.planner .topbar,.legal-page .topbar{height:var(--header);padding:12px 16px;flex-wrap:nowrap;gap:10px}.topbar .brand,.planner .topbar .brand{flex:1;font-size:17px;gap:8px;letter-spacing:0}.brand-logo{width:48px;height:48px}.brand .brand-text small,.planner .topbar .brand small{font-size:13px;max-width:230px;line-height:1.25;margin-top:4px}.mobile-nav{margin:0;min-width:44px;padding:6px 0 6px 10px;font-size:0}.mobile-nav::before{margin:0;font-size:24px}.site-menu-button{margin:0!important;min-height:44px!important}.forge-hero{min-height:640px}.forge-copy{width:100%;padding:32px 24px 290px}.forge-copy h1{font-size:36px;line-height:1.1;margin-bottom:18px;max-width:450px}.forge-copy p{font-size:20px;max-width:420px;margin-bottom:24px}.forge-background{object-position:65% center}.forge-emblem{width:300px;max-width:80%;right:2%;bottom:6px}.forge-actions{gap:20px;align-items:flex-start}.forge-button{font-size:21px;min-height:52px;padding:10px 18px;gap:10px}.recipe-link{font-size:19px}.workshop-directory{padding:24px}.workshop-directory h2{font-size:32px;gap:16px}.workshop-links{grid-template-columns:1fr;gap:0}.workshop-link{gap:18px;padding:14px 0}.workshop-link strong{font-size:23px}.workshop-link small{font-size:17px}.catalogue-note{margin:0 24px 24px;font-size:16px;text-align:left;padding:14px}.home-page .site-footer{padding:20px 24px 28px}.site-footer .footer-links{gap:10px 20px}.site-footer .footer-links a{min-height:36px;display:flex;align-items:center}.site-footer p{font-size:13px}main{padding:28px 24px 0}.chapter h2{font-size:30px}.chapter p{font-size:18px}.page-intro h1{font-size:40px}.recipes-page main{padding:24px 12px 0}.manuscript{padding:24px 20px 12px;box-shadow:0 0 0 3px #31241b,0 0 0 4px #90683d}.manuscript>.horadric-mark{display:none}.manuscript .page-intro{padding-right:0}.manuscript .page-intro h1{font-size:42px}.manuscript .page-intro>p{font-size:20px}.manuscript .chapter h2{font-size:32px}.manuscript .lead{font-size:18px}.manuscript .recipe{grid-template-columns:44px minmax(0,1fr);gap:12px;padding:22px 0}.recipe-symbol{width:40px;height:48px;padding:8px;grid-column:1;grid-row:1}.recipe-copy{grid-column:2}.manuscript .recipe h3{font-size:30px}.manuscript .recipe .small{font-size:17px}.manuscript .recipe p{font-size:18px}.recipe-ingredients{grid-column:2;border-left:0;border-top:1px solid #86623460;padding:12px 0 0;margin-top:4px}.manuscript .recipe .cost{font-size:20px}.ingredient-heading{font-size:18px}.manuscript .page-navigation{gap:16px}.manuscript .page-navigation strong{font-size:16px}.planner .page-heading h1{font-size:36px}.planner .topbar .brand{font-size:17px}}
@keyframes forge-menu-in{from{transform:translateX(-16px);opacity:0}to{transform:translateX(0);opacity:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white}.forge-background,.forge-emblem,.horadric-mark,.recipe-symbol{display:none}.forge-hero{min-height:0}.forge-copy{width:100%;padding:0}.forge-copy h1,.forge-copy p{color:black;text-shadow:none}.manuscript{background:white;color:black;box-shadow:none;border:0;padding:0}.recipes-page main{background:none;padding:0}.manuscript .recipe{grid-template-columns:1fr 35%}.recipe-copy,.recipe-ingredients{grid-column:auto}.manuscript .recipe p,.manuscript .recipe .cost{color:black}.site-footer{color:black}}

/* Keep the manuscript border at the page edges rather than repeating beneath text. */
.manuscript{background-size:100% 100%;background-repeat:no-repeat}.manuscript .recipe .small{display:block;text-transform:lowercase}.manuscript .recipe .small::first-letter{text-transform:uppercase}.manuscript .recipe .cost b{font-weight:700;font-size:1.15em}.sidebar nav .nav-label{overflow-wrap:anywhere}

.manuscript{background-size:768px 512px;background-repeat:repeat;border:3px double #866234}.manuscript::after{content:"";position:absolute;inset:7px;pointer-events:none;border:1px solid #86623470;border-radius:2px}

.planner .topbar .site-menu-button{background:transparent;color:var(--bone);border:0;border-left:1px solid var(--line);border-radius:0;font:18px Alegreya,serif;padding:10px 0 10px 18px;min-height:44px}@media(max-width:650px){.planner .topbar .site-menu-button{font-size:0;padding:6px 0 6px 10px;min-width:44px}}

.mobile-nav::before{content:none}.menu-icon{display:inline-block;vertical-align:middle;margin-right:10px}.menu-label{vertical-align:middle}@media(max-width:650px){.menu-icon{margin-right:0}.menu-label{display:none}}
