@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Serif+KR:wght@400;500;600;700&display=swap');
:root{--paper:#e8ddc3;--ink:#342c21;--muted:#776851;--line:#89764e55;--gold:#9b7739;--dark:#27281f}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Noto Serif KR',Georgia,serif;font-size:16px;line-height:1.9;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%236e5121' opacity='.08' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid #8b542b;outline-offset:5px}header{height:106px;max-width:1400px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:25px}.brand{display:flex;align-items:center;gap:14px}.seal{font-family:Georgia,serif;border:1px solid var(--gold);outline:1px solid var(--gold);outline-offset:4px;width:37px;height:43px;display:grid;place-items:center;font-size:27px;color:#846027}.brand strong{display:block;font-family:'Cormorant Garamond',serif;font-size:24px;letter-spacing:.13em;font-weight:600;line-height:1.1}.brand small{font-size:11px;letter-spacing:.22em}nav{display:flex;gap:32px;align-items:center}nav a{font-size:14px;position:relative;padding:15px 0}nav a.active:after{content:'◆';position:absolute;bottom:-13px;left:50%;font-size:9px;color:var(--gold)}nav a:hover{color:var(--gold)}.edition{font-size:12px;letter-spacing:.13em;color:var(--muted)}.menu{display:none}.eyebrow{font-family:'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.24em;font-size:14px;color:var(--muted);font-weight:600}.home-hero{max-width:1400px;min-height:620px;margin:auto;position:relative;display:grid;grid-template-columns:44% 56%;align-items:center;padding:56px 5% 64px;overflow:hidden}.hero-copy{z-index:1}.hero-copy .eyebrow{margin-bottom:24px}.hero-copy h1{font-weight:500;font-size:clamp(36px,4vw,61px);line-height:1.6;letter-spacing:-.07em;margin:0 0 26px;word-break:keep-all}.hero-copy p{font-size:16px;color:#6a5b46;line-height:2.1;margin-bottom:31px}.hero-art{position:absolute;right:-3%;top:0;width:70%;height:100%;background:url('/palace.png') center/cover;mix-blend-mode:multiply;opacity:.92;mask-image:linear-gradient(to right,transparent,black 24%),linear-gradient(to bottom,transparent,black 12%,black 85%,transparent);mask-composite:intersect}.hero-copy:before{content:'';position:absolute;z-index:-1;inset:0 46% 0 0;background:linear-gradient(90deg,#e8ddc3dd,#e8ddc3aa,transparent)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:12px 23px;border:1px solid #736240;font-size:14px;background:transparent}.button.solid{background:var(--dark);color:#eee1bf;border-color:var(--dark)}.button:hover{background:#a88a4830}.button.solid:hover{background:#424332}.hero-index{position:absolute;bottom:20px;right:5%;font-size:12px;letter-spacing:.2em}.quote{max-width:1240px;margin:0 auto;text-align:center;padding:27px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#6b583c;letter-spacing:.04em}.quote span{margin:0 18px;color:#aa8650}.contents{max-width:1240px;margin:62px auto 80px;padding:0 20px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px}.section-heading h2{font-size:24px;font-weight:500;margin:0}.section-heading small{font-size:12px;letter-spacing:.18em;color:var(--muted)}.chapters{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.chapter{padding:25px 25px 28px;border-right:1px solid var(--line);position:relative}.chapter:first-child{padding-left:0}.chapter:last-child{border:0}.chapter:hover{background:#9a77320c}.chapter .num{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:22px}.chapter h3{font-size:20px;font-weight:500;margin:15px 0 9px}.chapter p{font-size:14px;color:var(--muted);margin:0;line-height:1.8}.chapter .arrow{position:absolute;right:20px;top:30px}footer{border-top:1px solid var(--line);max-width:1300px;margin:0 auto;padding:26px 30px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px;letter-spacing:.08em}.page{max-width:1180px;margin:auto;padding:56px 35px 90px}.page-title{margin-bottom:42px}.page-title h1{font-weight:500;font-size:42px;letter-spacing:-.04em;margin:6px 0 12px}.page-title p{color:var(--muted);margin:0;word-break:keep-all}.page-title .folio{float:right;font-family:'Cormorant Garamond';font-size:54px;color:#9d83535c}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.story-art{background:url('/palace.png') center/cover;mix-blend-mode:multiply;min-height:380px;border:1px solid var(--line)}.story-intro{font-size:26px;line-height:1.9;word-break:keep-all;font-weight:400}.timeline{margin-top:50px;border-top:1px solid var(--line)}.event{display:grid;grid-template-columns:130px 1fr;gap:25px;padding:30px 0;border-bottom:1px solid var(--line)}.event>span{font-family:'Cormorant Garamond';color:var(--gold);font-size:24px}.event h2{font-size:21px;font-weight:500;margin:0 0 10px}.event p{margin:0;color:#6b5c47;max-width:740px}.trailer{margin-top:50px;border:1px solid var(--line);padding:40px;background:#4d412b0a;text-align:center}.trailer h2{font-size:23px;font-weight:500}.trailer p{font-size:14px;color:var(--muted)}.trailer iframe{width:100%;aspect-ratio:16/9;border:0}.character{display:grid;grid-template-columns:40% 1fr;gap:70px;align-items:center}.portrait{min-height:470px;border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-13px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#c3b38b40,#82673012);color:var(--muted)}.portrait .monogram{font-size:96px;font-family:'Cormorant Garamond';color:#88703f80;line-height:1.5}.portrait small{letter-spacing:.25em;font-size:12px}.portrait img{width:100%;height:470px;object-fit:cover}.character h2{font-size:34px;font-weight:500;margin:15px 0 0}.character .en{font-family:'Cormorant Garamond';font-size:23px;color:var(--muted);letter-spacing:.06em;margin:0 0 25px}.character .blank{border-top:1px solid var(--line);margin-top:30px;padding-top:25px;color:var(--muted);font-size:15px}.lore-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.lore-block{border-top:1px solid var(--line);padding-top:25px}.lore-block h2{font-size:24px;font-weight:500;margin-top:0}.lore-block p{color:#665843}.lore-block details{border-top:1px solid var(--line);padding:15px 0}.lore-block summary{cursor:pointer;font-size:17px}.lore-block details p{font-size:15px;margin-bottom:0}.atlas-page{max-width:1400px;padding-bottom:50px}.atlas-page .page-title{margin-bottom:25px}.atlas-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;border:1px solid #89764e88}.map-viewport{height:650px;overflow:hidden;position:relative;background:#cfc098;touch-action:none;cursor:grab}.map-viewport:active{cursor:grabbing}.map-world{width:1000px;height:1100px;position:absolute;transform-origin:0 0;background:#d8c699 url('/map.png') center/100% 100% no-repeat}.map-world:after{content:'';position:absolute;inset:15px;border:1px solid #6f573955;pointer-events:none}.map-label{position:absolute;transform:translate(-50%,-50%);background:#eddfbddf;border:1px solid #8f744c;box-shadow:0 2px 8px #5440191a;white-space:nowrap;padding:5px 10px;font-family:'Cormorant Garamond',serif;font-size:19px;line-height:1.3;z-index:2;min-height:40px}.map-label:before{content:'◆';margin-right:6px;color:#967034;font-size:11px}.map-label.selected{background:#443b27;color:#f5e6c7;border-color:#443b27}.map-tools{position:absolute;top:15px;left:15px;display:flex;gap:5px;z-index:4}.map-tools button{background:#eee2c8;border:1px solid #8f744c;min-width:42px;height:42px;font-size:21px;box-shadow:0 2px 8px #5440191a}.map-tools .reset{font-size:13px;padding:0 12px}.map-caption{position:absolute;bottom:12px;left:15px;background:#e8ddc3e8;padding:3px 10px;font-size:12px;pointer-events:none}.map-info{padding:28px;background:#e8ddc3}.map-info h2{font-size:29px;font-weight:500;margin:18px 0 0}.map-info .region-en{font-family:'Cormorant Garamond';font-size:21px;color:var(--muted);margin:0 0 22px}.map-info p{font-size:15px;line-height:2}.region-note{border-top:1px solid var(--line);padding-top:20px;color:var(--muted)}.region-select{width:100%;background:transparent;border:1px solid var(--line);padding:9px;font-size:14px;margin-bottom:20px}.atlas-note{font-size:13px;color:var(--muted);margin-top:14px}.close-info{display:none}.region-kind{font-size:12px;color:var(--gold);letter-spacing:.08em}
@media(min-width:1500px){.home-hero{min-height:680px}}@media(max-width:1000px){.edition{display:none}nav{gap:22px}.home-hero{min-height:600px;grid-template-columns:55% 45%}.hero-art{width:80%;right:-15%;opacity:.7}.hero-copy h1{font-size:44px}.atlas-layout{grid-template-columns:minmax(0,1fr) 270px}.map-info{padding:22px}.character{gap:40px}.chapters{grid-template-columns:repeat(2,1fr)}.chapter:nth-child(2){border-right:0}.chapter:nth-child(-n+2){border-bottom:1px solid var(--line)}.chapter:nth-child(3){padding-left:0}}@media(max-width:680px){header{height:85px;padding:0 24px}.brand strong{font-size:21px}.brand small{font-size:10px}.menu{display:block;border:0;background:transparent;font-size:14px;padding:10px}nav{display:none;position:absolute;top:85px;left:0;right:0;padding:20px 28px;background:#e8ddc3;z-index:20;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:5px 25px}nav.open{display:flex}nav a.active:after{bottom:0}.home-hero{min-height:680px;display:block;padding:45px 26px 260px}.hero-copy h1{font-size:38px;line-height:1.65}.hero-copy p{font-size:14px;max-width:300px}.hero-art{top:200px;height:500px;right:-12%;width:125%;opacity:.8;mask-image:linear-gradient(to bottom,transparent,black 40%,black 80%,transparent)}.hero-copy{position:relative}.hero-copy:before{display:none}.hero-index{bottom:12px;font-size:10px}.eyebrow{font-size:12px}.quote{font-size:13px;padding:20px 22px;line-height:2}.quote span{margin:0 8px}.contents{margin:38px auto 50px;padding:0 24px}.section-heading h2{font-size:21px}.section-heading small{font-size:10px}.chapter{padding:20px 16px}.chapter h3{font-size:18px}.chapter p{font-size:13px}.chapter .arrow{right:10px;top:25px}.chapter .num{font-size:19px}footer{padding:22px 24px;font-size:10px;gap:20px}.page{padding:35px 24px 60px}.page-title{margin-bottom:30px}.page-title h1{font-size:33px}.page-title p{font-size:14px}.page-title .folio{font-size:43px}.story-grid,.character,.lore-grid{grid-template-columns:1fr;gap:27px}.story-art{min-height:220px}.story-intro{font-size:22px}.event{grid-template-columns:50px 1fr;gap:10px;padding:25px 0}.event h2{font-size:19px}.event p{font-size:15px}.trailer{padding:25px 15px}.portrait{min-height:330px}.portrait img{height:350px}.character h2{font-size:28px}.atlas-layout{display:block;position:relative}.map-viewport{height:570px}.map-info{border-top:1px solid var(--line);padding:24px}.atlas-page{padding-left:16px;padding-right:16px}.atlas-page .page-title{padding:0 8px}.map-info h2{margin-top:8px}.map-info p{font-size:15px}.lore-block h2{font-size:22px}}
@media(prefers-reduced-motion:no-preference){a,button{transition:background .2s,color .2s}.hero-copy{animation:reveal .8s ease-out}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}

.map-label{transform:translate(-50%,-50%) scale(var(--marker-scale,1));font-size:15px;min-height:40px;padding:4px 8px}.map-label:before{font-size:9px}
/* The imperial codex: a parchment leaf held inside an old binding. */
:root{--paper:#dac6a0;--ink:#392b20;--muted:#786044;--line:#82613b55;--gold:#8e642f;--dark:#602c28}html{background:#29201b}body{background-color:#29201b;padding:25px 30px 0;background-image:radial-gradient(ellipse at top,#514031,transparent 70%)}#app{max-width:1430px;margin:auto;min-height:100vh;position:relative;background-color:var(--paper);background-image:linear-gradient(90deg,#6f48251c,transparent 6%,transparent 94%,#68431f25),radial-gradient(ellipse at 15% 0,#f4e7c2aa,transparent 55%),url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23563717' opacity='.13' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");box-shadow:0 0 45px #120d0b88,inset 0 0 70px #76512728;border:1px solid #ab8657}#app:before{content:'';position:absolute;inset:13px;border:1px solid #7c573533;pointer-events:none;z-index:5}header{height:auto;min-height:175px;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:30px 45px 18px;border:0;position:relative}header:after{content:'◇';color:#936d3e;line-height:1;background:transparent;position:absolute;bottom:-9px;padding:0 15px}header:before{content:'';position:absolute;bottom:0;width:calc(100% - 100px);height:1px;background:linear-gradient(to right,var(--line) calc(50% - 23px),transparent calc(50% - 23px),transparent calc(50% + 23px),var(--line) calc(50% + 23px))}.brand{text-align:center;gap:15px}.brand strong{font-family:'Noto Serif KR',serif;font-size:29px;letter-spacing:.24em;font-weight:500}.brand small{font-size:12px;letter-spacing:.2em;display:block;margin-top:9px}.seal{border:0;outline:0;font-size:41px;width:30px;color:#804f2f}.edition{display:none}nav{gap:36px}nav a{font-size:14px;padding:5px 0;color:#735538}nav a.active{color:#752f29}nav a.active:after{content:'';bottom:-9px;width:20px;height:1px;background:#8a3b2e;left:calc(50% - 10px)}.page{padding:65px 55px 85px}.page-title{text-align:center;position:relative;margin-bottom:45px}.page-title .folio{float:none;display:block;font-size:21px;letter-spacing:.15em;color:#936e42;margin-bottom:16px}.page-title .eyebrow{display:none}.page-title h1{font-size:43px;letter-spacing:.1em;margin:0 0 20px}.page-title p{font-size:16px;line-height:2;color:#70583e}.page-title:after{content:'✧';display:block;color:#8b6034;font-size:22px;margin-top:22px}.eyebrow{letter-spacing:.13em;color:#7c5e3f}.home-hero{min-height:680px;padding-top:75px;padding-left:7%}.hero-copy h1{font-size:52px;line-height:1.7;letter-spacing:-.055em}.hero-copy:before{background:linear-gradient(90deg,#dfcca7e8,#dfcca7a0,transparent)}.hero-copy .eyebrow{font-size:13px}.hero-art{opacity:.8}.button,.button.solid{background:transparent;color:#6c3027;border:0;border-bottom:1px solid #895d3b;padding:9px 0;min-width:200px;font-size:16px}.button:hover,.button.solid:hover{background:transparent;color:#a04d32}.quote{border:0;position:relative;font-size:16px;padding:35px 40px;color:#714637}.quote:before,.quote:after{content:'';display:block;width:85px;border-top:1px solid var(--line);margin:0 auto 25px}.quote:after{margin:25px auto 0}.contents{max-width:1050px;margin-top:30px}.section-heading{justify-content:center}.section-heading small{display:none}.section-heading h2{font-size:20px;letter-spacing:.2em}.chapters{display:block;border:0;max-width:780px;margin:30px auto}.chapter,.chapter:first-child,.chapter:nth-child(3){padding:22px 12px;border:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:60px 1fr 1.2fr;align-items:center;gap:12px}.chapter .num{font-size:22px}.chapter h3{margin:0;font-size:22px}.chapter p{font-size:15px}.chapter .arrow{display:none}.chapter:hover{background:#88522208}.story-art{border:0;outline:1px solid var(--line);outline-offset:7px;filter:sepia(.2)}.story-intro{color:#683d29}.timeline{border-top:0;margin-top:60px}.event{padding:36px 0}.event>span{font-size:36px}.event h2{color:#633a28}.trailer{background:transparent;border:0;border-top:1px solid var(--line);padding-top:50px}.portrait{border-radius:48% 48% 0 0;background:radial-gradient(ellipse at center,#b5986633,transparent);outline-offset:-10px}.lore-grid{gap:45px 65px}.lore-block{border-top:0;padding-top:18px}.lore-block h2{border-bottom:1px solid var(--line);padding-bottom:17px;color:#683f2b}.lore-block summary::marker{color:#91653b}.lore-block details{border-top:0;border-bottom:1px dotted var(--line)}footer{border-top:1px solid var(--line);margin:0 45px;padding:27px 0;font-size:12px;color:#806044}.atlas-layout{border:0;gap:40px;grid-template-columns:minmax(0,1fr) 255px;align-items:start}.map-viewport{width:100%;height:auto;aspect-ratio:2/3;max-height:1000px;background:#c8b183;outline:1px solid #8b673c88;outline-offset:7px;box-shadow:0 8px 25px #5c3d2929;isolation:isolate}.map-world{height:1500px;background-size:100% 100%}.map-world:after{inset:12px;border:1px solid #71503366}.map-label,.map-label.selected{width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;box-shadow:none;border-radius:50%;display:grid;place-items:center;z-index:2}.map-label:before{display:none}.pin{width:11px;height:11px;background:#70432edb;border:1px solid #fae9bf;border-radius:50%;box-shadow:0 0 0 2px #70432e85,0 1px 4px #fff8;display:block}.map-label.selected .pin{background:#842c23;box-shadow:0 0 0 3px #842c2345;width:13px;height:13px}.map-label .pin-name{position:absolute;top:36px;left:50%;transform:translateX(-50%);display:none;color:#3c2419;font-weight:600;font-size:16px;line-height:1.2;pointer-events:none;text-shadow:0 1px 2px #fff3ce,1px 0 3px #fff3ce,-1px 0 3px #fff3ce;white-space:nowrap;background:#efdab655;padding:1px 5px}.map-label.selected .pin-name,.map-label:focus-visible .pin-name{display:block}.map-label.selected{z-index:3}.map-tools{top:15px;left:15px;gap:8px}.map-tools button{border-radius:50%;min-width:44px;height:44px;background:#e6d0a5d9;border:1px solid #815b3e99;box-shadow:0 2px 5px #4b2c2022}.map-tools .reset{border-radius:0;background:#e6d0a5c9;border:0;border-bottom:1px solid #815b3e99;font-size:14px}.map-caption{font-size:12px;line-height:1.7;background:#e6d0a5c9;max-width:calc(100% - 30px);bottom:14px}.map-info{background:transparent;padding:15px 0 0;border:0}.region-select{border:0;border-bottom:1px solid var(--line);font-size:15px;padding:12px 2px;background:transparent;border-radius:0}.map-info h2{font-size:30px;color:#683a27}.map-info .region-en{font-style:italic}.region-kind{font-size:14px;color:#8a5b30}.map-info p{font-size:16px}.region-note{border-top:0;padding-top:24px;position:relative}.region-note:before{content:'❧';display:block;font-size:25px;line-height:1;margin-bottom:18px;color:#956c3f}.atlas-note{text-align:center;margin-top:28px;font-size:14px}.map-label:hover .pin{box-shadow:0 0 0 4px #70432e40}.atlas-page{max-width:1200px}
@media(max-width:1100px){.atlas-layout{grid-template-columns:1fr;gap:30px;max-width:760px;margin:auto}.map-info{padding:25px 10px;border-top:1px solid var(--line);column-count:1}.map-viewport{max-height:none}.atlas-page{max-width:850px}.home-hero{min-height:640px}.hero-copy h1{font-size:43px}}
@media(max-width:680px){body{padding:8px 7px 0}#app:before{inset:6px}header{min-height:125px;padding:24px 15px 20px;gap:12px}.brand strong{font-size:25px}.brand small{font-size:11px}.seal{font-size:31px}.menu{font-size:13px;color:#754c32;border-bottom:1px solid #8e694155;padding:2px 12px}nav{top:131px;padding:20px 24px;background:#decaa4;gap:12px 25px;justify-content:center;box-shadow:0 10px 20px #402d2020}nav a{font-size:14px}.page{padding:37px 23px 55px}.page-title{margin-bottom:28px}.page-title h1{font-size:31px}.page-title .folio{font-size:17px;margin-bottom:11px}.page-title p{font-size:14px}.page-title:after{margin-top:15px}.home-hero{padding:40px 25px 260px;min-height:680px}.hero-copy h1{font-size:35px}.hero-copy p{font-size:15px}.quote{font-size:14px;padding:22px}.contents{padding:0 23px}.chapter,.chapter:first-child,.chapter:nth-child(3){grid-template-columns:35px 1fr;padding:20px 0;gap:0 10px}.chapter h3{font-size:20px}.chapter p{grid-column:2;font-size:14px;margin-top:6px}.chapter .num{font-size:20px}.chapter:nth-child(2){border-bottom:1px solid var(--line)}footer{margin:0 22px;display:block;line-height:2.2}footer span{display:block;font-size:11px}.atlas-page{padding-left:19px;padding-right:19px}.atlas-page .page-title{padding:0}.atlas-layout{gap:24px}.map-viewport{height:auto;aspect-ratio:2/3}.map-caption{font-size:12px}.map-info{padding:20px 3px}.map-info p{font-size:16px}.map-tools{top:10px;left:10px;gap:5px}.map-tools .reset{font-size:13px}.map-label .pin-name{font-size:14px}.map-info h2{font-size:27px}.atlas-note{font-size:12px}.lore-block p{font-size:16px}.trailer{padding:30px 0}.story-intro{font-size:23px}.event p{font-size:16px}}

/* Center the wordmark and its subtitle on one shared axis. */
.brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center}.brand>span:last-child{display:flex;flex-direction:column;align-items:center}.brand .seal{width:auto;height:auto;font-size:25px;line-height:1;margin:0}.brand strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:36px;font-weight:500;line-height:1.1;letter-spacing:.18em;text-indent:.18em}.brand small{font-size:12px;line-height:1.7;letter-spacing:.16em;text-indent:.16em;margin-top:9px}header{padding-top:24px}@media(max-width:680px){.brand{gap:6px}.brand .seal{font-size:21px}.brand strong{font-size:30px}.brand small{font-size:11px;margin-top:7px}header{padding-top:21px}}
@media(max-width:680px){header nav{top:100%}}
/* Readable entry, a permanent contents line, and a measured sand passage. */
.hero-copy .button.solid{background:#62362a;color:#fff0d0;border:1px solid #926647;box-shadow:inset 0 0 0 3px #62362a,inset 0 0 0 4px #b08b5955,0 4px 13px #39251b30;padding:13px 21px;min-height:50px;min-width:215px;text-shadow:none}.hero-copy .button.solid:hover{background:#774636;color:#fff4dc}.hero-copy .button.solid span{color:#dac398}.quote .quote-line{display:block;margin:0;color:#714637;font-size:inherit;word-break:keep-all;text-wrap:balance;line-height:2.1}.quote:before{margin-bottom:18px}.quote:after{margin-top:18px}header nav{display:flex;position:static;flex-wrap:wrap;justify-content:center;background:transparent;box-shadow:none;border:0;padding:0;gap:6px 28px}header nav a{min-height:44px;display:flex;align-items:center;justify-content:center;padding:7px 0}header nav a.active:after{bottom:0}.sand-air{position:fixed;inset:0;width:100%;height:100%;z-index:12;pointer-events:none;user-select:none}.dust-word{display:inline-block;white-space:nowrap}.dust-char{display:inline-block}.hero-copy{animation:none}
@media(prefers-reduced-motion:no-preference){.dust-char{animation:sand-gather 850ms cubic-bezier(.2,.7,.25,1) both;animation-delay:var(--delay)}main{animation:page-unveil 700ms ease-out both}.page-departing main{animation:page-away 400ms ease-in both}.page-departing .dust-char{animation:sand-scatter 320ms ease-in both;animation-delay:var(--out-delay)}@keyframes sand-gather{0%{opacity:0;filter:blur(5px);transform:translate(var(--drift),var(--rise)) rotate(var(--turn))}100%{opacity:1;filter:blur(0);transform:none}}@keyframes sand-scatter{0%{opacity:1;filter:blur(0);transform:none}100%{opacity:0;filter:blur(5px);transform:translate(var(--drift),var(--rise)) rotate(var(--turn))}}@keyframes page-unveil{from{opacity:.2}to{opacity:1}}@keyframes page-away{0%,40%{opacity:1}100%{opacity:.15}}}
@media(max-width:680px){header{gap:16px;padding-bottom:18px}header nav{display:flex;position:static;gap:0 18px;max-width:100%;padding:0 1px}header nav a{font-size:13px;min-height:40px;white-space:nowrap}.home-hero{padding-top:34px}.hero-copy p{color:#59412e;text-shadow:0 1px 5px #eed8b0}.quote{padding-left:15px;padding-right:15px;font-size:14px}.quote .quote-line{margin:0}.hero-copy .button.solid{font-size:15px;padding:12px 19px}.sand-air{opacity:.8}}
@media(prefers-reduced-motion:reduce){.sand-air{display:none}.dust-char,main,.page-departing main,.page-departing .dust-char{animation:none!important;filter:none!important;transform:none!important;opacity:1!important}}

/* A tighter atlas crop with contrasting gold-rimmed seals. */
.atlas-layout{grid-template-columns:1fr;max-width:760px;gap:28px}.map-viewport{aspect-ratio:5/6;height:auto;max-height:none}.map-world{height:1200px;background-size:1000px 1500px;background-position:top center}.pin{width:23px;height:23px;background:#6c2925;border:2px solid #f4d99b;box-shadow:0 0 0 2px #68442d,0 2px 6px #2c160a88;display:grid;place-items:center}.pin:after{content:'◆';font-size:9px;line-height:1;color:#ffe5aa}.map-label.selected .pin{width:28px;height:28px;background:#923b2e;border-color:#fff0c0;box-shadow:0 0 0 2px #613023,0 0 0 5px #e4b75a77,0 3px 8px #29180e88}.map-label:hover .pin,.map-label:focus-visible .pin{box-shadow:0 0 0 3px #e9c176,0 2px 7px #35211699}.map-label .pin-name{top:39px;color:#3c2419;background:#efd9b4cf;padding:3px 8px;border-radius:2px}.map-info{position:static;padding:27px 4px 0;border-top:1px solid var(--line);scroll-margin:22px}.map-info .region-select{max-width:400px}.map-info #region-details{max-width:680px}.map-info h2{margin-top:13px}.map-info .region-note{padding-top:10px}.map-caption{font-size:12px}@media(max-width:680px){.map-viewport{aspect-ratio:5/6;height:auto}.atlas-layout{gap:24px}.map-info{padding:22px 3px 0}.pin{width:23px;height:23px}.map-label.selected .pin{width:28px;height:28px}.map-caption{font-size:11px;left:10px;bottom:9px;max-width:calc(100% - 20px);padding:3px 6px}}
/* A compact landscape atlas and an immediately adjacent reading panel. */
.atlas-layout{max-width:960px;gap:18px}.map-viewport{aspect-ratio:16/9;height:auto;max-height:480px}.map-info{position:relative;padding:17px 3px 0;min-height:215px;scroll-margin:0}.map-info .region-select{position:absolute;right:0;top:17px;width:135px;margin:0;font-size:14px;padding:7px 1px;border-bottom:1px solid #8b694755;background:#dac6a055}.region-heading{padding-right:148px;min-height:70px}.map-info .region-kind{font-size:12px;letter-spacing:.02em;display:block}.map-info h2{font-size:26px;line-height:1.5;margin:3px 0 0}.map-info .region-en{display:block;font-size:16px;line-height:1.3;margin:0;color:#826349}.map-info .region-description{margin:12px 0 9px;font-size:15px;line-height:1.9;max-width:780px}.region-extra{border:0;padding:0}.region-extra summary{font-size:13px;color:#80583c;cursor:pointer;min-height:30px}.region-extra p{margin:5px 0 0;font-size:14px!important;color:#72583e}.pin,.map-label.selected .pin{width:17px;height:17px;border:1px solid #f5dfae;background:#3f524b;box-shadow:0 0 0 2px #493824aa,0 1px 5px #35251c66;transform:scale(1);transition:transform 380ms cubic-bezier(.2,.8,.2,1),box-shadow 380ms ease,background 380ms ease}.pin:after{content:'';width:4px;height:4px;border:1px solid #efd9a5;transform:rotate(45deg)}.map-label.selected .pin{transform:scale(1.2);background:#6e4930;box-shadow:0 0 0 3px #e6c88a77,0 0 0 6px #f2d79522,0 2px 8px #40291866}.map-label:hover .pin,.map-label:focus-visible .pin{transform:scale(1.14);box-shadow:0 0 0 3px #e6c88a77,0 2px 7px #35211666}.map-label .pin-name{display:block;opacity:0;transform:translate(-50%,3px);transition:opacity 280ms ease,transform 350ms ease;top:35px;font-size:14px;background:#ecdbb9de;padding:2px 7px;color:#4b3321;box-shadow:0 1px 5px #62421d15;border-radius:0}.map-label.selected .pin-name,.map-label:focus-visible .pin-name{opacity:1;transform:translate(-50%,0)}.atlas-note{margin-top:18px}.map-tools{top:10px;left:10px}.map-caption{bottom:8px}
@media(max-width:680px){.atlas-view header{padding:16px 15px 12px;gap:7px;min-height:0}.atlas-view header .seal{display:none}.atlas-view .brand strong{font-size:26px}.atlas-view .brand small{font-size:10px;margin-top:4px}.atlas-view header nav{gap:0 15px}.atlas-view header nav a{font-size:12px;min-height:36px}.atlas-view .atlas-page{padding:22px 18px 35px}.atlas-view .page-title{margin:0 0 15px;text-align:left;padding:0}.atlas-view .page-title .folio{float:right;font-size:20px;line-height:1.7;margin:0}.atlas-view .page-title h1{font-size:25px;letter-spacing:.05em;margin:0}.atlas-view .page-title p{font-size:12px;margin:4px 0 0}.atlas-view .page-title:after{display:none}.atlas-layout{gap:12px}.map-viewport{aspect-ratio:auto;height:clamp(210px,29svh,265px);max-height:none;outline-offset:4px}.map-info{padding:12px 2px 0;min-height:220px}.map-info .region-select{top:14px;width:108px;font-size:13px;padding:7px 0}.region-heading{padding-right:115px;min-height:66px}.map-info h2{font-size:22px;margin:2px 0 0}.map-info .region-kind{font-size:11px}.map-info .region-en{font-size:15px}.map-info .region-description{font-size:14px;line-height:1.85;margin:10px 0 5px;word-break:keep-all}.region-extra summary{font-size:13px}.atlas-note{font-size:11px;text-align:left;margin-top:10px}.map-tools{top:8px;left:8px;gap:4px}.map-tools button{min-width:38px;height:38px;font-size:19px}.map-tools .reset{font-size:12px;padding:0 8px}.map-caption{font-size:11px;bottom:6px}.pin,.map-label.selected .pin{width:17px;height:17px}.map-label .pin-name{font-size:13px}.map-info #region-details{max-width:none}}
@media(prefers-reduced-motion:reduce){.pin,.map-label .pin-name{transition:none!important}}

.page-title + .trailer{margin-top:0;padding-top:0;border-top:0;margin-bottom:55px}.page-title + .trailer iframe{display:block}@media(max-width:680px){.page-title + .trailer{padding-top:0;margin-bottom:35px}}

.story-grid>.story-video{margin:0;padding:0;border:0;min-width:0;align-self:center;background:transparent}.story-video iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.story-video>p{margin:10px 0 0;font-size:13px;text-align:right}@media(max-width:680px){.story-grid>.story-video{margin:0;padding:0}}

/* The founding film fills the reading area above a brief synopsis. */
.page .history-video{width:100%;margin:0;padding:0;border:0;background:transparent}
.history-video iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0}
.history-video>p{margin:10px 0 0;font-size:14px;text-align:right}
.founding-summary{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.founding-summary h2{margin:0 0 12px;font-size:23px;font-weight:500;color:#633a28}
.founding-summary p{margin:0;font-size:16px;line-height:2;color:#6b5c47;word-break:keep-all;overflow-wrap:break-word}
@media(max-width:680px){.founding-summary{margin-top:24px;padding-top:20px}.founding-summary h2{font-size:21px}}

/* Chaptered myth and a folded leaf of the imperial archive. */
.founding-chapters .event,.imperial-records .event{grid-template-columns:65px minmax(0,1fr);gap:20px;padding:26px 0}
.founding-chapters .event:last-child,.imperial-records .event:last-child{border-bottom:0}
.founding-chapters h3,.imperial-records h3{font-size:21px;font-weight:500;color:#633a28;margin:0 0 10px}
.imperial-records{margin-top:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.imperial-records summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:16px 4px;color:#6c3027;font-size:17px;cursor:pointer;list-style:none}
.imperial-records summary::-webkit-details-marker{display:none}
.imperial-records summary:hover{color:#a04d32}
.imperial-records summary:focus-visible{outline:2px solid #8b542b;outline-offset:5px}
.record-wing{font-size:26px;line-height:1;transition:transform .3s ease}
.imperial-records[open] .record-wing{transform:rotate(180deg)}
.imperial-leaf{padding:8px 24px 20px;border-top:1px solid var(--line);background:#88522208;transform-origin:top center}
.archive-seal{font-size:14px;letter-spacing:.15em;color:#80583c;margin:20px 0 0}
.imperial-records .event p{font-size:16px;line-height:2;word-break:keep-all;overflow-wrap:break-word}
.imperial-records blockquote{margin:18px 0 0;padding-left:18px;border-left:2px solid #8e642f66;font-size:16px;line-height:2;color:#6c3027;word-break:keep-all}
@media(prefers-reduced-motion:no-preference){.imperial-records[open] .imperial-leaf{animation:unfold-record .4s ease-out}@keyframes unfold-record{from{opacity:0;transform:perspective(1000px) rotateX(-8deg)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){.record-wing{transition:none}}
@media(max-width:680px){.founding-chapters .event,.imperial-records .event{grid-template-columns:36px minmax(0,1fr);gap:12px;padding:22px 0}.founding-chapters h3,.imperial-records h3{font-size:19px}.founding-chapters .event>span,.imperial-records .event>span{font-size:27px}.imperial-leaf{padding:4px 10px 12px}.imperial-records summary{font-size:16px}}

/* The sealed book asks before revealing its parchment leaf. */
.archive-gate{width:min(440px,calc(100% - 40px));max-height:calc(100dvh - 40px);overflow:auto;padding:34px 28px 30px;color:var(--ink);background:radial-gradient(ellipse at top,#f1dfb8,#dac09a);border:1px solid #997448;box-shadow:0 18px 75px #160c09aa,inset 0 0 35px #8c603426;text-align:center;font-family:inherit}
.archive-gate::backdrop{background:#20150fd1;backdrop-filter:blur(3px)}
.archive-gate form{margin:0}
.gate-ornament{display:block;font-size:30px;color:#8e642f;line-height:1.3}
.gate-label{font-size:14px;letter-spacing:.12em;color:#80583c;margin:14px 0 22px}
.archive-gate h2{font-size:clamp(23px,5vw,29px);font-weight:500;line-height:1.65;letter-spacing:-.025em;margin:0 0 20px;color:#633a28;word-break:keep-all}
#archive-gate-description{font-size:16px;line-height:1.9;color:#70583e;margin:0 0 28px;word-break:keep-all}
.gate-actions{display:flex;gap:12px;justify-content:center;border-top:1px solid var(--line);padding-top:24px}
.gate-actions button{min-height:46px;flex:1;padding:9px 12px;font-size:16px;border:1px solid #8e642f66;background:transparent}
.gate-actions .gate-read{background:#663d2c;color:#f1dfba;border-color:#663d2c}
.gate-actions button:hover{background:#8e642f22}.gate-actions .gate-read:hover{background:#7c4d34}
.imperial-records[open] .imperial-leaf{animation:none;position:relative;background:linear-gradient(90deg,#8c603412,transparent 8%,transparent 92%,#8c60341c),linear-gradient(#eddbb5aa,#dac09a66);box-shadow:inset 0 0 30px #8c60341a}
.imperial-leaf.is-unfurling{overflow:hidden;min-height:0;padding-top:0;padding-bottom:0}
.imperial-leaf.is-unfurling::after{content:'';position:absolute;left:0;right:0;bottom:0;height:22px;pointer-events:none;background:linear-gradient(transparent,#ad885b66 36%,#efdcb6 65%,#98714466);box-shadow:0 -8px 20px #74502c24}
@media(prefers-reduced-motion:no-preference){.archive-gate[open]{animation:gate-appear .25s ease-out}@keyframes gate-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
@media(max-width:400px){.archive-gate{padding:28px 20px}.gate-actions{gap:8px}}

/* Center map controls independently of font metrics and native button padding. */
.map-tools #zoom-in,.map-tools #zoom-out{display:grid;place-items:center;padding:0;width:44px;flex:0 0 44px;line-height:1}.map-tools svg{display:block;width:16px;height:16px;pointer-events:none}@media(max-width:680px){.map-tools #zoom-in,.map-tools #zoom-out{width:38px;flex-basis:38px}}

/* Let the archive open gradually without changing the leaf's reading layout. */
.imperial-records.is-opening{overflow:hidden;overflow-anchor:none}
.imperial-records .event p,.imperial-records blockquote{font-size:15px;line-height:1.95}
.imperial-records h3{font-size:19px}
.imperial-records .event>span{font-size:24px}
@media(max-width:680px){.imperial-records .event p,.imperial-records blockquote{font-size:14px;line-height:1.9}.imperial-records h3{font-size:17px;margin-bottom:8px}.imperial-records .event>span{font-size:22px}.imperial-records .event{grid-template-columns:30px minmax(0,1fr);gap:10px;padding:19px 0}.imperial-records .archive-seal{font-size:12px}}

/* Character entries collect the bloodline and resonance records. */
.character-index{display:flex;justify-content:center;gap:18px;margin:-12px 0 40px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.character-index a{font-size:14px;padding:6px 0}.character-index span{color:var(--gold)}
.character-entry{align-items:start;scroll-margin-top:24px}.character-entry+.character-entry{margin-top:65px;padding-top:50px;border-top:1px solid var(--line)}
.character-intro{font-size:15px;line-height:1.95;color:var(--muted);word-break:keep-all;overflow-wrap:break-word;margin:18px 0}
.character-notes{margin-top:25px;border-top:1px solid var(--line)}.character-notes details{border-bottom:1px solid var(--line)}.character-notes summary{cursor:pointer;padding:13px 0;font-size:15px;color:#6c402b}.character-note-body{padding:0 0 18px}.character-note-body p{font-size:14px;line-height:1.95;color:var(--muted);margin:5px 0 14px;word-break:keep-all;overflow-wrap:break-word}.character-note-body h4{font-size:14px;font-weight:500;color:#633a28;margin:20px 0 5px}
.resonant-emblem{min-height:270px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#917249;background:radial-gradient(ellipse,#b5986620,transparent 65%)}.resonant-emblem>span{font-size:72px;line-height:1.5}.resonant-emblem small{font-size:11px;letter-spacing:.24em}
@media(max-width:680px){.character-index{margin:0 0 28px;gap:13px}.character-index a{font-size:13px}.character-intro{font-size:14px}.character-entry+.character-entry{margin-top:40px;padding-top:30px}.resonant-emblem{min-height:120px}.resonant-emblem>span{font-size:44px}.character-notes summary{font-size:14px}.character-note-body p{font-size:13px}.character-entry h2{font-size:26px}}

/* A compact selection gallery; biography is shown only in its own dialog. */
.character-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:880px;margin:0 auto}
.character-card{position:relative;display:flex;align-items:center;gap:22px;width:100%;min-height:175px;padding:25px;text-align:left;background:linear-gradient(135deg,#f4e4c42b,#9472490d);border:1px solid var(--line);color:var(--ink);transition:background .2s,transform .2s}
.character-card:hover{background:#f5e5c43d;transform:translateY(-2px)}.card-mark{display:grid;place-items:center;flex:0 0 78px;width:78px;height:100px;border:1px solid #91734555;border-radius:45% 45% 0 0;font-family:Georgia,serif;font-size:27px;color:#8e7044}.card-mark img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.resonant-mark{border:0;font-size:48px}.card-label{display:flex;flex-direction:column;gap:9px;min-width:0}.card-label small{font-size:10px;letter-spacing:.15em;color:var(--muted)}.card-label strong{font-size:22px;font-weight:500;line-height:1.5;word-break:keep-all}.card-label>span{font-size:13px;color:var(--muted);line-height:1.7;word-break:keep-all}.card-open{position:absolute;top:12px;right:15px;color:var(--gold);font-size:17px}.character-hint{text-align:center;font-size:12px;color:var(--muted);margin:22px 0 0}
.character-modal-open{overflow:hidden}.character-dialog{width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #9a784e;color:var(--ink);background:#e5d2ae;box-shadow:0 20px 80px #1c110b88;font-family:inherit;overflow:auto;overscroll-behavior:contain}.character-dialog::backdrop{background:#20150fba;backdrop-filter:blur(3px)}.character-dialog-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:#e5d2ae;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.08em;color:var(--muted)}.character-close{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 0 4px 12px;border:0;background:transparent;font-size:14px}.character-close span{font-size:26px;line-height:1}.character-dialog-body{padding:28px 35px 36px}.character-dialog .character-entry{display:block;margin:0;padding:0;border:0}.character-dialog .portrait,.character-dialog .resonant-emblem{display:none}.character-dialog .portrait:has(img){display:block;min-height:0;width:160px;margin:0 auto 25px}.character-dialog .portrait img{height:200px}.character-dialog h2{font-size:28px}.character-dialog .en{font-size:20px;margin-bottom:20px}
@media(prefers-reduced-motion:no-preference){.character-dialog[open]{animation:character-reveal .3s ease-out}@keyframes character-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:680px){.characters-page{padding:28px 23px 45px}.characters-page .page-title{margin-bottom:25px}.characters-page .page-title h1{font-size:28px}.characters-page .page-title p{font-size:13px}.character-cards{grid-template-columns:1fr;gap:14px}.character-card{min-height:132px;padding:20px 17px;gap:17px}.card-mark{flex-basis:62px;width:62px;height:82px;font-size:23px}.resonant-mark{font-size:39px}.card-label strong{font-size:20px}.card-label small{font-size:9px}.card-label>span{font-size:12px}.character-hint{font-size:11px;margin-top:18px}.character-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.character-dialog-bar{padding:6px 18px}.character-dialog-body{padding:24px 22px 28px}.character-dialog h2{font-size:24px}.character-dialog .en{font-size:18px}.character-dialog .character-intro{font-size:14px}}

/* Portrait first; each biography unfolds directly beneath its portrait. */
.portrait-roster{max-width:760px;margin:0 auto}.portrait-person{margin:0 0 45px}.portrait-person>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:18px;padding:0 0 22px}.portrait-person>summary::-webkit-details-marker{display:none}.portrait-person>summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.roster-portrait{width:min(100%,300px);height:340px;border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-10px;border-radius:48% 48% 0 0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse,#b5986628,transparent);color:#9a7d4e}.roster-portrait>span{font-family:'Cormorant Garamond',Georgia,serif;font-size:70px;font-weight:400}.roster-portrait img{width:100%;height:100%;object-fit:cover}.roster-name{font-size:25px;font-weight:500;color:var(--ink)}.portrait-person[open]>.portrait-biography{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 12px 30px}.portrait-biography .character-entry{display:block;padding:0;margin:0;border:0}.portrait-biography .portrait,.portrait-biography .resonant-emblem,.portrait-biography .eyebrow,.portrait-biography h2,.portrait-biography .en{display:none}.portrait-biography .character-intro{margin:15px 0}.portrait-biography #character-role,.portrait-biography .character-role{color:#79583c;font-size:14px;margin:0 0 20px}
@media(max-width:680px){.roster-portrait{width:240px;max-width:100%;height:275px}.roster-portrait>span{font-size:60px}.roster-name{font-size:22px}.portrait-person{margin-bottom:35px}.portrait-person>summary{gap:15px;padding-bottom:20px}.portrait-person[open]>.portrait-biography{padding:20px 3px 25px}}

/* A compact title and side-by-side portraits keep the roster in view. */
.characters-page .page-title{text-align:left;margin:0 0 24px;padding:0}.characters-page .page-title h1{font-size:26px;line-height:1.4;margin:0 0 8px;letter-spacing:.04em}.characters-page .page-title p{font-size:13px;line-height:1.7;margin:0}.characters-page .page-title .folio{float:right;font-size:20px;line-height:1.5;margin:0}.characters-page .page-title .eyebrow,.characters-page .page-title:after{display:none}
.portrait-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:28px;max-width:580px;margin:0 auto}.portrait-choice{display:flex;flex-direction:column;align-items:center;gap:14px;padding:0 0 14px;border:0;border-bottom:1px solid transparent;background:transparent;min-width:0;color:var(--ink)}.portrait-choice[aria-expanded="true"]{border-bottom-color:var(--gold)}.portrait-choice .roster-portrait{width:100%;height:auto;aspect-ratio:4/5;max-width:230px}.portrait-choice .roster-name{font-size:20px;line-height:1.5;word-break:keep-all}.portrait-choice .roster-portrait>span{font-size:52px}.selected-biography:not([hidden]){max-width:700px;margin:22px auto 0;padding:23px 10px 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(max-width:680px){.characters-page{padding:24px 23px 35px}.characters-page .page-title{margin-bottom:22px}.characters-page .page-title h1{font-size:23px;margin:0 0 6px}.characters-page .page-title p{font-size:12px;line-height:1.7;max-width:290px}.characters-page .page-title .folio{font-size:17px}.portrait-roster{gap:20px}.portrait-choice{gap:11px;padding-bottom:12px}.portrait-choice .roster-portrait{max-width:170px;outline-offset:-7px}.portrait-choice .roster-portrait>span{font-size:39px}.portrait-choice .roster-name{font-size:16px}.selected-biography:not([hidden]){margin-top:16px;padding:20px 2px 24px}}

/* One portrait per page; native horizontal scrolling supports touch gestures. */
.character-carousel{max-width:420px;margin:0 auto;overflow-anchor:none}
.character-carousel .portrait-roster{display:flex;gap:0;max-width:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:start}
.character-carousel .portrait-roster::-webkit-scrollbar{display:none}
.character-carousel .portrait-choice{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;gap:12px;padding:4px 12px 10px;box-sizing:border-box;user-select:none;-webkit-user-select:none}
.character-carousel .roster-portrait{width:196px;max-width:100%;height:232px;aspect-ratio:auto}
.character-carousel .roster-name{font-size:20px}
.character-carousel .roster-portrait>span{font-size:52px}
.portrait-choice:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.portrait-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:4px}
.portrait-controls button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink)}
.portrait-controls button:disabled{opacity:.25;cursor:default}
.portrait-controls svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
#portrait-position{min-width:42px;text-align:center;font-family:Georgia,serif;font-size:13px;letter-spacing:.12em;color:var(--muted)}
.portrait-instruction{text-align:center;font-size:11px;color:var(--muted);margin:8px 0 0}
@media(max-width:680px){.characters-page .page-title{margin-bottom:14px}.character-carousel .roster-portrait{width:172px;height:205px}.character-carousel .roster-name{font-size:18px}.character-carousel .roster-portrait>span{font-size:46px}.characters-page{padding-bottom:25px}}

/* Quiet navigation beside the portrait, with comfortable touch targets. */
.character-carousel{position:relative}
.character-carousel .portrait-controls{position:absolute;inset:0 0 auto;height:240px;margin:0;pointer-events:none;justify-content:space-between;gap:0}
.character-carousel .portrait-controls button{pointer-events:auto;border:0;border-radius:0;background:transparent;width:44px;height:44px;color:var(--gold)}
.character-carousel .portrait-controls svg{width:16px;height:16px}
#portrait-position{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;min-width:0}
@media(max-width:680px){.character-carousel .portrait-controls{height:213px}}
