:root{
  --void:#0b0b0d;--s1:#111114;--s2:#17171c;
  --bone:#e8e4d8;--bone70:rgba(232,228,216,.72);--bone45:rgba(232,228,216,.45);
  --hair:rgba(232,228,216,.13);--ember:#c96f2f;--ember2:#e08a45;--star:#9fb6c9;
  --serif:'Cinzel',Georgia,serif;--prose:'EB Garamond',Georgia,'Times New Roman',serif;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
  --pad:clamp(18px,5vw,56px);--max:1180px;
}
*{box-sizing:border-box}
html{background:var(--void);color:var(--bone);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--prose);font-size:18px;line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--bone);color:var(--void)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ember)}
.label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone45)}
h1,h2,h3{font-family:var(--serif);font-weight:700;text-transform:uppercase;letter-spacing:.02em;line-height:1.05;margin:.2em 0 .4em}
h1{font-size:clamp(34px,8vw,72px)}
h2{font-size:clamp(24px,5vw,40px)}
h3{font-size:clamp(17px,3.6vw,22px);letter-spacing:.04em}
p{margin:0 0 1em}
.muted{color:var(--bone70)}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(11,11,13,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}
.top .wrap{display:flex;align-items:center;gap:14px;height:56px}
.brand{font-family:var(--serif);font-weight:700;font-size:20px;text-decoration:none;letter-spacing:.06em;white-space:nowrap}
.brand b{color:var(--ember)}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--bone70);padding:8px 9px;border-radius:3px}
.nav a:hover,.nav a[aria-current=page]{color:var(--bone)}
.nav a[aria-current=page]{box-shadow:inset 0 -1px 0 var(--ember)}
.menu-btn{display:none}
.spoil-btn{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:none;color:var(--bone70);border:1px solid var(--hair);padding:7px 10px;border-radius:999px;cursor:pointer;white-space:nowrap}
.spoil-btn .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bone45);margin-right:6px;vertical-align:1px}
.spoilers-on .spoil-btn{color:var(--bone);border-color:var(--ember)}
.spoilers-on .spoil-btn .dot{background:var(--ember)}
@media (max-width:860px){
  .menu-btn{display:block;margin-left:auto;background:none;border:1px solid var(--hair);color:var(--bone);font-family:var(--mono);font-size:11px;letter-spacing:.16em;padding:8px 10px;border-radius:3px;text-transform:uppercase}
  .nav{display:none;position:absolute;top:56px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--void);border-bottom:1px solid var(--hair);padding:8px var(--pad) 16px}
  .nav.open{display:flex}
  .nav a{padding:13px 4px;font-size:13px;border-bottom:1px solid var(--hair)}
  .nav .spoil-btn{margin-top:12px;align-self:flex-start;font-size:11px;padding:10px 14px}
}

/* hero */
.hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--hair)}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.62}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(11,11,13,.2) 0%,rgba(11,11,13,.1) 40%,rgba(11,11,13,.92) 88%,var(--void) 100%),radial-gradient(130% 95% at 50% 38%,transparent 55%,rgba(4,4,6,.55) 100%)}
.hero .wrap{position:relative;z-index:2;padding-bottom:clamp(40px,8vh,90px);width:100%}
.monument{font-family:var(--serif);font-weight:700;text-transform:uppercase;font-size:clamp(56px,15vw,190px);line-height:.85;letter-spacing:-.02em;margin:0}
.monument b{color:var(--ember)}
.subline{margin-top:14px;border-top:1px solid var(--hair);padding-top:14px;font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--bone70);max-width:640px}
.logline{font-size:clamp(19px,2.6vw,24px);max-width:640px;margin-top:18px;color:var(--bone)}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--bone);border:1px solid var(--hair);padding:13px 18px;border-radius:3px;background:rgba(11,11,13,.5)}
.btn:hover{border-color:var(--bone45)}
.btn.primary{border-color:var(--ember);background:rgba(201,111,47,.14)}
.btn svg{width:16px;height:16px;fill:currentColor}

section.block{padding:clamp(48px,9vw,96px) 0;border-bottom:1px solid var(--hair)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.section-head a{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone70)}
.prose{max-width:720px}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:28px}
.pillars div{background:var(--void);padding:22px}

/* cards */
.grid{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media (min-width:640px){.grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:980px){.grid{grid-template-columns:repeat(4,1fr)}}
.grid.wide{grid-template-columns:1fr}
@media (min-width:640px){.grid.wide{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.grid.wide{grid-template-columns:repeat(3,1fr)}}
.card{position:relative;display:block;text-decoration:none;background:var(--s1);border:1px solid var(--hair);border-radius:4px;overflow:hidden}
.card .ph{aspect-ratio:3/4;overflow:hidden;background:var(--s2)}
.grid.wide .card .ph{aspect-ratio:16/10}
.card img{width:100%;height:100%;object-fit:cover;object-position:center 18%;transition:transform .6s ease}
.card:hover img{transform:scale(1.04)}
.card .meta{padding:12px 12px 14px;border-top:2px solid var(--lc,var(--hair))}
.card h3{margin:0 0 4px;font-size:clamp(14px,3.4vw,18px)}
.card .alias{font-size:15px;color:var(--bone70);line-height:1.3}
.chip{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone70);border:1px solid var(--hair);border-radius:999px;padding:3px 9px;margin:6px 4px 0 0}
.chip i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lc,var(--bone45));margin-right:6px;font-style:normal}
.filters{display:flex;gap:8px;flex-wrap:wrap;padding:4px 0 14px;margin-bottom:6px}
.filters::-webkit-scrollbar{display:none}
.filters button{flex:none;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;background:none;color:var(--bone70);border:1px solid var(--hair);border-radius:999px;padding:9px 14px;cursor:pointer}
.filters button i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:var(--lc,var(--bone45))}
.filters button[aria-pressed=true]{color:var(--bone);border-color:var(--bone45);background:var(--s2)}
.card[hidden]{display:none}

