:root{--navy:#192e42;--navy-deep:#0f2133;--navy-mid:#274768;--gold:#c8ae79;--gold-light:#e6d3a7;--gold-dark:#7a5c1e;--linen:#efe3c7;--cream:#fefaee;--ink:#12202f;--ink-muted:#4a5a6b;--line:#ddd2b8;--line-strong:#c3b696;--success:#2f7a4f;--warning:#a86a12;--danger:#b03a2e;--info:#274768;--font-display:"Playfair Display","Source Serif 4","Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;--font-body:"Inter","Sora","Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:"JetBrains Mono","SF Mono",Consolas,monospace;--fs-display:clamp(34px,4vw,58px);--fs-h1:clamp(29px,2.5vw,46px);--fs-h2:clamp(23px,1.85vw,33px);--fs-h3:clamp(21px,1.55vw,27px);--fs-h4:clamp(18px,1.28vw,21px);--fs-body-l:clamp(17px,1.25vw,19px);--fs-body:clamp(16px,1.15vw,17px);--fs-caption:clamp(14px,1.05vw,15px);--space-section:clamp(56px,7vw,100px);--space-block:clamp(32px,4vw,48px);--space-item:clamp(20px,2.5vw,32px);--radius-card:14px;--radius-pill:60px;--radius-sm:8px;--leading-body:1.75;--leading-head:1.35;--tracking-body:0.02em;--tracking-head:0.05em;--max-measure:38em}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--leading-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);line-height:var(--leading-head);letter-spacing:var(--tracking-head);margin:0}h4,h5,h6{margin:0;font-weight:600}p{margin:0}a{color:var(--navy-mid);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto;display:block}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.on-dark :focus-visible{outline-color:var(--gold-light)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}.section{padding-block:var(--space-section)}.section--dark{background:var(--navy);color:var(--linen)}.section--linen{background:var(--linen)}.section--cream{background:var(--cream)}.measure{max-width:var(--max-measure)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 32px;border-radius:var(--radius-pill);font-size:var(--fs-body);font-weight:600;letter-spacing:var(--tracking-head);cursor:pointer;border:1.5px solid transparent;transition:background-color .2s ease,border-color .2s ease}.btn,.btn:hover{text-decoration:none}.btn--primary{background:var(--linen);color:var(--navy)}.btn--primary:hover{background:var(--gold-light)}.btn--secondary{background:transparent;color:var(--cream);border-color:var(--gold)}.btn--secondary:hover{background:rgba(200,174,121,.12)}.btn--navy{background:var(--navy);color:var(--cream)}.btn--navy:hover{background:var(--navy-mid)}.card{background:#fff;border-radius:var(--radius-card);padding:var(--space-item);box-shadow:0 1px 3px rgba(25,46,66,.06)}.card--on-dark{background:var(--navy-deep);border:1px solid rgba(200,174,121,.2);box-shadow:none}.grid{display:grid;grid-gap:var(--space-item);gap:var(--space-item)}.grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink)}.field-hint{font-size:var(--fs-caption);color:var(--danger)}.input{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--ink);font-size:var(--fs-body);font-family:inherit;transition:border-color .15s ease}.input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(25,46,66,.12)}.input--error{border-color:var(--danger)}textarea.input{resize:vertical;min-height:96px}select.input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.alert{padding:12px 16px;border-radius:6px;font-size:var(--fs-body);line-height:1.6}.alert--error{background:#f9e5e5;border:1px solid #d99;color:#8a2620}.alert--success{background:#e3f2e8;border:1px solid #9ccdb0;color:#1e5c38}