:root{--c-bg:#fafafa;--c-bg-card:#fff;--c-bg-alt:#f4f4f2;--c-text:#0a0a0a;--c-text-mute:#6b6b6b;--c-text-faint:#a0a0a0;--c-line:#e5e5e5;--c-line-bold:#0a0a0a;--c-accent:#ff6b35;--c-accent-hover:#e85a24;--c-accent-soft:#ffe8dd;--ff-display-cn:"Noto Sans SC",-apple-system,"PingFang SC",sans-serif;--ff-display-en:"Inter Tight",-apple-system,"Helvetica Neue",sans-serif;--ff-body-cn:"Noto Sans SC",-apple-system,"PingFang SC",sans-serif;--ff-body-en:"Inter",-apple-system,"Helvetica Neue",sans-serif;--ff-mono:"JetBrains Mono","SF Mono",monospace;--fs-hero:clamp(2.75rem,7vw,5.25rem);--fs-h1:clamp(2rem,4.2vw,3rem);--fs-h2:clamp(1.5rem,3vw,2.125rem);--fs-h3:1.25rem;--fs-h4:1.0625rem;--fs-body:1rem;--fs-body-lg:1.125rem;--fs-caption:0.875rem;--fs-small:0.75rem;--lh-tight:1.05;--lh-snug:1.2;--lh-normal:1.55;--lh-loose:1.75;--ls-tight:-0.03em;--ls-display:-0.02em;--ls-normal:0;--ls-wide:0.04em;--ls-tracked:0.16em;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-8:64px;--space-10:80px;--space-12:96px;--space-16:128px;--container-max:1240px;--container-pad:clamp(20px,4vw,48px);--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-pill:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 12px rgba(0,0,0,.06);--shadow-lg:0 12px 32px rgba(0,0,0,.08);--ease-out:cubic-bezier(.2,0,0,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--t-fast:180ms;--t-normal:260ms;--t-slow:500ms;color-scheme:light dark}.dark{--c-bg:#0e0e10;--c-bg-card:#16161a;--c-bg-alt:#1e1e22;--c-text:#f5f5f5;--c-text-mute:#a8a8a8;--c-text-faint:#6b6b6b;--c-line:#2a2a2e;--c-line-bold:#f5f5f5;--c-accent:#ff7a45;--c-accent-hover:#ff6b35;--c-accent-soft:#2a1810;--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow-md:0 4px 12px rgba(0,0,0,.4);--shadow-lg:0 12px 32px rgba(0,0,0,.5)}@media (prefers-color-scheme:dark){:root:not(.light){--c-bg:#0e0e10;--c-bg-card:#16161a;--c-bg-alt:#1e1e22;--c-text:#f5f5f5;--c-text-mute:#a8a8a8;--c-text-faint:#6b6b6b;--c-line:#2a2a2e;--c-line-bold:#f5f5f5;--c-accent:#ff7a45;--c-accent-hover:#ff6b35;--c-accent-soft:#2a1810}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--c-bg);color:var(--c-text);font-family:var(--ff-body-cn),var(--ff-body-en);font-size:var(--fs-body);line-height:var(--lh-normal);font-weight:400;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background var(--t-normal) var(--ease-out),color var(--t-normal) var(--ease-out)}img,svg{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}ol,ul{list-style:none}button{font:inherit;cursor:pointer;background:none;border:none}::selection{background:var(--c-accent);color:var(--c-bg-card)}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding-left:var(--container-pad);padding-right:var(--container-pad)}.section{padding-top:var(--space-8);padding-bottom:var(--space-8);position:relative}.section-head{margin-bottom:var(--space-6);max-width:720px}.section-eyebrow{display:inline-block;font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-tracked);text-transform:uppercase;color:var(--c-accent);margin-bottom:var(--space-2);font-weight:500}.section-title{font-family:var(--ff-display-cn),var(--ff-display-en);font-weight:700;font-size:var(--fs-h1);line-height:var(--lh-snug);letter-spacing:var(--ls-display);color:var(--c-text);margin-bottom:var(--space-2)}.section-lead{font-family:var(--ff-body-cn);font-size:var(--fs-body-lg);line-height:var(--lh-normal);color:var(--c-text-mute);margin-top:var(--space-2)}.section-lead strong{color:var(--c-text);font-weight:600}.section-foot{margin-top:var(--space-6);text-align:center}.site-header{position:-webkit-sticky;position:sticky;top:0;left:0;right:0;z-index:100;padding:var(--space-2) 0;background:color-mix(in srgb,var(--c-bg) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color var(--t-normal) var(--ease-out)}.site-header.is-scrolled{border-bottom-color:var(--c-line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.brand{display:inline-flex;align-items:center;gap:var(--space-2)}.brand-mark{width:10px;height:10px;background:var(--c-accent);border-radius:var(--r-sm);display:inline-block;flex-shrink:0}.brand-text{font-family:var(--ff-display-cn);font-weight:700;font-size:1rem;letter-spacing:-.01em;color:var(--c-text)}.brand-dot{color:var(--c-accent);margin:0 1px}.nav{display:flex;align-items:center;gap:var(--space-2)}.nav-link{font-family:var(--ff-body-en);font-size:var(--fs-caption);font-weight:500;color:var(--c-text-mute);padding:var(--space-1) var(--space-2);border-radius:var(--r-sm);transition:color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.nav-link:hover{background:var(--c-bg-alt)}.nav-link.is-active,.nav-link:hover{color:var(--c-text)}.nav-link-cta{background:var(--c-text);color:var(--c-bg-card);margin-left:var(--space-1)}.nav-link-cta:hover{background:var(--c-accent);color:var(--c-bg-card)}.header-actions{gap:var(--space-1)}.header-actions,.icon-btn{display:flex;align-items:center}.icon-btn{width:36px;height:36px;border-radius:var(--r-md);justify-content:center;color:var(--c-text-mute);transition:all var(--t-fast) var(--ease-out)}.icon-btn:hover{color:var(--c-text);background:var(--c-bg-alt)}.nav-toggle{display:none;width:36px;height:36px;flex-direction:column;justify-content:center;align-items:center;gap:4px}.nav-toggle span{width:18px;height:1.5px;background:var(--c-text);border-radius:2px;transition:transform var(--t-fast) var(--ease-out),opacity var(--t-fast) var(--ease-out)}.hero{padding-top:var(--space-10);padding-bottom:var(--space-6);position:relative;overflow:hidden}.hero-inner{max-width:920px}.hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-pill);font-family:var(--ff-body-en);font-size:var(--fs-small);letter-spacing:var(--ls-wide);color:var(--c-text-mute);margin-bottom:var(--space-4)}.badge-dot{width:6px;height:6px;background:var(--c-accent);border-radius:50%;animation:pulse 2.4s var(--ease-in-out) infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.hero-title{font-family:var(--ff-display-cn),var(--ff-display-en);font-weight:700;font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--c-text);margin-bottom:var(--space-4)}.hero-title-accent{color:var(--c-accent)}.hero-lead{font-family:var(--ff-body-cn);font-size:var(--fs-body-lg);line-height:var(--lh-loose);color:var(--c-text-mute);margin-bottom:var(--space-4);max-width:640px}.hero-lead strong{color:var(--c-text);font-weight:600}.hero-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-8)}.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-3);gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--c-line)}.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat-num{font-family:var(--ff-display-en);font-weight:700;font-size:clamp(2rem,4vw,2.75rem);line-height:1;letter-spacing:var(--ls-tight);color:var(--c-text)}.stat-label{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text-mute);line-height:var(--lh-snug)}.hero-marquee{margin-top:var(--space-8);padding-top:var(--space-3);border-top:1px solid var(--c-line);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee-track{display:inline-flex;gap:var(--space-3);white-space:nowrap;animation:marquee 40s linear infinite;font-family:var(--ff-display-en);font-size:var(--fs-body-lg);font-weight:500;color:var(--c-text-faint);letter-spacing:var(--ls-display)}.marquee-track span:nth-child(2n){color:var(--c-accent)}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--ff-body-en);font-size:var(--fs-body);font-weight:500;border-radius:var(--r-md);cursor:pointer;transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out);white-space:nowrap}.btn-primary{background:var(--c-text);color:var(--c-bg-card)}.btn-primary:hover{background:var(--c-accent);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--c-text);border:1px solid var(--c-line)}.btn-ghost:hover{background:var(--c-bg-alt);border-color:var(--c-text)}.btn-text{background:transparent;color:var(--c-accent);padding:var(--space-1) var(--space-2)}.btn-text:hover{color:var(--c-text)}.btn-lg{padding:var(--space-3) var(--space-4);font-size:var(--fs-body-lg)}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-3);gap:var(--space-3)}.role-card{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--space-4);transition:transform var(--t-normal) var(--ease-out),border-color var(--t-normal) var(--ease-out),box-shadow var(--t-normal) var(--ease-out);display:flex;flex-direction:column}.role-card:hover{transform:translateY(-4px);border-color:var(--c-text);box-shadow:var(--shadow-md)}.role-num{font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-tracked);color:var(--c-accent);font-weight:600}.role-num,.role-title{margin-bottom:var(--space-2)}.role-title{font-family:var(--ff-display-cn);font-weight:700;font-size:var(--fs-h3);line-height:var(--lh-snug);color:var(--c-text)}.role-text{font-family:var(--ff-body-cn);font-size:var(--fs-body);line-height:var(--lh-normal);color:var(--c-text-mute);margin-bottom:var(--space-3);flex:1 1}.role-link{font-family:var(--ff-body-en);font-size:var(--fs-caption);font-weight:500;color:var(--c-accent);display:inline-block}.role-link:hover{color:var(--c-text)}.timeline{display:flex;flex-direction:column;gap:var(--space-4);max-width:920px}.timeline-item{display:grid;grid-template-columns:140px 1fr;grid-gap:var(--space-4);gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--c-line)}.timeline-item:last-child{border-bottom:none;padding-bottom:0}.timeline-date{font-family:var(--ff-mono);font-size:var(--fs-caption);letter-spacing:var(--ls-wide);color:var(--c-text-faint);padding-top:4px}.timeline-title{font-family:var(--ff-display-cn);font-weight:700;font-size:var(--fs-h4);line-height:var(--lh-snug);color:var(--c-text);margin-bottom:var(--space-2)}.timeline-text{font-family:var(--ff-body-cn);font-size:var(--fs-body);line-height:var(--lh-loose);color:var(--c-text-mute);margin-bottom:var(--space-2)}.timeline-text strong{color:var(--c-text);font-weight:600}.timeline-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.tag{display:inline-flex;align-items:center;padding:3px 10px;background:var(--c-bg-alt);border:1px solid var(--c-line);border-radius:var(--r-pill);font-family:var(--ff-body-en);font-size:var(--fs-small);letter-spacing:var(--ls-wide);color:var(--c-text);font-weight:500}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-4);gap:var(--space-4)}.work-card{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-lg);overflow:hidden;transition:transform var(--t-normal) var(--ease-out),border-color var(--t-normal) var(--ease-out),box-shadow var(--t-normal) var(--ease-out);display:flex;flex-direction:column}.work-card:hover{transform:translateY(-4px);border-color:var(--c-text);box-shadow:var(--shadow-md)}.work-thumb{aspect-ratio:16/10;background:var(--c-bg-alt);overflow:hidden}.work-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease-out)}.work-card:hover .work-thumb img{transform:scale(1.04)}.work-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);flex:1 1}.work-meta{display:flex;align-items:center;gap:var(--space-2);font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-wide)}.work-year{color:var(--c-text-faint)}.work-status{color:var(--c-accent);font-weight:500}.work-title{font-family:var(--ff-display-cn);font-weight:700;font-size:var(--fs-h4);line-height:var(--lh-snug);color:var(--c-text)}.work-desc{font-family:var(--ff-body-cn);font-size:var(--fs-caption);line-height:var(--lh-normal);color:var(--c-text-mute);flex:1 1}.work-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--space-1)}.notes-list{display:flex;flex-direction:column;max-width:920px;border-top:1px solid var(--c-line)}.note-item{display:grid;grid-template-columns:110px 1fr auto;grid-gap:var(--space-3);gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--c-line);transition:padding-left var(--t-normal) var(--ease-out)}.note-item:hover{padding-left:var(--space-2)}.note-date{font-family:var(--ff-mono);font-size:var(--fs-caption);letter-spacing:var(--ls-wide);color:var(--c-text-faint)}.note-link{font-family:var(--ff-display-cn);font-weight:500;font-size:clamp(1rem,1.5vw,1.125rem);line-height:var(--lh-snug);color:var(--c-text)}.note-link:hover{color:var(--c-accent)}.note-tag{font-family:var(--ff-body-en);font-size:var(--fs-small);letter-spacing:var(--ls-wide);color:var(--c-text-mute);padding:2px var(--space-1);border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-bg-card)}.cta-section{padding-top:var(--space-4);padding-bottom:var(--space-8)}.cta-card{background:var(--c-text);color:var(--c-bg-card);border-radius:var(--r-xl);padding:var(--space-8) var(--space-6);text-align:center;max-width:920px;margin:0 auto;position:relative;overflow:hidden}.cta-card:before{content:"";position:absolute;top:-50%;right:-20%;width:80%;height:200%;background:radial-gradient(circle,var(--c-accent-soft) 0,transparent 60%);opacity:.12;pointer-events:none}.cta-title{font-family:var(--ff-display-cn);font-weight:700;font-size:clamp(1.5rem,3.5vw,2.25rem);line-height:var(--lh-snug);letter-spacing:var(--ls-display);margin-bottom:var(--space-3);position:relative}.cta-text{font-family:var(--ff-body-cn);font-size:var(--fs-body);line-height:var(--lh-loose);color:hsla(0,0%,100%,.7);margin-bottom:var(--space-4);position:relative}.dark .cta-text{color:rgba(0,0,0,.7)}.cta-actions{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap;position:relative}.cta-actions .btn-primary{background:var(--c-accent)}.cta-actions .btn-primary:hover{background:var(--c-bg-card);color:var(--c-text)}.cta-actions .btn-ghost{border-color:hsla(0,0%,100%,.3);color:var(--c-bg-card)}.cta-actions .btn-ghost:hover{background:hsla(0,0%,100%,.1);border-color:var(--c-bg-card)}.site-footer{border-top:1px solid var(--c-line);padding:var(--space-8) 0 var(--space-4);background:var(--c-bg)}.footer-inner{display:grid;grid-template-columns:1fr 2fr;grid-gap:var(--space-8);gap:var(--space-8);margin-bottom:var(--space-4)}.footer-left .brand{margin-bottom:var(--space-2)}.footer-tag{font-family:var(--ff-display-cn);font-weight:300;font-size:var(--fs-body);color:var(--c-text-mute)}.footer-nav{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-4);gap:var(--space-4)}.footer-col h4{font-family:var(--ff-mono);font-size:var(--fs-small);font-weight:500;letter-spacing:var(--ls-tracked);text-transform:uppercase;color:var(--c-text-faint);margin-bottom:var(--space-2)}.footer-col a{display:block;font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text);padding:4px 0;transition:color var(--t-fast) var(--ease-out)}.footer-col a:hover{color:var(--c-accent)}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;padding-top:var(--space-4);border-top:1px solid var(--c-line);gap:var(--space-2);flex-wrap:wrap}.footer-bottom p{font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-wide);color:var(--c-text-faint)}.page-hero{padding-top:var(--space-10);padding-bottom:var(--space-4);border-bottom:1px solid var(--c-line)}.page-hero-eyebrow{font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-tracked);text-transform:uppercase;color:var(--c-accent);font-weight:500;margin-bottom:var(--space-2)}.page-hero-title{font-family:var(--ff-display-cn),var(--ff-display-en);font-weight:700;font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--c-text);margin-bottom:var(--space-3);max-width:12ch}.page-hero-lead{font-family:var(--ff-body-cn);font-size:var(--fs-body-lg);line-height:var(--lh-loose);color:var(--c-text-mute);max-width:640px}.about-story{max-width:720px;margin:0 auto}.about-story h3{font-family:var(--ff-display-cn);font-weight:700;font-size:var(--fs-h3);color:var(--c-text);margin:var(--space-4) 0 var(--space-2)}.about-story p{font-family:var(--ff-body-cn);font-size:var(--fs-body-lg);line-height:var(--lh-loose);color:var(--c-text-mute);margin-bottom:var(--space-3)}.about-story p strong{color:var(--c-text);font-weight:600}.about-story ul{list-style:none;padding:0;margin:var(--space-2) 0}.about-story li{font-family:var(--ff-body-cn);font-size:var(--fs-body);line-height:var(--lh-loose);color:var(--c-text-mute);padding-left:var(--space-3);position:relative;margin-bottom:var(--space-1)}.about-story li:before{content:"→";position:absolute;left:0;color:var(--c-accent)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:var(--space-2);gap:var(--space-2);margin:var(--space-4) 0}.skill-item{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--space-3)}.skill-name{font-family:var(--ff-display-cn);font-weight:600;font-size:var(--fs-body);color:var(--c-text);margin-bottom:4px}.skill-desc{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text-mute);line-height:var(--lh-snug)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-8);gap:var(--space-8);margin-top:var(--space-4)}.contact-list{display:flex;flex-direction:column;border-top:1px solid var(--c-line)}.contact-row{display:grid;grid-template-columns:140px 1fr;grid-gap:var(--space-3);gap:var(--space-3);align-items:baseline;padding:var(--space-3) 0;border-bottom:1px solid var(--c-line)}.contact-row dt{font-family:var(--ff-body-en);font-size:var(--fs-caption);font-weight:500;letter-spacing:var(--ls-wide);color:var(--c-text-mute)}.contact-row dd{font-family:var(--ff-display-cn);font-weight:500;font-size:var(--fs-body-lg);line-height:var(--lh-snug);color:var(--c-text)}.placeholder{color:var(--c-text-faint);font-style:italic}.contact-form{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--space-4)}.form-group{margin-bottom:var(--space-3)}.form-label{display:block;font-family:var(--ff-body-en);font-size:var(--fs-caption);font-weight:500;letter-spacing:var(--ls-wide);color:var(--c-text);margin-bottom:var(--space-1)}.form-input,.form-textarea{width:100%;padding:var(--space-2);background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--r-md);font-family:var(--ff-body-cn);font-size:var(--fs-body);color:var(--c-text);transition:border-color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--c-accent);background:var(--c-bg-card)}.form-textarea{min-height:120px;resize:vertical}.faq-list{max-width:720px;margin:0 auto}.faq-item{border-bottom:1px solid var(--c-line);padding:var(--space-3) 0}.faq-q{font-family:var(--ff-display-cn);font-weight:600;font-size:var(--fs-body-lg);color:var(--c-text);margin-bottom:var(--space-1)}.faq-a{font-family:var(--ff-body-cn);font-size:var(--fs-body);line-height:var(--lh-loose);color:var(--c-text-mute)}.link-inline{color:var(--c-text);font-weight:500;border-bottom:1px solid var(--c-line);padding-bottom:1px;transition:border-color var(--t-fast) var(--ease-out)}.link-inline:hover{border-bottom-color:var(--c-accent)}.logo-cloud{border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);padding:var(--space-4) 0;margin-top:var(--space-4)}.logo-cloud-label{font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-tracked);text-transform:uppercase;color:var(--c-text-faint);text-align:center;margin-bottom:var(--space-2)}.logo-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:var(--space-2);gap:var(--space-2);align-items:center}.logo-item{display:flex;align-items:center;justify-content:center;height:56px;padding:var(--space-1);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-bg-card);font-family:var(--ff-display-cn);font-weight:600;font-size:var(--fs-caption);color:var(--c-text-mute);transition:all var(--t-fast) var(--ease-out);text-align:center;line-height:var(--lh-snug)}.logo-item:hover{color:var(--c-text);border-color:var(--c-text);background:var(--c-bg-alt)}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-3);gap:var(--space-3);margin-top:var(--space-3)}.testimonial-card{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);transition:all var(--t-normal) var(--ease-out)}.testimonial-card:hover{border-color:var(--c-text);transform:translateY(-2px)}.testimonial-quote{font-family:var(--ff-display-cn);font-size:var(--fs-body);line-height:var(--lh-loose);color:var(--c-text);flex:1 1;padding-left:var(--space-3);border-left:2px solid var(--c-accent)}.testimonial-meta{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--c-line)}.testimonial-avatar{width:36px;height:36px;border-radius:50%;background:var(--c-bg-alt);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-body);flex-shrink:0}.testimonial-avatar,.testimonial-name{font-family:var(--ff-display-cn);color:var(--c-text)}.testimonial-name{font-weight:600;font-size:var(--fs-caption)}.testimonial-role{font-family:var(--ff-body-en);font-size:var(--fs-small);color:var(--c-text-mute)}.tool-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:var(--space-2);gap:var(--space-2);margin-top:var(--space-3)}.tool-item{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--space-2);text-align:center;display:flex;flex-direction:column;gap:2px;transition:all var(--t-fast) var(--ease-out)}.tool-item:hover{border-color:var(--c-accent);background:var(--c-accent-soft)}.tool-icon{font-family:var(--ff-display-en);font-weight:700;font-size:var(--fs-h3);color:var(--c-text);line-height:1}.tool-name{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text);font-weight:500}.tool-tag{font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-wide);color:var(--c-text-faint)}.reading-list{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-2);gap:var(--space-2);margin-top:var(--space-3)}.reading-item{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-bg-card);transition:all var(--t-fast) var(--ease-out)}.reading-item:hover{border-color:var(--c-text);transform:translateY(-1px)}.reading-cover{width:40px;height:56px;border-radius:var(--r-sm);background:var(--c-text);color:var(--c-bg-card);display:flex;align-items:center;justify-content:center;font-family:var(--ff-display-cn);font-weight:700;font-size:var(--fs-small);flex-shrink:0;padding:4px;text-align:center;line-height:var(--lh-tight)}.reading-body{flex:1 1;display:flex;flex-direction:column;gap:2px}.reading-title{font-family:var(--ff-display-cn);font-weight:600;font-size:var(--fs-caption);color:var(--c-text);line-height:var(--lh-snug)}.reading-author{font-family:var(--ff-body-en)}.reading-author,.reading-note{font-size:var(--fs-small);color:var(--c-text-mute)}.reading-note{font-family:var(--ff-body-cn);line-height:var(--lh-normal)}.principle-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.principle-item{display:grid;grid-template-columns:32px 1fr;grid-gap:var(--space-2);gap:var(--space-2);padding:var(--space-3);background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-md);align-items:start}.principle-num{font-family:var(--ff-mono);color:var(--c-accent);line-height:var(--lh-tight);padding-top:2px}.principle-num,.principle-title{font-weight:600;font-size:var(--fs-body)}.principle-title{font-family:var(--ff-display-cn);color:var(--c-text)}.principle-desc{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text-mute);line-height:var(--lh-normal)}.tag-cloud{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-2)}.tag-cloud .tag{cursor:pointer;transition:all var(--t-fast) var(--ease-out)}.tag-cloud .tag.is-active,.tag-cloud .tag:hover{background:var(--c-accent);color:var(--c-bg-card);border-color:var(--c-accent)}.search-box{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-md);margin-bottom:var(--space-3);transition:border-color var(--t-fast) var(--ease-out)}.search-box:focus-within{border-color:var(--c-accent)}.search-icon{font-size:var(--fs-body);color:var(--c-text-faint)}.search-input{flex:1 1;border:none;background:transparent;font-family:var(--ff-body-cn);font-size:var(--fs-body);color:var(--c-text);outline:none}.search-input::placeholder{color:var(--c-text-faint)}.filter-tabs{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-3)}.filter-tab{padding:6px var(--space-2);background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-pill);font-family:var(--ff-body-en);font-size:var(--fs-caption);color:var(--c-text-mute);cursor:pointer;transition:all var(--t-fast) var(--ease-out)}.filter-tab.is-active,.filter-tab:hover{background:var(--c-text);color:var(--c-bg-card);border-color:var(--c-text)}.feature-list{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2)}.feature-item{display:grid;grid-template-columns:18px 1fr;grid-gap:var(--space-1);gap:var(--space-1);padding:4px 0;align-items:start}.feature-check{width:16px;height:16px;background:var(--c-accent);color:var(--c-bg-card);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;line-height:1;flex-shrink:0;margin-top:3px}.feature-text{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text);line-height:var(--lh-normal)}.feature-text strong{color:var(--c-text);font-weight:600}.stats-dense{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:0;gap:0;margin-top:var(--space-3);padding:var(--space-3) var(--space-2);background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-lg)}.stat-dense{text-align:center;padding:var(--space-2);border-right:1px solid var(--c-line)}.stat-dense:last-child{border-right:none}.stat-num-dense{font-family:var(--ff-display-en);font-weight:700;font-size:clamp(1.5rem,3vw,2rem);line-height:1;color:var(--c-accent);letter-spacing:var(--ls-tight);margin-bottom:4px}.stat-label-dense{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text-mute);line-height:var(--lh-snug)}.quote-block{border-left:3px solid var(--c-accent);padding:var(--space-2) var(--space-3);margin:var(--space-3) 0;background:var(--c-bg-card);border-radius:0 var(--r-md) var(--r-md) 0}.quote-block-text{font-family:var(--ff-display-cn);font-size:var(--fs-body-lg);line-height:var(--lh-loose);color:var(--c-text);font-style:italic;margin-bottom:var(--space-1)}.quote-block-author{font-family:var(--ff-body-en);font-size:var(--fs-caption);color:var(--c-text-mute);letter-spacing:var(--ls-wide)}.now-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-2);gap:var(--space-2);margin-top:var(--space-3)}.now-card{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.now-card-label{font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-tracked);text-transform:uppercase;color:var(--c-accent);font-weight:600}.now-card-title{font-family:var(--ff-display-cn);font-weight:700;font-size:var(--fs-body);color:var(--c-text);line-height:var(--lh-snug)}.now-card-text{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text-mute);line-height:var(--lh-normal)}.help-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-2);gap:var(--space-2);margin-top:var(--space-3)}.help-item{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--space-3);text-align:center;display:flex;flex-direction:column;gap:var(--space-1);transition:all var(--t-normal) var(--ease-out)}.help-item:hover{border-color:var(--c-accent);transform:translateY(-2px)}.help-icon{font-family:var(--ff-display-en);font-weight:700;font-size:var(--fs-h2);color:var(--c-text);line-height:1}.help-title{font-family:var(--ff-display-cn);font-weight:600;font-size:var(--fs-body);color:var(--c-text)}.help-desc{font-family:var(--ff-body-cn);font-size:var(--fs-caption);color:var(--c-text-mute);line-height:var(--lh-normal)}.availability{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:var(--space-1);gap:var(--space-1);margin-top:var(--space-3)}.availability-day{padding:var(--space-2) var(--space-1);text-align:center;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-bg-card);display:flex;flex-direction:column;gap:4px}.availability-day.is-open{background:var(--c-accent-soft);border-color:var(--c-accent)}.availability-day-name{font-family:var(--ff-body-cn);font-weight:600;font-size:var(--fs-caption);color:var(--c-text)}.availability-day.is-open .availability-day-name{color:var(--c-accent)}.availability-day-status{font-family:var(--ff-mono);font-size:var(--fs-small);letter-spacing:var(--ls-wide);color:var(--c-text-faint)}.reveal{opacity:0;transform:translateY(20px);transition:opacity var(--t-slow) var(--ease-out),transform var(--t-slow) var(--ease-out)}.reveal.is-visible{opacity:1;transform:translateY(0)}.reading-progress{position:fixed;top:0;left:0;height:2px;background:var(--c-accent);z-index:200;transition:width .1s linear}.search-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:300;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.search-modal{background:var(--c-bg-card);border:1px solid var(--c-line);border-radius:var(--r-lg);width:min(600px,92vw);max-height:70vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.search-modal-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--c-line)}.search-modal-input{flex:1 1;border:none;background:transparent;font-family:var(--ff-body-cn);font-size:var(--fs-body-lg);color:var(--c-text);outline:none}.search-modal-input::placeholder{color:var(--c-text-faint)}.search-modal-results{overflow-y:auto;flex:1 1;padding:var(--space-1)}.search-result{padding:var(--space-2) var(--space-3);border-radius:var(--r-md);cursor:pointer;transition:background var(--t-fast)}.search-result.is-active,.search-result:hover{background:var(--c-bg-alt)}.search-result-title{font-family:var(--ff-display-cn);font-weight:600;font-size:var(--fs-body);color:var(--c-text)}.search-result-meta{font-family:var(--ff-mono);font-size:var(--fs-small);color:var(--c-text-faint);margin-top:2px}.search-empty{padding:var(--space-6);text-align:center;color:var(--c-text-mute);font-family:var(--ff-body-cn)}.search-modal-footer{padding:var(--space-2) var(--space-3);border-top:1px solid var(--c-line);display:flex;justify-content:space-between;align-items:center;font-family:var(--ff-mono);font-size:var(--fs-small);color:var(--c-text-faint)}.kbd{display:inline-block;padding:2px 6px;background:var(--c-bg-alt);border:1px solid var(--c-line);border-radius:4px;font-size:var(--fs-small)}.header-social{display:flex;align-items:center;gap:2px;margin-right:var(--space-1)}.social-icon-link{color:var(--c-text-mute)}.social-icon-link:hover{color:var(--c-accent);background:var(--c-bg-alt)}@media (max-width:1024px){.header-social{display:none}}.platform-card-id{font-family:var(--ff-mono);font-size:var(--fs-small);color:var(--c-text-faint);letter-spacing:var(--ls-wide)}.tag-link{color:var(--c-accent);text-decoration:none;cursor:pointer}.tag-link:hover{background:var(--c-accent);color:var(--c-bg-card);border-color:var(--c-accent)}@media (max-width:1024px){.role-grid,.works-grid{grid-template-columns:repeat(2,1fr)}.contact-grid,.footer-inner{grid-template-columns:1fr;gap:var(--space-4)}.hero-stats{grid-template-columns:repeat(2,1fr)}.logo-grid{grid-template-columns:repeat(4,1fr)}.testimonial-grid{grid-template-columns:1fr}.tool-grid{grid-template-columns:repeat(4,1fr)}.reading-list{grid-template-columns:1fr}.help-grid{grid-template-columns:repeat(2,1fr)}.stats-dense{grid-template-columns:repeat(3,1fr)}.stat-dense{border-right:none;border-bottom:1px solid var(--c-line);padding-bottom:var(--space-2)}.stat-dense:nth-last-child(-n+3){border-bottom:none}.now-grid{grid-template-columns:1fr}}@media (max-width:768px){.section{padding-top:var(--space-6);padding-bottom:var(--space-6)}.nav{display:none;position:fixed;top:64px;left:0;right:0;background:var(--c-bg-card);border-top:1px solid var(--c-line);flex-direction:column;padding:var(--space-3);gap:0;box-shadow:var(--shadow-md)}.nav.is-open{display:flex}.nav-link{padding:var(--space-2);width:100%}.nav-link-cta{margin-left:0;margin-top:var(--space-1);text-align:center}.nav-toggle{display:flex}.nav-toggle.is-open span:first-child{transform:translateY(5.5px) rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.hero{padding-top:var(--space-6)}.role-grid,.timeline-item,.works-grid{grid-template-columns:1fr}.note-item,.timeline-item{gap:var(--space-1)}.note-item{grid-template-columns:1fr auto}.note-date{grid-column:1/-1}.contact-row{grid-template-columns:1fr;gap:4px}.footer-nav{grid-template-columns:repeat(2,1fr)}.footer-bottom{flex-direction:column;align-items:flex-start}.cta-card{padding:var(--space-4)}.logo-grid,.tool-grid{grid-template-columns:repeat(3,1fr)}.help-grid{grid-template-columns:1fr}.stats-dense{grid-template-columns:repeat(2,1fr)}.availability{grid-template-columns:repeat(7,1fr);gap:2px}.availability-day{padding:var(--space-1) 2px}.availability-day-name{font-size:var(--fs-small)}.availability-day-status{font-size:.625rem}}