:root {
  --paper:#09251e; --surface:#10382c; --surface-soft:#174536;
  --ink:#f0ebd7; --body:#d7dfcb; --muted:#b0c3ad;
  --accent:#d1c18f; --accent-hover:#e6d8ae; --accent-soft:#214b3a;
  --on-accent:#123426; --on-accent-muted:#304d37;
  --line:rgba(211,197,151,.29); --faint:rgba(211,197,151,.13);
  --positive:#bed2b5; --error:#f2b4a5; --error-soft:#4b302b;
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-editorial:"Songti SC","STSong","SimSun",serif;
  --font-data:"Aptos","Segoe UI",system-ui,sans-serif;
  --radius:3px; --radius-control:3px;
  --shadow:0 16px 45px rgba(3,22,15,.26);
  --motion:cubic-bezier(.22,1,.36,1); --z-nav:40;
  color:var(--ink); background:var(--paper); font-family:var(--font-ui);
  font-synthesis:none; -webkit-font-smoothing:antialiased;
}
* { box-sizing:border-box; }
html,body { overflow-x:clip; }
html { scroll-padding-top:24px; }
body { margin:0; min-height:100dvh; font-size:14px; line-height:1.75; background:radial-gradient(ellipse at 50% 36%,rgba(48,101,70,.17),transparent 62%); }
button,input,select { font:inherit; }
button { cursor:pointer; border:0; color:inherit; }
button,a,input,select,summary { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
summary { min-height:44px; }
button:disabled { opacity:.5; cursor:default; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
a { color:inherit; text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:5px; }
h1,h2,h3,h4,p,ol,ul { margin:0; }
h1,h2,h3,h4 { min-width:0; overflow-wrap:anywhere; text-wrap:balance; }
p { text-wrap:pretty; }
input,select { min-width:0; width:100%; min-height:46px; padding:10px 14px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:var(--radius-control); }
input:hover,select:hover { border-color:var(--muted); }
input:focus,select:focus { border-color:var(--accent); }
input::placeholder { color:var(--muted); font-size:14px; }
[hidden] { display:none!important; }
.study-landscape { position:fixed; inset:0; z-index:0; overflow:clip; pointer-events:none; }
.study-landscape svg { display:block; width:100%; height:100%; }
body[data-view]:not([data-view="overview"]) .study-landscape { opacity:.12; }
.landscape-moon { fill:rgba(190,204,167,.055); stroke:rgba(211,197,151,.1); stroke-width:1; }
.mountain-far { fill:#12372b; opacity:.65; }
.mountain-mid { fill:#113124; opacity:.8; }
.mountain-near { fill:#0a2a20; }
.landscape-contour { fill:none; stroke:rgba(177,193,152,.13); stroke-width:1; }
.desk { position:relative; z-index:1; width:100%; max-width:1376px; margin:auto; padding:0 60px; }
.desk::before,.desk::after { content:""; position:absolute; top:65px; bottom:26px; width:1px; background:linear-gradient(transparent,var(--faint) 12%,var(--faint) 85%,transparent); pointer-events:none; }
.desk::before { left:28px; }.desk::after { right:28px; }
.session-tools { display:flex; align-items:center; flex-shrink:0; gap:14px; min-width:0; color:var(--muted); font-size:12px; }
#session-label { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.text-button { min-height:44px; padding:10px 0; background:transparent; color:var(--accent); font-size:12px; white-space:nowrap; }
.text-button:hover { color:var(--accent-hover); }
.text-button:active { transform:translateY(1px); }
.nameplate { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:72px; padding:8px 0; border-bottom:1px solid var(--line); }
.brand-title { min-width:0; }
h1 { font-family:var(--font-editorial); font-size:28px; line-height:1.4; letter-spacing:3px; font-weight:400; white-space:nowrap; }
.seal { display:inline-flex; align-items:center; justify-content:center; width:23px; height:26px; margin-left:9px; color:var(--accent); border:3px double var(--accent); font-size:13px; letter-spacing:0; vertical-align:3px; }
.section-index { margin-bottom:6px; color:var(--muted); font-size:11px; line-height:1.5; letter-spacing:2px; }
h2 { font-family:var(--font-editorial); font-size:26px; font-weight:400; line-height:1.5; letter-spacing:2px; }
.muted { color:var(--muted); }
.primary-button { min-height:46px; padding:10px 18px; background:var(--accent); color:var(--on-accent); border-radius:var(--radius-control); font-size:14px; font-weight:500; white-space:nowrap; transition:transform .25s var(--motion); }
.primary-button:hover { background:var(--accent-hover); }
.primary-button:active { transform:translateY(1px); }
.auth-panel { position:relative; width:100%; max-width:470px; margin:40px auto 80px; padding:36px; border:1px solid var(--line); outline:1px solid var(--faint); outline-offset:7px; background:rgba(13,47,35,.88); box-shadow:var(--shadow); }
.access-mark { display:grid; place-items:center; width:46px; height:50px; margin-bottom:26px; border:3px double var(--accent); color:var(--accent); font:24px var(--font-editorial); }
.auth-panel h2 { margin:8px 0 12px; font-size:25px; }
.auth-panel>.muted { font-size:14px; line-height:1.9; }
.auth-panel form { margin-top:28px; }
.auth-panel label { display:block; margin:20px 0 8px; font-size:14px; }
.auth-panel input { font-size:16px; }
.auth-panel form .primary-button { width:100%; margin-top:24px; }
.login-note { margin-top:28px; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.skip { position:absolute; left:16px; top:-100px; z-index:60; padding:12px; background:var(--accent); color:var(--on-accent); }.skip:focus { top:12px; }
.background-view { position:fixed; inset:0; margin:0; background:#111b18; }
.background-view img { display:block; width:100%; height:100%; object-fit:contain; }

@media (min-width:1500px) {
  .desk { max-width:1456px; padding-left:72px; padding-right:72px; }
}
@media (max-width:1080px) {
  .desk { padding-left:40px; padding-right:40px; }
  .desk::before { left:18px; } .desk::after { right:18px; }
}
@media (max-width:760px) {
  html { scroll-padding-top:16px; }
  .desk { padding-left:max(20px,env(safe-area-inset-left)); padding-right:max(20px,env(safe-area-inset-right)); }
  .desk::before,.desk::after { display:none; }
  .nameplate { min-height:64px; gap:10px; padding:7px 0; }
  h1 { font-size:23px; letter-spacing:2px; }
  .seal { width:20px; height:23px; margin-left:7px; font-size:12px; vertical-align:2px; }
  .section-index { font-size:11px; margin-bottom:4px; letter-spacing:.7px; }
  h2 { font-size:22px; letter-spacing:1px; }
  .primary-button { padding:10px 14px; }
  .auth-panel { margin:30px 0 54px; padding:26px 22px; outline-offset:5px; }
  .auth-panel h2 { font-size:24px; letter-spacing:1px; }
  .access-mark { margin-bottom:24px; }
}
@media (max-width:360px) {
  .desk { padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(16px,env(safe-area-inset-right)); }
  h1 { font-size:21px; letter-spacing:1px; }
  .seal { margin-left:6px; width:18px; height:21px; font-size:11px; }
}
