@font-face{font-family:'Noto Serif Thai';font-weight:700;font-display:swap;src:url(../fonts/noto-serif-thai-700.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:'Noto Serif Thai';font-weight:700;font-display:swap;src:url(../fonts/noto-serif-thai-latin-700.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:'Sarabun';font-weight:400;font-display:swap;src:url(../fonts/sarabun-400.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:'Sarabun';font-weight:400;font-display:swap;src:url(../fonts/sarabun-latin-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:'Sarabun';font-weight:600;font-display:swap;src:url(../fonts/sarabun-600.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:'Sarabun';font-weight:600;font-display:swap;src:url(../fonts/sarabun-latin-600.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}

:root{
  --ink:#14100c;          /* lacquer black */
  --ink-2:#221810;
  --lacquer:#7a1f1a;      /* temple red */
  --lacquer-hi:#9c2b23;
  --gold:#d8b25a;         /* gilt */
  --gold-soft:#b8964a;
  --cream:#f3e7c9;
  --cream-dim:#d9c9a4;
  --sky-top:#2a1a2e;
  --sky-mid:#8a3b25;
  --sky-low:#e0913f;
  --focus:#ffe08a;
  --radius:10px;
  --font-title:'Noto Serif Thai',Georgia,serif;
  --font-body:'Sarabun',system-ui,-apple-system,'Segoe UI',sans-serif;
  --step:1rem;
}
:root[data-text-size="large"]{--step:1.15rem}

*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;background:var(--ink)}
body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 55%,var(--sky-low) 78%,var(--ink) 100%);color:var(--cream);font-family:var(--font-body);font-size:var(--step);line-height:1.6;overflow-x:hidden}

.skip-link{position:absolute;left:16px;top:-60px;z-index:10;background:var(--gold);color:var(--ink);padding:8px 14px;border-radius:6px;font-weight:600;text-decoration:none}
.skip-link:focus{top:12px}

.scene{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.scene::before{content:'';position:absolute;left:50%;top:44%;width:min(46vw,420px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#ffd98a 0%,#f4a64a 45%,rgba(224,145,63,0) 70%);opacity:.85}
.skyline{position:absolute;left:0;right:0;bottom:0;width:100%;height:min(40vh,460px)}
.skyline .far{fill:#4a2418;opacity:.75}
.skyline .near{fill:#1a110b}
.skyline .ripples{stroke:#e0913f;stroke-width:2;opacity:.35;fill:none}
:root:not([data-reduce-motion="true"]) .skyline .ripples{animation:shimmer 6s ease-in-out infinite}
@keyframes shimmer{50%{opacity:.12}}
@media (prefers-reduced-motion:reduce){.skyline .ripples{animation:none!important}}

.menu-shell{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:48px 16px 24px;text-align:center}
.title-block{max-width:40rem}
.era{margin:0 0 4px;color:var(--gold);letter-spacing:.12em;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.8)}
.title{margin:0;font-family:var(--font-title);font-weight:700;font-size:clamp(2.6rem,9vw,5rem);line-height:1.25;color:var(--cream);text-shadow:0 2px 0 #3a1a10,0 0 24px rgba(0,0,0,.45)}
.subtitle{margin:2px 0 10px;font-family:var(--font-title);font-weight:700;color:var(--gold);font-size:clamp(1rem,2.6vw,1.3rem);letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.8)}
.tagline{margin:0;color:var(--cream);text-shadow:0 1px 3px rgba(0,0,0,.7)}

.menu{width:min(100%,24rem);outline:none}
.menu-list{list-style:none;margin:0;padding:14px;display:flex;flex-direction:column;gap:10px;background:rgba(20,16,12,.82);border:1px solid var(--gold-soft);border-radius:var(--radius);box-shadow:0 0 0 4px rgba(20,16,12,.55),0 18px 40px rgba(0,0,0,.45);backdrop-filter:blur(4px)}
.menu-item{width:100%;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:8px 16px;border:1px solid var(--gold-soft);border-radius:8px;background:var(--ink-2);color:var(--cream);font:inherit;cursor:pointer;transition:background-color .15s,border-color .15s}
.menu-item .menu-label{font-family:var(--font-title);font-weight:700;font-size:1.15em;line-height:1.35}
.menu-item .menu-hint{font-size:.85em;color:var(--cream-dim)}
.menu-item:hover{background:#2e2016;border-color:var(--gold)}
.menu-item.is-primary{background:var(--lacquer);border-color:var(--gold)}
.menu-item.is-primary:hover{background:var(--lacquer-hi)}
.menu-item[aria-disabled="true"]{cursor:not-allowed;background:transparent;border-style:dashed;color:var(--cream-dim)}
.menu-item[aria-disabled="true"] .menu-hint{color:var(--cream-dim)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}

.status{min-height:1.6em;margin:0;color:var(--cream);text-shadow:0 1px 3px #000}

.site-footer{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;gap:16px;padding:10px 16px 14px;background:rgba(20,16,12,.85);color:var(--cream-dim);font-size:.875rem}
.version{font-variant-numeric:tabular-nums}
.link-button{background:none;border:0;color:var(--gold);font:inherit;text-decoration:underline;cursor:pointer;min-height:44px;padding:0 8px}

dialog.panel{width:min(92vw,30rem);max-height:86vh;overflow:auto;padding:22px 24px;border:1px solid var(--gold);border-radius:var(--radius);background:var(--ink-2);color:var(--cream);font-size:var(--step)}
dialog.panel::backdrop{background:rgba(10,6,4,.72)}
dialog.panel h2{margin:0 0 10px;font-family:var(--font-title);color:var(--gold);font-size:1.4em}
dialog.panel p{margin:0 0 12px}
dialog fieldset{border:1px solid var(--gold-soft);border-radius:8px;margin:0 0 12px;padding:8px 14px 12px}
dialog legend{padding:0 6px;color:var(--gold)}
dialog label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
dialog input{width:20px;height:20px;accent-color:var(--gold)}
.plain{margin:0 0 14px;padding-left:1.2em}
.actions{display:flex;justify-content:flex-end}
.btn{min-height:44px;min-width:96px;padding:8px 18px;border:1px solid var(--gold);border-radius:8px;background:var(--lacquer);color:var(--cream);font:inherit;font-weight:600;cursor:pointer}
.btn:hover{background:var(--lacquer-hi)}
.noscript{position:fixed;inset:auto 0 0;z-index:5;margin:0;padding:12px;background:var(--lacquer);text-align:center}

@media (max-height:560px){.menu-shell{gap:14px;padding-top:20px}.title{font-size:2.2rem}.tagline{display:none}}
