*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.resize{resize:both}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--paper: #f7f1e5;--paper-strong: #fffaf0;--ink: #3b352f;--muted: #6a695c;--faint: #7a8b64;--accent: #7a8b64;--accent-soft: #c6d0b4;--line: rgba(59, 53, 47, .16);--line-strong: rgba(59, 53, 47, .46);--font-zh: "FangSong", "仿宋", "FangSong_GB2312", "STFangsong", "Songti SC", serif;--font-song: "SimSun", "宋体", "Songti SC", serif;--font-display: "SimHei", "黑体", "Microsoft YaHei", sans-serif;--font-en: "Arial Narrow", "Segoe UI", Arial, sans-serif}@property --glow-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font-zh);-webkit-font-smoothing:antialiased}::-moz-selection{color:var(--ink);background:var(--accent-soft)}::selection{color:var(--ink);background:var(--accent-soft)}body.modal-open{overflow:hidden}button,a{color:inherit;font:inherit}a{text-decoration:none}button{border:0}img{display:block;max-width:100%}.app-shell,.page-screen{min-height:100dvh}.page-screen{position:relative;overflow:hidden;background:var(--paper)}.editorial-page{overflow:visible;padding:0 5.8vw 120px}.site-header{position:relative;z-index:20;display:flex;align-items:flex-start;justify-content:space-between;gap:48px;width:100%;padding:30px 3.2vw 0;font-family:var(--font-en)}.editorial-page .site-header{width:calc(100% + 5.2vw);margin-left:-2.6vw}.site-meta{display:flex;flex-wrap:wrap;align-items:center;gap:24px;font-size:11px;font-weight:700;letter-spacing:0}.site-meta span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.top-nav{display:flex;align-items:flex-start;gap:clamp(18px,2.4vw,44px)}.top-nav a{position:relative;display:grid;gap:2px;color:var(--muted);text-align:center;transition:color .18s ease}.top-nav a:after{position:absolute;right:0;bottom:-7px;left:0;height:1px;background:var(--accent);content:"";opacity:0;transform:scaleX(.25);transition:opacity .18s ease,transform .18s ease}.top-nav a:hover,.top-nav a.is-active{color:var(--ink)}.top-nav a:hover:after,.top-nav a.is-active:after{opacity:1;transform:scaleX(1)}.top-nav span{font-family:var(--font-display);font-size:14px;font-weight:700}.top-nav small{font-size:8px;font-weight:600;text-transform:uppercase}.site-header-dark .site-meta,.site-header-dark .top-nav a{color:#f7f1e5a8}.site-header-dark .top-nav a:hover,.site-header-dark .top-nav a.is-active{color:var(--paper-strong)}.site-header-dark .top-nav a:after{background:var(--accent-soft)}.page-rail{position:fixed;z-index:30;top:50%;right:26px;display:grid;gap:22px;transform:translateY(-50%)}.page-rail a{display:grid;width:22px;height:22px;place-items:center;color:var(--faint)}.page-rail a.is-active{color:var(--accent)}.page-rail-dark a{color:#f7f1e573}.page-rail-dark a.is-active{color:var(--accent-soft)}.page-controls{position:fixed;z-index:30;bottom:28px;left:32px;display:grid;gap:8px}.outline-control{display:flex;align-items:center;justify-content:center;gap:8px;min-width:78px;height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#f7f1e5d6;font-family:var(--font-en);font-size:10px;font-weight:700;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color .18s ease,background .18s ease}.outline-control:hover{border-color:var(--accent);background:var(--accent-soft)}.page-controls-dark .outline-control{border-color:#f7f1e54d;color:var(--paper-strong);background:#3b352fb3}.page-controls-dark .outline-control:hover{border-color:var(--accent-soft);color:var(--ink);background:var(--accent-soft)}.home-page{isolation:isolate;min-height:100dvh;background:var(--paper)}.home-background{position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;filter:grayscale(1) contrast(.82) brightness(1.18);opacity:.5}.home-page:after{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background:#f7f1e585;content:"";pointer-events:none}.home-perimeter-glow{position:absolute;z-index:8;top:8px;right:8px;bottom:8px;left:8px;padding:2px;border-radius:4px;background:conic-gradient(from var(--glow-angle),transparent 0deg,rgba(247,241,229,.1) 34deg,rgba(198,208,180,.95) 58deg,rgba(122,139,100,.9) 76deg,transparent 112deg,transparent 210deg,rgba(247,241,229,.86) 252deg,rgba(59,53,47,.78) 278deg,transparent 316deg);filter:drop-shadow(0 0 8px rgba(122,139,100,.46));pointer-events:none;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:perimeter-flow 9s linear infinite}@keyframes perimeter-flow{to{--glow-angle: 360deg}}.home-intro{position:absolute;z-index:3;top:28%;right:0;left:0;width:min(860px,78vw);margin:0 auto;text-align:center;transform:none}.home-kicker,.home-identity,.home-formula,.home-discipline-strip,.availability{font-family:var(--font-en)}.home-kicker{display:block;margin-bottom:12px;color:var(--muted);font-size:10px;font-weight:700}.home-intro h1{margin:0;font-family:var(--font-display);font-size:clamp(76px,9.8vw,168px);font-weight:900;line-height:.92}.home-formula{margin:36px 0 18px;font-size:clamp(22px,3.3vw,52px);font-weight:900;line-height:1.05}.home-formula span{color:var(--accent)}.home-identity{display:flex;align-items:center;justify-content:center;gap:11px;margin:0;color:var(--muted);font-size:12px}.home-identity i,.home-discipline-strip i{width:3px;height:3px;border-radius:50%;background:currentColor}.home-actions,.inline-actions{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:42px}.primary-action,.text-action,.outline-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;font-family:var(--font-display);font-size:14px;font-weight:700;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.primary-action{border:1px solid var(--accent);border-radius:999px;color:var(--paper-strong);background:var(--accent)}.primary-action:hover{transform:translateY(-2px)}.text-action{padding:0;border-bottom:1px solid var(--line-strong)}.text-action:hover{border-bottom-color:var(--accent)}.home-discipline-strip{position:absolute;right:0;bottom:16.4vh;left:0;display:flex;align-items:center;justify-content:center;gap:18px;padding-top:26px;border-top:1px solid rgba(59,53,47,.32);color:var(--muted);font-size:12px;font-weight:600;scrollbar-width:none}.home-discipline-strip::-webkit-scrollbar{display:none}.availability{position:absolute;bottom:28px;left:50%;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:10px;font-weight:700;transform:translate(-50%)}.availability svg{color:var(--accent)}.page-eyebrow{margin-top:22px;color:var(--faint);font-family:var(--font-en);font-size:10px;font-weight:700;text-align:center}.abilities-heading{width:min(760px,72vw);margin:38px auto 58px;text-align:center}.abilities-heading>p,.projects-title-block>span,.about-story>span,.contact-layout>div>span{color:var(--faint);font-family:var(--font-en);font-size:10px;font-weight:700}.abilities-heading h1,.projects-title-block h1{margin:12px 0 20px;font-family:var(--font-display);font-size:clamp(52px,6vw,96px);font-weight:900;line-height:.96}.abilities-heading>div{color:var(--muted);font-size:16px;line-height:1.7}.skill-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,3vw,54px);width:min(1460px,100%);margin:0 auto}.skill-column{min-width:0;font-family:var(--font-song)}.skill-column>header{display:flex;align-items:flex-start;gap:12px;min-height:62px;padding-bottom:15px;border-bottom:1px solid var(--line-strong)}.skill-column>header>svg{color:var(--accent)}.skill-column h2{margin:0 0 4px;font-family:var(--font-song);font-size:clamp(21px,1.55vw,25px);font-weight:800;line-height:1.2}.skill-column header p{margin:0;color:var(--faint);font-family:var(--font-song);font-size:clamp(11px,.8vw,13px);font-weight:700;line-height:1.35;text-transform:uppercase}.skill-items{display:grid}.skill-item{width:100%;padding:24px 0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.skill-item-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.skill-item strong{font-family:var(--font-song);font-size:clamp(18px,1.25vw,21px);line-height:1.35}.skill-item em{flex:none;padding:4px 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);background:#c6d0b447;font-family:var(--font-song);font-size:clamp(11px,.8vw,13px);line-height:1.35;font-style:normal}.skill-summary,.skill-experience{display:block;overflow:hidden}.skill-summary{margin-top:10px;color:var(--muted);font-family:var(--font-song);font-size:clamp(15px,1.05vw,17px);line-height:1.72;text-align:justify;-moz-text-align-last:left;text-align-last:left;text-justify:inter-ideograph}.skill-experience{margin-top:14px;padding-left:14px;border-left:2px solid var(--accent);color:var(--ink);font-family:var(--font-song);font-size:clamp(15px,1.05vw,17px);line-height:1.72;text-align:justify;-moz-text-align-last:left;text-align-last:left;text-justify:inter-ideograph}.skill-item:hover strong,.skill-item.is-open strong{text-decoration:underline;text-underline-offset:4px}.skill-item:hover,.skill-item.is-open{background:#c6d0b424}.about-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr);gap:clamp(54px,8vw,140px);align-items:center;width:min(1380px,100%);margin:70px auto 0}.resume-profile-panel{display:grid;gap:28px;padding:clamp(28px,3.2vw,48px);border:1px solid rgba(255,250,240,.28);border-radius:6px;color:var(--paper-strong);background:var(--accent);box-shadow:0 26px 60px #3b352f29}.resume-profile-top{display:grid;grid-template-columns:minmax(132px,.72fr) minmax(180px,1fr);gap:28px;align-items:end}.resume-profile-top img{width:100%;aspect-ratio:4 / 5;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;border:1px solid rgba(255,250,240,.44);background:var(--paper-strong)}.resume-profile-top small,.resume-profile-top p,.resume-metrics span,.resume-education dt{font-family:var(--font-en)}.resume-profile-top small{display:block;margin-bottom:10px;color:#fffaf0b8;font-size:8px;font-weight:700;line-height:1.5}.resume-profile-top h1{margin:0;font-family:var(--font-display);font-size:clamp(40px,4vw,64px);line-height:1}.resume-profile-top p{margin:10px 0 0;color:#fffaf0c7;font-size:11px;font-weight:700}.resume-contact-row{display:grid;gap:8px;padding:16px 0;border-top:1px solid rgba(255,250,240,.28);border-bottom:1px solid rgba(255,250,240,.28)}.resume-contact-row a{display:flex;align-items:center;gap:10px;font-family:var(--font-en);font-size:12px;overflow-wrap:anywhere}.resume-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#fffaf047}.resume-metrics div{display:grid;gap:7px;min-width:0;padding:16px 12px;background:var(--accent)}.resume-metrics strong{font-family:var(--font-en);font-size:clamp(17px,1.6vw,23px)}.resume-metrics span{color:#fffaf0b3;font-size:9px}.resume-education{display:grid;margin:0}.resume-education div{display:grid;grid-template-columns:90px 1fr;gap:18px;padding:14px 0;border-bottom:1px solid rgba(255,250,240,.22)}.resume-education dt{color:#fffaf0ad;font-size:9px;font-weight:700}.resume-education dd{margin:0;font-size:13px;line-height:1.55}.resume-education dd span{color:#fffaf0ad;font-family:var(--font-en);font-size:10px}.resume-document-link{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 16px;border:1px solid rgba(255,250,240,.48);font-family:var(--font-display);font-size:13px;font-weight:700;transition:color .18s ease,background .18s ease}.resume-document-link:hover{color:var(--accent);background:var(--paper-strong)}.about-story h1,.contact-layout h1{margin:18px 0 28px;font-family:var(--font-display);font-size:clamp(40px,4.4vw,76px);font-weight:900;line-height:1.12}.contact-layout h1{font-size:clamp(38px,4vw,62px);line-height:1.08;word-break:keep-all}.contact-layout h1 span{display:block;white-space:nowrap}.contact-layout .contact-tagline-en{margin-bottom:24px;color:var(--accent);font-family:var(--font-en);font-size:12px;font-weight:700;line-height:1.55}.about-story>p,.contact-layout>div>p{max-width:680px;margin:0 0 16px;color:var(--muted);font-size:16px;line-height:1.8}.about-facts{display:grid;margin:34px 0 0;border-top:1px solid var(--line-strong)}.about-facts div{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}.about-facts dt{color:var(--faint);font-family:var(--font-en);font-size:10px;font-weight:700}.about-facts dd{margin:0;font-size:14px}.about-story .inline-actions{justify-content:flex-start}.projects-title-block{display:grid;justify-items:start;width:min(1380px,100%);margin:64px auto 54px}.projects-title-block h1{margin-bottom:14px}.projects-title-block p{max-width:680px;margin:0;color:var(--muted);font-size:15px;line-height:1.7}.outline-action{min-height:42px;margin-top:26px;padding:0 18px;border:1px solid var(--accent);border-radius:999px;background:transparent}.outline-action:hover{color:var(--paper-strong);background:var(--accent)}.projects-grid-new{display:grid;width:min(1500px,100%);margin:0 auto;border-top:1px solid var(--line-strong)}.project-card-new{display:grid;grid-template-columns:minmax(480px,1.5fr) minmax(320px,.8fr);gap:clamp(36px,6vw,90px);padding:46px 0;border-bottom:1px solid var(--line-strong)}.project-image-link{position:relative;display:block;overflow:hidden;border:1px solid var(--line);background:var(--accent-soft)}.project-image-link img{width:100%;aspect-ratio:1.414 / 1;-o-object-fit:contain;object-fit:contain;transition:transform .5s ease}.project-image-link>span{position:absolute;right:14px;bottom:14px;display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(247,241,229,.78);color:var(--paper-strong);background:#3b352fc7;font-family:var(--font-en);font-size:9px;font-weight:700}.project-image-link:hover img{transform:scale(1.012)}.project-card-info{display:grid;align-content:start;grid-template-columns:72px 1fr;gap:24px 20px;padding-top:4px}.project-number{font-family:var(--font-display);font-size:52px;font-weight:900;line-height:.9}.project-card-info h2{margin:0 0 7px;font-family:var(--font-display);font-size:clamp(26px,2.3vw,40px);font-weight:900}.project-card-info p,.project-category span{margin:0;color:var(--faint);font-family:var(--font-en);font-size:11px}.project-category{grid-column:2;display:grid;gap:5px;padding-top:20px;border-top:1px solid var(--line)}.project-category strong{font-size:14px}.project-thumbnails{grid-column:2;display:flex;gap:8px}.project-description{grid-column:2;display:grid;gap:10px;margin-top:8px;padding-top:22px;border-top:1px solid var(--line-strong)}.project-description small{color:var(--faint);font-family:var(--font-en);font-size:9px;font-weight:700}.project-description p{margin:0;color:var(--ink);font-size:14px;line-height:1.8}.project-description span{color:var(--faint);font-family:var(--font-en);font-size:10px;line-height:1.55}.project-thumbnails button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fffaf0b3;font-family:var(--font-en);font-size:10px;cursor:pointer}.project-thumbnails button:hover,.project-thumbnails button.is-active{border-color:var(--accent);color:var(--paper-strong);background:var(--accent)}.image-index-strip{display:grid;grid-template-columns:repeat(12,minmax(90px,1fr));gap:8px;width:min(1500px,100%);margin:54px auto 0;overflow-x:auto;padding-bottom:10px}.image-index-strip a{min-width:90px;border:1px solid var(--line);background:var(--accent-soft)}.image-index-strip img{width:100%;aspect-ratio:1.414 / 1;-o-object-fit:cover;object-fit:cover}.contact-layout{display:grid;grid-template-columns:minmax(580px,1.18fr) minmax(360px,.82fr);gap:clamp(48px,6vw,100px);align-items:center;width:min(1380px,100%);min-height:calc(100dvh - 210px);margin:30px auto 0}.contact-links{display:grid;border-top:1px solid var(--line-strong)}.contact-links a,.contact-links button{display:grid;grid-template-columns:34px 1fr 22px;gap:14px;align-items:center;width:100%;padding:22px 0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.contact-links span{display:grid;gap:4px;font-family:var(--font-en);font-size:15px}.contact-links small{color:var(--faint);font-size:9px;font-weight:700}.contact-links a:hover,.contact-links button:hover{padding-right:10px;background:#c6d0b42e}.contact-links>*>svg:first-child{color:var(--accent)}.contact-footer{padding-top:22px;border-top:1px solid var(--line);color:var(--faint);font-family:var(--font-en);font-size:9px;text-align:center}.other-page{isolation:isolate;min-height:100dvh}.other-heading{display:grid;justify-items:center;width:min(760px,100%);margin:32px auto 0;text-align:center}.other-heading>span,.ai-heading>span,.ai-intro-panel>span{display:inline-flex;align-items:center;gap:8px;color:var(--faint);font-family:var(--font-en);font-size:10px;font-weight:700;letter-spacing:0}.other-heading h1{margin:12px 0 14px;font-family:var(--font-display);font-size:clamp(48px,5vw,82px);font-weight:900;line-height:1.02}.other-heading p{max-width:560px;margin:0;color:var(--muted);font-family:var(--font-song);font-size:16px;line-height:1.75}.practice-stage{display:grid;gap:18px;width:min(1260px,100%);margin:26px auto 0}.practice-deck{position:relative;height:clamp(270px,28vw,400px);overflow:hidden}.practice-card{position:absolute;top:12px;left:50%;z-index:var(--card-z);width:clamp(164px,17vw,240px);aspect-ratio:.72;overflow:hidden;padding:0;border:1px solid rgba(59,53,47,.58);border-radius:4px;background:var(--accent-soft);box-shadow:0 16px 28px #3b352f33;cursor:pointer;transform:translate(calc(-50% + var(--card-x))) rotate(var(--card-rotation)) scale(var(--card-scale));transform-origin:50% 92%;transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .26s ease,filter .26s ease}.practice-card:after{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(247,241,229,.58);content:"";pointer-events:none}.practice-card img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .42s ease}.practice-card-shade{position:absolute;inset:auto 0 0;height:44%;background:#3b352fb8}.practice-card-copy{position:absolute;right:16px;bottom:16px;left:16px;display:grid;gap:5px;color:var(--paper-strong);text-align:left}.practice-card-copy small,.practice-card-copy em{color:#f7f1e5c7;font-family:var(--font-en);font-size:9px;font-style:normal;font-weight:700}.practice-card-copy strong{font-family:var(--font-display);font-size:clamp(19px,1.7vw,27px)}.practice-card:hover,.practice-card.is-active{box-shadow:0 22px 40px #3b352f52;filter:saturate(1.06)}.practice-card:hover img,.practice-card.is-active img{transform:scale(1.035)}.practice-detail{display:grid;justify-items:center;width:min(600px,100%);margin:0 auto;padding-bottom:92px;text-align:center}.practice-detail-count{color:var(--faint);font-family:var(--font-en);font-size:10px;font-weight:700}.practice-detail h2{margin:8px 0 10px;font-family:var(--font-display);font-size:clamp(30px,3vw,46px);line-height:1}.practice-detail p{max-width:520px;margin:0;color:var(--muted);font-family:var(--font-song);font-size:15px;line-height:1.75}.practice-detail>span{margin-top:8px;color:var(--faint);font-family:var(--font-en);font-size:11px;line-height:1.6}.practice-detail-wide{width:min(1240px,100%)}.practice-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}.practice-tags i{padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#c6d0b424;font-family:var(--font-song);font-size:12px;font-style:normal;line-height:1}.phone-showcase{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(10px,1.4vw,16px);width:min(1120px,100%);margin-top:28px}.phone-mockup{position:relative;display:grid;gap:12px;justify-items:center;padding:12px 10px 16px;border:1px solid rgba(59,53,47,.18);border-radius:28px;background:linear-gradient(180deg,#fffaf0f0,#e6e4dce6);box-shadow:0 14px 34px #3b352f29}.phone-mockup:before{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(255,255,255,.8);border-radius:22px;content:"";pointer-events:none}.phone-mockup-top{display:flex;justify-content:center;width:100%;padding-top:2px}.phone-mockup-camera{width:38%;height:8px;border-radius:999px;background:#3b352fc7}.phone-screen{position:relative;width:100%;aspect-ratio:9 / 19.5;overflow:hidden;border:1px solid rgba(59,53,47,.2);border-radius:18px;background:#d9ddd2;box-shadow:inset 0 0 0 1px #ffffff6b}.phone-screen img{width:100%;height:auto;transform:translateY(0);animation:phone-scroll var(--scroll-duration, 14s) ease-in-out infinite alternate;animation-delay:var(--phone-delay, 0s);will-change:transform}.phone-mockup:hover .phone-screen img{animation-play-state:paused}.phone-mockup-label{color:var(--ink);font-family:var(--font-display);font-size:12px;letter-spacing:.02em}@keyframes phone-scroll{0%{transform:translateY(0)}to{transform:translateY(calc(var(--scroll-distance, 0px) * -1))}}.practice-switcher{display:flex;align-items:center;gap:22px;margin-top:18px}.practice-switcher>button{display:grid;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:50%;background:transparent;cursor:pointer;place-items:center;transition:color .18s ease,background .18s ease}.practice-switcher>button:hover{color:var(--paper-strong);background:var(--accent)}.practice-switcher>div{display:flex;gap:7px}.practice-switcher i{width:5px;height:5px;border-radius:50%;background:var(--line-strong);transition:width .18s ease,background .18s ease}.practice-switcher i.is-active{width:18px;border-radius:99px;background:var(--accent)}.ai-page{isolation:isolate;min-height:100dvh;color:var(--paper-strong);background:var(--ink)}.ai-background{position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:.09;filter:grayscale(1) contrast(.8) brightness(.5)}.ai-page:after{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background:#3b352fe6;content:"";pointer-events:none}.ai-eyebrow{color:#c6d0b4d1}.ai-heading{display:grid;justify-items:center;margin:42px auto 28px;text-align:center}.ai-heading>span{color:var(--accent-soft)}.ai-heading h1{margin:12px 0 13px;font-family:var(--font-display);font-size:clamp(58px,8vw,128px);font-weight:900;line-height:.88}.ai-heading p{max-width:560px;margin:0;color:#f7f1e5bd;font-family:var(--font-song);font-size:15px;line-height:1.7}.ai-layout{display:grid;grid-template-columns:minmax(460px,1.08fr) minmax(360px,.92fr);gap:clamp(36px,6vw,86px);align-items:stretch;width:min(1130px,100%);margin:30px auto 96px}.ai-chat-panel{display:grid;grid-template-rows:auto minmax(142px,1fr) auto auto;min-height:420px;overflow:hidden;border:1px solid rgba(247,241,229,.28);border-radius:6px;background:#f7f1e50f;box-shadow:0 24px 60px #0000002e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.ai-chat-panel>header{display:grid;grid-template-columns:34px 1fr auto;gap:11px;align-items:center;padding:18px 20px;border-bottom:1px solid rgba(247,241,229,.16)}.ai-avatar-icon{display:grid;width:34px;height:34px;border:1px solid rgba(198,208,180,.62);border-radius:50%;color:var(--accent-soft);place-items:center}.ai-chat-panel header div{display:grid;gap:2px}.ai-chat-panel header small,.ai-status,.ai-intro-panel dl dt{color:#c6d0b4c7;font-family:var(--font-en);font-size:9px;font-weight:700}.ai-chat-panel header strong{font-family:var(--font-display);font-size:16px}.ai-status{display:flex;align-items:center;gap:6px}.ai-status i{width:6px;height:6px;border-radius:50%;background:var(--accent-soft)}.ai-transcript{display:grid;align-content:start;gap:10px;max-height:228px;overflow-y:auto;padding:18px 20px}.ai-transcript p{max-width:92%;margin:0;padding:11px 13px;font-family:var(--font-song);font-size:14px;line-height:1.65}.ai-transcript p.assistant{justify-self:start;border:1px solid rgba(247,241,229,.18);background:#f7f1e514}.ai-transcript p.user{justify-self:end;color:var(--ink);background:var(--accent-soft)}.ai-prompts{display:flex;flex-wrap:wrap;gap:7px;padding:0 20px 14px}.ai-prompts button{padding:6px 9px;border:1px solid rgba(247,241,229,.24);border-radius:999px;color:#f7f1e5d1;background:transparent;font-family:var(--font-song);font-size:11px;cursor:pointer;transition:color .18s ease,background .18s ease}.ai-prompts button:hover{color:var(--ink);background:var(--accent-soft)}.ai-input{display:grid;grid-template-columns:1fr 42px;gap:8px;padding:14px 20px 20px;border-top:1px solid rgba(247,241,229,.16)}.ai-input input{min-width:0;height:42px;border:1px solid rgba(247,241,229,.22);border-radius:0;outline:none;color:var(--paper-strong);background:#f7f1e50f;font-family:var(--font-song);font-size:13px;padding:0 12px}.ai-input input::-moz-placeholder{color:#f7f1e575}.ai-input input::placeholder{color:#f7f1e575}.ai-input input:focus{border-color:var(--accent-soft)}.ai-input button{display:grid;width:42px;height:42px;border:1px solid var(--accent-soft);color:var(--ink);background:var(--accent-soft);cursor:pointer;place-items:center}.ai-intro-panel{display:grid;align-content:start;gap:18px;padding:24px 0}.ai-intro-panel>span{color:var(--accent-soft)}.ai-intro-panel h2{margin:0;font-family:var(--font-display);font-size:clamp(34px,3.3vw,54px);line-height:1.08}.ai-intro-panel>p{max-width:440px;margin:0;color:#f7f1e5b8;font-family:var(--font-song);font-size:15px;line-height:1.8}.ai-intro-panel dl{display:grid;margin:4px 0 0;border-top:1px solid rgba(247,241,229,.24)}.ai-intro-panel dl div{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid rgba(247,241,229,.16)}.ai-intro-panel dl dd{margin:0;color:#f7f1e5e0;font-family:var(--font-song);font-size:13px;line-height:1.5}.ai-contact-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:-moz-fit-content;width:fit-content;min-height:44px;margin-top:5px;padding:0 18px;border:1px solid var(--accent-soft);color:var(--paper-strong);font-family:var(--font-display);font-size:13px;transition:color .18s ease,background .18s ease}.ai-contact-link:hover{color:var(--ink);background:var(--accent-soft)}.pdf-modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;padding:24px;place-items:center;background:#3b352fc2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pdf-modal{display:grid;grid-template-rows:auto 1fr;width:min(1180px,96vw);height:min(880px,92vh);overflow:hidden;border:1px solid rgba(247,241,229,.3);background:var(--paper);box-shadow:0 30px 100px #3b352f73}.pdf-modal header{display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:10px 16px 10px 22px;border-bottom:1px solid var(--line)}.pdf-modal header>div{display:grid;gap:3px}.pdf-modal header small{color:var(--faint);font-family:var(--font-en);font-size:8px;font-weight:700}.pdf-modal header strong{font-family:var(--font-display);font-size:15px}.pdf-modal header nav{display:flex;gap:6px}.pdf-modal header nav a,.pdf-modal header nav button{display:grid;width:38px;height:38px;border:1px solid var(--line);background:transparent;cursor:pointer;place-items:center}.pdf-modal iframe{width:100%;height:100%;border:0;background:var(--accent-soft)}@media(max-width:1120px){.site-header{gap:24px}.site-meta span:last-child{display:none}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout,.contact-layout,.ai-layout{grid-template-columns:1fr}.about-layout{width:min(840px,100%)}.resume-profile-panel{max-width:760px}.contact-layout{align-content:center;width:min(820px,100%);gap:40px}.ai-layout{width:min(760px,100%);gap:22px}.ai-intro-panel{padding-top:4px}}@media(max-width:820px){.editorial-page{padding-right:24px;padding-left:24px}.site-header,.editorial-page .site-header{width:100%;margin-left:0;padding:18px 20px 0}.editorial-page .site-header{width:calc(100% + 48px);margin-left:-24px}.site-meta{gap:12px;font-size:9px}.site-meta span:nth-child(2){display:none}.top-nav{gap:14px}.top-nav small{display:none}.top-nav span{font-size:12px}.home-intro{width:88vw}.home-discipline-strip{overflow-x:auto;justify-content:flex-start;padding-right:24px;padding-left:24px;white-space:nowrap}.project-card-new{grid-template-columns:1fr;gap:26px}.project-card-info{grid-template-columns:58px 1fr}}@media(max-width:620px){.page-screen{min-height:100svh}.site-header{display:grid;gap:14px}.site-meta{justify-content:space-between}.site-meta span:nth-child(2){display:inline-flex}.top-nav{width:100%;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.top-nav span{font-size:11px}.page-rail{display:none}.page-controls{position:absolute;bottom:16px;left:16px}.outline-control{min-width:68px;height:36px;padding:0 12px;background:#f7f1e5eb}.home-background{-o-object-position:46% center;object-position:46% center}.home-perimeter-glow{top:5px;right:5px;bottom:5px;left:5px}.home-intro{top:30%;width:calc(100% - 32px)}.home-kicker{font-size:8px}.home-intro h1{font-size:clamp(64px,22vw,94px)}.home-formula{margin-top:26px;font-size:clamp(20px,6.2vw,29px)}.home-identity{font-size:10px}.home-actions{gap:18px;margin-top:32px}.primary-action,.text-action,.outline-action{min-height:43px;font-size:12px}.home-discipline-strip{bottom:16vh;font-size:10px}.availability{bottom:20px;left:auto;right:18px;font-size:8px;transform:none}.editorial-page{padding:0 18px 94px}.editorial-page .site-header{width:calc(100% + 36px);margin-left:-18px}.page-eyebrow{margin-top:26px}.abilities-heading{width:100%;margin:40px auto 38px;text-align:left}.abilities-heading h1,.projects-title-block h1{font-size:48px}.abilities-heading>div{font-size:14px}.skill-grid{grid-template-columns:1fr;gap:40px}.about-layout{grid-template-columns:1fr;gap:36px;margin-top:42px}.resume-profile-top{grid-template-columns:118px minmax(0,1fr);gap:20px}.about-story h1,.contact-layout h1{font-size:34px}.contact-layout h1 span{white-space:nowrap}.resume-profile-panel{gap:22px;padding:22px}.resume-profile-top h1{font-size:38px}.resume-metrics strong{font-size:16px}.resume-education div{grid-template-columns:76px 1fr}.about-story>p,.contact-layout>div>p{font-size:14px}.about-facts div{grid-template-columns:88px 1fr}.about-story .inline-actions{flex-wrap:wrap;gap:20px}.projects-title-block{margin-top:42px}.project-card-new{padding:32px 0}.project-card-info{grid-template-columns:50px 1fr;gap:20px 14px}.project-number{font-size:40px}.project-card-info h2{font-size:27px}.image-index-strip{grid-template-columns:repeat(12,112px)}.contact-layout{grid-template-columns:1fr;min-height:auto;margin-top:70px}.other-heading{justify-items:start;margin-top:38px;text-align:left}.other-heading h1{font-size:48px}.other-heading p{font-size:14px}.practice-stage{gap:22px;margin-top:28px}.practice-deck{display:flex;height:auto;gap:14px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}.practice-card{position:relative;top:auto;left:auto;flex:0 0 196px;width:196px;transform:none!important;scroll-snap-align:start}.practice-detail{justify-items:start;padding-bottom:18px;text-align:left}.practice-detail-wide{width:100%}.practice-detail p{font-size:14px}.practice-tags{justify-content:flex-start}.phone-showcase{display:flex;gap:12px;width:100%;overflow-x:auto;padding-bottom:6px}.phone-mockup{flex:0 0 148px;min-width:148px}.practice-switcher{align-self:center}.ai-heading{justify-items:start;margin-top:40px;text-align:left}.ai-heading h1{font-size:64px}.ai-heading p{font-size:14px}.ai-layout{grid-template-columns:1fr;margin-top:30px;margin-bottom:88px}.ai-chat-panel{min-height:0}.ai-chat-panel>header{padding:15px}.ai-transcript{max-height:240px;padding:15px}.ai-prompts{padding:0 15px 12px}.ai-input{padding:12px 15px 15px}.ai-intro-panel{gap:16px;padding:8px 0 0}.ai-intro-panel h2{font-size:35px}.ai-intro-panel>p{font-size:14px}.contact-links a,.contact-links button{grid-template-columns:30px minmax(0,1fr) 18px}.contact-links span{overflow-wrap:anywhere;font-size:13px}.pdf-modal-backdrop{padding:8px}.pdf-modal{width:100%;height:95svh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.home-perimeter-glow{animation:none}.phone-screen img{animation:none;transform:translateY(0)}}