/* detail */
.detail{display:grid;gap:clamp(22px,4vw,48px);padding:clamp(24px,5vw,56px) 0}
@media (min-width:900px){.detail{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}.detail .art{position:sticky;top:76px}}
.detail .art img{width:100%;border:1px solid var(--hair);border-radius:4px;max-height:82vh;object-fit:cover;object-position:center top}
.detail .alias{font-size:clamp(19px,2.6vw,24px);color:var(--bone70);font-style:italic;margin-top:-6px}
.tagline{font-size:clamp(20px,2.8vw,26px);border-left:2px solid var(--lc,var(--ember));padding-left:16px;margin:22px 0}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:24px 0;border-top:1px solid var(--hair);border-left:1px solid var(--hair)}
.facts div{padding:12px 14px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.facts dt{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone45);margin-bottom:4px}
.facts dd{margin:0;font-size:17px;line-height:1.35}
.swatches{display:flex;gap:6px;margin-top:10px}
.swatches span{width:22px;height:22px;border-radius:50%;border:1px solid var(--hair)}
.crumbs{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone45);padding-top:22px}
.crumbs a{color:var(--bone70);text-decoration:none}
.pager{display:flex;justify-content:space-between;gap:12px;padding:24px 0 48px;border-top:1px solid var(--hair)}
.pager a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--bone70)}

/* spoilers */
.spoiler{border:1px dashed rgba(201,111,47,.5);border-radius:4px;padding:16px 18px;margin:18px 0;background:rgba(201,111,47,.05)}
.spoiler .s-head{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ember)}
.spoiler .s-body{margin-top:10px}
.spoiler .s-locked{margin-top:8px;color:var(--bone70);font-size:16px}
.spoiler .s-locked button{font:inherit;background:none;border:0;color:var(--ember2);text-decoration:underline;cursor:pointer;padding:0}
html:not(.spoilers-on) .spoiler .s-body,html:not(.spoilers-on) .spoiler .s-title{display:none}
.spoilers-on .spoiler .s-locked{display:none}

/* lineages */
.lineage{display:grid;gap:18px;padding:28px 0;border-top:1px solid var(--hair)}
@media (min-width:800px){.lineage{grid-template-columns:260px 1fr}}
.lineage .el{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--lc)}
.lineage .members{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.lineage .members a{display:flex;align-items:center;gap:9px;text-decoration:none;border:1px solid var(--hair);border-radius:999px;padding:4px 12px 4px 4px;font-size:16px}
.lineage .members img{width:34px;height:34px;border-radius:50%;object-fit:cover;object-position:center 15%}
.glow-bar{height:3px;width:64px;background:var(--lc);margin:8px 0 12px}

/* gallery */
.masonry{columns:2 170px;column-gap:10px}
@media (min-width:900px){.masonry{columns:4 220px}}
.masonry a{display:block;break-inside:avoid;margin-bottom:10px;border:1px solid var(--hair);border-radius:3px;overflow:hidden;position:relative}
.masonry span{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(transparent,rgba(0,0,0,.8))}
dialog.lightbox{padding:0;border:0;background:rgba(4,4,6,.96);max-width:100vw;max-height:100vh;width:100vw;height:100vh;color:var(--bone)}
dialog.lightbox::backdrop{background:rgba(0,0,0,.9)}
dialog.lightbox img{display:block;margin:0 auto;max-width:100%;max-height:calc(100% - 56px);width:auto;height:auto}
dialog.lightbox .bar{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 var(--pad);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
dialog.lightbox button{background:none;border:1px solid var(--hair);color:var(--bone);font:inherit;padding:8px 12px;cursor:pointer;border-radius:3px}

/* videos */
.embeds{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start}
.embeds blockquote{margin:0!important}
.social-panel{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:20px}
.social-panel a{display:flex;gap:16px;align-items:center;text-decoration:none;border:1px solid var(--hair);border-radius:4px;padding:20px;background:var(--s1)}
.social-panel a:hover{border-color:var(--ember)}
.social-panel svg{width:30px;height:30px;fill:var(--bone);flex:none}
.social-panel strong{font-family:var(--serif);font-size:18px;display:block}

/* footer */
footer{border-top:1px solid var(--hair);padding:36px 0 44px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone45)}
footer .wrap{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between}
footer a{color:var(--bone70);text-decoration:none}
footer .soc{display:flex;gap:18px;flex-wrap:wrap}
footer .close{font-family:var(--serif);font-size:14px;letter-spacing:.2em;color:var(--bone70);width:100%}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
