500;600;700;800;900&display=swap');
:root{--ink:#152322;--muted:#596461;--line:#d9e0dc;--paper:#fff;--accent:#146348;--soft:#f3f6f4;font-family:'Noto Sans SC',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #de681e;outline-offset:6px}img{max-width:100%;display:block}p,h1,h2,h3,h4,h5,figure{margin:0}p{line-height:1.85}::selection{background:#c8ed63;color:#152322}.wrap{width:min(1280px,calc(100% - 96px));margin-inline:auto}.skip{position:absolute;top:-100px;background:white;padding:15px;z-index:10}.skip:focus{top:0}.nav{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:25px}.brand{display:flex;align-items:center;gap:9px;font-size:26px;font-weight:800}.brand>span{font-size:12px;color:var(--accent)}.brand small{font-size:12px;font-weight:500;letter-spacing:1px;margin-left:8px}.nav nav{display:flex;gap:32px;font-size:15px}.nav nav a:hover{color:var(--accent)}.nav-resume{font-size:15px;border-bottom:1px solid var(--ink);padding:8px 0}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;padding-block:76px 64px;align-items:center}.eyebrow{font-size:13px;letter-spacing:1.7px;font-weight:600;color:var(--accent);line-height:1.6}.status{letter-spacing:1px}.status:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#34835b;margin-right:10px}.hero h1{font-size:clamp(48px,5.3vw,78px);line-height:1.22;letter-spacing:-3px;margin:27px 0 24px;font-weight:800}.hero em{font-style:normal;color:var(--accent)}.period{color:#dd7229}.hero h2{font-size:22px;line-height:1.6;margin-bottom:18px}.intro{font-size:17px;color:var(--muted);max-width:550px}.actions{display:flex;gap:14px;margin-top:30px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;padding:15px 23px;min-height:52px;font-size:15px;font-weight:600;border-radius:6px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-3px)}.primary{background:var(--ink);color:white}.primary:hover{background:var(--accent)}.secondary{border:1px solid var(--line)}.hero-school{font-size:13px;color:var(--muted);margin-top:35px}.hero-school span{margin:0 9px;color:#9ca59f}.portrait{position:relative;align-self:stretch;min-height:480px;border-radius:160px 12px 12px 12px;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;object-position:47% center;position:absolute}.portrait figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:10px;padding:50px 25px 23px;color:white;background:linear-gradient(transparent,#14251acf);font-size:13px}.index-strip{display:flex;justify-content:space-between;gap:20px;padding-block:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.index-strip>span{font-size:12px;letter-spacing:1px;color:var(--muted)}.index-strip a:hover{color:var(--accent)}.section{padding-block:100px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:44px}.section-head h2,.about-grid h2{font-size:clamp(32px,3.5vw,48px);line-height:1.35;letter-spacing:-1.5px;margin-top:19px}.section-head h2 span{color:#718078}.section-head>p{font-size:16px;color:var(--muted)}.cases{display:grid;gap:28px}.case{--tone:#155340;--tint:#edf4ef;display:grid;grid-template-columns:1fr 1.1fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s}.case:hover{transform:translateY(-4px);border-color:var(--tone);box-shadow:0 16px 40px #142e1d0b}.case.gem{--tone:#923d2d;--tint:#fbf1eb}.case.food{--tone:#705615;--tint:#faf6e9}.case-heading{padding:38px;background:var(--tone);color:white;display:flex;flex-direction:column}.case-meta{display:flex;justify-content:space-between;gap:16px;font-size:12px;letter-spacing:1px;color:#ffffffb8}.case h3{font-size:clamp(34px,3.4vw,48px);letter-spacing:-1px;font-weight:700;line-height:1.3;margin:40px 0 17px}.case-subtitle{font-size:21px;line-height:1.65;font-weight:500;max-width:380px}.case-intro{font-size:15px;color:#ffffffe0;margin-top:20px}.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:auto;padding-top:34px}.case-facts strong{display:block;font-size:25px;letter-spacing:-.5px;font-weight:600}.case-facts span{display:block;font-size:12px;color:#ffffffc9;margin-top:7px}.case-note{font-size:12px;color:#ffffffb8;border-top:1px solid #ffffff38;padding-top:17px;margin-top:24px}.case-detail{padding:33px 38px;background:var(--tint);display:flex;flex-direction:column}.detail-title{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--tone);letter-spacing:1px}.detail-title>span:last-child{font-size:24px}.case ol{padding:0;margin:8px 0 20px;list-style:none}.case li{display:flex;gap:20px;padding:19px 0;border-bottom:1px solid #20392a1a}.step-no{font-size:13px;color:var(--tone);padding-top:4px}.case h4{font-size:17px;margin-bottom:5px}.case li p{font-size:15px;line-height:1.85;color:#45554c}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{font-size:12px;padding:5px 10px;border:1px solid #65756b36;border-radius:4px;line-height:1.6}.case-link{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:22px;font-size:17px;font-weight:600;color:var(--tone)}.case-link small{display:block;font-size:12px;font-weight:400;color:#596461;margin-top:5px}.link-arrow{display:grid;place-items:center;width:43px;height:43px;border:1px solid currentColor;border-radius:50%;font-size:24px;transition:background .25s,color .25s,transform .25s}.case-link:hover .link-arrow{background:var(--tone);color:white;transform:rotate(45deg)}.work-note{font-size:14px;color:var(--muted);max-width:950px;margin:26px 0 0}.experience-section{background:var(--soft)}.experience{display:grid;grid-template-columns:1fr 2.25fr;gap:60px;border-top:1px solid #c9d4cd;padding-block:44px}.experience:last-child{padding-bottom:0}.experience aside h3{font-size:24px;line-height:1.55;margin:20px 0 13px}.role{font-size:15px}.date{font-size:14px;color:var(--muted);margin:12px 0 23px;line-height:1.9}.experience-lead{font-size:26px;line-height:1.5;margin-bottom:17px}.experience-intro,.experience-body p,.experience-body li{font-size:16px;color:#4c5a52;line-height:1.9}.responsibilities{display:grid;gap:22px;margin:24px 0}.responsibilities h5{font-size:17px;margin-bottom:7px}.incident{background:white;border-left:3px solid var(--accent);padding:25px 28px;margin-top:28px}.incident>span,.project-label{font-size:12px;color:var(--accent);letter-spacing:1px}.incident h5{font-size:19px;line-height:1.6;margin:11px 0}.flow{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px;font-size:12px;color:var(--accent)}.flow b{font-weight:400;color:#85958b}.teddy-project+.teddy-project{margin-top:30px;padding-top:30px;border-top:1px solid var(--line)}.teddy-project h4{font-size:24px;margin:10px 0 13px}.teddy-project ul{padding-left:21px;margin-bottom:0}.teddy-project li{padding-left:4px;margin:8px 0}.research-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.research{padding:34px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:0 0 12px 12px}.research-top{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}.research h3{font-size:36px;letter-spacing:-1.5px;margin:32px 0 19px}.research h3 i{font-style:normal;font-weight:400;color:var(--accent)}.research-question{font-size:19px;line-height:1.7;font-weight:600;min-height:65px}.research dl{margin:24px 0}.research dl>div{display:grid;grid-template-columns:70px 1fr;gap:18px;border-top:1px solid var(--line);padding:20px 0}.research dt{font-size:13px;color:var(--accent);padding-top:3px}.research dd{margin:0;font-size:15px;line-height:1.9;color:var(--muted)}.research-boundary{font-size:13px;line-height:1.9;background:var(--soft);padding:18px;color:#4b5d50;border-radius:6px}.about-section{background:#172d24;color:white}.about-section .eyebrow{color:#b3d49c}.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:90px;margin-top:12px}.about-grid h2{margin-top:12px}.about-intro{color:#c7d5cc;font-size:17px;margin-top:28px}.about-grid .tags{margin-top:26px}.about-grid .tags span{border-color:#ffffff30;color:#ccdbd1}.about-points article{display:flex;gap:24px;padding:24px 0;border-bottom:1px solid #ffffff24}.about-points article:first-child{padding-top:12px}.about-points article>span{font-size:13px;color:#b3d49c;padding-top:5px}.about-points h3{font-size:20px;line-height:1.6;margin-bottom:10px}.about-points p{color:#c7d5cc;font-size:15px}.contact{display:grid;grid-template-columns:1.6fr 1fr;gap:75px;padding-block:85px}.contact h2{font-size:38px;line-height:1.45;margin:20px 0}.contact p:not(.eyebrow){color:var(--muted);font-size:15px}.contact-links>a:not(.button){display:block;padding:0 0 20px;margin:0 0 20px;border-bottom:1px solid var(--line)}.contact-links small{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}.contact-links span{font-size:18px;overflow-wrap:anywhere}.contact-links .button{width:100%}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding-block:24px;font-size:12px;color:var(--muted)}
@media(min-width:901px){.hero-copy{animation:enter .7s ease-out both}.portrait{animation:enter .9s ease-out both}}@keyframes enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero{gap:35px}.brand small{display:none}.case-heading,.case-detail{padding:30px}.case-meta{flex-direction:column;gap:5px}.experience{gap:30px}.about-grid{gap:40px}.research{padding:25px}.contact{gap:35px}.portrait{min-height:460px}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.nav{height:78px;gap:15px}.brand{font-size:23px}.nav nav{gap:15px;font-size:13px}.nav nav a:last-child{display:none}.nav-resume{font-size:13px}.hero{grid-template-columns:1fr;padding-block:40px;gap:32px}.hero h1{font-size:58px}.hero h2{font-size:21px}.hero-school{line-height:1.8}.portrait{min-height:380px;border-radius:95px 12px 12px 12px}.portrait img{object-position:center 42%}.index-strip{display:grid;grid-template-columns:1fr 1fr;gap:17px;font-size:13px}.index-strip>span{font-size:11px;align-self:center}.section{padding-block:65px}.section-head{display:block;margin-bottom:29px}.section-head>p{margin-top:20px;font-size:15px}.section-head h2,.about-grid h2{font-size:34px}.case{grid-template-columns:1fr}.case-heading,.case-detail{padding:27px}.case-meta{flex-direction:row;font-size:11px}.case h3{font-size:40px;margin-top:28px}.case-subtitle{font-size:20px}.case-facts{padding-top:28px}.case-facts strong{font-size:24px}.case li{gap:15px}.experience{grid-template-columns:1fr;gap:28px;padding-block:32px}.experience aside h3{font-size:23px;margin-top:12px}.experience aside h3 br{display:none}.experience .date{margin-bottom:15px}.experience-lead{font-size:23px}.incident{padding:22px}.research-grid{grid-template-columns:1fr}.research{padding:27px}.research h3{font-size:33px}.research-question{min-height:0}.research dl>div{grid-template-columns:60px 1fr;gap:14px}.about-grid{grid-template-columns:1fr;gap:28px}.about-intro{font-size:16px}.contact{grid-template-columns:1fr;gap:34px;padding-block:60px}.contact h2{font-size:31px}footer{flex-wrap:wrap;font-size:12px}footer>span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Unified portfolio collection */
.recent-brief{padding-bottom:20px}.recent-brief .section-head{margin-bottom:25px}.recent-brief h2{font-size:32px}.highlight-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.highlight-grid article{border-left:3px solid var(--accent);background:var(--soft);padding:25px 30px}.highlight-grid h3{font-size:28px;margin:14px 0}.highlight-grid article>p:not(.eyebrow){color:var(--muted);font-size:16px}.project-access{display:flex;align-items:center;justify-content:space-between;color:var(--accent);font-size:15px;font-weight:600;padding-top:20px;margin-top:auto;border-top:1px solid var(--line)}.project-access:hover{color:#ad502a}.project-access>span:last-child{font-size:25px;transition:transform .2s}.project-access:hover>span:last-child{transform:translate(3px,-3px)}.highlight-grid .project-access{margin-top:23px}.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.portfolio-project{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;padding:32px;transition:transform .25s,box-shadow .25s;background:white}.portfolio-project:hover{transform:translateY(-3px);box-shadow:0 12px 30px #173c2410}.project-index{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--accent);line-height:1.8}.portfolio-project h3{font-size:30px;line-height:1.4;margin:27px 0 15px}.project-lead{font-size:18px;font-weight:600;line-height:1.7}.project-description{padding:16px 0 26px}.project-description p{font-size:15px;color:var(--muted);margin-bottom:12px;line-height:1.9}.portfolio-project:last-child:nth-child(odd){grid-column:1/-1}.portfolio-project:last-child:nth-child(odd) .project-description{columns:2;column-gap:35px}.portfolio-project:last-child:nth-child(odd) .project-description p{break-inside:avoid}@media(max-width:760px){.highlight-grid,.portfolio-grid{grid-template-columns:1fr}.portfolio-project{padding:25px}.portfolio-project:last-child:nth-child(odd) .project-description{columns:1}.project-index{flex-wrap:wrap}.highlight-grid article{padding:23px}.nav nav{gap:12px}}@media(prefers-reduced-motion:reduce){.portfolio-project,.project-access>span{transition:none}}
