:root{--paper:#f7f5ef;--ink:#000;--muted:#000;--yellow:#efc44a;--line:#dcd8ce;--white:#fff;scroll-behavior:smooth;scroll-padding-top:110px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei",sans-serif;line-height:1.7;font-size:16px}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #9a6d00;outline-offset:6px}img{display:block;width:100%;height:auto}.wrap,.header{width:min(1200px,calc(100% - 96px));margin-inline:auto}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:16px;font-size:32px;font-weight:850;letter-spacing:.08em;white-space:nowrap}.brand span{font-size:13px;font-weight:500;letter-spacing:.06em;border-left:1px solid var(--line);padding-left:16px}nav{display:flex;gap:32px;align-items:center;font-size:15px;font-weight:600}.nav-contact{border-bottom:3px solid var(--yellow);padding-block:6px}.nav-contact span{margin-left:16px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:40px 64px;padding-top:54px}.hero-copy{align-self:center;padding-block:30px}.eyebrow{font-size:14px;font-weight:650;letter-spacing:.1em;margin:0 0 24px;display:flex;align-items:center;gap:12px}.eyebrow:before{content:"";display:block;width:24px;height:4px;background:var(--yellow)}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.3;font-weight:500;letter-spacing:.1em;margin-bottom:26px}h1>span{display:block;font-size:clamp(72px,8vw,112px);letter-spacing:.12em;font-weight:850;margin-top:12px;line-height:1.25}.hero-lead{font-size:clamp(23px,2.3vw,30px);font-weight:650;line-height:1.65;margin-bottom:20px}.hero-detail{color:var(--muted);margin-bottom:30px}.button{display:inline-flex;gap:40px;align-items:center;background:var(--ink);color:var(--white);padding:15px 24px;border-radius:5px;font-weight:600}.button:hover{background:#49453b}.portrait{margin:0;position:relative;border-radius:100px 8px 8px 8px;overflow:hidden;background:#dddce2;align-self:stretch;min-height:580px}.portrait>img{height:100%;object-fit:cover;object-position:center 28%;position:absolute}.portrait figcaption{position:absolute;bottom:0;left:0;right:0;padding:28px 30px 22px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:white;font-size:22px;font-weight:700}.portrait figcaption span{font-size:14px;font-weight:400;display:block}.hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:18px 0 28px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.hero-foot a{color:var(--ink)}.hero-foot a span{margin-left:20px}.section{padding-block:100px}h2{font-size:clamp(30px,3.5vw,44px);line-height:1.5;letter-spacing:.02em;margin-bottom:24px}.about{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.section-title>p:last-child{color:var(--muted)}.resume h3{font-size:17px;margin:0 0 8px}.resume ol{list-style:none;padding:0;margin:0}.resume ol li{padding:20px 0;border-bottom:1px solid var(--line)}.resume ol span{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}.resume strong{font-size:20px;font-weight:600}.education{margin-top:20px}.education summary{display:flex;justify-content:space-between;font-weight:600;cursor:pointer;padding:12px 0}.education ul{padding-left:22px;color:var(--muted)}.projects{background:#eeece5}.section-head{display:flex;justify-content:space-between;gap:32px;align-items:end;margin-bottom:40px}.section-head h2{margin-bottom:0}.section-head>p{color:var(--muted);margin-bottom:10px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project{background:var(--paper);border-radius:8px;overflow:hidden}.project>img{aspect-ratio:1.45;object-fit:cover}.project-copy{padding:26px}.category{font-size:13px;display:inline-block;padding:2px 10px;background:#f2dfa5;margin-bottom:16px}.project h3{font-size:21px;line-height:1.5;margin-bottom:12px}.project p{color:var(--muted);margin-bottom:0}.more-projects{margin-top:32px}.more-projects>summary{cursor:pointer;padding:20px 0;display:flex;justify-content:center;gap:28px;font-weight:600;border-block:1px solid #d2cec3}.more-projects[open]>summary span,.education[open]>summary span{transform:rotate(45deg)}summary{list-style:none}summary::-webkit-details-marker{display:none}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-top:32px}.service-grid h3{font-size:20px}.service-grid ul{padding-left:20px;color:var(--muted)}.service-grid li{margin-bottom:10px}.service-grid p{color:var(--muted)}.road-list{font-size:14px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.contact>div>p:last-child{color:var(--muted)}.contact-channels{border-top:3px solid var(--yellow)}.line-channel{display:flex;gap:20px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.channel-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;background:var(--ink);color:white;font-size:16px;font-weight:700;flex-shrink:0}.line-channel h3{font-size:20px;margin-bottom:4px}.line-channel p{font-size:14px;color:var(--muted);margin:0}.status{font-size:13px;color:var(--muted);white-space:nowrap}.line-channel>.status{margin-left:auto}.social-channel{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);font-size:18px;font-weight:600}footer{border-top:1px solid var(--line);padding-block:28px;display:flex;align-items:center;justify-content:space-between;gap:24px}footer p,footer>a:last-child{font-size:13px;color:var(--muted);margin:0}.mobile-contact{display:none}.skip{position:fixed;top:-100px;left:12px;background:var(--ink);color:white;padding:12px;z-index:100}.skip:focus{top:12px}@media(max-width:900px){.wrap,.header{width:calc(100% - 48px)}.brand span{display:none}.hero{gap:30px;grid-template-columns:1fr 1fr}.portrait{min-height:520px}.about,.contact{gap:40px}.project-grid{gap:16px}.project-copy{padding:20px}.project h3{font-size:19px}.section{padding-block:76px}}@media(max-width:600px){:root{scroll-padding-top:24px}.header{padding:18px 0;gap:12px}.wrap,.header{width:calc(100% - 40px)}.brand{font-size:27px}nav{gap:16px;font-size:14px}nav .nav-contact{display:none}.hero{padding-top:30px;grid-template-columns:1fr;gap:26px}.hero-copy{padding:0}.eyebrow{margin-bottom:20px;font-size:13px}h1{font-size:24px;margin-bottom:18px}h1>span{font-size:82px;margin-top:6px}.hero-lead{font-size:24px;margin-bottom:14px}.hero-detail{margin-bottom:24px}.portrait{min-height:0;aspect-ratio:4/4.5;border-radius:64px 6px 6px 6px}.portrait>img{object-position:center 26%}.hero-foot{font-size:13px;padding:0 0 22px;gap:20px}.hero-foot>span{max-width:110px}.hero-foot a span{margin-left:6px}.section{padding-block:60px}.about,.contact{grid-template-columns:1fr;gap:30px}.section-title>p:last-child{margin-bottom:0}.resume strong{font-size:18px}.section-head{display:block;margin-bottom:28px}.section-head>p{margin-top:16px}.project-grid,.service-grid{grid-template-columns:1fr;gap:24px}.project>img{aspect-ratio:1.55}.project-copy{padding:24px}.project h3{font-size:22px}.service-grid{gap:12px}.contact h2{font-size:32px}.line-channel{gap:14px}.channel-mark{width:52px;height:52px}.line-channel h3{font-size:18px}footer{flex-wrap:wrap;padding-bottom:94px}footer .brand{width:100%}footer .brand span{display:inline;font-size:12px}.mobile-contact{display:flex;position:fixed;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));right:20px;gap:24px;background:var(--ink);color:white;padding:13px 20px;border-radius:40px;box-shadow:0 4px 18px #0002;font-size:14px;z-index:10}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}

.button,.channel-mark,.mobile-contact,.skip{background:var(--yellow);color:#000}.button:hover{background:#e2b632}.portrait figcaption{background:var(--paper);color:#000}.portrait>img{inset:0}

.resume-group h3{font-size:18px;margin-bottom:14px}.resume-group ul{padding-left:22px;margin:0;color:#000}.resume-group li{padding:4px 0;font-size:17px}.resume-group+.resume-group{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}

.header-label{font-size:14px;letter-spacing:.06em}.portrait figcaption span{font-size:20px;font-weight:650;line-height:1.6}@media(max-width:600px){.header-label{font-size:12px}.portrait figcaption span{font-size:20px}}

.header{justify-content:flex-end}

/* Display the full portrait, including both arms. */
.hero{grid-template-columns:.85fr 1.15fr;column-gap:40px}.portrait{align-self:start;min-height:0;border-radius:8px;aspect-ratio:auto}.portrait>img{position:static;width:100%;height:auto;object-fit:contain;aspect-ratio:2/3}.portrait figcaption{position:static;padding:20px 24px;background:var(--paper)}@media(max-width:600px){.hero{grid-template-columns:1fr}.portrait{min-height:0;aspect-ratio:auto;border-radius:8px}.portrait>img{height:auto;object-fit:contain}.portrait figcaption{padding:18px 0}}

.hero-foot{justify-content:flex-end}

/* Compact service overview and primary contact channel. */
.projects-note{margin:28px 0 0;padding-top:24px;border-top:1px solid var(--line);font-size:16px;line-height:1.8}.contact-channels{border:0}.line-channel{background:#f2dfa5;border:1px solid #d8bd73;border-radius:12px;padding:24px;gap:16px;flex-wrap:wrap}.line-channel h3{margin:0;flex:1;font-size:20px}.channel-mark{background:transparent;width:48px;height:48px}.channel-mark svg{width:48px;height:48px}.line-channel .status{background:var(--paper);border-radius:20px;padding:4px 12px;font-size:14px}.social-icons{display:flex;gap:32px;flex-wrap:wrap;padding:26px 4px}.social-item{display:flex;gap:12px;align-items:center}.social-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%}.social-icon svg{width:25px;height:25px}.status{font-size:14px}.mobile-contact svg{width:30px;height:30px;flex-shrink:0}.mobile-contact small{display:block;font-size:12px;font-weight:400}.mobile-contact{align-items:center;gap:10px;line-height:1.4}.section-title p{line-height:1.9;max-width:34em}.hero>*{min-width:0}nav a{min-height:44px;display:inline-flex;align-items:center}.category{font-size:14px}.portrait{max-width:600px;width:100%;justify-self:end}
@media(min-width:601px) and (max-width:850px){.project-grid{grid-template-columns:1fr}.project{display:grid;grid-template-columns:40% 1fr}.project>img{height:100%;min-height:230px;aspect-ratio:auto}.contact{grid-template-columns:1fr;gap:24px}.contact h2 br{display:none}}
@media(max-width:600px){.header{padding-block:12px}nav{width:100%;justify-content:space-between;gap:10px}nav .nav-contact{display:inline-flex}.nav-contact span{display:none}.hero{gap:24px}.contact{padding-bottom:48px}.line-channel{padding:18px;gap:12px}.line-channel h3{font-size:18px}.line-channel .status{margin-left:60px}.social-icons{gap:24px}.mobile-contact{padding:10px 16px}.projects-note{font-size:15px}.resume-group li{font-size:16px}footer{padding-bottom:124px}}

@media(max-width:600px){.line-channel{display:grid;grid-template-columns:48px minmax(0,1fr);gap:6px 12px}.line-channel .channel-mark{grid-row:1/3}.line-channel h3{font-size:18px}.line-channel .status{grid-column:2;margin-left:0;justify-self:start}}

/* Mobile hero: portrait left, introductory text right. */
@media(max-width:600px){.hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:24px 14px;align-items:center}.hero .portrait{grid-column:1;grid-row:1;align-self:center;background:transparent;border-radius:0}.hero-copy{grid-column:2;grid-row:1;padding:0}.hero-copy h1{margin-bottom:12px}.hero-copy h1>span{font-size:clamp(40px,11vw,62px);letter-spacing:.04em;margin-top:0}.hero-copy .eyebrow{font-size:12px;letter-spacing:0;gap:6px;margin-bottom:12px}.hero-copy .eyebrow:before{width:12px}.hero-lead{font-size:18px;line-height:1.65;margin-bottom:12px}.hero-detail{font-size:14px;line-height:1.7;margin-bottom:16px}.hero-copy .button{font-size:14px;padding:10px 12px;gap:8px}.hero-foot{grid-column:1/-1}}

/* Frame the supplied full-length transparent photo as a half portrait. */
.portrait{background:transparent;border-radius:0;position:relative;aspect-ratio: .72;overflow:hidden;max-width:460px}.portrait>img{position:absolute;inset:auto;top:-8%;left:-58%;width:216%;max-width:none;height:auto;aspect-ratio:auto;object-fit:contain}
@media(max-width:600px){.hero .portrait{aspect-ratio:.72;align-self:center}.hero .portrait>img{position:absolute;top:-8%;left:-58%;width:216%;height:auto}.hero{padding-top:28px}.hero-copy .button{gap:6px;padding:10px 8px}.hero-copy .hero-detail br{display:none}}

.portrait,.hero .portrait{aspect-ratio:auto;overflow:visible;background:transparent}.portrait>img,.hero .portrait>img{position:static;inset:auto;width:100%;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain}

@media(max-width:600px){.hero-copy .hero-lead{font-size:16px}}

/* White and neutral gray surfaces with black type and warm accents. */
:root{--paper:#fff;--ink:#000;--muted:#000;--line:#dedede}.projects{background:#f3f3f3}.more-projects>summary{border-color:#d8d8d8}.line-channel{background:#ffedbc;border-color:#e4c66f}.category{background:#ffedbc}.line-channel:hover,.mobile-contact:hover{background:#f8dc8e}.hero{padding-bottom:44px;border-bottom:1px solid var(--line)}@media(max-width:600px){.hero{padding-bottom:30px}}

@media(max-width:600px){.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.hero-copy{grid-column:1;grid-row:1}.hero .portrait{grid-column:2;grid-row:1}}

.future{border-bottom:1px solid var(--line)}.future>p:last-child{margin-bottom:0}@media(max-width:600px){.header nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}.header nav a{justify-content:center}.header nav .nav-contact{border-bottom:0}}

/* Full achievement list and text-only future goals. */
.achievement-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 40px;padding-top:32px}.achievement-group{min-width:0}.achievement-group h3{font-size:21px;margin:0 0 20px;padding-bottom:12px;border-bottom:3px solid var(--yellow)}.achievement-group dl{margin:0}.achievement-group dl>div+div{margin-top:22px}.achievement-group dt{font-weight:650;font-size:17px;line-height:1.6;margin-bottom:6px}.achievement-group dd{margin:0;font-size:16px;line-height:1.8;overflow-wrap:anywhere}.future-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:32px}.future-card{min-width:0;padding:24px;background:#f3f3f3;border-top:3px solid var(--yellow);border-radius:0 0 8px 8px}.future-card h3{font-size:21px;line-height:1.5;margin-bottom:14px}.future-card p{margin:0;line-height:1.8;font-size:16px;overflow-wrap:anywhere}@media(min-width:601px) and (max-width:900px){.future-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.achievement-groups,.future-grid{grid-template-columns:1fr;gap:28px}.future-grid{gap:18px;margin-top:24px}.future-card{padding:22px}.achievement-group h3{font-size:20px}.future-card h3{font-size:20px}}
