:root{
  --purple:#4B0FA8;
  --purple-2:#7B2FF7;
  --blue:#1F6BFF;
  --orange:#FF7A1A;
  --indigo:#0E2A47;
  --green:#123F3A;
  --wine:#7A1F3D;
  --lilac:#F4F0FF;
  --paper:#FFFFFF;
  --ink:#1A1420;
  --muted:#6B6480;
  --peach:#FFD9C2;
  --ice:#C9F0FF;

  --line:rgba(75,15,168,.14);
  --line-strong:rgba(75,15,168,.28);
  --line-light:rgba(255,255,255,.16);

  --rail-w:88px;
  --topbar-h:60px;

  --font-sans:"PingFang SC","Hiragino Sans GB","Source Han Sans SC","Noto Sans CJK SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SFMono-Regular","IBM Plex Mono",Menlo,Consolas,"Liberation Mono",monospace;

  --shadow-1:0 1px 0 rgba(26,20,32,.04),0 2px 6px rgba(75,15,168,.07);
  --shadow-2:0 10px 26px rgba(75,15,168,.14);
  --ease:cubic-bezier(.2,.7,.3,1);
  --radius:2px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol,ol>li,dl,dd{margin:0}
ul,ol{list-style:none;padding:0}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea,select{font:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
::selection{background:var(--purple);color:var(--paper)}

/* ---------- base ---------- */
body{
  min-height:100vh;
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.75;
  color:var(--ink);
  background-color:var(--lilac);
  background-image:
    radial-gradient(1100px 520px at 104% -8%,rgba(123,47,247,.18),rgba(123,47,247,0) 62%),
    radial-gradient(820px 460px at -6% 4%,rgba(31,107,255,.10),rgba(31,107,255,0) 58%);
  background-repeat:no-repeat;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-weight:900;line-height:1.18;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2.2rem,5.4vw,4.2rem)}
h2{font-size:clamp(1.5rem,3vw,2.2rem)}
h3{font-size:clamp(1.15rem,2vw,1.4rem);letter-spacing:-.01em}
p{text-wrap:pretty}
#main-content{display:block;scroll-margin-top:calc(var(--topbar-h) + 16px)}

/* ---------- utilities ---------- */
.yh-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.yh-container{width:100%;max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px)}
.yh-section{padding-block:clamp(32px,5vw,64px)}
.yh-divider{height:1px;border:0;background:var(--line-strong);margin-block:clamp(20px,3vw,32px)}
.yh-grid{display:grid;gap:clamp(16px,2.4vw,28px)}
.yh-grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

.yh-mono{font-family:var(--mono);font-size:.94em;letter-spacing:.02em}
.yh-num{display:inline-block;font-family:var(--mono);font-size:1.12em;line-height:1.45;letter-spacing:.02em;background:var(--peach);color:var(--ink);padding:1px 7px;border-radius:var(--radius)}
.yh-eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.32em;color:var(--purple);text-transform:uppercase}

.yh-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius);background:var(--peach);color:var(--ink);font-size:11.5px;font-weight:700;line-height:1.6;letter-spacing:.08em}
.yh-tag--blue{background:var(--ice);color:var(--indigo)}
.yh-tag--wine{background:var(--wine);color:var(--paper)}
.yh-tag--green{background:var(--green);color:var(--paper)}

.yh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:1px solid transparent;border-radius:var(--radius);font-size:15px;font-weight:700;letter-spacing:.02em;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease)}
.yh-btn--primary{background:var(--purple);color:var(--paper);box-shadow:var(--shadow-1)}
.yh-btn--primary:hover{background:var(--purple-2);transform:translateY(-1px);box-shadow:var(--shadow-2)}
.yh-btn--accent{background:var(--orange);color:var(--paper);box-shadow:var(--shadow-1)}
.yh-btn--accent:hover{filter:saturate(112%) brightness(1.03);transform:translateY(-1px);box-shadow:var(--shadow-2)}
.yh-btn--ghost{background:transparent;border-color:var(--line-strong);color:var(--purple)}
.yh-btn--ghost:hover{background:var(--lilac);border-color:var(--purple)}

