.ScrollConstellation_wrap__GN5G_{position:fixed;left:14px;top:90px;bottom:90px;width:150px;z-index:80;pointer-events:none}.ScrollConstellation_belt__aOl6v{position:absolute;left:14px;top:18px;bottom:18px;width:22px;pointer-events:none;background:linear-gradient(to right,var(--color-accent) 0,var(--color-accent) 2px,color-mix(in srgb,var(--color-ink) 14%,var(--color-surface)) 2px,color-mix(in srgb,var(--color-ink) 14%,var(--color-surface)) 20px,var(--color-accent) 20px,var(--color-accent) 22px);border-radius:2px;box-shadow:inset 0 0 2px rgba(43,38,32,.1)}.ScrollConstellation_beltStripes__C9N6y{position:absolute;inset:2px 2px;background:repeating-linear-gradient(180deg,rgba(43,38,32,.1) 0,rgba(43,38,32,.1) 4px,transparent 0,transparent 12px);animation:ScrollConstellation_beltMove__NHOJM 1s linear infinite}@keyframes ScrollConstellation_beltMove__NHOJM{0%{background-position:0 0}to{background-position:0 12px}}.ScrollConstellation_roller__ZFm27{position:absolute;left:4px;width:42px;height:18px;border-radius:50%;background:linear-gradient(180deg,var(--color-surface-2),color-mix(in srgb,var(--color-line) 70%,var(--color-surface)));border:1.5px solid var(--color-line);box-shadow:inset 0 -2px 3px rgba(43,38,32,.08),inset 0 1px 2px rgba(255,255,255,.5),0 1px 3px rgba(43,38,32,.06);z-index:1;overflow:hidden}.ScrollConstellation_rollerTop__8O9cr{top:2px}.ScrollConstellation_rollerBottom__WoQL9{bottom:2px}.ScrollConstellation_rollerInner__2lktF{position:absolute;inset:2px 5px;border-radius:50%;background:repeating-linear-gradient(90deg,var(--color-ink-faint) 0 3px,transparent 3px 8px);animation:ScrollConstellation_rollerSpin__KDRvJ 1s linear infinite}@keyframes ScrollConstellation_rollerSpin__KDRvJ{0%{transform:translateX(0)}to{transform:translateX(-8px)}}.ScrollConstellation_cargo__YQI5d{position:absolute;left:10px;width:30px;height:30px;z-index:3;will-change:top;animation:ScrollConstellation_cargoBob__LI_p2 .5s ease-in-out infinite}@keyframes ScrollConstellation_cargoBob__LI_p2{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-2px) rotate(3deg)}}.ScrollConstellation_cargoBox__w_j01{display:block;filter:drop-shadow(0 4px 7px rgba(0,0,0,.35))}.ScrollConstellation_cargo__YQI5d.ScrollConstellation_arrived__vcyaq{animation:none;opacity:0;transform:scale(.3) translateY(18px);transition:opacity .45s ease-in,transform .45s cubic-bezier(.5,0,.75,0)}.ScrollConstellation_nodes___rdQu{position:absolute;left:44px;top:0;bottom:0;right:0;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;pointer-events:none}.ScrollConstellation_node__Z6_Is{position:relative;display:flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;padding:0;pointer-events:auto;transition:transform var(--tr-fast)}.ScrollConstellation_node__Z6_Is:hover{transform:translateX(2px)}.ScrollConstellation_nodeIcon__WGuFm{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-surface);border:1.5px solid var(--color-line);font-size:14px;line-height:1;flex-shrink:0;transition:all var(--tr-fast);z-index:2;box-shadow:0 2px 6px rgba(0,0,0,.06)}.ScrollConstellation_node__Z6_Is.ScrollConstellation_lit__mymmG .ScrollConstellation_nodeIcon__WGuFm{border-color:var(--color-accent);background:var(--color-accent-soft)}.ScrollConstellation_node__Z6_Is.ScrollConstellation_active___HiaF .ScrollConstellation_nodeIcon__WGuFm{border-color:var(--color-accent-strong);background:var(--color-accent);transform:scale(1.22);box-shadow:0 0 14px var(--color-accent-soft),0 0 4px var(--color-accent)}.ScrollConstellation_nodeLabel__wDA4Q{font-size:11px;font-weight:600;color:var(--color-ink-faint);letter-spacing:.04em;white-space:nowrap;transition:color var(--tr-fast)}.ScrollConstellation_node__Z6_Is.ScrollConstellation_lit__mymmG .ScrollConstellation_nodeLabel__wDA4Q{color:var(--color-ink-soft)}.ScrollConstellation_node__Z6_Is.ScrollConstellation_active___HiaF .ScrollConstellation_nodeLabel__wDA4Q{color:var(--color-accent-strong)}@media (max-width:1180px){.ScrollConstellation_wrap__GN5G_{display:none}}@media (prefers-reduced-motion:reduce){.ScrollConstellation_beltStripes__C9N6y,.ScrollConstellation_cargo__YQI5d,.ScrollConstellation_rollerInner__2lktF{animation:none}}[data-theme=dark] .ScrollConstellation_belt__aOl6v{box-shadow:inset 0 0 2px rgba(243,236,224,.08)}[data-theme=dark] .ScrollConstellation_beltStripes__C9N6y{background:repeating-linear-gradient(180deg,rgba(243,236,224,.07) 0,rgba(243,236,224,.07) 4px,transparent 0,transparent 12px)}[data-theme=dark] .ScrollConstellation_roller__ZFm27{border-color:color-mix(in srgb,var(--color-line) 80%,var(--color-surface));box-shadow:inset 0 -2px 3px rgba(0,0,0,.25),inset 0 1px 2px rgba(255,255,255,.15),0 1px 3px rgba(0,0,0,.18)}[data-theme=dark] .ScrollConstellation_nodeIcon__WGuFm{background:color-mix(in srgb,var(--color-surface) 92%,var(--color-accent));box-shadow:0 2px 6px rgba(0,0,0,.18)}[data-theme=dark] .ScrollConstellation_node__Z6_Is.ScrollConstellation_lit__mymmG .ScrollConstellation_nodeIcon__WGuFm{background:color-mix(in srgb,var(--color-accent-soft) 80%,var(--color-surface))}[data-theme=dark] .ScrollConstellation_node__Z6_Is.ScrollConstellation_active___HiaF .ScrollConstellation_nodeIcon__WGuFm{box-shadow:0 0 14px var(--color-accent-soft),0 0 6px var(--color-accent)}.resume-shell .ScrollConstellation_wrap__GN5G_{left:22px;width:156px}.resume-shell .ScrollConstellation_belt__aOl6v{left:25px;width:1px;background:var(--resume-line);box-shadow:none}.resume-shell .ScrollConstellation_beltStripes__C9N6y,.resume-shell .ScrollConstellation_roller__ZFm27{display:none}.resume-shell .ScrollConstellation_cargo__YQI5d{left:17px;width:18px;height:18px;animation:none}.resume-shell .ScrollConstellation_cargoBox__w_j01{filter:none}.resume-shell .ScrollConstellation_cargoBox__w_j01 svg{width:18px;height:18px}.resume-shell .ScrollConstellation_nodes___rdQu{left:42px}.resume-shell .ScrollConstellation_node__Z6_Is{gap:10px}.resume-shell .ScrollConstellation_node__Z6_Is:hover{transform:none}.resume-shell .ScrollConstellation_nodeIcon__WGuFm{width:8px;height:8px;background:var(--resume-bg);border:1px solid var(--resume-line);box-shadow:none}.resume-shell .ScrollConstellation_node__Z6_Is.ScrollConstellation_active___HiaF .ScrollConstellation_nodeIcon__WGuFm,.resume-shell .ScrollConstellation_node__Z6_Is.ScrollConstellation_lit__mymmG .ScrollConstellation_nodeIcon__WGuFm{background:var(--resume-accent);border-color:var(--resume-accent);box-shadow:none;transform:none}.resume-shell .ScrollConstellation_nodeLabel__wDA4Q{color:var(--resume-muted);font-size:13px;font-weight:500;letter-spacing:0}.resume-shell .ScrollConstellation_node__Z6_Is.ScrollConstellation_active___HiaF .ScrollConstellation_nodeLabel__wDA4Q,.resume-shell .ScrollConstellation_node__Z6_Is.ScrollConstellation_lit__mymmG .ScrollConstellation_nodeLabel__wDA4Q{color:var(--resume-ink);font-weight:600}.resume-shell .ScrollConstellation_node__Z6_Is.ScrollConstellation_active___HiaF .ScrollConstellation_nodeLabel__wDA4Q{color:var(--resume-accent)}.resume-shell .ScrollConstellation_cargo__YQI5d.ScrollConstellation_arrived__vcyaq{opacity:1;transform:none;transition:top .18s ease}@media (prefers-reduced-motion:reduce){.resume-shell .ScrollConstellation_cargo__YQI5d{animation:none}}:root{--color-bg:#FBF7F0;--color-surface:#FFFFFF;--color-surface-2:#F4ECDF;--color-ink:#2B2620;--color-ink-soft:#6B6052;--color-ink-faint:#7A6E5C;--color-line:#E7DECF;--color-accent:#C8683E;--color-accent-strong:#A8542E;--color-accent-soft:#F6E7DC;--color-gold:#C2924B;--color-focus:#C8683E;--font-serif:"Iowan Old Style","Songti SC",STSong,Georgia,serif;--font-sans:"Aptos","PingFang SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;--fs-xs:0.75rem;--fs-sm:0.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-3xl:1.875rem;--fs-4xl:2.25rem;--lh-tight:1.1;--lh-snug:1.25;--lh-base:1.7;--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-7:1.75rem;--sp-8:2rem;--sp-12:3rem;--sp-16:4rem;--sp-24:6rem;--sp-32:8rem;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--shadow-sm:0 1px 2px rgba(43,38,32,0.06);--shadow-md:0 10px 30px rgba(43,38,32,0.10);--tr-fast:150ms ease;--tr-base:320ms ease;--container:1080px;--reading:64ch}[data-theme=dark]{--color-bg:#1B1712;--color-surface:#231E18;--color-surface-2:#2C261E;--color-ink:#F3ECE0;--color-ink-soft:#C9BBA8;--color-ink-faint:#A9987F;--color-line:#3A332A;--color-accent:#E08A5C;--color-accent-strong:#D9774A;--color-accent-soft:#2E241B;--color-gold:#D9A86A;--color-focus:#E08A5C}[data-theme=dark] .paper-grain{opacity:.02;mix-blend-mode:screen}.mouse-glow{position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle 22vw at var(--mouse-x,50vw) var(--mouse-y,50vh),rgba(194,146,75,.18),transparent 60%);opacity:1}[data-theme=dark] .mouse-glow{background:radial-gradient(circle 22vw at var(--mouse-x,50vw) var(--mouse-y,50vh),rgba(224,138,92,.14),transparent 60%)}@media (max-width:1024px),(pointer:coarse){.mouse-glow{display:none}}@media (prefers-reduced-motion:reduce){.mouse-glow{display:none}}.paper-grain{--dot-size:32px;--dot-opacity:0.55;--dot-blend:multiply;animation:dotGridDrift 60s linear infinite}[data-theme=dark] .paper-grain{--dot-opacity:0.25;--dot-blend:screen}.paper-grain:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,var(--color-line) 1.25px,transparent 1.25px);background-size:var(--dot-size) var(--dot-size);opacity:var(--dot-opacity);mix-blend-mode:var(--dot-blend);pointer-events:none}@media (max-width:1024px){.paper-grain:after{--dot-size:24px;opacity:calc(var(--dot-opacity) * .8)}}@keyframes dotGridDrift{0%{background-position:0 0,0 0}to{background-position:0 0,var(--dot-size) var(--dot-size)}}@media (prefers-reduced-motion:reduce){.paper-grain{animation:none}}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;scroll-padding-top:80px;scrollbar-width:thin;scrollbar-color:var(--color-line) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-line);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-faint)}@media (max-width:767px){html{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background var(--tr-base),color var(--tr-base)}img{max-width:100%;display:block}a{color:var(--color-accent-strong);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--color-accent)}button{font-family:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:var(--r-sm)}.skip-link{position:absolute;left:-999px;top:0;background:var(--color-ink);color:var(--color-bg);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);z-index:100}.skip-link:focus{left:var(--sp-4);top:var(--sp-4)}.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}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-6)}.section{width:min(100% - var(--sp-8),var(--container));margin-inline:auto;margin-block:var(--sp-12);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);padding:var(--sp-24) var(--sp-8)}.section:first-of-type{margin-top:0}.section-head{display:flex;align-items:baseline;gap:var(--sp-4);margin-bottom:var(--sp-12);position:relative}.section-head .idx{font-family:var(--font-serif);color:var(--color-accent-strong);font-weight:600;font-size:var(--fs-lg)}.section-head h2{font-family:var(--font-serif);font-weight:500;font-size:var(--fs-2xl);margin:0;letter-spacing:-.01em;transition:font-weight var(--tr-fast);position:relative}.section-head h2:hover{font-weight:600}.section-head .idx:after{content:attr(data-num);position:absolute;right:-.2em;top:-.55em;font-family:var(--font-serif);font-weight:600;font-size:2.6em;color:transparent;-webkit-text-stroke:1.5px var(--color-line);pointer-events:none;z-index:0;line-height:1}.section-head h2:after{content:"";position:absolute;left:0;bottom:-8px;height:3px;width:100%;border-radius:2px;background:linear-gradient(90deg,var(--color-gold),var(--color-accent));transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.21,.6,.35,1)}.section-head h2.is-underlined:after{transform:scaleX(1)}.section-head .en{color:var(--color-gold);font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.22em;text-transform:uppercase}.grid-2{display:grid;grid-gap:var(--sp-12);gap:var(--sp-12)}.section--alt{background:var(--color-surface-2)}.section--warm{background:var(--color-accent-soft)}.highlight-section{animation:sectionGlow 1.2s ease}@keyframes sectionGlow{0%{box-shadow:0 0 0 0 rgba(200,104,62,.35)}to{box-shadow:0 0 0 12px rgba(200,104,62,0)}}.gsap-char{display:inline-block}.section-head h2 .gsap-mask-inner{display:inline-block;overflow:hidden;vertical-align:bottom}.section-head h2 .gsap-mask-char{display:inline-block}.prose a{position:relative;text-decoration:none;color:var(--color-accent-strong);border-bottom:1px solid transparent}.prose a:after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--color-accent);transition:width .3s cubic-bezier(.21,.6,.35,1)}.prose a:hover:after{width:100%}.tags{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-8)}.tag{font-size:var(--fs-sm);color:var(--color-ink);background:var(--color-surface-2);border:1px solid var(--color-line);padding:var(--sp-2) var(--sp-4)}.btn,.tag{border-radius:999px}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-8);font:inherit;font-weight:500;font-size:var(--fs-base);cursor:pointer;text-decoration:none;-webkit-backdrop-filter:blur(12px) saturate(150%);backdrop-filter:blur(12px) saturate(150%);transition:transform var(--tr-fast),background var(--tr-fast),border-color var(--tr-fast),box-shadow var(--tr-fast)}.btn--primary{background:color-mix(in srgb,var(--color-accent-strong) 78%,transparent);color:#fff;border:1px solid color-mix(in srgb,var(--color-accent-strong) 90%,transparent);box-shadow:0 6px 20px color-mix(in srgb,var(--color-accent-strong) 28%,transparent);position:relative;overflow:hidden}.btn--primary:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);pointer-events:none;animation:btnShine 3.6s ease-in-out infinite}@keyframes btnShine{0%{left:-60%}55%,to{left:130%}}.btn--primary:hover{background:color-mix(in srgb,#8F4423 80%,transparent);border-color:#8F4423;transform:translateY(-1px);box-shadow:0 8px 24px color-mix(in srgb,var(--color-accent-strong) 38%,transparent)}.btn--ghost{background:color-mix(in srgb,var(--color-surface) 50%,transparent);color:var(--color-ink);border:1px solid color-mix(in srgb,var(--color-line) 85%,transparent);box-shadow:0 4px 14px rgba(0,0,0,.06)}.btn--ghost:hover{border-color:var(--color-ink-soft);background:color-mix(in srgb,var(--color-surface) 65%,transparent);transform:translateY(-1px)}.ornament{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);margin-block:var(--sp-16)}.ornament .line{height:1px;width:min(120px,22vw);background:var(--color-line)}html.reveal-ready [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.21,.6,.35,1),transform .7s cubic-bezier(.21,.6,.35,1);will-change:opacity,transform}html.reveal-ready [data-reveal].is-visible{opacity:1;transform:none}.detail-block{margin-top:auto;border-top:1px dashed var(--color-line);padding-top:var(--sp-5)}.detail-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);flex-wrap:nowrap;white-space:nowrap;padding:var(--sp-2) 0;background:transparent;border:none;color:var(--color-accent-strong);font:inherit;font-weight:600;font-size:var(--fs-sm);cursor:pointer;list-style:none;text-decoration:none}.detail-toggle::-webkit-details-marker{display:none}.detail-toggle:hover{color:var(--color-accent)}.detail-toggle:focus-visible{outline-offset:2px}.detail-block[open] .detail-toggle .t-open,.detail-toggle .t-close{display:none}.detail-block[open] .detail-toggle .t-close{display:inline}.detail-toggle .chev{transition:transform var(--tr-fast)}.detail-block[open] .detail-toggle .chev{transform:rotate(180deg)}.detail-body{padding-top:var(--sp-6);color:var(--color-ink-soft);max-width:var(--reading);animation:detailReveal var(--tr-base) ease}@keyframes detailReveal{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.detail-body h4{font-family:var(--font-serif);font-weight:500;font-size:var(--fs-base);color:var(--color-ink);margin:var(--sp-6) 0 var(--sp-3)}.detail-body h4:first-child{margin-top:0}.detail-body p{margin:0 0 var(--sp-4);line-height:var(--lh-base)}.detail-body ul{margin:0 0 var(--sp-4);padding-left:var(--sp-5)}.detail-body ul li{margin-bottom:var(--sp-3);line-height:var(--lh-base)}.detail-body ul li::marker{color:var(--color-accent)}.detail-body .metric-bar{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-4)}.metric{font-weight:500;background:var(--color-accent-soft);padding:var(--sp-2) var(--sp-4);border-radius:999px}.detail-link,.metric{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--color-accent-strong);font-size:var(--fs-sm)}.detail-link{margin-top:var(--sp-5);font-weight:600;text-decoration:none}.detail-link:hover{color:var(--color-accent);text-decoration:underline}.site-header{position:fixed;top:0;right:0;left:0;z-index:100;background:color-mix(in srgb,var(--color-bg) 85%,transparent);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--color-line)}main{padding-top:64px}.nav{display:flex;justify-content:space-between;height:64px;gap:var(--sp-3)}.brand,.nav{align-items:center}.brand{display:inline-flex;gap:8px;color:var(--color-ink);font-family:var(--font-serif);font-weight:600;font-size:var(--fs-lg);letter-spacing:.01em;flex-shrink:0;padding-right:var(--sp-2);text-decoration:none}.brand-mark{display:block;width:28px;height:28px;border-radius:8px;object-fit:cover;flex-shrink:0}.nav-desktop{flex:1 1;min-width:0;overflow:hidden}.nav-links{display:none;gap:var(--sp-6);list-style:none;margin:0;padding:0;justify-content:center;flex-wrap:wrap}html[lang=en] .nav-links{gap:var(--sp-4)}.nav-links a{position:relative;color:var(--color-ink-soft);text-decoration:none;font-size:var(--fs-sm);font-weight:500;white-space:nowrap;letter-spacing:.01em;transition:color var(--tr-fast),font-weight var(--tr-fast)}html[lang=en] .nav-links a{font-size:var(--fs-xs)}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--color-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--tr-base)}.nav-links a:hover{color:var(--color-ink);font-weight:600}.nav-links a:hover:after{transform:scaleX(1)}.nav-actions{display:inline-flex;align-items:center;gap:var(--sp-1);flex-shrink:0}.lang-toggle,.share-toggle,.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:color-mix(in srgb,var(--color-surface) 45%,transparent);-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);color:var(--color-ink);border:1px solid color-mix(in srgb,var(--color-line) 80%,transparent);border-radius:999px;height:32px;padding:0 var(--sp-2);font:inherit;font-size:var(--fs-xs);cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.05);transition:border-color var(--tr-fast),background var(--tr-fast),transform var(--tr-fast)}.share-toggle,.theme-toggle{width:32px;padding:0}.lang-toggle:hover,.share-toggle:hover,.theme-toggle:hover{border-color:var(--color-ink-soft);background:color-mix(in srgb,var(--color-surface) 65%,transparent);transform:translateY(-1px)}.lang-toggle{min-width:56px;font-size:var(--fs-xs)}.lang-toggle-current{font-weight:600;color:var(--color-ink)}.lang-toggle-other,.lang-toggle-sep{color:var(--color-ink-faint)}.lang-toggle-other{font-weight:500}.nav-burger{display:none;width:32px;height:32px;background:color-mix(in srgb,var(--color-surface) 45%,transparent);-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);border:1px solid color-mix(in srgb,var(--color-line) 80%,transparent);border-radius:999px;cursor:pointer;position:relative;flex-shrink:0;box-shadow:0 3px 10px rgba(0,0,0,.05);transition:border-color var(--tr-fast),background var(--tr-fast),transform var(--tr-fast)}.nav-burger:hover{border-color:var(--color-ink-soft);background:color-mix(in srgb,var(--color-surface) 65%,transparent);transform:translateY(-1px)}.nav-burger span{position:absolute;left:8px;right:8px;height:2px;background:var(--color-ink);border-radius:2px;transition:transform .22s ease,opacity .16s ease,top .22s ease}.nav-burger span:first-child{top:11px}.nav-burger span:nth-child(2){top:15px}.nav-burger span:nth-child(3){top:19px}.nav-burger.is-open span:first-child{top:15px;transform:rotate(45deg)}.nav-burger.is-open span:nth-child(2){opacity:0}.nav-burger.is-open span:nth-child(3){top:15px;transform:rotate(-45deg)}.nav-mobile{max-height:0;overflow:hidden;background:color-mix(in srgb,var(--color-surface) 60%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid color-mix(in srgb,var(--color-line) 80%,transparent);transition:max-height .32s cubic-bezier(.22,1,.36,1)}.nav-mobile.is-open{max-height:80vh;overflow-y:auto}.nav-mobile ul{list-style:none;margin:0;padding:var(--sp-3) var(--sp-5) var(--sp-5);display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-2);gap:var(--sp-2)}.nav-mobile a{display:block;text-decoration:none;font-size:var(--fs-sm);font-weight:600;color:var(--color-ink-soft);background:color-mix(in srgb,var(--color-surface) 50%,transparent);border:1px solid color-mix(in srgb,var(--color-line) 75%,transparent);border-radius:10px;padding:var(--sp-3) var(--sp-4);transition:color var(--tr-fast),background var(--tr-fast),border-color var(--tr-fast)}.nav-mobile a:active,.nav-mobile a:focus-visible,.nav-mobile a:hover{color:var(--color-accent-strong);background:var(--color-accent-soft);border-color:var(--color-accent)}.share-wrap{position:relative;display:inline-flex}.share-panel{position:absolute;top:calc(100% + 10px);right:0;min-width:280px;max-width:90vw;background:color-mix(in srgb,var(--color-surface) 55%,transparent);-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);border:1px solid color-mix(in srgb,var(--color-line) 80%,transparent);border-radius:14px;box-shadow:0 12px 36px rgba(0,0,0,.12);padding:var(--sp-5);z-index:60;display:flex;flex-direction:column;gap:var(--sp-3)}.share-qr{display:flex;justify-content:center}.share-qr img{display:block;border-radius:8px;background:#fff;padding:6px}.share-qr-placeholder{width:180px;height:180px;border-radius:8px;background:var(--color-surface-2)}.share-qr-hint{text-align:center;font-size:var(--fs-sm);color:var(--color-ink-soft);margin:0}.share-link-row{display:flex;align-items:center;gap:var(--sp-2)}.share-url{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);color:var(--color-ink-faint);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb,var(--color-surface) 50%,transparent);border-radius:8px;border:1px solid color-mix(in srgb,var(--color-line) 75%,transparent)}.share-copy{flex-shrink:0;font:inherit;font-size:var(--fs-sm);background:color-mix(in srgb,var(--color-accent-strong) 78%,transparent);-webkit-backdrop-filter:blur(10px) saturate(150%);backdrop-filter:blur(10px) saturate(150%);color:#fff;border:1px solid color-mix(in srgb,var(--color-accent-strong) 90%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--color-accent-strong) 28%,transparent);border-radius:8px;padding:var(--sp-2) var(--sp-4);cursor:pointer;transition:opacity var(--tr-fast),transform var(--tr-fast)}.share-copy:hover{opacity:.92;transform:translateY(-1px)}@media (max-width:600px){.share-panel{position:fixed;top:8px;left:8px;right:8px;transform:none;min-width:0;max-width:none;width:calc(100% - 16px);max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;padding:calc(var(--sp-4) + env(safe-area-inset-top)) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom));z-index:120}.share-qr img,.share-qr-placeholder{width:140px;height:140px}.share-url{font-size:10px}.share-copy{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs)}}.site-footer{border-top:1px solid var(--color-line);padding-block:var(--sp-12);color:var(--color-ink-faint);font-size:var(--fs-sm)}.site-footer .container{display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--sp-6)}.footer-stamp{transform:rotate(-6deg);opacity:.85;flex-shrink:0}@media (max-width:600px){.site-footer .container{flex-direction:column;text-align:center}}.to-top{position:fixed;right:max(var(--sp-3),env(safe-area-inset-right));bottom:calc(max(var(--sp-3), env(safe-area-inset-bottom)) + 72px);width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--color-surface) 50%,transparent);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);color:var(--color-ink);border:1px solid color-mix(in srgb,var(--color-line) 80%,transparent);box-shadow:0 6px 20px rgba(0,0,0,.1);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--tr-base),transform var(--tr-base),background var(--tr-fast),color var(--tr-fast);z-index:60}.to-top.show{opacity:1;transform:translateY(0);pointer-events:auto}.to-top:hover{background:color-mix(in srgb,var(--color-accent-strong) 70%,transparent);color:#fff;border-color:transparent}.to-top__ring{position:absolute;inset:0;transform:rotate(-90deg)}.to-top__icon{position:relative;z-index:1}@media (max-width:767px){.to-top{right:max(var(--sp-3),env(safe-area-inset-right));left:auto;bottom:max(var(--sp-3),env(safe-area-inset-bottom))}}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;background:transparent;pointer-events:none}.scroll-progress__bar{position:relative;height:100%;width:0;background:linear-gradient(90deg,var(--color-accent),var(--color-gold));transition:width 80ms linear}.scroll-progress__bar:after{content:"";position:absolute;right:-3px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--color-gold);box-shadow:0 0 6px var(--color-gold);transform:translateY(-50%)}@media (min-width:768px){.grid-2{align-items:start}.contact-grid,.grid-2{grid-template-columns:200px 1fr}}@media (min-width:1120px){.nav-links{display:flex}.nav-mobile{display:none}}.nav-scroll{display:none}@media (max-width:1119px){.nav-desktop{display:none}.nav-burger{display:inline-flex;align-items:center;justify-content:center}}@media (max-width:767px){.section{width:min(100% - var(--sp-6),var(--container));padding:var(--sp-10) var(--sp-5);border-radius:var(--r-lg);margin-block:var(--sp-10)}.section:first-of-type{margin-top:0}.section-head{flex-direction:column;align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-8)}.section-head h2{font-size:var(--fs-xl)}.section-head .idx{font-size:var(--fs-base)}.section-head .en{letter-spacing:.14em}.nav-scroll{display:block;border-bottom:1px solid var(--color-line);background:color-mix(in srgb,var(--color-bg) 88%,transparent);-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px)}.nav-scroll ul{display:flex;gap:var(--sp-3);list-style:none;margin:0;padding:var(--sp-3) var(--sp-5);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav-scroll ul::-webkit-scrollbar{display:none}.nav-scroll a{flex:0 0 auto;white-space:nowrap;text-decoration:none;font-size:var(--fs-sm);font-weight:600;color:var(--color-ink-soft);background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:999px;padding:var(--sp-2) var(--sp-4);transition:color var(--tr-fast),background var(--tr-fast),border-color var(--tr-fast)}.nav-scroll a:active,.nav-scroll a:focus-visible{color:#fff;background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.container{padding-inline:var(--sp-5)}.detail-body{max-width:none}.btn{padding:var(--sp-3) var(--sp-6)}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media (max-width:767px){html{scroll-padding-top:76px}body.assistant-open,body.mobile-menu-open{overflow:hidden}body{overflow-x:hidden}.site-header{height:60px;background:var(--color-bg);border-bottom-color:var(--color-line);-webkit-backdrop-filter:none;backdrop-filter:none}.nav{height:60px;padding-inline:16px}.brand{font-size:18px}.nav-actions{gap:4px}.nav-actions>.lang-toggle,.nav-actions>.share-wrap,.nav-actions>.theme-toggle{display:inline-flex}.nav-actions>.lang-toggle,.nav-actions>.share-wrap .share-toggle,.nav-actions>.theme-toggle{height:44px;border-radius:10px}.nav-actions>.lang-toggle{min-width:56px;padding-inline:12px}.nav-actions>.share-wrap .share-toggle,.nav-actions>.theme-toggle{width:44px;padding:0}.nav-burger{display:inline-flex;width:44px;height:44px;border-radius:10px;background:transparent;border-color:var(--color-line);box-shadow:none}.nav-burger span{left:12px;right:12px}.nav-burger span:first-child{top:14px}.nav-burger span:nth-child(2){top:20px}.nav-burger span:nth-child(3){top:26px}.nav-burger.is-open span:first-child,.nav-burger.is-open span:nth-child(3){top:20px}.nav-mobile{position:fixed;top:60px;right:0;left:0;z-index:99;max-height:0;border-bottom:0;background:var(--color-bg);-webkit-backdrop-filter:none;backdrop-filter:none;opacity:0;pointer-events:none;transition:max-height .22s ease,opacity .16s ease}.nav-mobile.is-open{max-height:calc(100dvh - 60px);min-height:calc(100dvh - 60px);padding:20px;border-bottom:1px solid var(--color-line);overflow-y:auto;opacity:1;pointer-events:auto}.nav-mobile-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;color:var(--color-ink-soft);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.nav-mobile-count{color:var(--color-accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nav-mobile ul{display:grid;grid-template-columns:1fr;grid-gap:0;gap:0;padding:0;border-top:1px solid var(--color-line)}.nav-mobile li{border-bottom:1px solid var(--color-line)}.nav-mobile a{min-height:48px;display:flex;align-items:center;padding:0;border:0;border-radius:0;background:transparent;color:var(--color-ink);font-size:16px}.nav-mobile a:active,.nav-mobile a:focus-visible{color:var(--color-accent-strong);background:transparent;border:0}.nav-mobile-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;padding-top:16px}.nav-mobile-links a{min-height:44px;justify-content:center;border:1px solid var(--color-line);padding-inline:12px;background:var(--color-surface-2);font-size:14px}.nav-mobile-settings{display:flex;gap:8px;padding-top:20px}.nav-mobile-settings .lang-toggle,.nav-mobile-settings .share-toggle,.nav-mobile-settings .theme-toggle{display:inline-flex;min-width:44px;min-height:44px;height:44px;border-radius:10px;background:transparent;border-color:var(--color-line);box-shadow:none}.nav-mobile-settings .lang-toggle{padding-inline:12px}.nav-mobile-settings .share-wrap{display:inline-flex}main{padding-top:60px}.container{width:100%;padding-inline:20px}.section{width:calc(100% - 40px);margin:0 auto;padding:40px 0;border-radius:0;border-right:0;border-left:0;background:transparent;box-shadow:none}.section-head{margin-bottom:20px;gap:8px}.section-head h2{font-size:24px;line-height:1.25}.section-head .idx{font-size:12px}.section-head .en{font-size:11px}.section--alt,.section--warm{background:transparent}.btn{min-height:48px;border-radius:8px}.site-footer{padding-block:40px}.site-footer .container{gap:24px}.nav-scroll,.to-top{display:none}.scroll-progress{height:2px}.mouse-glow,.paper-grain{display:none}.resume-shell .nav-mobile,.resume-shell .site-header{background:var(--resume-bg)}.resume-shell .section{width:calc(100% - 40px);padding-block:40px}.resume-shell .section:first-of-type{margin-top:0}.resume-shell .section-head h2{font-size:24px}.resume-shell .nav-actions>.lang-toggle,.resume-shell .nav-actions>.share-wrap .share-toggle,.resume-shell .nav-actions>.theme-toggle,.resume-shell .nav-burger{border-color:var(--resume-line);color:var(--resume-ink)}.works-intro{padding:36px 20px 28px}.works-back{margin-bottom:28px}.works-intro h1{max-width:12ch;font-size:30px;line-height:1.15}.works-kicker{margin-bottom:12px}.works-index{margin-top:24px;grid-template-columns:1fr 1fr}.works-index a{min-height:48px;display:flex;align-items:center;padding:0 12px;font-size:13px}.works-index a:first-child{padding-left:12px}}@media (max-width:359px){.container,.works-intro{padding-inline:16px}.resume-shell .section,.section{width:calc(100% - 32px)}.nav{padding-inline:12px}.hero .btnRow{gap:8px 14px}}.works-intro{padding-block:clamp(56px,9vw,112px) var(--sp-12)}.works-back{display:inline-block;margin-bottom:var(--sp-12);color:var(--color-ink-soft);font-size:var(--fs-sm);text-decoration:none}.works-back:hover,.works-kicker{color:var(--color-accent-strong)}.works-kicker{margin:0 0 var(--sp-4);font-size:var(--fs-xs);font-weight:700;letter-spacing:.18em}.works-intro h1{max-width:13ch;margin:0 0 var(--sp-6);font-family:var(--font-serif);font-size:clamp(2.25rem,7vw,5.5rem);font-weight:500;line-height:1.02;letter-spacing:-.035em}.works-intro>p:not(.works-kicker){max-width:66ch;color:var(--color-ink-soft);font-size:var(--fs-lg)}.works-index{display:flex;flex-wrap:wrap;gap:0;margin-top:var(--sp-10);border-block:1px solid var(--color-line)}.works-index a{padding:var(--sp-4) var(--sp-6);color:var(--color-ink);border-right:1px solid var(--color-line);text-decoration:none;font-size:var(--fs-sm);font-weight:700}.works-index a:first-child{padding-left:0}.works-index a:hover{color:var(--color-accent-strong)}@media (max-width:600px){.works-intro>p:not(.works-kicker){font-size:var(--fs-base)}.works-index{display:grid;grid-template-columns:1fr 1fr}.works-index a{padding-inline:0;border-right:0;border-bottom:1px solid var(--color-line)}}.resume-shell{--resume-bg:#FAF8F4;--resume-surface:#FFFFFF;--resume-ink:#242421;--resume-muted:#65645E;--resume-line:#DEDAD2;--resume-accent:#A64B32;min-height:100vh;background:var(--resume-bg);color:var(--resume-ink)}[data-theme=dark] .resume-shell{--resume-bg:#191917;--resume-surface:#242421;--resume-ink:#F2F0EB;--resume-muted:#B9B7AE;--resume-line:#3A3934;--resume-accent:#E49A7C}.resume-shell .mouse-glow,.resume-shell .paper-grain{display:none}.resume-shell .container{max-width:min(var(--container),calc(100vw - 220px));padding-inline:0}.resume-shell .site-header{background:var(--resume-bg);border-bottom-color:var(--resume-line);-webkit-backdrop-filter:none;backdrop-filter:none}.resume-shell .brand,.resume-shell .nav-actions button,.resume-shell .nav-links a{color:var(--resume-ink)}.resume-shell .nav-links a{color:var(--resume-muted)}.resume-shell .nav-links a:hover{color:var(--resume-accent)}.resume-shell .nav-links a:after{background:var(--resume-accent)}.resume-shell .lang-toggle,.resume-shell .nav-burger,.resume-shell .share-toggle,.resume-shell .theme-toggle{border-radius:3px;background:transparent;border-color:var(--resume-line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.resume-shell main{background:var(--resume-bg)}.resume-shell .section{width:min(var(--container),calc(100vw - 220px));margin-block:0;padding:80px 0;background:transparent;border:0;border-top:1px solid var(--resume-line);border-radius:0;box-shadow:none}.resume-shell .section--alt,.resume-shell .section--warm{background:transparent}.resume-shell .section-head{gap:16px;margin-bottom:24px}.resume-shell .section-head .idx{color:var(--resume-accent);font-size:16px}.resume-shell .section-head .idx:after,.resume-shell .section-head h2:after{display:none}.resume-shell .section-head h2{color:var(--resume-ink);font-size:28px;font-weight:600}.resume-shell .btn{min-height:44px;border-radius:4px;padding:0 22px;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.resume-shell .btn--primary{background:var(--resume-accent);border-color:var(--resume-accent);color:#fff}.resume-shell .btn--primary:after{display:none}.resume-shell .btn--primary:hover{background:color-mix(in srgb,var(--resume-accent) 86%,#000)}.resume-shell .site-footer{border-top-color:var(--resume-line);color:var(--resume-muted)}@media (min-width:1181px){.resume-shell .container,.resume-shell .section{width:min(var(--container),calc(100vw - 224px));max-width:var(--container);margin-left:max(192px,calc((100vw - 920px) / 2));margin-right:auto}}@media (min-width:768px) and (max-width:1180px){.resume-shell .container,.resume-shell .section{width:calc(100vw - 64px);max-width:calc(100vw - 64px)}}@media (max-width:767px){.resume-shell .container{max-width:calc(100% - 40px);padding-inline:0}.resume-shell .section{width:calc(100% - 40px);padding:48px 0}.resume-shell .section-head{gap:8px;margin-bottom:24px}.resume-shell .section-head h2{font-size:24px}}.works-title-mobile{display:none}@media (max-width:767px){.works-title-full{display:none}.works-title-mobile{display:inline}.works-intro h1{max-width:none;font-size:30px;line-height:1.15}.nav-mobile.is-open{min-height:calc(100dvh - 60px)}}