/* A book of Vahl: game artwork, quiet stone, silver rules and crimson accents. */
:root{color-scheme:dark;--night:#100b18;--paper:#eee4eb;--muted:#c0adcb;--rose:#f4abc8;--line:#58455f;--serif:'Cinzel',Georgia,serif;--body:'Source Sans 3',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--paper);font:19px/1.65 var(--body)}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;display:block}.pixel{image-rendering:pixelated}p{margin:0 0 20px}button,a{touch-action:manipulation}:focus-visible{outline:2px solid var(--rose);outline-offset:5px}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.3}h2{font-size:clamp(28px,4vw,44px);margin:10px 0 24px}h3{font-size:24px;margin:0 0 15px}.wrap{max-width:1180px;margin:auto;padding:0 36px}.kicker{font:600 12px/1.5 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--rose);margin-bottom:16px}.muted{color:var(--muted)}.skip{position:absolute;top:-100px;left:12px;background:var(--night);padding:12px;z-index:20}.skip:focus{top:8px}
header{position:sticky;top:0;z-index:10;background:#100b18f5;border-bottom:1px solid var(--line)}.bar{min-height:78px;display:flex;align-items:center;gap:28px}.brand{margin-right:auto;text-decoration:none;display:flex;align-items:center;gap:12px;font:600 12px var(--serif);letter-spacing:.1em}.brand img{width:32px;height:32px}.nav{display:flex;gap:19px;align-items:center;font-size:15px}.nav a{text-decoration:none;color:var(--muted)}.nav a:hover{color:var(--rose)}.lang{text-decoration:none;font-size:13px;padding:8px 10px;border:1px solid var(--line)}.menu-button{display:none;background:none;border:1px solid var(--line);padding:8px 12px;font-size:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:13px 23px;border:1px solid var(--line);font-weight:600;text-decoration:none;background:#211728;min-height:50px}.button.main{background:var(--rose);color:#1e1024;border-color:var(--rose)}.button:hover{border-color:var(--rose);filter:brightness(1.07)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 12px}
.hero{position:relative;overflow:hidden;background:#120d1e url('img/night.png') center/cover no-repeat;padding:68px 0 0}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#100b18b8,transparent 85%);pointer-events:none}.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;padding-bottom:52px}.game-logo{width:475px;margin:20px 0 30px}.hero h1{font-size:clamp(26px,3vw,37px);margin:0 0 20px;white-space:pre-line}.hero p{max-width:48ch;color:var(--muted)}.hero .kicker{color:var(--rose)}.hero small{font-size:14px;color:var(--muted)}.scene{position:relative;margin:0;border:1px solid #715a7c;padding:8px;background:#100b18;box-shadow:12px 12px 0 #20152b}.scene img{aspect-ratio:16/9;object-fit:cover;width:100%}.scene figcaption{font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:12px 8px 5px;color:var(--muted)}.hunter-line{display:flex;justify-content:space-evenly;align-items:end;height:205px;border-bottom:1px solid var(--line);margin:0 12px 12px;background:radial-gradient(ellipse at bottom,#46314666,transparent 70%)}.hunter-line img{height:192px;width:auto;max-width:32%;object-fit:contain;object-position:bottom}.facts{position:relative;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:21px 0;font-size:14px;letter-spacing:.035em}.facts span::before{content:'◆';color:var(--rose);font-size:8px;margin-right:12px}
section{padding:94px 0;scroll-margin-top:96px;border-top:1px solid #392c41}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.story{background:#191220}.story blockquote{font:400 clamp(23px,3vw,34px)/1.7 var(--serif);padding:32px 0 32px 30px;margin:0;border-left:2px solid var(--rose);color:#e8cede}.story cite{font:16px var(--body);display:block;color:var(--muted);margin-top:24px;font-style:normal}.section-intro{max-width:62ch;color:var(--muted)}
.hunter-tabs{display:flex;border-bottom:1px solid var(--line);gap:30px;margin:34px 0 0}.hunter-tabs button{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:14px 4px;color:var(--muted);font-family:var(--serif)}.hunter-tabs button[aria-selected=true]{color:var(--rose);border-bottom-color:var(--rose)}.hunter-panel{display:grid;grid-template-columns:40% 1fr;gap:60px;align-items:center;padding-top:35px}.hunter-panel[hidden]{display:none}.portrait{display:flex;justify-content:center;align-items:end;min-height:340px;background:radial-gradient(ellipse at 50% 70%,#4b344b80,transparent 67%);border-bottom:1px solid var(--line);position:relative}.portrait::after{content:'◆';position:absolute;left:50%;bottom:-16px;color:var(--rose);background:var(--night);padding:0 12px;transform:translateX(-50%)}.portrait img{height:320px;width:auto}.hunter-panel h3{font-size:38px}.weapon{color:var(--rose);font-size:22px}.hunter-note{border-left:1px solid var(--line);padding-left:20px;color:var(--muted);font-size:17px}
.castle{background:#18121f}.castle .wide-scene{margin:30px 0 45px;border:1px solid var(--line);padding:9px}.wide-scene img{width:100%;aspect-ratio:16/9}.castle-details{display:grid;grid-template-columns:1fr 1fr;gap:55px}.castle-details p{color:var(--muted)}.castle-details figure{margin:16px 0 0}.castle-details img{border:1px solid var(--line);width:100%}
.enemy-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:40px}.enemy-buttons{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);height:max-content}.enemy-buttons button{border:0;text-align:left;background:var(--night);padding:15px 20px;display:flex;align-items:center;gap:20px}.enemy-buttons button[aria-pressed=true]{background:#352238;color:var(--rose);box-shadow:inset 3px 0 var(--rose)}.enemy-buttons .number{font:12px var(--serif);color:var(--muted)}.enemy-art{height:245px;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse,#4631466b,transparent 65%)}.enemy-art img{height:200px;max-width:85%;width:auto;object-fit:contain}.enemy-panel[hidden]{display:none}.enemy-panel p{color:var(--muted)}
.bosses{background:#19111e}.bosses details{border:1px solid var(--line);margin-top:28px}.bosses summary{padding:20px 24px;cursor:pointer;color:var(--rose);font-size:17px}.boss-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:20px 26px 28px}.boss-grid p{color:var(--muted);font-size:17px}.boss-art{height:255px;display:flex;align-items:end;justify-content:center;margin-bottom:25px;background:radial-gradient(ellipse at bottom,#49314d90,transparent 70%)}.boss-art img{height:230px;width:auto;max-width:100%;object-fit:contain}.boss-grid h3{font-size:21px}
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:35px}.person{padding-top:18px;border-top:1px solid var(--line)}.person-art{height:215px;display:flex;align-items:end;justify-content:center;margin-bottom:25px;background:radial-gradient(ellipse at bottom,#46314650,transparent 65%)}.person-art img{height:208px;width:auto}.person .role{color:var(--rose);font-size:16px;margin-bottom:12px}.person p{color:var(--muted);font-size:18px}
.journal{background:#19121f}.scope{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:38px}.scope article{border-top:1px solid var(--line);padding-top:25px}.scope h3{font-size:22px}.scope p{color:var(--muted)}.scope article:last-child h3{color:var(--rose)}.feedback{text-align:center;padding:85px 24px;background:#241726}.feedback p{max-width:59ch;margin:0 auto 28px;color:var(--muted)}footer{padding:38px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}footer .wrap{display:flex;gap:35px;justify-content:space-between}footer p{max-width:65ch}dialog{width:min(980px,94vw);padding:12px;border:1px solid var(--line);background:var(--night)}dialog::backdrop{background:#09050dec}dialog iframe{display:block;width:100%;aspect-ratio:16/9;border:0}dialog form{text-align:right;margin-bottom:12px}dialog button{background:none;border:1px solid var(--line);padding:7px 20px}
@media(max-width:1050px){.nav{gap:12px;font-size:13px}.bar{gap:16px}.brand span{display:none}.hero-grid{gap:30px}.split{gap:35px}}
@media(max-width:760px){.wrap{padding:0 22px}.bar{min-height:64px;flex-wrap:wrap;gap:12px}.menu-button{display:block}.nav{display:none;order:4;width:100%;flex-wrap:wrap;padding:12px 0 18px;gap:12px 24px;font-size:16px}.nav.open{display:flex}.hero{padding-top:35px}.hero-grid,.split,.hunter-panel,.enemy-layout,.castle-details,.scope{grid-template-columns:1fr;gap:28px}.hero-grid{padding-bottom:30px}.hero h1{font-size:28px}.game-logo{width:100%;max-width:460px;margin:14px 0 24px}.hunter-line{height:180px}.hunter-line img{height:165px}.facts{font-size:13px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.scene{box-shadow:7px 7px 0 #20152b}.story blockquote{font-size:24px}.hunter-tabs{gap:15px;justify-content:space-between}.hunter-tabs button{font-size:16px}.hunter-panel{padding-top:24px}.portrait{min-height:290px}.portrait img{height:275px}.hunter-panel h3{font-size:30px}.boss-grid,.people-grid{grid-template-columns:1fr;gap:30px}.boss-grid{padding:16px 20px}.boss-grid article{border-top:1px solid var(--line);padding-top:20px}.boss-art{height:240px}.people-grid{gap:40px}.person{display:grid;grid-template-columns:100px 1fr;gap:22px}.person-art{height:170px}.person-art img{height:165px;max-width:100%;object-fit:contain}.person h3{font-size:23px}section{padding:60px 0;scroll-margin-top:75px}.feedback{padding:60px 22px}footer .wrap{flex-direction:column;gap:10px}body{font-size:18px}.enemy-art{height:225px}.scope{gap:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

.enemy-art{background:none}.enemy-motion{display:block;width:100%;max-width:480px;height:auto;image-rendering:pixelated}.enemy-controls{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;margin:8px 0 12px;font-size:14px}.enemy-controls button{background:transparent;border:1px solid var(--line);padding:9px 14px;min-height:44px}.enemy-controls button:hover{border-color:var(--rose);color:var(--rose)}.enemy-controls [hidden]{display:none}.enemy-controls a{color:var(--muted)}.enemy-panel .motion-note{text-align:center;font-size:13px;margin-bottom:26px}.enemy-panel .enemy-art{height:auto;min-height:225px}.enemy-panel video:focus-visible{outline:2px solid var(--rose);outline-offset:4px}
