:root {
  color-scheme: light;
  --bg: #F6EFE2;
  --panel: #FFFCF6;
  --recess: #EEE4D5;
  --border: #D9CDBD;
  --accent: #806A53;
  --deep: #604C39;
  --text: #302820;
  --muted: #686A72;
  --success: #526B57;
  --warn: #8A692D;
  --error: #A34F49;
  --white: #FFFFFF;
  --copper-light: #C6B297;
  --copper-mid: #AC957B;
  --flag-red: #CB3D47;
  --flag-blue: #384768;
  --clear: transparent;
  --haze: rgba(128, 106, 83, .06);
  --shade: rgba(128, 106, 83, .12);
  --shade-strong: rgba(128, 106, 83, .19);
  --shine: rgba(255, 255, 255, .88);
  --button-shine: rgba(255, 255, 255, .2);
  --veil: rgba(48, 40, 32, .3);
  --font: 'Inter', 'Noto Sans SC', 'Noto Sans JP', 'Noto Sans KR', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
  --font-display: var(--font);
  --mono: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;
  --regular: 400;
  --medium: 500;
  --semibold: 600;
  --display: 64px;
  --tablet-display: 52px;
  --mobile-display: 36px;
  --heading-two: 36px;
  --heading-three: 24px;
  --body: 18px;
  --small: 14px;
  --tiny: 12px;
  --micro: 10px;
  --nav-type: 15px;
  --brand-type: 25px;
  --price-type: 25px;
  --mobile-price: 23px;
  --mobile-brand: 21px;
  --line: 1.6;
  --heading-line: 1.2;
  --mobile-heading-line: 1.3;
  --tight: -.02em;
  --wide: .08em;
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 20px;
  --s6: 24px;
  --s8: 32px;
  --s10: 40px;
  --s12: 48px;
  --s14: 56px;
  --s16: 64px;
  --s20: 80px;
  --s24: 96px;
  --gutter: 24px;
  --radius: 8px;
  --flag-radius: 3px;
  --pill: 999px;
  --circle: 50%;
  --hair: 1px;
  --rule: 2px;
  --focus-width: 3px;
  --stroke: 1.6;
  --node-mark-stroke: 2.3;
  --tap: 44px;
  --header-height: 80px;
  --header-width: 1312px;
  --content-width: 1160px;
  --reading-width: 800px;
  --board-width: 1040px;
  --tablet-board-width: 900px;
  --board-height: 376px;
  --flow-height: 144px;
  --disc: 68px;
  --mobile-disc: 60px;
  --node-width: 128px;
  --node-height: 98px;
  --mobile-node-width: 112px;
  --mobile-node-height: 92px;
  --tag-width: 156px;
  --payment-width: 180px;
  --tag-top: 148px;
  --account-offset: -172px;
  --payment-offset: -196px;
  --flow-line-top: 57px;
  --logo-size: 36px;
  --mobile-logo-size: 28px;
  --platform-icon: 21px;
  --mobile-platform-icon: 17px;
  --coin-icon: 31px;
  --flag-width: 22px;
  --flag-height: 16px;
  --mobile-flag-width: 19px;
  --mobile-flag-height: 14px;
  --table-width: 680px;
  --menu-width: 200px;
  --toc-height: 64px;
  --anchor-gap: 16px;
  --anchor-offset: calc(var(--header-height) + var(--anchor-gap));
  --toc-offset: calc(var(--toc-height) + var(--anchor-gap));
  --layer-header: 30;
  --layer-drawer: 3;
  --layer-menu: 4;
  --layer-veil: 1;
  --layer-toc: 10;
  --paper-shadow: 0 16px 40px var(--shade), 0 3px 6px var(--haze), inset 0 1px 0 var(--white);
  --coin-shadow: 0 7px 0 var(--border), 0 13px 18px var(--shade-strong), inset 0 2px 1px var(--white);
  --tag-shadow: 0 12px 24px var(--shade), inset 0 1px 0 var(--white);
  --button-shadow: 0 5px 12px var(--shade-strong), inset 0 1px 0 var(--button-shine);
  --inset-shadow: inset 0 1px 3px var(--haze);
  --flag-shadow: 0 0 0 var(--hair) var(--border);
  --node-shadow: drop-shadow(0 9px 7px var(--shade));
  --duration: 180ms;
  --reveal-duration: 600ms;
  --ease: cubic-bezier(.22, .61, .36, 1);
  --reveal-shift: 16px;
  --decor-tilt: 3deg;
}
* { box-sizing: border-box; }
html {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: var(--body);
  scroll-padding-top: var(--anchor-offset);
  scroll-behavior: smooth;
}
body { margin: 0; font-weight: var(--regular); line-height: var(--line); }
html.nav-open { overflow: hidden; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--deep); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
img, svg { display: block; max-width: 100%; }
svg { flex-shrink: 0; }
img { height: auto; }
figure { margin: 0; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: var(--regular); overflow-wrap: break-word; }
h1 {
  font-size: var(--display);
  line-height: var(--heading-line);
  letter-spacing: var(--tight);
  margin: var(--s4) 0 var(--s6);
  text-wrap: balance;
}
h2 { font-size: var(--heading-two); line-height: var(--mobile-heading-line); margin: 0 0 var(--s6); text-wrap: balance; }
h3 { font-size: var(--heading-three); line-height: var(--mobile-heading-line); margin: 0 0 var(--s4); }
h4 { font-size: var(--body); margin: 0 0 var(--s3); }
p { margin: 0 0 var(--s6); overflow-wrap: break-word; }
strong { font-weight: var(--semibold); }
ul, ol { padding-left: var(--s6); }
li + li { margin-top: var(--s2); }
code { font-family: var(--mono); font-size: .9em; overflow-wrap: anywhere; }
pre { max-width: 100%; overflow-x: auto; padding: var(--s6); border-radius: var(--radius); background: var(--recess); }
pre code { overflow-wrap: normal; white-space: pre; }
hr { border: 0; border-top: var(--hair) solid var(--border); margin: var(--s8) 0; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--focus-width) solid var(--accent);
  outline-offset: var(--s1);
}
.no-break { white-space: nowrap; }
.wrap { width: 100%; max-width: var(--content-width); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-top: var(--s20); padding-bottom: var(--s20); }
.reading { max-width: var(--reading-width); }
.prose { min-width: 0; }
.prose h2 { margin-top: var(--s16); }
.prose h3 { margin-top: var(--s10); }
.prose a:not(.btn) { text-decoration: underline; text-underline-offset: var(--s1); color: var(--deep); }
.prose > :last-child { margin-bottom: 0; }
.muted { color: var(--muted); }
.small { font-size: var(--small); }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.centered { text-align: center; }
.grid-pair, .card-grid { display: grid; gap: var(--s6); }
.grid-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
:where(.wrap, .grid-pair, .card-grid, .top-inner, .footer-grid, .feature-row) > * { min-width: 0; }
.panel, .card {
  min-width: 0;
  padding: var(--s8);
  background: var(--panel);
  border: var(--hair) solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--paper-shadow);
}
.panel-inset { background: var(--recess); border-radius: var(--radius); padding: var(--s6); box-shadow: var(--inset-shadow); }
.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--s6);
  border: var(--hair) solid var(--border);
  border-radius: var(--radius);
  font-weight: var(--medium);
  min-height: var(--s14);
  padding: var(--s3) var(--s8);
  background: var(--panel);
  color: var(--text);
  text-align: center;
  max-width: 100%;
  transition: background-color var(--duration), color var(--duration), box-shadow var(--duration);
}
.btn svg { width: var(--s5); height: var(--s5); }
.btn-primary { background: linear-gradient(150deg, var(--accent), var(--deep)); color: var(--panel); border-color: var(--accent); box-shadow: var(--button-shadow); }
.btn-primary:hover, .btn-primary.is-hover { color: var(--white); background: var(--deep); }
.btn-secondary:hover, .btn-login:hover { background: var(--recess); }
.btn-login { min-height: var(--s10); padding: var(--s2) var(--s6); border-color: var(--accent); color: var(--deep); white-space: nowrap; }
.btn:active, .btn.is-pressed { box-shadow: var(--inset-shadow); background: var(--recess); color: var(--deep); }
.btn:disabled, .btn[aria-disabled="true"] { color: var(--muted); background: var(--recess); border-color: var(--border); box-shadow: none; }
.btn.is-focus { outline: var(--focus-width) solid var(--accent); outline-offset: var(--s1); }
.site-top { position: relative; z-index: var(--layer-header); height: var(--header-height); background: var(--panel); border-bottom: var(--hair) solid var(--border); }
.top-inner { max-width: var(--header-width); height: 100%; margin: auto; display: flex; align-items: center; gap: var(--s6); padding: 0 var(--s4); }
.brand { display: inline-flex; align-items: center; gap: var(--s3); font-size: var(--brand-type); font-weight: var(--semibold); letter-spacing: var(--tight); margin-right: auto; flex-shrink: 0; }
.brand img { width: var(--logo-size); height: var(--logo-size); }
.brand-local { font-size: var(--small); font-weight: var(--regular); color: var(--muted); }
.primary-nav { display: flex; align-items: center; gap: var(--s1); font-size: var(--nav-type); }
.primary-nav a { padding: var(--s2) var(--s3); white-space: nowrap; color: var(--muted); border-radius: var(--pill); }
.primary-nav a[aria-current="page"] { color: var(--deep); background: var(--recess); }
.primary-nav a:hover { background: var(--bg); color: var(--deep); }
.top-actions { display: flex; align-items: center; gap: var(--s6); font-size: var(--small); flex-shrink: 0; }
.language-box { position: relative; }
.language { display: inline-flex; align-items: center; justify-content: center; min-height: var(--tap); gap: var(--s2); padding: var(--s1); border: 0; background: var(--clear); white-space: nowrap; color: var(--muted); }
.language-short { display: none; }
.language-menu { position: absolute; top: 100%; right: 0; width: var(--menu-width); padding: var(--s2); background: var(--panel); border: var(--hair) solid var(--border); border-radius: var(--radius); box-shadow: var(--tag-shadow); z-index: var(--layer-menu); }
.language-menu a { display: flex; align-items: center; min-height: var(--tap); padding: var(--s2) var(--s3); border-radius: var(--radius); }
.language-menu a:hover, .language-menu a[aria-current] { background: var(--recess); color: var(--deep); }
.menu-toggle { display: none; align-items: center; justify-content: center; min-width: var(--tap); min-height: var(--tap); border: var(--hair) solid var(--border); border-radius: var(--radius); background: var(--bg); }
.menu-toggle svg { width: var(--s6); height: var(--s6); }
.mobile-drawer { display: none; }
.nav-veil { position: fixed; inset: var(--header-height) 0 0; border: 0; padding: 0; background: var(--veil); z-index: var(--layer-veil); }
.icon-line { fill: none; stroke: currentColor; stroke-width: var(--stroke); stroke-linecap: round; stroke-linejoin: round; }
.site-footer { background: var(--recess); border-top: var(--hair) solid var(--border); padding-top: var(--s16); padding-bottom: var(--s8); }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: var(--s10); }
.footer-brand p { margin-top: var(--s5); color: var(--muted); font-size: var(--small); }
.footer-heading { font-size: var(--small); font-weight: var(--semibold); color: var(--deep); margin: 0 0 var(--s4); }
.footer-links { list-style: none; margin: 0; padding: 0; font-size: var(--small); }
.footer-links li + li { margin-top: var(--s1); }
.footer-links a { display: inline-flex; align-items: center; min-height: var(--s8); padding-block: var(--s1); overflow-wrap: anywhere; }
.footer-links a:hover { text-decoration: underline; text-underline-offset: var(--s1); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--s4); margin-top: var(--s12); padding-top: var(--s6); border-top: var(--hair) solid var(--border); font-size: var(--tiny); color: var(--muted); }
.legal-links { display: flex; gap: var(--s5); flex-wrap: wrap; }
.legal-links a { display: inline-flex; align-items: center; min-height: var(--s8); }
.reveal { transition: opacity var(--reveal-duration) var(--ease), transform var(--reveal-duration) var(--ease); }
.reveal.pending { opacity: 0; transform: translateY(var(--reveal-shift)); }
.reveal.shown { opacity: 1; transform: none; }
.decor-zone { position: relative; overflow-x: clip; isolation: isolate; }
.paper-glow { position: absolute; inset: var(--s8) 0; pointer-events: none; z-index: -1; background: radial-gradient(ellipse at center, var(--shade), var(--clear) 72%); }
#server-status { display: block; position: static; min-width: 0; max-width: 100%; overflow: hidden; margin-block: var(--s8); }
#server-status > * { min-width: 0; max-width: 100%; }
#server-status + * { margin-top: var(--s8); }
.skip-link { position: absolute; left: var(--s4); top: var(--s4); z-index: var(--layer-menu); padding: var(--s3); background: var(--panel); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
@media (max-width: 1390px) {
  .top-inner, .top-actions { gap: var(--s4); }
  .primary-nav { gap: 0; }
  .primary-nav a { padding: var(--s2); }
}
@media (max-width: 1100px) {
  .primary-nav { display: none; }
  .top-actions { margin-left: auto; gap: var(--s3); }
  .menu-toggle { display: inline-flex; }
  .mobile-drawer { display: block; position: absolute; top: 100%; left: 0; right: 0; z-index: var(--layer-drawer); padding: var(--s4) var(--gutter); max-height: calc(100dvh - var(--header-height)); overflow-y: auto; overscroll-behavior: contain; background: var(--panel); border-bottom: var(--hair) solid var(--border); box-shadow: var(--tag-shadow); }
  .mobile-drawer a { display: flex; width: 100%; align-items: center; min-height: var(--tap); padding: var(--s3) var(--s4); border-radius: var(--radius); color: var(--muted); }
  .mobile-drawer a:hover, .mobile-drawer a[aria-current="page"] { background: var(--recess); color: var(--deep); }
  .drawer-languages { border-top: var(--hair) solid var(--border); padding-top: var(--s3); margin-top: var(--s3); }
  .drawer-label { margin: var(--s2) var(--s4); font-size: var(--tiny); color: var(--muted); }
  h1 { font-size: var(--tablet-display); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  h1 { font-size: var(--mobile-display); }
  .card-grid { grid-template-columns: minmax(0, 1fr); }
  .section { padding-top: var(--s12); padding-bottom: var(--s12); }
}
@media (max-width: 640px) {
  :root { --gutter: 16px; --header-height: 68px; --heading-two: 28px; }
  .no-break { white-space: normal; }
  .top-inner { padding-inline: var(--gutter); gap: var(--s2); }
  .brand { font-size: var(--mobile-brand); gap: var(--s2); }
  .brand img { width: var(--mobile-logo-size); height: var(--mobile-logo-size); }
  .top-actions { margin-left: auto; gap: var(--s2); font-size: var(--tiny); }
  .language-long { display: none; }
  .language-short { display: inline; }
  .language { padding: 0; }
  .btn-login { padding: var(--s1) var(--s3); min-height: var(--tap); }
  .brand-local { display: none; }
  h1 { font-size: var(--mobile-display); line-height: var(--mobile-heading-line); }
  .grid-pair, .footer-grid { grid-template-columns: minmax(0, 1fr); }
  .panel, .card { padding: var(--s6); }
  .btn { padding-inline: var(--s5); gap: var(--s3); }
  .tilt, .note-account, .note-payment { transform: none; }
  .paper-glow, [data-motion-decor] { max-width: 100%; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal, .reveal.pending, .reveal.shown { opacity: 1; transform: none; transition: none; }
  .btn { transition: none; }
}