:root{--ink:#10162a;--muted:#697083;--paper:#f7f6f2;--line:#dfe1e4;--coral:#ff765a;--blue:#9fb7ff;--lime:#d1df5e;--navy:#0b1020;--white:#fff;--mono:'DM Mono',monospace;--sans:'Manrope','Noto Sans SC',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65;overflow-x:hidden}.page-noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.container{max-width:1160px;margin:0 auto;padding-left:28px;padding-right:28px}.site-header{position:sticky;top:0;z-index:10;background:rgba(247,246,242,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(16,22,42,.09)}.nav-wrap{height:82px;display:flex;align-items:center;gap:36px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);margin-right:auto}.brand-mark{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--paper);font-size:11px;font-weight:800;letter-spacing:-.06em}.brand-copy{display:flex;flex-direction:column;line-height:1.05}.brand-copy strong{font-size:12px;letter-spacing:.12em}.brand-copy small{font-family:var(--mono);font-size:8px;color:var(--muted);margin-top:6px;letter-spacing:.04em}.main-nav{display:flex;gap:26px}.main-nav a,.nav-cta,.footer-links a{color:var(--ink);font-size:12px;text-decoration:none}.main-nav a{position:relative}.main-nav a:after{content:'';position:absolute;bottom:-7px;left:0;width:0;height:1px;background:var(--coral);transition:.25s}.main-nav a:hover:after,.main-nav a.active:after{width:100%}.nav-cta{border:1px solid var(--ink);padding:10px 15px;transition:.25s}.nav-cta:hover{background:var(--ink);color:var(--paper)}.nav-cta span,.button span,.text-link span,.email-link span{margin-left:10px}.menu-toggle{display:none}.hero{min-height:670px;display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:60px;padding-top:76px;padding-bottom:86px}.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--muted);margin:0 0 20px}.dot{display:inline-block;width:7px;height:7px;background:var(--coral);border-radius:50%;margin-right:8px;vertical-align:1px}.hero h1{font-size:clamp(50px,6vw,79px);line-height:1.08;letter-spacing:-.08em;margin:0 0 25px;font-weight:800}.hero h1 em,.contact-copy h2 em{font-style:normal;color:var(--coral)}.hero-intro{max-width:500px;color:#555e70;font-size:16px;line-height:1.9;margin:0}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:36px}.button{display:inline-flex;align-items:center;text-decoration:none;font-size:12px;transition:.25s}.button-primary{background:var(--ink);color:#fff;padding:14px 21px}.button-primary:hover{background:var(--coral);transform:translateY(-2px)}.button-quiet{color:var(--ink);border-bottom:1px solid var(--ink);padding:12px 0}.hero-meta{display:flex;gap:44px;margin-top:63px}.meta-label{display:block;font-family:var(--mono);font-size:9px;color:#8e95a3;letter-spacing:.1em;margin-bottom:7px}.hero-meta strong{font-size:12px;font-weight:600}.hero-visual{position:relative;min-height:490px;display:flex;align-items:center;justify-content:center}.portrait-card{position:relative;width:min(365px,82%);height:445px;background:var(--navy);color:white;padding:18px;box-shadow:16px 18px 0 rgba(255,118,90,.18);transform:rotate(3.5deg);z-index:1}.portrait-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;letter-spacing:.07em;color:#aab0c0}.portrait-art{height:320px;position:relative;overflow:hidden;margin-top:10px;background:linear-gradient(145deg,#ff765a 0%,#ff9573 43%,#a6c1ff 44%,#aec7ff 100%)}.portrait-sun{position:absolute;width:185px;height:185px;background:#ffe6a0;border-radius:50%;top:35px;right:22px}.portrait-face{position:absolute;width:164px;height:218px;border-radius:80px 80px 74px 74px;background:#10162a;left:72px;top:79px;transform:rotate(-8deg)}.portrait-face:before{content:'';position:absolute;width:180px;height:80px;background:#10162a;border-radius:50%;top:-32px;left:-4px;transform:rotate(-18deg)}.face-eye{position:absolute;width:7px;height:7px;background:#ffdfc0;border-radius:50%;top:105px}.face-eye.left{left:54px}.face-eye.right{right:52px}.face-smile{position:absolute;width:34px;height:15px;border-bottom:2px solid #ffdfc0;border-radius:0 0 50% 50%;left:65px;top:136px}.portrait-ring{position:absolute;border:1px solid rgba(16,22,42,.25);border-radius:50%}.ring-one{width:310px;height:310px;left:-55px;bottom:-140px}.ring-two{width:240px;height:240px;right:-80px;top:-70px}.portrait-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:16px}.portrait-bottom strong{font-size:30px;line-height:.82;letter-spacing:-.08em}.portrait-bottom span{font-family:var(--mono);font-size:8px;line-height:1.45;text-align:right;color:#aab0c0}.orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-one{width:68px;height:68px;background:var(--lime);top:20px;right:9%}.orb-two{width:34px;height:34px;border:1px solid var(--coral);bottom:47px;left:10%}.floating-note{position:absolute;z-index:2;background:var(--paper);box-shadow:0 12px 28px rgba(14,20,40,.1);font-family:var(--mono);font-size:9px;line-height:1.45;letter-spacing:.03em}.note-top{top:75px;right:0;padding:13px 15px;transform:rotate(-8deg)}.note-top span{color:var(--coral);font-size:15px;margin-right:6px}.note-bottom{bottom:43px;left:10px;display:flex;align-items:center;gap:9px;padding:12px 14px;transform:rotate(7deg)}.note-bottom span{font-size:24px;color:var(--coral);font-weight:700}.note-bottom small{font-size:8px;color:var(--muted)}.ticker{background:var(--coral);color:var(--ink);overflow:hidden;white-space:nowrap}.ticker-track{display:flex;align-items:center;justify-content:center;gap:30px;min-width:max-content;padding:14px 0;font-family:var(--mono);font-size:11px;letter-spacing:.08em}.ticker i{font-style:normal;font-size:16px}.section{padding-top:125px;padding-bottom:125px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:48px}.section-heading h2{margin:0;font-size:clamp(42px,5vw,64px);letter-spacing:-.08em;line-height:1}.section-lede{color:var(--muted);font-size:14px;line-height:1.65;text-align:right;margin:0}.text-link{color:var(--ink);font-size:12px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:7px;white-space:nowrap}.text-link:hover,.email-link:hover{color:var(--coral);border-color:var(--coral)}.project-grid{display:grid;grid-template-columns:1.38fr 1fr;gap:24px}.project-card{min-width:0}.project-feature{grid-row:span 2}.project-visual{position:relative;height:315px;overflow:hidden;padding:18px}.project-feature .project-visual{height:440px}.visual-coral{background:var(--coral)}.visual-blue{background:var(--blue)}.visual-lime{background:var(--lime)}.visual-label{font-family:var(--mono);font-size:9px;letter-spacing:.08em;position:relative;z-index:2}.dashboard-ui{position:absolute;top:83px;left:19%;width:65%;height:260px;background:var(--paper);padding:25px 24px;box-shadow:10px 12px 0 rgba(16,22,42,.1);transform:rotate(-6deg)}.ui-chip{font-family:var(--mono);font-size:8px;background:var(--ink);color:#fff;padding:5px 8px}.ui-line{height:8px;background:#c9ced8;width:65%;margin-top:26px}.ui-line.wide{width:88%;height:18px;background:var(--ink);margin-top:31px}.ui-blocks{display:flex;gap:7px;margin-top:27px}.ui-blocks b{height:75px;flex:1;background:#c5d0ea}.ui-blocks b:first-child{background:var(--coral)}.visual-caption{position:absolute;bottom:17px;left:18px;font-size:12px;line-height:1.35}.visual-caption strong{font-family:var(--mono);font-size:11px;font-weight:400}.poster-shape{position:absolute;top:51px;left:25%;width:175px;height:205px;background:var(--navy);color:var(--paper);display:flex;flex-direction:column;justify-content:center;align-items:center;transform:rotate(8deg);box-shadow:13px 14px 0 rgba(16,22,42,.1)}.poster-shape span{font-size:28px;line-height:1.15;letter-spacing:-.12em;text-align:center}.poster-shape b{color:var(--coral)}.poster-shape i{font-family:var(--mono);font-size:8px;font-style:normal;writing-mode:vertical-rl;position:absolute;right:10px;top:12px}.research-grid{position:absolute;inset:55px 70px 55px 55px;border:1px solid rgba(16,22,42,.35);transform:rotate(-7deg)}.r-dot{position:absolute;width:13px;height:13px;background:var(--ink);border-radius:50%}.r-dot:nth-child(1){left:15%;top:20%}.r-dot:nth-child(2){left:50%;top:15%;background:var(--coral)}.r-dot:nth-child(3){right:13%;top:37%}.r-dot:nth-child(4){left:31%;bottom:22%}.r-dot:nth-child(5){right:27%;bottom:18%;background:var(--coral)}.r-dot:nth-child(6){left:7%;bottom:12%}.r-line{position:absolute;height:1px;background:var(--ink);width:77%;left:12%;top:52%;transform:rotate(27deg)}.project-info{display:flex;justify-content:space-between;gap:15px;padding:20px 2px 7px}.project-info h3{font-size:19px;letter-spacing:-.04em;margin:0 0 6px}.project-info p{font-size:12px;color:var(--muted);margin:0;line-height:1.7;max-width:440px}.arrow{font-size:23px;line-height:1}.tag-row{display:flex;gap:7px;flex-wrap:wrap}.tag-row span{font-family:var(--mono);font-size:9px;border:1px solid var(--line);padding:5px 8px;color:#697083}.showreel-section{background:var(--navy);color:var(--paper)}.showreel-section .eyebrow,.showreel-section .video-aside p,.showreel-section .video-meta{color:#9ca5bd}.showreel-section .section-lede{color:#9ca5bd}.showreel-layout{display:grid;grid-template-columns:1.55fr .75fr;gap:70px;align-items:center}.video-frame{position:relative;aspect-ratio:16/9;background:var(--coral);cursor:pointer;overflow:hidden;transition:transform .35s}.video-frame:hover{transform:translateY(-5px) rotate(-.5deg)}.video-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(11,16,32,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(11,16,32,.12) 1px,transparent 1px);background-size:38px 38px}.video-copy{position:absolute;left:8%;top:11%;z-index:1}.video-copy span{font-family:var(--mono);font-size:9px;letter-spacing:.1em}.video-copy strong{display:block;font-size:clamp(34px,5vw,67px);line-height:.95;letter-spacing:-.09em;margin-top:38px}.video-copy em{font-style:normal;color:var(--paper)}.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:77px;height:77px;border-radius:50%;border:0;background:var(--paper);color:var(--ink);font-size:20px;padding-left:5px;cursor:pointer;transition:.25s}.video-frame:hover .play-button{transform:translate(-50%,-50%) scale(1.12);background:var(--ink);color:var(--paper)}.video-time{position:absolute;bottom:19px;right:23px;font-family:var(--mono);font-size:9px}.video-time span{opacity:.5;padding:0 5px}.video-aside h3{font-size:39px;line-height:1.07;letter-spacing:-.08em;margin:0 0 21px}.video-aside>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#b4bbca;margin:0 0 26px}.showreel-section .text-link{color:var(--paper);border-color:#7e879d}.video-meta{display:flex;justify-content:space-between;border-top:1px solid #2c354f;padding-top:16px;margin-top:68px;font-family:var(--mono);font-size:9px}.writing-list{border-top:1px solid var(--line)}.writing-item{display:grid;grid-template-columns:100px 1fr 30px;align-items:center;gap:20px;padding:28px 0;border-bottom:1px solid var(--line);transition:.25s}.writing-item:hover{padding-left:12px;background:rgba(255,118,90,.06)}.writing-year{font-family:var(--mono);font-size:11px;color:var(--coral)}.writing-main h3{font-size:18px;font-weight:600;letter-spacing:-.03em;margin:0 0 5px}.writing-main p{font-family:var(--mono);font-size:10px;color:var(--muted);margin:0}.writing-arrow{font-size:22px}.credentials-section{background:#e7e8e3}.credentials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.credential-card{background:var(--paper);min-height:185px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;transition:.25s}.credential-card:hover{transform:translateY(-5px);box-shadow:8px 8px 0 rgba(16,22,42,.1)}.credential-icon{font-family:var(--mono);font-size:20px;font-weight:500;letter-spacing:-.08em;color:var(--blue)}.credential-icon.accent{color:var(--coral)}.credential-icon.warm{color:#bbc93f}.credential-card h3{font-size:16px;letter-spacing:-.04em;margin:0 0 5px}.credential-card p{font-family:var(--mono);font-size:9px;color:var(--muted);margin:0}.credential-card>span{align-self:flex-end;font-size:19px}.contact-section{background:var(--coral);overflow:hidden}.contact-inner{min-height:505px;display:flex;align-items:center;justify-content:space-between}.contact-copy{padding:85px 0}.contact-copy h2{font-size:clamp(50px,6vw,80px);line-height:1.03;letter-spacing:-.1em;margin:0 0 23px}.contact-copy>p:not(.eyebrow){max-width:390px;font-size:14px;margin:0 0 32px}.email-link{display:inline-block;color:var(--ink);font-size:15px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:7px}.contact-stamp{position:relative;width:280px;height:280px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;transform:rotate(12deg);margin-right:8%}.contact-stamp span{text-align:center;font-family:var(--mono);font-size:19px;line-height:1.05;letter-spacing:.02em}.stamp-ring{position:absolute;inset:13px;border:1px dashed var(--ink);border-radius:50%}.contact-stamp small{position:absolute;bottom:35px;font-size:20px}.site-footer{background:var(--navy);color:#8d96ac}.footer-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:9px;letter-spacing:.04em}.footer-links{display:flex;gap:24px}.footer-links a{color:var(--paper);font-family:var(--sans);font-size:11px}.video-modal{position:fixed;inset:0;z-index:30;display:none;align-items:center;justify-content:center;padding:24px}.video-modal.is-open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(11,16,32,.85);backdrop-filter:blur(8px)}.modal-content{position:relative;width:min(820px,100%);z-index:1}.modal-close{position:absolute;right:0;top:-45px;border:0;background:transparent;color:#fff;font-size:32px;cursor:pointer}.modal-placeholder{aspect-ratio:16/9;background:var(--coral);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:12px 12px 0 rgba(255,255,255,.14)}.modal-placeholder span{font-family:var(--mono);font-size:10px}.modal-placeholder strong{font-size:clamp(29px,5vw,52px);letter-spacing:-.08em;margin:18px 0 4px}.modal-placeholder p{font-size:12px;margin:0}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.reveal-delay{transition-delay:.12s}.reveal-delay-2{transition-delay:.22s}@media (max-width:800px){.container{padding-left:20px;padding-right:20px}.nav-wrap{height:70px;gap:14px}.main-nav{position:absolute;left:0;right:0;top:69px;background:var(--paper);border-bottom:1px solid var(--line);padding:18px 20px 23px;display:none;flex-direction:column;gap:18px}.main-nav.open{display:flex}.menu-toggle{display:flex;border:0;background:transparent;width:32px;height:32px;flex-direction:column;justify-content:center;gap:6px;cursor:pointer}.menu-toggle span{height:1px;width:22px;background:var(--ink);display:block}.nav-cta{font-size:10px;padding:8px 10px}.hero{grid-template-columns:1fr;gap:35px;padding-top:55px;padding-bottom:70px}.hero h1{font-size:clamp(47px,14vw,70px)}.hero-meta{margin-top:40px}.hero-visual{min-height:450px}.portrait-card{height:410px}.portrait-art{height:286px}.floating-note.note-top{right:-2px}.section{padding-top:84px;padding-bottom:84px}.section-heading{align-items:flex-start;gap:25px;flex-direction:column;margin-bottom:34px}.section-lede{text-align:left}.project-grid{grid-template-columns:1fr;gap:38px}.project-feature{grid-row:auto}.project-feature .project-visual{height:350px}.project-visual{height:320px}.showreel-layout{grid-template-columns:1fr;gap:40px}.video-aside h3{font-size:37px}.video-meta{margin-top:40px}.writing-item{grid-template-columns:54px 1fr 20px;gap:10px}.writing-main h3{font-size:15px;line-height:1.45}.credentials-grid{grid-template-columns:1fr}.credential-card{min-height:155px}.contact-inner{min-height:570px;align-items:flex-start;flex-direction:column}.contact-copy{padding-top:78px}.contact-stamp{width:200px;height:200px;align-self:flex-end;margin:-25px 5% 35px 0}.contact-stamp span{font-size:14px}.footer-inner{padding-top:22px;padding-bottom:22px;gap:15px;flex-wrap:wrap}.footer-inner>span:last-child{width:100%;order:3}.footer-links{gap:13px}}

/* Mobile polish: additional rules for small screens and touch devices */
@media (max-width: 560px) {
  body { font-size: 14px; overflow-x: clip; }
  .container { padding-left: 16px; padding-right: 16px; }
  .brand { gap: 9px; }
  .brand-copy strong { font-size: 11px; }
  .brand-copy small { font-size: 7px; }
  .nav-wrap { gap: 8px; }
  .nav-cta { padding: 8px 9px; white-space: nowrap; }
  .main-nav a { font-size: 13px; padding: 2px 0; }

  .hero { gap: 24px; padding-top: 42px; padding-bottom: 58px; }
  .hero h1 { font-size: clamp(43px, 14.5vw, 62px); letter-spacing: -.09em; margin-bottom: 20px; }
  .hero-intro { font-size: 14px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 12px; margin-top: 28px; }
  .hero-meta { margin-top: 30px; gap: 18px 28px; flex-wrap: wrap; }
  .hero-meta strong { font-size: 11px; }
  .hero-visual { min-height: 385px; margin: 0 -1px; }
  .portrait-card { width: min(365px, 100%); height: 360px; padding: 14px; box-shadow: 10px 12px 0 rgba(255, 118, 90, .18); }
  .portrait-art { height: 247px; margin-top: 7px; }
  .portrait-face { width: 138px; height: 185px; left: 50%; top: 61px; transform: translateX(-50%) rotate(-8deg); }
  .portrait-face:before { width: 151px; height: 68px; }
  .face-eye { top: 89px; }
  .face-eye.left { left: 45px; }
  .face-eye.right { right: 43px; }
  .face-smile { left: 55px; top: 117px; }
  .portrait-sun { width: 145px; height: 145px; top: 27px; right: 8px; }
  .portrait-bottom { margin-top: 12px; }
  .portrait-bottom strong { font-size: 26px; }
  .note-top { top: 42px; right: -3px; padding: 10px 11px; font-size: 8px; }
  .note-bottom { bottom: 24px; left: -3px; padding: 9px 11px; }
  .note-bottom span { font-size: 20px; }
  .note-bottom small { font-size: 7px; }
  .orb-one { width: 48px; height: 48px; right: 4%; top: 5px; }

  .section { padding-top: 68px; padding-bottom: 68px; }
  .section-heading { gap: 19px; margin-bottom: 29px; }
  .section-heading h2 { font-size: 48px; }
  .project-grid { gap: 32px; }
  .project-feature .project-visual, .project-visual { height: 280px; }
  .project-feature .project-visual { height: 310px; }
  .project-info { padding-top: 15px; }
  .project-info h3 { font-size: 17px; }
  .project-info p { font-size: 11px; }
  .dashboard-ui { top: 61px; left: 12%; width: 76%; height: 200px; padding: 18px 16px; }
  .ui-line.wide { margin-top: 23px; }
  .ui-line { margin-top: 19px; }
  .ui-blocks { margin-top: 20px; }
  .ui-blocks b { height: 55px; }
  .poster-shape { top: 38px; width: 145px; height: 174px; left: calc(50% - 72px); }
  .poster-shape span { font-size: 24px; }
  .research-grid { inset: 47px 38px; }
  .visual-caption { left: 14px; bottom: 13px; font-size: 11px; }
  .visual-caption strong { font-size: 10px; }

  .video-copy strong { font-size: clamp(31px, 11vw, 48px); margin-top: 25px; }
  .play-button { width: 62px; height: 62px; font-size: 16px; }
  .video-time { bottom: 13px; right: 14px; }
  .video-aside h3 { font-size: 34px; }
  .video-aside > p:not(.eyebrow) { font-size: 12px; }
  .video-meta { font-size: 8px; }

  .writing-item { grid-template-columns: 42px 1fr 16px; gap: 8px; padding: 22px 0; }
  .writing-main h3 { font-size: 14px; overflow-wrap: anywhere; }
  .writing-main p { font-size: 9px; }
  .writing-arrow { font-size: 18px; }
  .credential-card { min-height: 145px; padding: 18px; }
  .credential-card h3 { font-size: 15px; }

  .contact-inner { min-height: 555px; }
  .contact-copy { padding-top: 66px; }
  .contact-copy h2 { font-size: clamp(47px, 14vw, 67px); }
  .contact-copy > p:not(.eyebrow) { font-size: 13px; margin-bottom: 25px; }
  .email-link { font-size: 13px; }
  .contact-stamp { width: 175px; height: 175px; margin: -17px 3% 28px 0; }
  .contact-stamp span { font-size: 12px; }
  .contact-stamp small { bottom: 24px; }

  .modal-content { width: calc(100vw - 32px); }
  .modal-close { top: -39px; font-size: 28px; }
  .modal-placeholder { box-shadow: 7px 7px 0 rgba(255, 255, 255, .14); padding: 16px; }
  .modal-placeholder strong { font-size: 28px; }
  .modal-placeholder p { font-size: 10px; }
  .footer-inner { font-size: 8px; }
  .footer-links { gap: 10px; flex-wrap: wrap; }
  .footer-links a { font-size: 10px; }
}

/* Readability, education profile and compact contact area */
.hero-intro { font-size: 17px; }
.meta-label { font-size: 10px; }
.hero-meta strong, .hero-contact strong { font-size: 15px; }
.hero-contact { gap: 34px; }
.email-link { font-size: 17px; }
.contact-section .reveal { opacity: 1; transform: none; }
.contact-inner { min-height: 320px; }
.contact-copy { padding: 48px 0; }
.contact-copy > p:not(.eyebrow) { font-size: 16px; }
.contact-stamp { width: 190px; height: 190px; margin-right: 5%; }
.contact-stamp span { font-size: 15px; }
.contact-stamp small { bottom: 25px; font-size: 16px; }
.education-section { background: #eef0ed; }
.education-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: start; }
.education-list { border-top: 1px solid var(--line); }
.education-item { display: grid; grid-template-columns: 110px 1fr 30px; gap: 20px; align-items: center; padding: 25px 0; border-bottom: 1px solid var(--line); }
.education-year { font-family: var(--mono); font-size: 11px; color: var(--coral); }
.education-item h3 { margin: 0 0 5px; font-size: 21px; letter-spacing: -.04em; }
.education-item p { margin: 0; color: var(--muted); font-size: 14px; }
.education-mark { font-family: var(--mono); color: var(--muted); font-size: 11px; text-align: right; }
.profile-highlights { background: var(--paper); padding: 27px 30px 28px; border-left: 3px solid var(--coral); }
.profile-highlights .eyebrow { margin-bottom: 15px; }
.profile-highlights ul { margin: 0; padding-left: 18px; }
.profile-highlights li { margin: 0 0 11px; font-size: 14px; line-height: 1.65; }
.profile-highlights li:last-child { margin-bottom: 0; }
@media (max-width: 800px) {
  .hero-intro { font-size: 16px; }
  .hero-meta strong, .hero-contact strong { font-size: 14px; }
  .email-link { font-size: 15px; }
  .contact-inner { min-height: 390px; }
  .contact-copy { padding: 48px 0 28px; }
  .contact-copy > p:not(.eyebrow) { font-size: 14px; }
  .contact-stamp { width: 165px; height: 165px; margin: 0 4% 28px auto; }
  .contact-stamp span { font-size: 13px; }
  .education-layout { grid-template-columns: 1fr; gap: 30px; }
  .education-item { grid-template-columns: 82px 1fr 25px; gap: 12px; padding: 20px 0; }
  .education-item h3 { font-size: 18px; }
  .education-item p { font-size: 13px; }
  .profile-highlights { padding: 22px 20px; }
  .profile-highlights li { font-size: 13px; }
}

@media (max-width: 360px) {
  .brand-copy small { display: none; }
  .brand-copy strong { font-size: 10px; }
  .nav-cta { font-size: 9px; padding: 7px 8px; }
  .hero h1 { font-size: 43px; }
  .portrait-card { height: 340px; }
  .portrait-art { height: 230px; }
  .portrait-face { top: 52px; }
  .hero-visual { min-height: 360px; }
  .section-heading h2 { font-size: 44px; }
  .project-feature .project-visual { height: 285px; }
  .project-visual { height: 260px; }
  .project-info h3 { font-size: 16px; }
  .video-copy strong { font-size: 30px; }
  .writing-item { grid-template-columns: 36px 1fr 14px; }
  .contact-stamp { width: 155px; height: 155px; }
  .contact-stamp span { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .project-card, .credential-card, .video-frame, .button-primary { transition: none; }
}

/* Asset presentation and certificate carousel */
.video-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .42; mix-blend-mode: multiply; }
.video-frame .video-grid, .video-frame .video-copy, .video-frame .play-button, .video-frame .video-time { z-index: 1; }
.credentials-scroll { overflow-x: auto; overflow-y: hidden; padding: 5px 3px 18px; scrollbar-color: var(--ink) transparent; scrollbar-width: thin; }
.credentials-scroll:focus-visible { outline: 2px solid var(--coral); outline-offset: 5px; }
.credentials-grid { display: grid; grid-template-columns: repeat(4, minmax(230px, 1fr)); gap: 16px; min-width: 940px; }
.credential-card { text-decoration: none; color: var(--ink); }
.credential-image-card { position: relative; min-height: 260px; padding: 0; overflow: hidden; background: var(--navy); }
.credential-image-card img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; display: block; opacity: .86; transition: transform .35s ease, opacity .35s ease; }
.credential-image-card:hover img { transform: scale(1.04); opacity: 1; }
.credential-overlay { position: absolute; left: 0; right: 0; bottom: 0; padding: 42px 18px 18px; color: var(--paper); background: linear-gradient(transparent, rgba(11, 16, 32, .92)); }
.credential-overlay h3 { margin: 0 0 5px; font-size: 15px; }
.credential-overlay p { margin: 0; font-family: var(--mono); font-size: 9px; color: #d3d8e4; }
.credential-more { border: 1px dashed #b5bac2; background: transparent; }
.modal-video { display: block; width: 100%; max-height: min(78vh, 680px); background: #000; box-shadow: 12px 12px 0 rgba(255, 255, 255, .14); }
@media (max-width: 800px) { .credentials-scroll { margin-right: -20px; padding-right: 20px; } .credentials-grid { min-width: 900px; } }
@media (max-width: 560px) { .credentials-scroll { margin-right: -16px; padding-right: 16px; } .credentials-grid { min-width: 850px; grid-template-columns: repeat(4, minmax(205px, 1fr)); gap: 12px; } .credential-image-card, .credential-image-card img { min-height: 225px; } .modal-video { max-height: 70vh; } }

/* Refined personal profile and image galleries */
.page-noise { display: none; }
body { background: #f5f5f2; }
.hero { position: relative; }
.profile-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; filter: saturate(.88) contrast(1.03); }
.portrait-image-overlay { position: absolute; inset: auto 12px 12px; display: flex; justify-content: space-between; gap: 10px; color: #fff; font-family: var(--mono); font-size: 8px; letter-spacing: .09em; text-shadow: 0 1px 8px rgba(0,0,0,.55); }
.portrait-art:after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,16,32,.03) 45%, rgba(11,16,32,.58)); pointer-events: none; }
.gallery-scroll { overflow-x: auto; overflow-y: hidden; padding: 4px 3px 18px; scrollbar-color: var(--ink) transparent; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.gallery-scroll:focus-visible { outline: 2px solid var(--coral); outline-offset: 5px; }
.image-gallery { display: flex; gap: 16px; width: max-content; }
.gallery-card { position: relative; flex: 0 0 245px; height: 310px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; background: #e6e7e3; color: var(--ink); text-decoration: none; box-shadow: 0 8px 22px rgba(16,22,42,.07); }
.gallery-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.gallery-card:hover img { transform: scale(1.045); }
.gallery-card:after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(11,16,32,.84)); pointer-events: none; }
.gallery-card span { position: absolute; z-index: 1; left: 15px; right: 12px; bottom: 14px; color: #fff; font-size: 11px; line-height: 1.4; }
.gallery-file-card { align-items: flex-start; justify-content: flex-end; padding: 20px; background: var(--navy); color: var(--paper); }
.gallery-file-card:after { display: none; }
.gallery-file-card span { position: static; color: var(--paper); font-family: var(--mono); font-size: 10px; }
.gallery-file-mark { font-family: var(--mono); font-size: 42px; letter-spacing: -.1em; color: var(--coral); margin-bottom: auto; }
.field-section { background: #e9eae6; }
.field-gallery .gallery-card { flex-basis: 330px; height: 260px; }
.field-gallery .gallery-card span { font-size: 12px; }
.credentials-section .section-heading, .field-section .section-heading { margin-bottom: 34px; }
@media (max-width: 800px) {
  .gallery-scroll { margin-right: -20px; padding-right: 20px; }
  .gallery-card { flex-basis: 220px; height: 285px; }
  .field-gallery .gallery-card { flex-basis: 285px; height: 225px; }
}
@media (max-width: 560px) {
  .gallery-scroll { margin-right: -16px; padding-right: 16px; }
  .gallery-card { flex-basis: 190px; height: 260px; }
  .field-gallery .gallery-card { flex-basis: 255px; height: 205px; }
  .gallery-card span { left: 12px; bottom: 11px; font-size: 10px; }
  .portrait-image-overlay { font-size: 7px; }
}

/* Project video cards and concise paper links */
.project-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
.project-video-card { min-width: 0; }
.project-media { position: relative; overflow: hidden; background: var(--navy); aspect-ratio: 16 / 9; }
.project-video { display: block; width: 100%; height: 100%; object-fit: cover; background: var(--navy); }
.project-cover { display: block; width: 100%; height: 100%; object-fit: cover; }
.project-image-card .project-media { background: #17233f; }
.project-index { position: absolute; left: 15px; top: 13px; z-index: 1; color: #fff; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-shadow: 0 1px 8px rgba(0,0,0,.7); pointer-events: none; }
.project-video-card .project-info { padding-top: 16px; }
.project-video-card .project-info h3 { font-size: 17px; }
.project-video-card .project-info p { max-width: 410px; }
.writing-item-combined { grid-template-columns: 100px 1fr auto; }
.writing-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.writing-doc-link { color: var(--ink); border-bottom: 1px solid var(--ink); text-decoration: none; padding-bottom: 4px; font-family: var(--mono); font-size: 10px; white-space: nowrap; }
.writing-doc-link:hover { color: var(--coral); border-color: var(--coral); }
@media (max-width: 800px) {
  .project-video-grid { grid-template-columns: 1fr; gap: 34px; }
  .writing-item-combined { grid-template-columns: 54px 1fr; }
  .writing-actions { grid-column: 2; justify-content: flex-start; }
}

/* Keep every section and project detail visible without scroll-triggered reveal. */
.reveal { opacity: 1; transform: none; transition: none; }
.project-video-grid { align-items: start; row-gap: 38px; }
.project-video-card .project-info h3 { font-size: 20px; line-height: 1.45; }
.project-video-card .project-info p { font-size: 15px; line-height: 1.75; }
.project-video-card .tag-row span { font-size: 11px; padding: 6px 10px; }
.project-index { font-size: 12px; padding: 6px 9px; background: rgba(11,16,32,.62); }
@media (max-width: 800px) {
  .project-video-grid { gap: 32px; }
  .project-video-card .project-info h3 { font-size: 19px; }
  .project-video-card .project-info p { font-size: 14px; }
}
@media (max-width: 560px) {
  .project-video-grid { gap: 28px; }
  .project-video-card .project-info h3 { font-size: 18px; }
  .project-video-card .project-info p { font-size: 14px; }
  .project-video-card .tag-row span { font-size: 11px; }
}
@media (max-width: 560px) {
  .project-video-card .project-info h3 { font-size: 16px; }
  .project-video-card .project-info p { font-size: 11px; }
  .writing-item-combined { grid-template-columns: 42px 1fr; }
  .writing-actions { gap: 8px; }
  .writing-doc-link { font-size: 9px; }
}

/* Header readability */
.brand-mark { width: 44px; height: 44px; font-size: 14px; }
.brand-copy strong { font-size: 14px; }
.brand-copy small { font-size: 10px; margin-top: 7px; }
.main-nav { gap: 24px; }
.main-nav a, .nav-cta { font-size: 14px; }
.nav-cta { padding: 11px 16px; }
@media (max-width: 800px) {
  .brand-mark { width: 38px; height: 38px; font-size: 12px; }
  .brand-copy strong { font-size: 12px; }
  .brand-copy small { font-size: 8px; }
  .main-nav a { font-size: 14px; }
  .nav-cta { font-size: 12px; padding: 9px 11px; }
}

/* Direct contact details */
.hero-contact { display: flex; gap: 30px; flex-wrap: wrap; margin-top: 26px; }
.hero-contact a { color: var(--ink); text-decoration: none; }
.hero-contact a:hover strong { color: var(--coral); }
.hero-contact .meta-label { margin-bottom: 3px; }
.hero-contact strong { font-size: 12px; font-weight: 600; }
.contact-links { display: flex; gap: 22px; flex-wrap: wrap; }
.contact-links .email-link { font-family: var(--mono); font-size: 12px; }
@media (max-width: 560px) {
  .hero-contact { gap: 18px 26px; }
  .hero-contact strong { font-size: 11px; }
  .contact-links { flex-direction: column; gap: 12px; }
  .contact-links .email-link { font-size: 11px; }
}

/* Keep contact details readable after the compact legacy rules above. */
.hero-contact strong { font-size: 15px; }
.contact-links .email-link { font-size: 16px; }
@media (max-width: 800px) {
  .hero-contact strong { font-size: 14px; }
  .contact-links .email-link { font-size: 14px; }
}

/* Readability pass: keep all resume copy legible on desktop and phones. */
body { font-size: 16px; }
.main-nav a, .nav-cta, .footer-links a { font-size: 15px; }
.eyebrow { font-size: 11px; }
.hero-intro { font-size: 17px; }
.hero-meta strong, .hero-contact strong { font-size: 15px; }
.section-lede { font-size: 15px; }
.project-video-card .project-info h3 { font-size: clamp(19px, 1.8vw, 22px); line-height: 1.4; }
.project-video-card .project-info p { font-size: 15px; line-height: 1.75; }
.project-video-card .tag-row span { font-size: 12px; }
.writing-main h3 { font-size: 19px; line-height: 1.55; overflow-wrap: anywhere; }
.writing-main p { font-size: 15px; }
.writing-doc-link { font-size: 12px; }
.gallery-card > span { font-size: 14px; }
.contact-copy > p { font-size: 16px; }
@media (max-width: 800px) {
  .main-nav a { font-size: 16px; }
  .project-video-card .project-info h3 { font-size: 20px; }
  .project-video-card .project-info p { font-size: 15px; }
}
@media (max-width: 560px) {
  .main-nav a { font-size: 16px; }
  .hero-intro, .contact-copy > p { font-size: 16px; }
  .section-lede { font-size: 14px; }
  .project-video-card .project-info h3 { font-size: 19px; }
  .project-video-card .project-info p { font-size: 14px; }
  .project-video-card .tag-row span { font-size: 12px; }
  .writing-item-combined { grid-template-columns: 42px minmax(0, 1fr); }
  .writing-main h3 { font-size: 16px; }
  .writing-main p { font-size: 14px; }
  .writing-doc-link { font-size: 11px; }
}

/* Competition videos belong with the featured film showcase. */
.competition-projects { margin-top: 78px; padding-top: 34px; border-top: 1px solid rgba(255,255,255,.16); }
.competition-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.competition-heading .eyebrow { margin-bottom: 8px; color: #9ca5bd; }
.competition-heading h3 { margin: 0; font-size: clamp(25px, 3vw, 34px); line-height: 1.2; }
.competition-heading > p { margin: 0 0 3px; color: #9ca5bd; font-size: 15px; }
.competition-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.competition-card { min-width: 0; }
.competition-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #161d31; }
.competition-media video { display: block; width: 100%; height: 100%; object-fit: cover; }
.competition-index { position: absolute; left: 14px; top: 12px; padding: 5px 8px; background: rgba(11,16,32,.72); color: #fff; font: 11px var(--mono); letter-spacing: .08em; pointer-events: none; }
.competition-caption { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; padding-top: 15px; }
.competition-caption h4 { margin: 0; font-size: 20px; line-height: 1.4; }
.competition-caption span { color: #9ca5bd; font-size: 14px; white-space: nowrap; }
@media (max-width: 700px) {
  .competition-projects { margin-top: 56px; padding-top: 28px; }
  .competition-grid { grid-template-columns: 1fr; gap: 28px; }
  .competition-heading { align-items: start; }
  .competition-heading > p { font-size: 14px; }
  .competition-caption h4 { font-size: 19px; }
}

/* Prominent profile link and swipeable award portfolio. */
.hero-contact { align-items: center; }
.github-profile-link { display: inline-flex; align-items: center; gap: 12px; min-height: 58px; padding: 8px 15px 8px 9px; color: var(--ink); background: #fff; border: 1px solid rgba(16,22,42,.14); border-radius: 12px; text-decoration: none; box-shadow: 0 7px 22px rgba(16,22,42,.08); transition: .2s ease; }
.github-profile-link:hover { transform: translateY(-2px); border-color: var(--coral); box-shadow: 0 10px 26px rgba(16,22,42,.13); }
.github-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--ink); color: #fff; font: 700 13px var(--mono); letter-spacing: -.04em; }
.github-profile-link .meta-label { margin: 0 0 3px; color: #747b8c; font-size: 9px; }
.github-profile-link strong { display: block; font-size: 14px; white-space: nowrap; }
.github-handle { margin-left: 5px; color: #697083; font: 12px var(--mono); }
.competition-projects { margin-top: 78px; padding-top: 34px; border-top: 1px solid rgba(255,255,255,.16); }
.competition-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.competition-heading .eyebrow { margin-bottom: 8px; color: #9ca5bd; }
.competition-heading h3 { margin: 0; font-size: clamp(25px, 3vw, 34px); line-height: 1.2; }
.competition-heading > p { margin: 0 0 3px; color: #9ca5bd; font-size: 15px; }
.competition-grid { display: flex; gap: 22px; overflow-x: auto; overflow-y: hidden; padding: 0 2px 16px; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-color: rgba(255,255,255,.4) rgba(255,255,255,.08); scrollbar-width: thin; }
.competition-card { flex: 0 0 min(46%, 500px); min-width: 0; scroll-snap-align: start; }
.competition-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #161d31; }
.competition-media video { display: block; width: 100%; height: 100%; object-fit: cover; }
.competition-index { position: absolute; left: 14px; top: 12px; padding: 5px 8px; background: rgba(11,16,32,.72); color: #fff; font: 11px var(--mono); letter-spacing: .08em; pointer-events: none; }
.competition-caption { padding-top: 14px; }
.competition-caption h4 { margin: 0 0 6px; font-size: 19px; line-height: 1.4; }
.competition-award { display: inline-block; margin: 0 0 8px; padding: 5px 9px; border: 1px solid rgba(255,118,90,.55); border-radius: 3px; color: #ffad98; font-size: 13px; line-height: 1.5; }
.competition-description { margin: 0; max-width: 52ch; color: #aab1c3; font-size: 14px; line-height: 1.7; }
.competition-hint { margin: 6px 0 0; color: #8f98ae; font-size: 12px; text-align: right; }
.competition-hint span { margin-left: 5px; color: var(--coral); font-size: 16px; }
@media (max-width: 800px) {
  .hero-contact { gap: 18px 24px; }
  .github-profile-link { width: fit-content; }
  .competition-projects { margin-top: 56px; padding-top: 28px; }
  .competition-card { flex-basis: min(78vw, 440px); }
  .competition-heading { align-items: start; }
  .competition-heading > p { max-width: 13em; font-size: 13px; text-align: right; }
}
@media (max-width: 560px) {
  .github-profile-link { min-height: 56px; padding-right: 12px; }
  .github-profile-link strong { font-size: 14px; }
  .github-handle { font-size: 11px; }
  .competition-heading { flex-direction: column; gap: 10px; }
  .competition-heading > p { text-align: left; }
  .competition-card { flex-basis: 86vw; }
  .competition-caption h4 { font-size: 18px; }
  .competition-award { font-size: 12px; }
  .competition-description { font-size: 14px; }
}

/* Award attached to the featured rehabilitation-robot project. */
.featured-award { display: inline-block; margin: 8px 0 0; padding: 7px 11px; border: 1px solid rgba(255,118,90,.6); border-radius: 3px; color: #ffad98; font-size: 14px; line-height: 1.55; }

/* Show every conference and competition photo in full, without cropping. */
.field-gallery-scroll { scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
.field-gallery { gap: 20px; }
.field-gallery .gallery-card { flex: 0 0 clamp(300px, 35vw, 420px); height: auto; overflow: visible; display: flex; flex-direction: column; justify-content: flex-start; background: transparent; color: var(--ink); box-shadow: none; scroll-snap-align: start; }
.field-gallery .gallery-card img { width: 100%; height: clamp(220px, 25vw, 300px); object-fit: contain; background: #fff; box-shadow: 0 8px 22px rgba(16,22,42,.08); transition: none; }
.field-gallery .gallery-card:hover img { transform: none; }
.field-gallery .gallery-card:after { display: none; }
.field-gallery .gallery-card span { position: static; display: block; padding: 12px 2px 0; color: var(--ink); font-size: 14px; line-height: 1.5; }
@media (max-width: 800px) {
  .field-gallery { gap: 16px; }
  .field-gallery .gallery-card { flex-basis: min(78vw, 390px); }
  .field-gallery .gallery-card img { height: 250px; }
}
@media (max-width: 560px) {
  .field-gallery .gallery-card { flex-basis: 84vw; }
  .field-gallery .gallery-card img { height: 230px; }
  .field-gallery .gallery-card span { font-size: 14px; }
}
