@font-face {
  font-family:"OpenSlay Display";
  src:url('assets/openslay-display.woff2') format('woff2');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
:root {
  --paper:#eee6d6;
  --paper-light:#f6f0e5;
  --ink:#292820;
  --muted:#686254;
  --red:#89372c;
  --line:#b9ad96;
  --serif:"Songti SC","Noto Serif CJK SC","STSong",SimSun,serif;
  --brush:"OpenSlay Display","Kaiti SC",STKaiti,KaiTi,var(--serif);
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:2rem;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:1rem/1.85 var(--serif);
  -webkit-font-smoothing:antialiased;
}
a {
  color:inherit;
  text-decoration:none;
}
button {
  font:inherit;
  color:inherit;
}
button,a {
  -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--red);
  outline-offset:6px;
}
button {
  cursor:pointer;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
p,h1,h2,h3,figure {
  margin:0;
}
p+p {
  margin-top:1rem;
}
h2 {
  font-family:var(--brush);
  font-size:clamp(2.6rem,4.4vw,4.2rem);
  font-weight:400;
  line-height:1.35;
  letter-spacing:.08em;
}
h3 {
  font-family:var(--brush);
  font-size:1.65rem;
  line-height:1.5;
  font-weight:400;
}
::selection {
  background:#89372c;
  color:var(--paper-light);
}
.sr-only,.skip-link:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}
.skip-link:focus {
  position:fixed;
  z-index:20;
  top:1rem;
  left:1rem;
  padding:.6rem 1rem;
  background:var(--paper-light);
}
.section-wrap {
  max-width:1280px;
  margin:0 auto;
  padding-left:5rem;
  padding-right:5rem;
}
.eyebrow {
  font:500 .8rem/1.6 Georgia,var(--serif);
  letter-spacing:.22em;
}
.chapter {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid currentColor;
  width:1.8rem;
  height:1.8rem;
  margin-right:.8rem;
  font:1rem var(--serif);
  letter-spacing:0;
  color:var(--red);
}
.lead {
  font-size:1.3rem;
  line-height:1.9;
}
.muted {
  color:var(--muted);
}
.site-header {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:1.3rem 5%;
  border-bottom:1px solid #51493736;
  background:#eee6d6dc;
}
.brand {
  display:inline-flex;
  gap:.7rem;
  align-items:center;
  font:italic 1.75rem Georgia,serif;
  letter-spacing:-.06em;
}
.brand-seal {
  font:1rem var(--serif);
  color:var(--paper-light);
  background:var(--red);
  padding:.2rem .25rem;
  border-radius:2px;
}
.site-header nav {
  display:flex;
  gap:2.8rem;
  font-family:var(--brush);
  font-size:1.2rem;
  letter-spacing:.1em;
}
.site-header nav a {
  padding:.3rem 0;
  border-bottom:1px solid transparent;
}
.site-header nav a:hover {
  border-color:var(--red);
  color:var(--red);
}
.header-note {
  font-size:.875rem;
  color:var(--red);
  white-space:nowrap;
}
.header-note span {
  margin-left:.5rem;
}
.hero {
  position:relative;
  min-height:780px;
  height:100svh;
  max-height:1080px;
  display:grid;
  place-items:center;
  overflow:hidden;
  text-align:center;
}
.hero-art {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,#eee6d633 0%,#eee6d622 56%,#171b1866 100%),url('assets/hero.webp') center center/cover no-repeat;
  z-index:0;
}
.hero-copy {
  position:relative;
  z-index:1;
  padding:5.5rem 1.5rem 7rem;
  align-self:center;
}
.hero .eyebrow {
  color:#504c3e;
  font-size:.78rem;
  letter-spacing:.3em;
}
.wordmark {
  width:clamp(330px,45vw,670px);
  margin:-1.1rem auto -1.3rem;
}
.hero-line {
  font:400 clamp(1.7rem,2.6vw,2.6rem)/1.55 var(--brush);
  letter-spacing:.16em;
}
.hero-description {
  font-size:1.05rem;
  line-height:1.95;
  margin-top:1rem;
  color:#3f3c31;
  text-shadow:0 1px 9px var(--paper);
}
.button {
  font-family:var(--brush);
  font-size:1.2rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:2.8rem;
  min-height:52px;
  padding:.65rem 1.65rem;
  letter-spacing:.15em;
  border:1px solid transparent;
  transition:background .2s,transform .2s;
}
.button-red {
  background:var(--red);
  color:#fff4df;
  box-shadow:3px 3px 0 #eee6d673,4px 4px 0 #89372c;
}
.button-red:hover {
  background:#702b22;
  transform:translateY(-2px);
}
.hero .button {
  margin-top:2rem;
}
.vertical-note {
  position:absolute;
  left:6%;
  top:33%;
  writing-mode:vertical-rl;
  letter-spacing:.5em;
  font-size:.875rem;
  color:#514e42;
}
.scroll-cue {
  position:absolute;
  bottom:2.2rem;
  left:50%;
  transform:translateX(-50%);
  z-index:1;
  color:#fff1d6;
  font-size:.8rem;
  letter-spacing:.3em;
  text-shadow:0 1px 3px #000;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.7rem;
}
.scroll-line {
  height:35px;
  width:1px;
  background:currentColor;
}
.hero-caption {
  position:absolute;
  right:4%;
  bottom:2.2rem;
  color:#eadfc9;
  font-size:.75rem;
  letter-spacing:.2em;
}
.intro {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:4rem 6rem;
  padding-top:7.5rem;
  padding-bottom:6.5rem;
}
.section-heading h2 {
  margin-top:1.5rem;
}
.intro-copy {
  padding-top:3.4rem;
  color:var(--muted);
}
.intro-copy .lead {
  color:var(--ink);
  margin-bottom:1.3rem;
}
.factions {
  display:flex;
  align-items:center;
  gap:1.5rem;
  padding-top:.7rem;
  color:var(--red);
}
.factions span {
  font:1.65rem var(--brush);
}
.factions small {
  font-size:.875rem;
  color:var(--muted);
  margin-left:.5rem;
}
.features {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:3.5rem;
  border-top:1px solid var(--line);
  padding-top:2.3rem;
}
.feature-number {
  font-size:.8rem;
  letter-spacing:.12em;
  color:var(--red);
}
.features h3 {
  margin:.8rem 0 .7rem;
}
.features p {
  color:var(--muted);
  line-height:1.9;
}
.glimpse {
  background:var(--paper-light);
  padding:5rem 0 5.5rem;
  border-top:1px solid #b9ad9666;
  border-bottom:1px solid #b9ad9666;
}
.gallery-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:2.5rem;
}
.gallery-heading h2 {
  margin-top:1.3rem;
}
.gallery-heading>p {
  font-size:.875rem;
  line-height:1.8;
  padding-bottom:.5rem;
  text-align:right;
}
.gallery-layout {
  display:grid;
  grid-template-columns:minmax(0,2.7fr) minmax(210px,1fr);
  gap:3rem;
  align-items:center;
}
.screenshot-link {
  display:block;
  position:relative;
  box-shadow:0 12px 32px #423b291f;
  border:5px solid #eee6d6;
  outline:1px solid var(--line);
  cursor:zoom-in;
}
.screenshot-link img {
  width:100%;
  aspect-ratio:16/9;
}
.image-expand {
  position:absolute;
  bottom:.7rem;
  right:.7rem;
  color:var(--paper-light);
  background:#252620d9;
  padding:.15rem .65rem;
  font-size:.8rem;
  opacity:0;
  transition:opacity .2s;
}
.screenshot-link:hover .image-expand,.screenshot-link:focus-visible .image-expand {
  opacity:1;
}
.screenshot-figure figcaption {
  font-size:.8rem;
  letter-spacing:.08em;
  color:var(--muted);
  padding-top:1rem;
}
.gallery-poem {
  font:1.8rem/1.6 var(--brush);
  letter-spacing:.08em;
}
.gallery-aside>p+p {
  font-size:1rem;
  color:var(--muted);
  line-height:1.9;
  margin-top:1rem;
}
.gallery-controls {
  margin-top:1.8rem;
  border-top:1px solid var(--line);
}
.gallery-choice {
  font-family:var(--brush);
  display:flex;
  align-items:center;
  gap:1rem;
  background:none;
  border:0;
  border-bottom:1px solid var(--line);
  width:100%;
  padding:.75rem .2rem;
  text-align:left;
  font-size:1.15rem;
  min-height:52px;
}
.gallery-choice span:first-child {
  font:italic .8rem Georgia,serif;
  color:var(--muted);
}
.gallery-choice span:last-child {
  margin-left:auto;
}
.gallery-choice[aria-pressed="true"] {
  color:var(--red);
}
.gallery-choice[aria-pressed="true"] span:first-child {
  color:var(--red);
}
.gallery-choice:hover {
  background:#e9deca80;
}
.verification {
  color:#f1e8d8;
  background:linear-gradient(100deg,#1d2420f5,#1d2420e8),url('assets/mountains.webp') center/cover;
}
.verification-inner {
  padding-top:5.7rem;
  padding-bottom:4.5rem;
}
.verification .eyebrow {
  color:#cabc9f;
}
.verification .chapter {
  color:#c2ab83;
}
.verification-heading {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:6rem;
  margin-top:1.6rem;
}
.verification-heading>div {
  padding-top:.6rem;
}
.verification-heading .lead {
  margin-bottom:.8rem;
}
.verification-heading p:not(.lead) {
  color:#d0cbbb;
}
.text-link {
  display:inline-block;
  margin-top:1.5rem;
  border-bottom:1px solid #a9916c;
  padding-bottom:.35rem;
  color:#e5ceaa;
  font-size:.95rem;
}
.text-link span[aria-hidden] {
  margin-left:1.5rem;
}
.text-link:hover {
  color:#fff4e1;
  border-color:#fff4e1;
}
.verification a:focus-visible {
  outline-color:#e5ceaa;
}
.verification-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  padding:2rem 0 0;
  margin:3rem 0 0;
  list-style:none;
  border-top:1px solid #cabc9f55;
  gap:2rem;
}
.verification-steps li {
  display:flex;
  align-items:start;
  gap:1.5rem;
}
.verification-steps li>span {
  font:1.5rem/1.7 var(--brush);
  color:#c0a67d;
}
.verification-steps h3 {
  font-size:1.3rem;
}
.verification-steps p {
  font-size:1rem;
  color:#c4c0b0;
}
.verification-scope {
  font-size:.8rem;
  color:#b0ad9d;
  margin-top:2rem;
}
.development {
  text-align:center;
  padding-top:5.5rem;
  padding-bottom:5.5rem;
}
.closing-seal {
  display:inline-block;
  color:var(--red);
  border:2px solid var(--red);
  outline:1px solid var(--red);
  outline-offset:3px;
  font:1.5rem/1.1 var(--brush);
  padding:.35rem .45rem;
  margin-bottom:2rem;
  transform:rotate(-5deg);
}
.development .eyebrow {
  color:var(--muted);
}
.development h2 {
  font-size:clamp(2rem,3.3vw,3.2rem);
  margin-top:1rem;
}
.development>p:not(.eyebrow) {
  color:var(--muted);
  margin-top:1.3rem;
}
.development-label {
  display:inline-block;
  font-size:.875rem;
  letter-spacing:.15em;
  border:1px solid var(--line);
  padding:.4rem 1.4rem;
  margin-top:1.8rem;
}
.site-footer {
  border-top:1px solid var(--line);
  padding-top:1.4rem;
  padding-bottom:1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.site-footer .brand {
  font-size:1.5rem;
}
.site-footer p,.site-footer>a:last-child {
  font-size:.8rem;
  color:var(--muted);
}
dialog {
  max-width:min(95vw,1680px);
  max-height:95svh;
  width:fit-content;
  padding:3rem 1rem 1rem;
  border:1px solid #b9ad9680;
  background:#242720;
  color:var(--paper-light);
}
dialog::backdrop {
  background:#151914e8;
}
dialog img {
  max-height:78svh;
  object-fit:contain;
}
dialog p {
  font-size:.875rem;
  margin-top:.6rem;
}
.dialog-close {
  position:absolute;
  right:1rem;
  top:.2rem;
  border:0;
  background:none;
  color:var(--paper-light);
  font-size:.875rem;
  min-height:40px;
  padding:0 .4rem;
}
.dialog-close:focus-visible {
  outline-color:var(--paper-light);
}
body:has(dialog[open]) {
  overflow:hidden;
}
@media(min-width:1600px) {
  .hero-copy {
    padding-bottom:6rem;
  }
  .hero-line {
    margin-top:.5rem;
  }
}
@media(max-width:1000px) {
  .section-wrap {
    padding-left:2.5rem;
    padding-right:2.5rem;
  }
  .site-header {
    gap:1rem;
  }
  .site-header nav {
    gap:1.6rem;
  }
  .intro,.verification-heading {
    column-gap:3rem;
  }
  .features {
    gap:2rem;
  }
  .gallery-layout {
    grid-template-columns:minmax(0,2fr) minmax(200px,1fr);
    gap:2rem;
  }
  .vertical-note {
    left:4%;
  }
  .hero {
    min-height:740px;
  }
  .wordmark {
    width:560px;
    max-width:75vw;
  }
  .hero-caption {
    display:none;
  }
  .gallery-poem {
    font-size:1.5rem;
  }
  .gallery-aside>p+p {
    font-size:1rem;
  }
}
@media(max-width:700px) {
  html {
    scroll-padding-top:1.5rem;
  }
  .section-wrap {
    padding-left:1.5rem;
    padding-right:1.5rem;
  }
  .site-header {
    padding:1rem 1.4rem;
    flex-wrap:wrap;
    gap:.55rem 1rem;
  }
  .site-header .brand {
    font-size:1.45rem;
  }
  .brand-seal {
    font-size:.85rem;
  }
  .site-header nav {
    order:3;
    justify-content:space-between;
    gap:1rem;
    width:100%;
    font-size:1.1rem;
  }
  .header-note {
    font-size:.8rem;
  }
  .hero {
    height:90svh;
    min-height:700px;
    max-height:880px;
  }
  .hero-art {
    background-position:47% center;
  }
  .hero-copy {
    padding:8rem 1rem 6rem;
  }
  .hero .eyebrow {
    font-size:.7rem;
    letter-spacing:.17em;
  }
  .wordmark {
    width:88vw;
    max-width:500px;
    margin:-.2rem auto -.3rem;
  }
  .hero-line {
    font-size:1.75rem;
    letter-spacing:.06em;
  }
  .hero-description {
    font-size:1rem;
    line-height:1.85;
    margin-top:1.2rem;
  }
  .hero .button {
    margin-top:1.7rem;
  }
  .vertical-note {
    display:none;
  }
  .scroll-cue {
    bottom:1.8rem;
  }
  .intro {
    display:block;
    padding-top:4rem;
    padding-bottom:3.7rem;
  }
  .intro-copy {
    padding-top:1.8rem;
  }
  .lead {
    font-size:1.15rem;
  }
  .desktop-break {
    display:none;
  }
  .factions {
    gap:1.4rem;
  }
  .factions small {
    margin-left:0;
  }
  .features {
    display:block;
    margin-top:2.5rem;
    padding-top:0;
    border-top:0;
  }
  .features article {
    padding-top:1.5rem;
    margin-top:1.5rem;
    border-top:1px solid var(--line);
  }
  .features h3 {
    font-size:1.6rem;
    margin:.45rem 0;
  }
  .glimpse {
    padding:3.5rem 0;
  }
  .gallery-heading {
    display:block;
    margin-bottom:1.8rem;
  }
  .gallery-heading>p {
    text-align:left;
    margin-top:1rem;
  }
  .gallery-heading>p br {
    display:none;
  }
  .gallery-heading .muted {
    display:block;
  }
  .gallery-layout {
    display:flex;
    flex-direction:column;
    gap:1.2rem;
    align-items:stretch;
  }
  .gallery-aside {
    display:flex;
    flex-direction:column;
  }
  .gallery-poem,.gallery-aside>p+p {
    display:none;
  }
  .gallery-controls {
    margin-top:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.3rem;
    border-top:0;
  }
  .gallery-choice {
    border-top:1px solid var(--line);
    gap:.65rem;
  }
  .image-expand {
    opacity:1;
  }
  .verification-inner {
    padding-top:3.5rem;
    padding-bottom:3rem;
  }
  .verification-heading {
    display:block;
    margin-top:1.5rem;
  }
  .verification-heading>div {
    padding-top:1.7rem;
  }
  .verification-steps {
    display:block;
    margin-top:2.3rem;
    padding-top:.5rem;
  }
  .verification-steps li {
    margin-top:1.4rem;
  }
  .verification-steps p {
    font-size:1rem;
  }
  .verification-scope {
    font-size:.875rem;
  }
  .development {
    padding-top:4rem;
    padding-bottom:4rem;
  }
  .development h2 {
    letter-spacing:.02em;
  }
  .site-footer {
    flex-wrap:wrap;
    gap:.7rem 1rem;
  }
  .site-footer p {
    order:3;
    flex-basis:100%;
    margin-top:0;
  }
  .site-footer>a:last-child {
    font-size:.875rem;
  }
  dialog {
    padding:3rem .5rem .7rem;
    max-width:98vw;
  }
  .eyebrow {
    font-size:.75rem;
  }
  .chapter {
    margin-right:.55rem;
  }
  h2 {
    font-size:2.8rem;
  }
}
@media(max-width:380px) {
  .factions {
    flex-wrap:wrap;
    gap:.8rem 1.5rem;
  }
  .factions small {
    flex-basis:100%;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
  }
}