.yh-card{background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);padding:clamp(16px,2.4vw,26px);box-shadow:var(--shadow-1);transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease)}
.yh-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--purple-2)}

.yh-media{position:relative;display:block;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--radius);background:linear-gradient(135deg,var(--lilac) 0%,#E7DEFF 55%,#DCE9FF 100%)}
.yh-media>img,.yh-media>svg{width:100%;height:100%;object-fit:cover}
.yh-media--16x9{aspect-ratio:16/9}
.yh-media--4x3{aspect-ratio:4/3}
.yh-media--3x2{aspect-ratio:3/2}
.yh-media--1x1{aspect-ratio:1/1}
.yh-media__caption{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 10px;font-size:12px;line-height:1.5;letter-spacing:.06em;color:var(--paper);background:linear-gradient(to top,rgba(14,42,71,.82),rgba(14,42,71,0))}

.yh-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:18px 0;font-size:12.5px;letter-spacing:.04em;color:var(--muted)}
.yh-breadcrumb li{display:flex;align-items:center;gap:8px}
.yh-breadcrumb li:not(:last-child)::after{content:"›";color:var(--purple-2);opacity:.65}
.yh-breadcrumb a:hover{color:var(--purple)}
.yh-breadcrumb [aria-current="page"]{color:var(--ink);font-weight:700}

.yh-prose{max-width:66ch}
.yh-prose p{margin-block:0 1em}
.yh-prose h2,.yh-prose h3{margin-block:1.6em .55em}
.yh-prose ul{list-style:disc;padding-left:1.2em}
.yh-prose li{margin-block:.35em}
.yh-prose a{color:var(--blue);border-bottom:1px solid currentColor}

/* ---------- header ---------- */
.yh-header{position:relative;z-index:60}

.yh-skip{position:fixed;top:10px;left:10px;z-index:200;padding:10px 16px;border-radius:var(--radius);background:var(--purple);color:var(--paper);font-size:14px;font-weight:700;box-shadow:var(--shadow-2);transform:translateY(-180%);transition:transform .18s var(--ease)}
.yh-skip:focus{transform:translateY(0)}

.yh-rail{display:none}

.yh-topbar{position:sticky;top:0;z-index:55;background:rgba(255,255,255,.93);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line-strong)}
.yh-topbar__inner{display:flex;align-items:center;gap:14px;width:100%;max-width:1360px;margin-inline:auto;min-height:var(--topbar-h);padding:8px clamp(14px,3vw,30px)}
.yh-topbar__brand{display:flex;align-items:baseline;gap:12px;min-width:0;margin-right:auto}
.yh-topbar__name{font-size:1.05rem;font-weight:900;letter-spacing:.02em;line-height:1.2;color:var(--purple);white-space:nowrap}
.yh-topbar__desc{font-size:12px;letter-spacing:.14em;color:var(--muted);white-space:nowrap;padding-left:12px;border-left:1px solid var(--line-strong)}
.yh-topbar__meta{display:flex;align-items:center;gap:10px}
.yh-search{font-size:12.5px;color:var(--muted);white-space:nowrap;padding-bottom:2px;border-bottom:1px dashed var(--line-strong);transition:color .18s var(--ease),border-color .18s var(--ease)}
.yh-search:hover{color:var(--purple);border-bottom-color:var(--purple)}
.yh-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:var(--radius);font-family:var(--mono);font-size:11.5px;line-height:1;letter-spacing:.04em;white-space:nowrap}
.yh-badge--version{background:var(--purple);color:var(--paper)}
.yh-badge--quarter{background:var(--peach);color:var(--ink)}
.yh-badge--quarter::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--orange)}

