@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/mont-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/mont-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/mont-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/mont-cyr-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/mont-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/mont-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/mont-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/mont-cyr-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/mont-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/mont-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/mont-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/mont-cyr-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/mont-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/mont-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/mont-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/mont-cyr-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/os-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/os-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/os-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/os-cyr-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/os-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/os-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/os-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/os-cyr-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/os-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/os-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/os-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/os-cyr-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Montserrat Fallback';src:local('Arial');ascent-override:85.79%;descent-override:22.25%;line-gap-override:0%;size-adjust:112.83%}
@font-face{font-family:'Open Sans Fallback';src:local('Arial');ascent-override:101.65%;descent-override:27.86%;line-gap-override:0%;size-adjust:105.15%}
:root{
  --bordo:#762036; --bordo-d:#5c1829; --bordo-l:#8f2a44; --bordo-x:#4a1321;
  --gold:#b58d3d; --gold-l:#c9a86c; --gold-p:#dfc99a;
  --cream:#f9eef1; --sand:#f2ece6;
  --ink:#171717; --body:#3e434a; --muted:#6b7079; --faint:#969ba2;
  --paper:#ffffff; --tint:#fbf9f7; --line:#e4dfd9; --line-2:#efeae5;
  --shell:1440px;
  --d:'Montserrat','Montserrat Fallback','PingFang SC','Microsoft YaHei','Hiragino Sans GB',sans-serif;
  --t:'Open Sans','Open Sans Fallback','PingFang SC','Microsoft YaHei','Hiragino Sans GB',sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;background:var(--paper);color:var(--body);font-family:var(--t);
  font-size:17px;line-height:1.78;letter-spacing:-.12px;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto}
a{color:var(--bordo);text-underline-offset:.16em;text-decoration-thickness:.06em}
a:hover{color:var(--bordo-l)}
h1,h2,h3,h4{font-family:var(--d);color:var(--ink);letter-spacing:-.4px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--bordo);color:#fff;padding:.7rem 1.2rem}
.fy-shell{max-width:var(--shell);margin:0 auto;padding:0 48px}

