/* Local SVG lettering; the entrance uses only client-side CSS transforms. */
.site-intro{display:none}
.intro-active .site-intro{display:grid;place-items:center;position:fixed;inset:0;z-index:10000;overflow:hidden;background:#fff;color:#000;isolation:isolate;contain:layout paint;animation:intro-curtain 640ms cubic-bezier(.76,0,.24,1) 1980ms both,intro-retire 2630ms step-end forwards}
.intro-defs{position:absolute;pointer-events:none}
.intro-stage{position:relative;display:grid;place-items:center;width:100%;height:100%;--spread:clamp(22px,7.2vw,104px)}
.intro-word{display:flex;align-items:flex-start;justify-content:center;gap:.025em;font-size:clamp(64px,11vw,166px);line-height:1;transform-origin:50% 45%;animation:intro-expand 1000ms cubic-bezier(.65,0,.25,1) 1280ms both}
.intro-letter{position:relative;display:block;width:var(--glyph-width);height:1em;color:#dedede;--place:0;--delay:0ms;animation:intro-gather 620ms cubic-bezier(.76,0,.24,1) calc(660ms + var(--delay)) both}
.intro-glyph{display:block;width:100%;height:100%;fill:currentColor;mask-image:linear-gradient(90deg,#000 0 49%,transparent 49% 50.5%,#000 50.5% 100%),linear-gradient(#000 0 49%,transparent 49% 50.5%,#000 50.5% 100%);mask-composite:intersect}
.intro-glyph-ink{position:absolute;inset:0;color:#000;clip-path:inset(100% 0 0);animation:intro-ink 680ms cubic-bezier(.25,.46,.45,.94) var(--delay) both}
.intro-letter:nth-child(1){--place:-3;--delay:0ms}.intro-letter:nth-child(2){--place:-2;--delay:24ms}.intro-letter:nth-child(3){--place:-1;--delay:48ms}.intro-letter:nth-child(4){--place:0;--delay:72ms}.intro-letter:nth-child(5){--place:1;--delay:96ms}.intro-letter:nth-child(6){--place:2;--delay:120ms}.intro-letter:nth-child(7){--place:3;--delay:144ms}
.intro-skip{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:20px;min-height:44px;padding:10px 14px;border:1px solid #ddd;border-radius:2px;background:#fff;color:#444;font:13px "Segoe UI","Microsoft YaHei",sans-serif;cursor:pointer;z-index:1;animation:intro-skip-exit 180ms ease 1880ms forwards}
.intro-skip:hover{border-color:#888}.intro-skip:focus-visible{outline:2px solid #333;outline-offset:4px}
@keyframes intro-ink{to{clip-path:inset(0)}}
@keyframes intro-gather{from{transform:translateX(calc(var(--place)*var(--spread)))}to{transform:translateX(0)}}
@keyframes intro-expand{0%,12%{transform:rotate(0) scale(1)}100%{transform:rotate(-16deg) scale(7)}}
@keyframes intro-curtain{from{transform:translateY(0)}to{transform:translateY(-102%)}}
@keyframes intro-retire{from{visibility:visible;pointer-events:auto}to{visibility:hidden;pointer-events:none}}
@keyframes intro-skip-exit{to{opacity:0;visibility:hidden}}
@media(max-width:600px){.intro-stage{--spread:5vw}.intro-word{font-size:clamp(48px,15.5vw,88px)}.intro-skip{right:18px;bottom:22px}}
@media(prefers-reduced-motion:reduce){.intro-active .site-intro{display:none}.site-intro *{animation:none!important}}
@media print{.intro-active .site-intro{display:none}}