.yh-navtoggle{display:inline-flex;align-items:center;gap:9px;margin-left:6px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);color:var(--purple);transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}
.yh-navtoggle:hover{background:var(--lilac);border-color:var(--purple)}
.yh-navtoggle__bars{display:inline-flex;flex-direction:column;gap:3px;width:16px}
.yh-navtoggle__bars i{display:block;height:2px;border-radius:1px;background:currentColor;transition:transform .18s var(--ease),opacity .18s var(--ease)}
.yh-navtoggle__text{font-size:12px;font-weight:700;line-height:1;letter-spacing:.1em}
.yh-navtoggle[aria-expanded="true"]{background:var(--purple);border-color:var(--purple);color:var(--paper)}
.yh-navtoggle[aria-expanded="true"] .yh-navtoggle__bars i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.yh-navtoggle[aria-expanded="true"] .yh-navtoggle__bars i:nth-child(2){opacity:0}
.yh-navtoggle[aria-expanded="true"] .yh-navtoggle__bars i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

.yh-topbar__progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none}
.yh-topbar__progress i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--purple) 0%,var(--blue) 55%,var(--orange) 100%)}

.yh-drawer{display:none;position:fixed;top:var(--topbar-h);left:0;right:0;z-index:54;max-height:calc(100vh - var(--topbar-h));max-height:calc(100dvh - var(--topbar-h));overflow-y:auto;padding:14px clamp(16px,4vw,24px) 22px;background:var(--paper);border-bottom:1px solid var(--line-strong);box-shadow:0 18px 40px rgba(26,20,32,.18)}
.yh-drawer[data-open="true"]{display:block;animation:yhDrop .18s var(--ease)}
@keyframes yhDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.yh-drawer__head{padding-bottom:10px;border-bottom:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.32em;color:var(--muted)}
.yh-drawer__list{display:flex;flex-direction:column}
.yh-drawer__list>li>a{margin-top:0}
.yh-drawer__item{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);font-size:15px;font-weight:700;color:var(--ink);transition:color .18s var(--ease),background .18s var(--ease)}
.yh-drawer__item:hover{color:var(--purple)}
.yh-drawer__num{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--blue)}
.yh-drawer__item[aria-current="page"]{padding-inline:10px;background:var(--lilac);color:var(--purple);border-radius:var(--radius)}
.yh-drawer__item[aria-current="page"] .yh-drawer__num{color:var(--orange)}
.yh-drawer__foot{margin-top:14px;font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;color:var(--muted)}