/* ---------- masthead: two rows ---------- */
.fy-top{position:sticky;top:0;z-index:40;background:var(--paper);box-shadow:0 1px 0 var(--line)}
.fy-r1{background:var(--bordo);color:#fff}
.fy-r1 .fy-shell{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:56px;flex-wrap:wrap}
.fy-r1 a{color:#fff;text-decoration:none}
.fy-mark{display:flex;align-items:center;gap:.7rem;font-family:var(--d);font-weight:700;font-size:1.02rem;letter-spacing:-.3px}
.fy-mark small{display:block;font-family:var(--t);font-weight:600;font-size:.6rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-p);margin-top:.12rem}
.fy-lang{display:flex;gap:.9rem;font-size:.74rem;font-weight:600}
.fy-lang a{color:rgba(255,255,255,.6)}
.fy-lang a:hover{color:#fff}
.fy-lang a[aria-current]{color:var(--gold-p)}
.fy-r2 .fy-shell{display:flex;gap:2.1rem;flex-wrap:wrap;min-height:50px;align-items:stretch}
.fy-r2 a{display:flex;align-items:center;font-family:var(--d);font-size:.79rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-decoration:none;
  border-bottom:3px solid transparent}
.fy-r2 a:hover{color:var(--bordo)}
.fy-r2 a[aria-current]{color:var(--bordo);border-bottom-color:var(--gold)}

/* ---------- stage strip ---------- */
.fy-stages{background:var(--sand);border-bottom:1px solid var(--line)}
.fy-stages .fy-shell{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.fy-stage{display:block;padding:.85rem 1rem .8rem 0;text-decoration:none;position:relative}
.fy-stage::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent}
.fy-stage .n{font-family:var(--d);font-size:.63rem;font-weight:700;letter-spacing:.18em;color:var(--gold)}
.fy-stage span.l{display:block;font-size:.83rem;color:var(--body);line-height:1.35;margin-top:.1rem}
.fy-stage:hover span.l{color:var(--bordo)}
.fy-stage[aria-current]::after{background:var(--bordo)}
.fy-stage[aria-current] span.l{color:var(--bordo);font-weight:700}

/* ---------- page frame: single centred column ---------- */
.fy-page{max-width:var(--shell);margin:0 auto;padding:0 48px}
.fy-doc{max-width:74ch;margin:0 auto;padding:2.6rem 0 4.5rem}
.fy-crumb{font-size:.75rem;color:var(--muted);margin:0 0 1.1rem}
.fy-crumb a{color:var(--bordo);text-decoration:none}
.fy-crumb a:hover{text-decoration:underline}
.fy-crumb span{padding:0 .45rem;color:var(--faint)}
.fy-doc h1{font-size:clamp(2rem,3.3vw,2.75rem);line-height:1.14;margin:0 0 .8rem;font-weight:700;letter-spacing:-1.1px}
.fy-doc h2{font-size:1.46rem;line-height:1.3;margin:3.1rem 0 .9rem;font-weight:700;
  padding-left:1rem;border-left:5px solid var(--gold)}
.fy-doc h3{font-size:1.08rem;margin:2rem 0 .5rem;font-weight:700;color:var(--bordo)}
.fy-doc p{margin:0 0 1.15rem}
.fy-doc ul,.fy-doc ol{margin:0 0 1.25rem;padding-left:1.35rem}
.fy-doc li{margin:.45rem 0}
.fy-doc li::marker{color:var(--gold)}
.fy-doc strong{color:var(--ink);font-weight:700}
.fy-doc em,.fy-doc i{color:var(--bordo-l);font-style:italic}
.fy-lede{font-size:1.14rem;line-height:1.68;color:var(--ink);margin:0 0 1.6rem}
.fy-byline{display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;font-size:.76rem;color:var(--muted);
  margin:0 0 1.7rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.fy-byline b{color:var(--bordo);font-weight:700}

/* quick answer */
.a-quick{background:var(--bordo);color:#fff;padding:1.35rem 1.5rem;margin:0 0 1.8rem;border-left:6px solid var(--gold)}
.a-quick .lab{display:block;font-family:var(--d);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-p);font-weight:700;margin-bottom:.5rem}
.a-quick p{margin:0;font-size:1.02rem;line-height:1.7;color:rgba(255,255,255,.94)}
.a-quick strong{color:#fff}
.a-quick a{color:var(--gold-p)}

/* at-a-glance ledger */
.fy-facts{margin:0 0 1.9rem}
.fy-facts h4{margin:0 0 .6rem;font-family:var(--t);font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--faint);font-weight:700}
.fy-facts dl{margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.fy-facts div{background:var(--tint);padding:.7rem .95rem}
.fy-facts dt{font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700;
  font-family:var(--d);margin-bottom:.18rem}
.fy-facts dd{margin:0;font-size:.9rem;color:var(--ink);line-height:1.5}

/* inline boxed contents */
.fy-toc{border:1px solid var(--line);border-top:3px solid var(--bordo);padding:1.1rem 1.3rem;margin:0 0 2rem}
.fy-toc h4{margin:0 0 .6rem;font-family:var(--t);font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--faint);font-weight:700}
.fy-toc ol{margin:0;padding:0;list-style:none;columns:2;column-gap:2rem}
.fy-toc li{margin:.22rem 0;break-inside:avoid;counter-increment:tc}
.fy-toc a{font-size:.87rem;color:var(--body);text-decoration:none;display:block;line-height:1.45}
.fy-toc a::before{content:counter(tc,decimal-leading-zero) " ";font-family:var(--d);font-size:.7rem;
  font-weight:700;color:var(--gold)}
.fy-toc a:hover{color:var(--bordo)}
.fy-toc ol{counter-reset:tc}

/* the arithmetic block — unique to this site */
.fy-calc{border:1px solid var(--gold);background:#fdfaf3;margin:1.8rem 0;padding:1.1rem 1.3rem}
.fy-calc b{display:block;font-family:var(--d);font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.5rem}
/* scoped to .fy-doc so the min-width reset outranks the .fy-doc table rule
   below, which sets a 34rem floor for wide data tables in a .fy-scroll wrapper */
.fy-doc .fy-calc table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:0}
.fy-doc .fy-calc td{padding:.3rem 0;border:none;vertical-align:top}
.fy-doc .fy-calc td:last-child{text-align:right;white-space:nowrap;font-weight:700;color:var(--bordo);font-family:var(--d)}
.fy-doc .fy-calc tr.sum td{border-top:2px solid var(--gold);padding-top:.5rem;font-weight:700;color:var(--ink)}

/* callouts */
.fy-note,.fy-warn,.fy-prac{padding:1rem 1.3rem;margin:1.8rem 0;font-size:.95rem;line-height:1.68;border:1px solid}
.fy-note{background:var(--cream);border-color:#e8cdd5}
.fy-warn{background:#fdf6e8;border-color:#ecd9a8}
.fy-prac{background:var(--tint);border-color:var(--line)}
.fy-note b,.fy-warn b,.fy-prac b{display:block;font-family:var(--d);font-size:.63rem;letter-spacing:.18em;
  text-transform:uppercase;margin-bottom:.35rem;color:var(--bordo)}

/* tables */
.fy-scroll{overflow-x:auto;margin:1.7rem 0}
.fy-doc table{width:100%;border-collapse:collapse;font-size:.89rem;min-width:34rem}
.fy-doc th,.fy-doc td{text-align:left;padding:.68rem .9rem;border-bottom:1px solid var(--line-2);vertical-align:top;line-height:1.52}
.fy-doc thead th{background:transparent;color:var(--bordo);font-family:var(--d);font-size:.66rem;
  letter-spacing:.12em;text-transform:uppercase;font-weight:700;border-bottom:2px solid var(--bordo)}
.fy-doc tbody tr:hover{background:var(--tint)}
.fy-doc td b,.fy-doc td strong{color:var(--ink)}

/* numbered steps */
.fy-steps{list-style:none;counter-reset:s;padding:0;margin:1.8rem 0}
.fy-steps li{counter-increment:s;position:relative;padding:0 0 1.3rem 3.2rem;border-left:1px solid var(--line);margin-left:1.1rem}
.fy-steps li:last-child{border-left-color:transparent}
.fy-steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:-1.15rem;top:0;width:2.3rem;height:2.3rem;
  background:var(--paper);border:1px solid var(--gold);color:var(--bordo);display:flex;align-items:center;justify-content:center;
  font-family:var(--d);font-size:.76rem;font-weight:700;border-radius:50%}
.fy-steps li b{display:block;color:var(--ink);font-family:var(--d);font-weight:700;margin-bottom:.15rem}

/* faq */
.fy-faq{margin:3.2rem 0 0}
.fy-faq h2{padding-left:0;border-left:none;border-bottom:2px solid var(--bordo);padding-bottom:.5rem}
.fy-faq details{border:1px solid var(--line);margin:.5rem 0;background:var(--tint)}
.fy-faq summary{cursor:pointer;padding:.85rem 1.1rem;font-family:var(--d);font-weight:700;font-size:.95rem;
  color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.fy-faq summary::-webkit-details-marker{display:none}
.fy-faq summary::after{content:"+";color:var(--gold);font-size:1.15rem;line-height:1;flex:none}
.fy-faq details[open]{background:var(--paper);border-color:var(--gold)}
.fy-faq details[open] summary{color:var(--bordo)}
.fy-faq details[open] summary::after{content:"−"}
.fy-faq .a{padding:0 1.1rem 1rem;font-size:.93rem}
.fy-faq .a p:last-child{margin-bottom:0}

/* related — two-column cards */
.fy-rel{margin:2.8rem 0 0}
.fy-rel h2{padding-left:0;border-left:none}
.fy-rel ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line)}
.fy-rel a{display:block;background:var(--paper);padding:1rem 1.1rem;text-decoration:none;height:100%}
.fy-rel a:hover{background:var(--cream)}
.fy-rel b{font-family:var(--d);font-weight:700;font-size:.94rem;color:var(--ink);display:block;line-height:1.35}
.fy-rel a:hover b{color:var(--bordo)}
.fy-rel em{font-style:normal;color:var(--muted);font-size:.82rem;display:block;margin-top:.25rem;line-height:1.5}

.fy-src{margin:2.6rem 0 0;font-size:.83rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1.1rem}
.fy-src h2{font-family:var(--d);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin:0 0 .6rem;padding:0;border:none}
.fy-src ol{padding-left:1.15rem;margin:0}
.fy-src li{margin:.32rem 0;line-height:1.5}
.fy-auth{margin:2.6rem 0 0;background:var(--sand);padding:1.2rem 1.4rem;font-size:.89rem;line-height:1.68}
.fy-auth b{color:var(--bordo);font-family:var(--d)}

/* CTA — split panel with a gold spine */
.fy-cta{margin:2.8rem 0 0;border:1px solid var(--line);border-left:6px solid var(--gold);
  padding:1.5rem 1.7rem;background:var(--tint)}
.fy-cta h2{font-family:var(--d);font-size:1.14rem;margin:0 0 .45rem;padding:0;border:none;color:var(--ink)}
.fy-cta p{margin:0 0 1rem;font-size:.93rem;color:var(--body)}
.fy-cta a{display:inline-block;background:var(--bordo);color:#fff;text-decoration:none;padding:.68rem 1.4rem;
  font-weight:700;font-size:.86rem;margin-right:.55rem}
.fy-cta a:hover{background:var(--bordo-l);color:#fff}
.fy-cta a.alt{background:transparent;color:var(--bordo);border:1px solid var(--bordo);font-weight:600}
.fy-cta a.alt:hover{background:var(--cream);color:var(--bordo)}

/* ---------- home ---------- */
.fy-hero{background:var(--bordo-x);color:#fff}
.fy-hero .fy-shell{padding-top:3.6rem;padding-bottom:3.2rem;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:3.5rem;align-items:center}
.fy-hero .kick{font-family:var(--d);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-p);font-weight:700;margin:0 0 1rem}
.fy-hero h1{font-size:clamp(2.1rem,3.7vw,3.05rem);line-height:1.12;color:#fff;margin:0 0 1.1rem;letter-spacing:-1.3px}
.fy-hero p{font-size:1.06rem;line-height:1.7;color:rgba(255,255,255,.8);margin:0;max-width:60ch}
.fy-clock{border:1px solid rgba(223,201,154,.45);padding:1.4rem 1.5rem}
.fy-clock h2{font-family:var(--d);font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-p);margin:0 0 .9rem;padding:0;border:none}
.fy-clock dl{margin:0;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:.5rem 1rem;font-size:.88rem}
.fy-clock dt{color:rgba(255,255,255,.75)}
.fy-clock dd{margin:0;text-align:right;font-family:var(--d);font-weight:700;color:var(--gold-p)}
.fy-routes{max-width:var(--shell);margin:0 auto;padding:2.8rem 48px 0}
.fy-routes h2{font-size:1.5rem;margin:0 0 .4rem}
.fy-routes > p{margin:0 0 1.6rem;color:var(--muted);max-width:70ch}
.fy-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.fy-card{display:block;background:var(--paper);padding:1.4rem 1.4rem 1.5rem;text-decoration:none}
.fy-card:hover{background:var(--cream)}
.fy-card .n{font-family:var(--d);font-size:.64rem;font-weight:700;letter-spacing:.18em;color:var(--gold)}
.fy-card h3{font-size:1.04rem;margin:.45rem 0 .4rem;color:var(--ink);line-height:1.32}
.fy-card:hover h3{color:var(--bordo)}
.fy-card p{margin:0;font-size:.86rem;color:var(--muted);line-height:1.58}
.fy-home-doc{max-width:var(--shell);margin:0 auto;padding:2.6rem 48px 0}
.fy-home-doc .fy-doc{padding-top:0}

/* hub */
.fy-group{margin:0 0 2.6rem}
.fy-group h2{margin-top:2.6rem}
.fy-group > p{color:var(--muted)}
.fy-list{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.fy-list a{display:grid;grid-template-columns:5.5rem 1fr;gap:1.2rem;background:var(--paper);
  padding:.9rem 1.1rem;text-decoration:none;align-items:baseline}
.fy-list a:hover{background:var(--tint)}
.fy-list .tag{font-family:var(--d);font-size:.59rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold)}
.fy-list b{font-family:var(--d);font-weight:700;font-size:.96rem;color:var(--ink);display:block;line-height:1.35}
.fy-list a:hover b{color:var(--bordo)}
.fy-list em{font-style:normal;display:block;color:var(--muted);font-size:.84rem;margin-top:.2rem;line-height:1.5}

/* glossary */
.fy-terms{margin:1.7rem 0 0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.fy-terms > div{background:var(--paper);padding:1rem 1.2rem}
.fy-terms dt{font-family:var(--d);font-size:.98rem;color:var(--bordo);font-weight:700}
.fy-terms dt small{display:block;font-family:var(--t);font-weight:400;font-size:.75rem;
  color:var(--faint);text-transform:uppercase;letter-spacing:.09em;margin-top:.12rem}
.fy-terms dd{margin:.4rem 0 0;font-size:.9rem;line-height:1.62}

/* ---------- footer ---------- */
.fy-foot{background:var(--ink);color:rgba(255,255,255,.62);font-size:.85rem;margin-top:4rem}
.fy-foot .fy-shell{padding-top:2.6rem;padding-bottom:2.2rem}
.fy-foot a{color:rgba(255,255,255,.82);text-decoration:none}
.fy-foot a:hover{color:#fff;text-decoration:underline}
.fy-frow{display:flex;flex-wrap:wrap;gap:.6rem 1.7rem;padding-bottom:1.4rem;
  border-bottom:1px solid rgba(255,255,255,.14);font-family:var(--d);font-size:.84rem;font-weight:600}
.fy-fmeta{display:flex;flex-wrap:wrap;gap:.6rem 2.2rem;padding:1.2rem 0;font-size:.79rem}
.fy-foot .disc{font-size:.76rem;color:rgba(255,255,255,.42);line-height:1.68;
  border-top:1px solid rgba(255,255,255,.1);padding-top:1.1rem}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .fy-hero .fy-shell{grid-template-columns:1fr;gap:2rem}
  .fy-cards{grid-template-columns:repeat(2,1fr)}
  .fy-stages .fy-shell{grid-template-columns:repeat(3,1fr)}
  .fy-stage:nth-child(n+4){border-top:1px solid var(--line)}
}
@media (max-width:820px){
  .fy-shell,.fy-page,.fy-routes,.fy-home-doc{padding-left:20px;padding-right:20px}
  .fy-facts dl,.fy-rel ul{grid-template-columns:1fr}
  .fy-clock dl{grid-template-columns:1fr;gap:.15rem}
  .fy-clock dt{font-size:.8rem}
  .fy-clock dd{text-align:left;padding-bottom:.55rem}
  .fy-clock dd:not(:last-child){border-bottom:1px solid rgba(223,201,154,.2)}
  .fy-toc ol{columns:1}
  .fy-list a{grid-template-columns:1fr;gap:.25rem}
  .fy-top{position:static}
}
@media (max-width:640px){
  body{font-size:16.5px}
  /* the language list wraps onto its own line here; min-height alone leaves it
     flush against the band's edge, so give the row real vertical padding */
  .fy-r1 .fy-shell{min-height:0;padding-top:.75rem;padding-bottom:.75rem;gap:.5rem 1.1rem}
  .fy-stages .fy-shell{grid-template-columns:repeat(2,1fr)}
  .fy-cards{grid-template-columns:1fr}
  .fy-cta a{display:block;margin:0 0 .5rem;text-align:center}
}
@media print{.fy-top,.fy-stages,.fy-foot,.fy-cta{display:none}body{font-size:11pt}.fy-doc{max-width:none}}
