@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;800&family=Noto+Sans+Thai:wght@400;500;600&family=Noto+Sans:wght@400;500;600&display=swap";:root{--bg:#0b0b0e;--surface:#141419;--surface-raised:#1b1a20;--border:#38343c;--border-soft:#27242b;--crimson:#db4f45;--amber:#f0b44b;--parchment:#f4ead9;--ink-muted:#bbb0a5;--font-display:"Cinzel",serif;--font-body:"Noto Sans Thai","Noto Sans",sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--parchment);font-family:var(--font-body);margin:0;font-size:1rem;line-height:1.8}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--parchment);border-radius:.25rem;min-height:44px;padding:.55rem .9rem}button:hover{border-color:var(--amber)}a{color:var(--amber);text-underline-offset:.2em}:focus-visible{outline:3px solid var(--amber);outline-offset:4px}::selection{background:var(--crimson);color:#fff}.lang-th{word-break:keep-all;overflow-wrap:normal}.skip-link{z-index:1000;background:var(--amber);color:var(--bg);padding:.5rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:none}.mobile-header{z-index:110;border-bottom:1px solid var(--border);background:#0b0b0ef5;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex;position:fixed;inset:0 0 auto}.mobile-header span{font-family:var(--font-display);font-size:.9rem;font-weight:700}.mobile-header em{color:var(--crimson);font-style:normal}.mobile-header button{padding:.35rem .55rem}.sidebar{z-index:105;background:var(--surface);border-right:1px solid var(--border);width:min(21rem,90vw);padding:1.3rem;display:none;position:fixed;inset:4.3rem auto 0 0;overflow-y:auto}.sidebar.open{display:block}.sidebar-brand{border-bottom:1px solid var(--border);padding:.5rem 0 1rem}.brand-name{font-family:var(--font-display);letter-spacing:.17em;font-weight:800}.brand-year{color:var(--crimson);font-family:var(--font-display);margin-left:.5rem}.brand-edition{color:var(--ink-muted);font-size:.8rem;display:block}.close-nav{margin-top:.8rem}.nav-group>p{color:var(--amber);letter-spacing:.03em;margin:1.4rem 0 .35rem;font-size:.75rem;font-weight:600}.nav-list{margin:0;padding:0;list-style:none}.nav-item{color:var(--ink-muted);border-left:2px solid #0000;min-height:44px;padding:.45rem .6rem;font-size:.85rem;text-decoration:none;display:block}.nav-item:hover,.nav-item.active{color:var(--parchment);border-color:var(--crimson);background:#db4f4512}.dm-nav{font-size:.85rem}.lang-toggle{width:100%;margin:1.5rem 0 .5rem}.nav-overlay{z-index:100;background:#0009;border:0;border-radius:0;position:fixed;inset:4rem 0 0}.content{width:100%;min-width:0;padding:5.5rem 1.25rem 3rem}.hero{isolation:isolate;border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding:2rem 0 2.5rem;position:relative;overflow:hidden}.hero-era,.eyebrow{color:var(--amber);letter-spacing:.08em;font-size:.72rem}.hero h1{font-family:var(--font-display);max-width:16ch;margin:.8rem 0 1.4rem;font-size:clamp(2.1rem,8vw,4.3rem);line-height:1.2}.lang-th .hero h1{max-width:22ch;font-family:var(--font-body)}.hero-intro{color:var(--ink-muted);max-width:47ch;font-size:1.07rem}.campaign-meta{color:var(--amber);font-size:.82rem}.hero-art{z-index:-1;object-fit:cover;opacity:.28;width:100%;height:100%;position:absolute;inset:0 0 0 auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000);mask-image:linear-gradient(90deg,#0000,#000)}.reading-tools{flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:3rem;display:flex}.reading-tools p{color:var(--ink-muted);flex-basis:100%;margin:0;font-size:.85rem}.spoiler-notice{border-left:3px solid var(--amber);background:var(--surface);padding:1rem}.playbook-section,.map-key li,.character-sheet{scroll-margin-top:5.5rem}.playbook-section{margin-bottom:4rem}.section-header{border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1rem}.section-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.section-actions h2,.section-actions h3{flex:1;min-width:0;margin:0}h2{font-family:var(--font-display);font-size:clamp(1.45rem,4vw,2rem);line-height:1.4}.lang-th h2{font-family:var(--font-body)}h3{color:var(--amber);margin:2rem 0 .75rem;font-size:1.15rem;line-height:1.5}h4{color:var(--amber);margin:1.4rem 0 .4rem;font-size:.95rem}.permalink{padding:.5rem;text-decoration:none}.print-button{color:var(--ink-muted);background:0 0;margin-top:.6rem;font-size:.78rem}.prose{max-width:68ch}.lang-th .prose{max-width:54ch}.prose p{margin:.85rem 0 1.2rem}.prose li{margin-bottom:.9rem}.prose ul,.prose ol{padding-left:1.5rem}.prose blockquote{border-left:3px solid var(--crimson);background:var(--surface);margin:1.5rem 0;padding:.6rem 1.25rem;font-style:italic}.prose blockquote p{margin:.4rem 0}.wide-art{object-fit:cover;border:1px solid var(--border);width:100%;max-height:22rem;margin:1.5rem 0;display:block}.portrait-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.portrait-strip figure{color:var(--ink-muted);margin:0;font-size:.8rem}.portrait-strip img{aspect-ratio:1;object-fit:cover;border:1px solid var(--border);width:100%;height:auto}.field-map{background:var(--surface);border:1px solid var(--border);margin:1.5rem 0;padding:1rem}.field-map figcaption{gap:.5rem;display:grid}.field-map figcaption span{color:var(--ink-muted);font-size:.8rem}.field-map label{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.field-map input{width:20px;height:20px;accent-color:var(--amber)}.field-map svg{width:100%;height:auto;display:block}.field-map line{stroke:var(--ink-muted);stroke-width:2px}.field-map text{fill:var(--amber);font-size:17px;font-family:var(--font-body)}.field-map .secret-route line{stroke:var(--crimson);stroke-dasharray:7 5}.field-map circle{fill:var(--surface-raised);stroke:var(--amber);stroke-width:2px}.field-map a:hover circle,.field-map a:focus circle{fill:var(--crimson)}.field-map .node-label{fill:var(--parchment);font-weight:600}.map-key{grid-template-columns:1fr;gap:.4rem;padding:0;font-size:.85rem;list-style:none;display:grid}.map-key strong{color:var(--amber);min-width:2rem;display:inline-block}.map-routes{color:var(--ink-muted);font-size:.8rem}.contract-list,.sheet-list{gap:1.5rem;display:grid}.contract{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--amber);padding:1.25rem}.contract h3{margin-top:0}.character-sheet{border:1px solid var(--border);background:var(--surface);min-width:0;padding:1.1rem}.character-sheet>img{object-fit:cover;float:right;width:7rem;height:7rem;margin:0 0 1rem 1rem}.character-body{min-width:0}.character-body p,.character-body li{font-size:.9rem}.character-body .section-actions{display:block}.character-body .combat-grid{clear:both}.combat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:1rem 0;display:grid}.combat-grid>div{border:1px solid var(--border);padding:.6rem}.combat-grid dt{color:var(--ink-muted);font-size:.7rem}.combat-grid dd{color:var(--amber);margin:0;font-size:1.1rem;font-weight:600}.ability-line{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.ability-line span{white-space:nowrap}.spell-list{border-left:2px solid var(--crimson);padding:.4rem 1rem}.write-in{border-top:1px dashed var(--border);padding-top:1rem}.muted{color:var(--ink-muted)}.handout-print{display:none}footer{border-top:1px solid var(--border);color:var(--ink-muted);margin-top:4rem;padding-top:1.5rem;font-size:.8rem}@media (width>=49rem){.layout{grid-template-columns:16rem minmax(0,1fr);display:grid}.mobile-header,.close-nav,.nav-overlay{display:none}.sidebar,.sidebar.open{width:auto;height:100dvh;padding:1.4rem 1rem;display:block;position:sticky;top:0}.content{width:min(100%,68rem);padding:2rem clamp(2rem,4vw,4rem) 5rem}.hero{padding:2.5rem 0 3rem}.hero-art{opacity:.4;width:80%}.playbook-section,.map-key li,.character-sheet{scroll-margin-top:1.5rem}.portrait-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.map-key{grid-template-columns:repeat(2,minmax(0,1fr))}.combat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.character-sheet{padding:1.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{@page{margin:15mm}html,body{color:#111;background:#fff;min-width:0;font-size:10pt}.layout{--parchment:#111;--ink-muted:#333;--amber:#333;--crimson:#444;--surface:#fff;--surface-raised:#fff;--border:#999;display:block}.sidebar,.mobile-header,.nav-overlay,.skip-link,.screen-only,.spoiler-notice{display:none!important}.content{width:100%;margin:0;padding:0}.hero{margin-bottom:1rem;padding:0 0 1rem}.hero h1{font-size:24pt}.hero-art,.wide-art,.portrait-strip{display:none}.prose,.lang-th .prose{max-width:none}.playbook-section{break-inside:auto;margin-bottom:2rem}h2,h3,h4,.section-header{break-after:avoid}p,li{orphans:3;widows:3}.character-sheet{break-before:page;break-inside:auto;background:#fff;border:0;padding:0}.character-sheet>img{width:22mm;height:22mm}.combat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.field-map,.contract{break-inside:avoid;background:#fff}.field-map{max-width:150mm}.map-key{grid-template-columns:repeat(2,minmax(0,1fr))}.field-map text,.field-map .node-label{fill:#111}.field-map circle{fill:#fff;stroke:#333}a{color:#111}.layout[data-print-target]:not([data-print-target=all]) .hero,.layout[data-print-target]:not([data-print-target=all]) footer,.layout[data-print-target]:not([data-print-target=all]) .playbook-section:not(.print-selected),.layout[data-print-target^=char-] .characters-container>.section-header,.layout[data-print-target^=char-] .characters-container>.prose,.layout[data-print-target^=char-] .character-sheet:not(.print-selected){display:none}.layout[data-print-target^=char-] .character-sheet{break-before:auto}.handout-print.print-selected{display:block}}