/* ---------- footer ---------- */
.yh-footer{position:relative;margin-top:clamp(48px,8vw,96px);background:var(--indigo);color:#E6E0F6}
.yh-footer::before{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--orange) 0%,var(--purple-2) 42%,var(--blue) 100%)}
.yh-footer__inner{width:100%;max-width:1180px;margin-inline:auto;padding:clamp(32px,5vw,56px) clamp(16px,4vw,32px) 0}
.yh-footer__top{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,48px);padding-bottom:32px;border-bottom:1px solid var(--line-light)}
.yh-footer__sign{display:block}
.yh-footer__brand{font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:900;line-height:1.1;letter-spacing:-.01em;color:var(--paper)}
.yh-footer__tagline{margin-top:14px;max-width:24ch;font-size:14.5px;line-height:1.7;color:#BEB3DD}
.yh-footer__mark{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:11.5px;letter-spacing:.1em;color:#9E93C4}
.yh-footer__mark .yh-mono{padding:3px 7px;border-radius:var(--radius);background:rgba(255,122,26,.16);color:var(--peach)}
.yh-footer__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:26px 20px}
.yh-footer__col{min-width:0}
.yh-footer__coltitle{margin-bottom:14px;font-size:11px;font-weight:700;letter-spacing:.3em;color:var(--orange)}
.yh-footer__list{display:flex;flex-direction:column;gap:9px}
.yh-footer__link{display:inline-block;font-size:14px;color:#D8D1EE;border-bottom:1px solid transparent;transition:color .18s var(--ease),border-color .18s var(--ease)}
.yh-footer__link:hover{color:var(--paper);border-bottom-color:var(--peach)}
.yh-footer__contact{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:26px;padding-bottom:26px;border-bottom:1px solid var(--line-light)}
.yh-footer__contact-list{display:grid;gap:10px}
.yh-footer__contact-list li{display:flex;align-items:baseline;gap:12px;font-size:14px;line-height:1.65;color:#D8D1EE}
.yh-footer__key{flex:0 0 auto;font-size:11px;letter-spacing:.24em;color:#8F84B8}
.yh-footer__note{max-width:46ch;font-size:12.5px;line-height:1.75;color:#9E93C4}
.yh-footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;padding-block:22px 28px;font-size:12px;letter-spacing:.04em;color:#9E93C4}
.yh-footer__icp{font-family:var(--mono);color:#BEB3DD}
.yh-footer__stamp{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;color:#BEB3DD}

/* ---------- reveal ---------- */
.yh-anim [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.yh-anim [data-reveal].is-in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .yh-topbar__desc,.yh-search{display:none}
}
@media (max-width:560px){
  .yh-badge--quarter{display:none}
  .yh-topbar__inner{gap:10px}
  .yh-navtoggle__text{display:none}
  .yh-navtoggle{padding:10px 12px}
}

@media (min-width:760px){
  .yh-footer__top{grid-template-columns:minmax(240px,.9fr) minmax(0,1.7fr)}
  .yh-footer__contact{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start}
}

@media (min-width:1024px){
  body{padding-left:var(--rail-w)}
  .yh-rail{
    position:fixed;top:0;left:0;bottom:0;width:var(--rail-w);z-index:60;
    display:flex;flex-direction:column;
    background:var(--paper);
    border-right:1px solid var(--line-strong);
    padding:0 0 14px;
    overflow-y:auto;overscroll-behavior:contain;
  }
  .yh-rail::before{content:"";display:block;flex:0 0 auto;height:6px;background:linear-gradient(90deg,var(--purple) 0%,var(--purple-2) 62%,var(--orange) 100%)}
  .yh-rail__brand{display:block;margin:16px auto 12px;padding:4px 0;writing-mode:vertical-rl;font-size:1.15rem;font-weight:900;line-height:1;letter-spacing:.22em;color:var(--purple);transition:color .18s var(--ease)}
  .yh-rail__brand:hover{color:var(--purple-2)}
  .yh-rail__list{display:flex;flex-direction:column;margin-top:6px;border-top:1px solid var(--line)}
  .yh-rail__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px 3px;border-bottom:1px solid var(--line);text-align:center;transition:background .18s var(--ease),color .18s var(--ease)}
  .yh-rail__item:hover{background:var(--lilac)}
  .yh-rail__num{font-family:var(--mono);font-size:10px;line-height:1;letter-spacing:.12em;color:var(--blue)}
  .yh-rail__label{font-size:12px;font-weight:700;line-height:1.2;letter-spacing:.01em;color:var(--ink)}
  .yh-rail__item[aria-current="page"]{background:var(--purple)}
  .yh-rail__item[aria-current="page"]:hover{background:var(--purple)}
  .yh-rail__item[aria-current="page"] .yh-rail__num{color:var(--peach)}
  .yh-rail__item[aria-current="page"] .yh-rail__label{color:var(--paper)}
  .yh-rail__note{margin:auto auto 0;padding:18px 0 4px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.32em;color:var(--muted)}
  .yh-navtoggle{display:none}
  .yh-drawer{display:none}
  .yh-drawer[data-open="true"]{display:none}
}

@media (min-width:1280px){
  .yh-topbar__inner,.yh-footer__inner{max-width:1220px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .yh-card:hover,.yh-btn:hover{transform:none}
  .yh-anim [data-reveal]{opacity:1;transform:none;transition:none}
  .yh-drawer[data-open="true"]{animation:none}
  .yh-topbar__progress i{transition:none}
}
