@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@500;600;700;900&display=swap";:root{color:#d9f6ff;font-synthesis:none;text-rendering:optimizelegibility;--ink:#06152e;--deep:#082f67;--ocean:#079cc8;--foam:#d9f6ff;--rose:#ffb6c1;--star:#ffe391;--muted:#d9f6ffad;background:#06152e;font-family:Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);min-width:320px;margin:0}body.modal-open{overflow:hidden}button,a{font:inherit}button{cursor:pointer}.site-shell{background:var(--ink);overflow:hidden}.top-nav{z-index:10;color:var(--foam);background:linear-gradient(#06152ebf,#0000);justify-content:space-between;align-items:center;padding:1.5rem clamp(1.25rem,5vw,5rem);display:flex;position:fixed;inset:0 0 auto}.brand-mark{color:inherit;letter-spacing:.24em;background:0 0;border:0;align-items:center;gap:.65rem;font:700 .85rem Space Grotesk,sans-serif;display:inline-flex}.brand-mark__signal{background:var(--rose);width:.6rem;height:.6rem;box-shadow:0 0 18px var(--rose);border-radius:50%}.top-nav__links{gap:clamp(.8rem,2vw,2.1rem);display:flex}.top-nav__links button{color:#d9f6ffb8;background:0 0;border:0;padding:.35rem 0;font-size:.72rem;transition:color .2s}.top-nav__status{color:var(--star);letter-spacing:.16em;align-items:center;gap:.5rem;font:600 .65rem Rajdhani,sans-serif;display:inline-flex}.top-nav__status span{background:var(--star);width:.38rem;height:.38rem;box-shadow:0 0 12px var(--star);border-radius:50%}.tide-rail{z-index:9;pointer-events:none;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:fixed;top:9rem;bottom:2.75rem;left:1.5rem}.tide-rail__label{writing-mode:vertical-rl;color:#d9f6ff99;letter-spacing:.22em;font:600 .58rem Rajdhani,sans-serif}.tide-rail__label--bottom{transform:rotate(180deg)}.tide-rail__line{background:#d9f6ff40;flex:1;width:1px;max-height:13rem;margin:1rem 0;position:relative}.tide-rail__progress{background:var(--rose);box-shadow:0 0 12px var(--rose);transition:height .16s linear;display:block;position:absolute;inset:0 0 auto}.hero-section{isolation:isolate;background-color:var(--deep);background-position:50%;background-size:cover;align-items:center;min-height:100svh;padding:8rem clamp(5rem,13vw,14rem) 4rem;display:flex;position:relative}.hero-section__wash{z-index:-2;background:linear-gradient(90deg,#06152ef5 0%,#06152eb8 43%,#06152e1f 82%),linear-gradient(#0000 55%,#06152ed1);position:absolute;inset:0}.eyebrow{color:var(--star);letter-spacing:.18em;margin:0 0 1.5rem;font:600 .72rem Rajdhani,sans-serif}.eyebrow span{color:var(--rose);margin-right:.75rem}h1,h2,h3{letter-spacing:-.04em;margin:0;font-family:Space Grotesk,Noto Sans SC,sans-serif;font-weight:700}h1{max-width:58rem;color:var(--foam);font-size:clamp(2.7rem,6.5vw,7.2rem);line-height:1.02}h1 em,h2 em{color:var(--rose);font-style:normal}.hero-section__intro{color:#d9f6ffd1;margin:2.2rem 0 0;font-size:clamp(1rem,1.6vw,1.25rem);line-height:1.8}.hero-section__actions{flex-wrap:wrap;gap:.65rem;margin-top:2.5rem;display:flex}.button{color:var(--foam);border:1px solid #0000;align-items:center;gap:1rem;padding:.78rem 1.1rem;font-size:.8rem;text-decoration:none;transition:transform .2s,border-color .2s,background .2s;display:inline-flex}.button span{color:var(--star);font-size:1rem}.button:hover,.button:focus-visible{transform:translateY(-2px)}.button--primary{background:var(--ocean);box-shadow:0 0 30px #079cc84d}.button--ghost:hover,.button--ghost:focus-visible{border-color:var(--foam);background:#06152e80}.status-tags{flex-wrap:wrap;gap:.5rem;max-width:48rem;margin-top:2rem;display:flex}.status-tags span,.tool-tags span,.skill-group b{color:#d9f6ffc7;background:#06152e4d;border:1px solid #d9f6ff38;padding:.35rem .62rem;font-size:.68rem}.hero-section__meta{color:#d9f6ff9e;letter-spacing:.16em;gap:1.5rem;font:600 .64rem Rajdhani,sans-serif;display:flex;position:absolute;bottom:2rem;right:clamp(1.25rem,5vw,5rem)}.hero-section__scroll-hint{color:#d9f6ffb8;letter-spacing:.18em;font-size:.7rem;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.hero-section__scroll-hint span{color:var(--rose);margin-left:.45rem}.section-dark{background:var(--ink)}.section-blue{background:var(--deep)}.section-heading h2{color:var(--foam);font-size:clamp(2.3rem,5vw,5.4rem);line-height:1.02}.section-heading>p:last-child{max-width:38rem;color:var(--muted);margin:1.4rem 0 0;line-height:1.8}.intro-section{grid-template-columns:minmax(0,1fr) minmax(16rem,.65fr);align-items:end;gap:4rem;display:grid}.profile-deck{align-self:end;justify-items:center;gap:1rem;display:grid}.profile-deck__stack{aspect-ratio:4/5;width:clamp(14.5rem,21vw,17.5rem);position:relative}.profile-card{cursor:pointer;width:100%;height:100%;transform:translate(calc(var(--photo-index) * .8rem), calc(var(--photo-index) * .7rem)) rotate(calc((var(--photo-index) - 1) * 3deg));background:#071c3c;border:1px solid #d9f6ff47;padding:.45rem;transition:transform .25s,box-shadow .25s,border-color .25s;position:absolute;inset:0}.profile-card img{object-fit:cover;width:100%;height:100%;display:block}.profile-card--active{border-color:var(--rose);transform:translateY(-.3rem)rotate(0);box-shadow:0 1.3rem 3rem #00000047,0 0 1.4rem #ffb6c129}.profile-card:focus-visible{outline:2px solid var(--star);outline-offset:.3rem}.profile-deck__controls{color:var(--muted);letter-spacing:.1em;justify-content:center;align-items:center;gap:.8rem;font:600 .65rem Rajdhani,sans-serif;display:flex}.profile-deck__controls .text-button{margin-top:0;padding:.25rem 0}.signal-grid{border-top:1px solid #d9f6ff2e;grid-column:1/-1;grid-template-columns:repeat(3,1fr);display:grid}.signal-grid div{border-right:1px solid #d9f6ff2e;padding:1.5rem 1.2rem 0 0}.signal-grid div+div{padding-left:1.2rem}.signal-grid div:last-child{border-right:0}.signal-grid strong{color:var(--rose);font-size:1.1rem;display:block}.signal-grid span{color:var(--muted);margin-top:.45rem;font-size:.78rem;display:block}.capability-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin-top:3.5rem;display:grid}.capability-card{background:#06152e4d;border:1px solid #d9f6ff2e;min-height:14rem;padding:1.3rem}.card-index{color:var(--rose);letter-spacing:.16em;font:600 .65rem Rajdhani,sans-serif}.capability-card h3{color:var(--foam);margin-top:4.2rem;font-size:1rem}.capability-card p{color:var(--muted);margin:.7rem 0 0;font-size:.75rem;line-height:1.7}.tool-wall{border-top:1px solid #d9f6ff2e;grid-template-columns:minmax(14rem,.8fr) 1fr 1fr;gap:2rem;margin-top:4rem;padding-top:2rem;display:grid}.tool-wall__intro h3{color:var(--foam);font-size:1.7rem;line-height:1.15}.tool-group__label{color:var(--foam);align-items:center;gap:.6rem;font-size:.78rem;display:flex}.tool-group__label span{color:var(--star);letter-spacing:.12em;font:600 .62rem Rajdhani,sans-serif}.tool-group__note{max-width:24rem;color:var(--muted);margin:.7rem 0 0;font-size:.72rem;line-height:1.7}.tool-tags{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.tool-tags span{background:#079cc81a}.tool-group:last-child .tool-tags span{color:#d9f6ff99;border-style:dashed}.case-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3.5rem;display:grid}.case-card{background:linear-gradient(145deg,#082f67b8,#06152e59);border:1px solid #d9f6ff2e;flex-direction:column;min-height:24rem;padding:1.5rem;display:flex}.case-card__top{color:var(--star);letter-spacing:.14em;justify-content:space-between;font:600 .62rem Rajdhani,sans-serif;display:flex}.case-card h3{color:var(--foam);margin-top:4.5rem;font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.15}.case-card p{color:var(--muted);margin:1rem 0 0;font-size:.82rem;line-height:1.8}.text-button,.archive-link{color:var(--rose);background:0 0;border:0;align-self:flex-start;margin-top:auto;padding:.7rem 0 0;font-size:.78rem}.text-button span,.archive-link span{margin-left:.5rem}.game-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3.5rem;display:grid}.game-card{background:#06152e61;border:1px solid #d9f6ff2e}.game-card__visual{background-position:50%;background-size:cover;min-height:15rem}.game-card__eyebrow{color:var(--star);letter-spacing:.15em;font:600 .62rem Rajdhani,sans-serif}.game-card h3{color:var(--foam);margin-top:.8rem;font-size:1.35rem}.game-card p{min-height:4.5rem;color:var(--muted);margin:.7rem 0 0;font-size:.78rem;line-height:1.7}.archive-link{margin-top:2rem;font-size:.85rem}.skills-section{grid-template-columns:1fr .85fr;align-items:end;gap:3rem;display:grid}.skill-grid{gap:1.2rem;display:grid}.skill-group>span{color:var(--star);letter-spacing:.15em;margin-bottom:.6rem;font:600 .65rem Rajdhani,sans-serif;display:block}.skill-group>div{flex-wrap:wrap;gap:.45rem;display:flex}.skill-group b{font-weight:500}.skills-section>.button{grid-column:1/-1;justify-self:start;margin-top:.5rem}.site-footer{background:#041126;grid-template-columns:1fr auto;gap:3rem;padding:6rem clamp(3.4rem,13vw,14rem) 3rem;display:grid}.site-footer h2{max-width:48rem;color:var(--foam);font-size:clamp(2rem,4vw,4rem);line-height:1.05}.site-footer__contact{flex-direction:column;align-items:flex-end;gap:.8rem;padding-top:2rem;display:flex}.site-footer__contact a{color:var(--rose);text-decoration:none}.site-footer__contact span,.site-footer small{color:var(--muted);font-size:.7rem}.site-footer small{border-top:1px solid #d9f6ff24;grid-column:1/-1;padding-top:2rem}.detail-overlay{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#020814c2;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.detail-panel{background:#071c3c;border:1px solid #d9f6ff40;width:min(58rem,100%);max-height:min(86vh,54rem);padding:clamp(2rem,5vw,4rem);position:relative;overflow:auto;box-shadow:0 2rem 6rem #00000059}.detail-panel__close{color:var(--foam);background:0 0;border:0;font-size:1.8rem;line-height:1;position:absolute;top:1rem;right:1.2rem}.detail-panel h2{max-width:42rem;color:var(--foam);font-size:clamp(2rem,4vw,4.2rem);line-height:1.05}.detail-panel__summary{max-width:38rem;color:var(--muted);margin:1.3rem 0 0;line-height:1.8}.detail-metrics{grid-template-columns:repeat(4,1fr);gap:.7rem;margin-top:2.3rem;display:grid}.detail-metrics div{border-top:2px solid var(--rose);background:#06152e6b;padding:1rem}.detail-metrics strong{color:var(--rose);font:700 1.45rem Space Grotesk,sans-serif;display:block}.detail-metrics span{color:var(--muted);margin-top:.35rem;font-size:.68rem;line-height:1.5;display:block}.detail-sections{gap:1.4rem;margin-top:2.5rem;display:grid}.detail-sections>div{border-top:1px solid #d9f6ff29;padding-top:1.2rem}.detail-sections h3{color:var(--star);font-size:.95rem}.detail-sections p{color:var(--muted);margin:.55rem 0 0;line-height:1.8}.detail-sections ul{color:var(--muted);margin:.7rem 0 0;padding-left:1.1rem;line-height:1.8}.detail-panel__back{margin-top:2rem}@media (width<=1000px){.top-nav__links{gap:.8rem}.capability-grid{grid-template-columns:repeat(3,1fr)}.tool-wall{grid-template-columns:1fr 1fr}.tool-wall__intro{grid-column:1/-1}}@media (width<=760px){.top-nav{padding:1.15rem 1.2rem}.top-nav__links{display:none}.top-nav__status{font-size:.56rem}.tide-rail{left:.65rem}.tide-rail__label{font-size:.5rem}.hero-section{background-position:58%;padding:7rem 2.2rem 5rem 3.4rem}.hero-section__wash{background:linear-gradient(90deg,#06152ee6 0%,#06152e80 80%),linear-gradient(#0000 44%,#06152ee6)}h1{font-size:clamp(2.5rem,12vw,4.8rem)}.hero-section__meta{gap:.8rem;font-size:.52rem;bottom:1.15rem;right:1.2rem}.hero-section__scroll-hint{writing-mode:vertical-rl;bottom:4rem;left:auto;right:1.2rem;transform:none}.intro-section,.skills-section{display:block}.intro-section__copy{margin-top:2rem}.profile-deck{margin-top:2.5rem}.profile-deck__stack{width:min(12rem,64vw)}.signal-grid{grid-template-columns:1fr;margin-top:3rem}.signal-grid div,.signal-grid div+div{border-bottom:1px solid #d9f6ff2e;border-right:0;padding:1rem 0}.capability-grid,.case-grid,.game-grid{grid-template-columns:1fr}.capability-card{min-height:11rem}.capability-card h3{margin-top:2.2rem}.tool-wall{display:block}.tool-group,.skills-section>.button{margin-top:2rem}.site-footer{padding:5rem 2.2rem 2rem 3.4rem;display:block}.site-footer__contact{align-items:flex-start}.site-footer small{margin-top:2rem;display:block}.detail-metrics{grid-template-columns:repeat(2,1fr)}.detail-panel{padding:2rem 1.3rem 1.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--ink:#08131f;--deep:#102a43;--paper:#f2eee5;--paper-strong:#fbfaf5;--foam:#f7fbf7;--ocean:#67d4d3;--rose:#ff8b72;--star:#f3c969;--muted:#f7fbf7ab;--paper-muted:#08131fa8;--line:#f7fbf733;--paper-line:#08131f29;--display:"Noto Serif SC", Georgia, serif;--body:"Noto Sans SC", "Microsoft YaHei", sans-serif;--utility:"IBM Plex Mono", monospace}html{background:var(--ink)}body{color:var(--foam);font-family:var(--body);background:var(--ink)}button,a{-webkit-tap-highlight-color:transparent}.site-shell{background:var(--ink);position:relative;overflow:clip}.top-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08131f8f;border-bottom:1px solid #f7fbf714;padding:1.15rem clamp(1.25rem,4vw,4.5rem)}.brand-mark{font-family:var(--utility);letter-spacing:.3em;font-size:.72rem}.brand-mark__signal{background:var(--ocean);width:.5rem;height:.5rem;box-shadow:0 0 18px #67d4d3b3}.brand-mark__dot{color:var(--rose)}.top-nav__links{gap:clamp(.7rem,1.8vw,1.8rem)}.top-nav__links button{color:#f7fbf7c7;font-family:var(--utility);font-size:var(--navigation-copy-size);letter-spacing:.01em;font-weight:600}.top-nav__links button:hover,.top-nav__links button:focus-visible{color:var(--ocean)}.top-nav__status{color:var(--ocean);font-family:var(--utility);letter-spacing:.11em;font-size:.58rem}.top-nav__status span{background:var(--ocean);width:.34rem;height:.34rem;box-shadow:0 0 12px var(--ocean)}.tide-rail{top:7.5rem;bottom:2.2rem;left:1.1rem}.tide-rail__label{color:#f7fbf770;font-family:var(--utility);letter-spacing:.18em;font-size:.5rem}.tide-rail__line{background:#f7fbf729;max-height:15rem;margin:.8rem 0}.tide-rail__progress{background:var(--rose);box-shadow:0 0 14px #ff8b72cc}.hero-section{background-position:50% 52%;min-height:100svh;padding:8.5rem clamp(4.5rem,12vw,13rem) 5.5rem}.hero-section__content{max-width:62rem}.eyebrow{color:var(--star);font-family:var(--utility);letter-spacing:.15em;font-size:.62rem}.eyebrow span{color:var(--rose)}h1,h2{font-family:var(--display);letter-spacing:-.08em}h1{max-width:64rem;font-size:clamp(4rem,10vw,10.5rem);line-height:.93}h1 em,h2 em{color:var(--rose)}.hero-section__intro{color:#f7fbf7d1;max-width:39rem;margin-top:2.4rem;font-size:clamp(.9rem,1.3vw,1.12rem);line-height:2}.hero-section__actions{margin-top:2.2rem}.button{font-family:var(--utility);letter-spacing:.04em;border-radius:999px;padding:.76rem 1.1rem;font-size:.67rem}.button--primary{color:var(--ink);background:var(--ocean);box-shadow:0 0 28px #67d4d33d}.button--primary:hover,.button--primary:focus-visible{background:#9be4dc}.button--ghost{background:#08131f29;border-color:#f7fbf761}.status-tags{gap:.4rem;margin-top:1.6rem}.status-tags span,.tool-tags span,.skill-group b{font-family:var(--utility);border-color:#f7fbf733;border-radius:999px;padding:.36rem .65rem;font-size:.59rem}.hero-section__meta{color:#f7fbf794;font-family:var(--utility);letter-spacing:.04em;gap:1rem;font-size:.55rem;bottom:1.8rem;right:clamp(1.25rem,4vw,4.5rem)}.hero-section__scroll-hint{color:#f7fbf7a3;font-family:var(--utility);font-size:.57rem;bottom:1.9rem}.section-dark,.section-blue{position:relative}.intro-section,.capability-section,.cases-section,.interest-section,.skills-section{padding:clamp(6.5rem,11vw,11rem) clamp(2.6rem,9vw,9rem)}.section-heading{max-width:58rem}.section-heading>p:last-child{max-width:38rem;color:var(--muted);font-size:.86rem}#about{color:var(--ink);background:var(--paper)}#about .eyebrow,#about .signal-grid strong,#about .profile-deck__controls{color:#b46a4f}#about .section-heading h2{color:var(--ink)}#about .intro-section__copy{color:var(--paper-muted);font-size:1rem;line-height:2.05}#about .signal-grid,#about .signal-grid div{border-color:var(--paper-line)}#about .signal-grid span{color:var(--paper-muted)}#ai-capabilities{background:var(--deep)}.capability-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:3.8rem}.capability-card{background:linear-gradient(145deg,#f7fbf717,#08131f38);border:1px solid #f7fbf729;border-radius:1rem;min-height:15rem;padding:1.35rem;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s,background .3s}.capability-card:hover{border-color:var(--ocean);background:#67d4d31a;transform:translateY(-.35rem)}.card-index{color:var(--ocean);font-family:var(--utility);font-size:.58rem}.capability-card h3{color:var(--foam);font-family:var(--body);letter-spacing:-.03em;margin-top:4rem;font-size:1.22rem}.capability-card p{color:#f7fbf7b8;font-size:.88rem;line-height:1.85}.tool-wall{border-color:#f7fbf729;grid-template-columns:minmax(14rem,.6fr) minmax(0,1.4fr);gap:2.4rem;margin-top:5rem;padding-top:2rem}.tool-wall__intro h3{color:var(--foam);font-family:var(--display);font-size:2rem;line-height:1.08}.tool-group__label{color:var(--ocean);font-family:var(--utility);letter-spacing:.04em;font-size:.78rem}.tool-group__label span{color:var(--star);font-family:var(--utility);font-size:.56rem}.tool-group__note{color:#f7fbf7ad;font-size:.9rem;line-height:1.8}.tool-tags{gap:.42rem;margin-top:1rem}.tool-tags span{color:#f7fbf7e6;background:#67d4d314;font-size:.78rem}.jd-map{border-top:1px solid #f7fbf729;margin-top:3rem;padding-top:1.4rem}.jd-map>div{flex-wrap:wrap;gap:.45rem;display:flex}.jd-map>div span{color:var(--star);font-family:var(--utility);border:1px solid #f3c96966;border-radius:999px;padding:.5rem .78rem;font-size:.7rem}.jd-map>p:last-child{color:#f7fbf794;max-width:39rem;font-size:.73rem;line-height:1.8}#experience{color:var(--ink);background:var(--paper-strong)}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:3.8rem}.case-card{border:1px solid var(--paper-line);background:var(--paper);border-radius:1.1rem;min-height:31rem;padding:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;overflow:hidden}.case-card:hover{transform:translateY(-.45rem);box-shadow:0 1.5rem 3.5rem #08131f24}.case-card__visual{background:#dbe7e2;min-height:15rem;overflow:hidden}.case-card__visual img{object-fit:cover;width:100%;height:100%;min-height:15rem;transition:transform .9s cubic-bezier(.2,.8,.2,1);display:block}.case-card:hover .case-card__visual img{transform:scale(1.045)}.case-card__body{flex-direction:column;flex:1;padding:1.4rem 1.45rem 1.35rem;display:flex}.case-card__top{color:#0e6c76;font-family:var(--utility);letter-spacing:.06em;font-size:.56rem}.case-card h3{color:var(--ink);font-family:var(--display);margin-top:2.2rem;font-size:clamp(1.45rem,2.4vw,2.25rem);line-height:1.08}.case-card p{color:var(--paper-muted);font-size:.78rem;line-height:1.8}.case-card__tags span{color:#0e6c76;font-family:var(--utility);background:0 0;border-color:#08131f29;border-radius:999px;padding:.3rem .54rem;font-size:.56rem}.method-lab{margin-top:7rem}.method-lab .section-heading h3{font-family:var(--display);font-size:clamp(2.1rem,4.2vw,4.4rem);line-height:1.02}.method-grid{grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:2.4rem;display:grid}.method-card{border:1px solid var(--paper-line);background:#ece8dc;border-radius:1rem;grid-template-columns:minmax(13rem,.65fr) 1fr;gap:1.4rem;padding:1rem;display:grid}.method-card>img{object-fit:cover;border-radius:.6rem;width:100%;height:100%;min-height:15rem}.method-card>div{flex-direction:column;padding:1.1rem .8rem 1rem 0;display:flex}.method-card h4{color:var(--ink);font-family:var(--display);margin:.8rem 0 .5rem;font-size:clamp(1.45rem,3vw,2.6rem);line-height:1.05}.method-card p{color:var(--paper-muted);margin:0;font-size:.78rem;line-height:1.8}.method-card .case-card__tags{margin-top:1.2rem}#portfolio{color:var(--ink);background:#d7ece9}#portfolio .section-heading h2{color:var(--ink)}#portfolio .section-heading>p:last-child{color:var(--paper-muted)}.portfolio-downloads{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:3.4rem}.portfolio-download{background:#fbfaf570;border:1px solid #08131f2e;border-radius:1rem;min-height:13rem;padding:1.3rem;transition:transform .4s,background .3s}.portfolio-download:hover,.portfolio-download:focus-visible{background:var(--paper-strong);transform:translateY(-.35rem)}.portfolio-download span,.portfolio-download small{color:var(--paper-muted);font-family:var(--utility);font-size:.57rem}.portfolio-download strong{color:var(--ink);font-family:var(--display);font-size:1.45rem}.portfolio-download b{color:#b46a4f;font-family:var(--utility)}#interests{background:var(--ink)}#interests .section-heading h2{max-width:54rem;font-size:clamp(2.25rem,4.8vw,5rem);line-height:1.08}.interest-overview{object-fit:cover;opacity:.86;border:1px solid #f7fbf72e;border-radius:1rem;width:min(48rem,100%);max-height:18rem;margin:3rem 0 0 auto;display:block}.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1.6rem}.game-card{background:#f7fbf70f;border:1px solid #f7fbf729;border-radius:1rem;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s;overflow:hidden}.game-card:hover{border-color:var(--ocean);transform:translateY(-.4rem)}.game-card__visual{background:var(--deep);min-height:15rem;position:relative;overflow:hidden}.game-card__visual>img{object-fit:cover;width:100%;height:15rem;transition:transform .8s cubic-bezier(.2,.8,.2,1);display:block}.game-card:hover .game-card__visual>img{transform:scale(1.06)}.game-card__tile-strip{grid-template-columns:repeat(3,2.4rem);gap:.22rem;display:grid;position:absolute;bottom:.7rem;right:.7rem}.game-card__tile-strip img{object-fit:cover;width:2.4rem;height:2.4rem;transform:rotate(calc((var(--tile-index,1) - 1) * 2deg));border:1px solid #f7fbf7b3;box-shadow:0 .35rem .8rem #00000047}.game-card__count{color:var(--foam);font-family:var(--utility);letter-spacing:.04em;background:#08131f73;border:1px solid #f7fbf759;border-radius:999px;padding:.3rem .44rem;font-size:.5rem;position:absolute;top:.75rem;left:.75rem}.game-card__body{padding:1.05rem 1.1rem 1.1rem}.game-card__eyebrow{color:var(--star);font-family:var(--utility);letter-spacing:.08em;font-size:.54rem}.game-card h3{color:var(--foam);font-family:var(--display);margin-top:.7rem;font-size:1.38rem}.game-card p{color:#f7fbf79e;min-height:4.7rem;font-size:.73rem;line-height:1.75}.game-card .text-button,#interests .archive-link{color:var(--ocean)}.skills-section{grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr)}.skill-group{border-bottom:1px solid #f7fbf724;padding-bottom:1rem}.skill-group>span{color:var(--star);font-family:var(--utility);letter-spacing:.1em;font-size:.58rem}.skill-group b{color:#f7fbf7cc;background:#f7fbf70f}.site-footer{background:#06101a;padding:7rem clamp(2.6rem,9vw,9rem) 2.6rem}.site-footer h2{font-family:var(--display);font-size:clamp(2.5rem,5.8vw,6.4rem)}.site-footer__contact a{color:var(--ocean);font-family:var(--utility);font-size:.78rem}.site-footer__contact span,.site-footer small{color:#f7fbf785;font-family:var(--utility);font-size:.58rem;line-height:1.8}.detail-overlay{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#040c14c7;padding:clamp(1rem,3vw,2rem)}.detail-panel{background:#0d2437;border:1px solid #67d4d359;border-radius:1.2rem;max-width:68rem;padding:clamp(1.5rem,4vw,3.8rem);box-shadow:0 2rem 7rem #00000073}.detail-panel h2{font-family:var(--display);font-size:clamp(2.2rem,5vw,5.2rem)}.detail-panel__summary{color:#f7fbf7b3}.detail-panel__close{color:var(--ocean)}.detail-mosaic{margin-top:2rem}.detail-masonry{width:100%;min-height:8rem;margin-top:2rem;position:relative}.detail-masonry__item{transform-origin:50%;will-change:transform, width, height, opacity, filter;background:#132f45;border:1px solid #f7fbf72e;border-radius:.65rem;min-width:0;margin:0;transition:border-color .3s,box-shadow .3s;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 1rem 2.5rem #0000002e}.detail-masonry__item:hover{z-index:1;border-color:var(--ocean);box-shadow:0 1.3rem 3rem #0000004d}.detail-masonry__item img{object-fit:cover;width:100%;height:100%;display:block}.detail-masonry__index{color:#f7fbf7d6;font-family:var(--utility);background:#08131f9e;border-radius:999px;padding:.18rem .3rem;font-size:.48rem;position:absolute;bottom:.36rem;right:.42rem}.transition-wash{z-index:50;pointer-events:none;opacity:0;clip-path:inset(100% 0 0);filter:saturate(.94)brightness(.9);transform-origin:50%;will-change:opacity, clip-path, transform;background:linear-gradient(135deg,#060f1c2e,#060f1c94),url(/assets/hero-ocean.jpg) 20%/cover no-repeat;transition:opacity .25s,clip-path .42s cubic-bezier(.7,0,.2,1),transform .52s cubic-bezier(.2,.8,.2,1);position:fixed;inset:0;transform:scale(1.035)}.transition-wash--active{opacity:1;clip-path:inset(0);transform:scale(1)}[data-reveal]{opacity:0;transition:opacity .8s,transform .9s cubic-bezier(.2,.8,.2,1);transform:translateY(1.2rem)}[data-reveal].is-visible{opacity:1;transform:none}@media (width<=1000px){.hero-section{padding-left:clamp(3.8rem,8vw,6rem)}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.top-nav{padding:1rem 1.1rem}.top-nav__links{display:none}.tide-rail{left:.5rem}.hero-section{background-position:62%;min-height:92svh;padding:7rem 1.6rem 5rem 3rem}h1{font-size:clamp(3.6rem,19vw,6.4rem)}.hero-section__intro{font-size:.82rem;line-height:1.9}.hero-section__intro,.eyebrow,.jd-map>p:last-child{overflow-wrap:anywhere;word-break:break-word;max-width:100%}.hero-section__meta{justify-items:end;gap:.2rem;font-size:.48rem;display:grid;bottom:1rem;right:1rem}.intro-section,.skills-section{display:block}.intro-section,.capability-section,.cases-section,.interest-section,.skills-section{padding:5.5rem 1.2rem 5.5rem 2.8rem}.section-heading h2{font-size:clamp(2.5rem,12vw,4.7rem)}.capability-grid,.case-grid,.game-grid,.portfolio-downloads{grid-template-columns:1fr}.capability-card{min-height:11rem}.capability-card h3{margin-top:2.4rem}.tool-wall{display:block}.tool-group{margin-top:2rem}.case-card{min-height:0}.case-card__visual,.case-card__visual img{min-height:12rem}.method-card{grid-template-columns:1fr}.method-card>img{min-height:12rem;max-height:17rem}.interest-overview{max-height:12rem;margin-top:2rem}.game-card__visual,.game-card__visual>img{height:12rem;min-height:12rem}.site-footer{padding:5rem 1.2rem 2rem 2.8rem;display:block}.site-footer__contact{align-items:flex-start}.site-footer small{margin-top:2rem;display:block}.detail-panel{padding:2rem 1.1rem 1.3rem}.detail-masonry{margin-top:1.6rem}}.hero-section__content{text-align:left}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none}.transition-wash{display:none}.detail-masonry__item{transition:border-color .01ms linear}.hero-section__content--animated>*{opacity:1;animation:none;transform:none}}h1{font-size:clamp(3.5rem,7.4vw,7.8rem);line-height:.98}.section-heading h2{font-size:clamp(2.45rem,5.1vw,5.35rem);line-height:1.02}.section-heading>p:last-child{font-size:.98rem;line-height:1.9}.hero-section{background-position:20%;justify-content:flex-end}.hero-section__content{text-align:right;width:min(48rem,58vw);max-width:48rem;margin-left:auto}.hero-section__intro{max-width:41rem;margin-left:auto;font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.95}.hero-section__actions,.status-tags{justify-content:flex-end}.status-tags{max-width:none}.hero-section__wash{background:linear-gradient(90deg,#08131f1f 0%,#08131f80 44%,#08131ff2 100%),linear-gradient(#0000 38%,#08131fc2)}@keyframes hero-content-in{0%{opacity:0;transform:translateY(1.15rem)}to{opacity:1;transform:translateY(0)}}.hero-section__content--animated>*{opacity:0;will-change:opacity, transform;animation:.95s cubic-bezier(.2,.75,.25,1) forwards hero-content-in;transform:translateY(1.15rem)}.hero-section__content--animated>:first-child{animation-delay:.2s}.hero-section__content--animated>:nth-child(2){animation-delay:.42s}.hero-section__content--animated>:nth-child(3){animation-delay:.66s}.hero-section__content--animated>:nth-child(4){animation-delay:.9s}.hero-section__content--animated>:nth-child(5){animation-delay:1.12s}#about{background:linear-gradient(110deg,#f2eee5f5,#f2eee5e6),url(/assets/decor/object-03.webp) 92% 8%/18rem no-repeat}.intro-section{display:block}.intro-section__layout{z-index:1;grid-template-columns:minmax(17rem,.72fr) minmax(0,1.28fr);align-items:start;gap:clamp(2.5rem,6vw,7rem);display:grid;position:relative}.intro-section__content{max-width:48rem}.about-title{color:var(--ink);font:600 clamp(2.65rem, 5vw, 4.8rem)/1 var(--display);letter-spacing:-.08em;margin:1.25rem 0 0}.intro-section__copy{max-width:48rem;color:var(--paper-muted);margin:2.2rem 0 0;font-size:clamp(1.12rem,1.55vw,1.32rem);line-height:2.08}.intro-section__self-review{border-left:2px solid var(--ocean);color:inherit;text-wrap:pretty;background:#0b2132b8;margin-top:1.6rem;padding:1.15rem 1.25rem;display:block}.intro-section__stamp{border-top:1px solid var(--paper-line);color:#0e6c76;font:600 .72rem var(--utility);letter-spacing:.12em;text-transform:uppercase;margin-top:2.5rem;padding-top:.8rem;display:inline-block}.profile-deck{align-self:start;justify-items:stretch;width:min(100%,25rem)}.profile-deck__stage{aspect-ratio:4/5;border:1px solid var(--paper-line);background:var(--paper-strong);width:100%;position:relative;overflow:hidden;box-shadow:1.2rem 1.2rem #b46a4f1f}.profile-card{opacity:0;pointer-events:none;border:0;padding:.65rem;transition:opacity .55s,transform .7s cubic-bezier(.2,.8,.2,1);inset:0;transform:translate(1.5rem,.7rem)scale(.965)rotate(1.4deg)}.profile-card--active{opacity:1;pointer-events:auto;transform:translate(0,0)scale(1)rotate(0)}.profile-card img{object-position:center}.profile-deck__controls{justify-content:space-between;width:100%;padding-top:.8rem;font-size:.73rem}.profile-deck__controls .text-button{color:#b46a4f;font-size:.78rem}.profile-flowing-menu{z-index:1;margin-top:clamp(3rem,6vw,5.5rem);position:relative}.about-decor{z-index:0;pointer-events:none;opacity:.16;mix-blend-mode:multiply;position:absolute}.about-decor img{object-fit:cover;width:100%;height:100%;display:block}.about-decor--one{width:10rem;height:14rem;top:12%;right:2%;transform:rotate(8deg)}.about-decor--two{width:7rem;height:10rem;bottom:8%;left:2%;transform:rotate(-12deg)}.capability-card p,.tool-group__note,.jd-map>p:last-child{font-size:.86rem;line-height:1.85}.tool-wall__intro h3{font-size:clamp(1.7rem,3vw,2.65rem);line-height:1.14}.tool-tags span,.skill-group b,.status-tags span{padding:.48rem .78rem;font-size:.7rem}.jd-map>div span{padding:.5rem .78rem;font-size:.66rem}.portfolio-gallery{gap:clamp(3rem,6vw,5rem);margin-top:clamp(3rem,5vw,5rem);display:grid}.portfolio-gallery__group{min-width:0}.portfolio-gallery__header{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.25rem;display:flex}.portfolio-gallery__header h3{color:var(--ink);font:600 clamp(1.8rem, 3vw, 3rem) var(--display);margin-top:.5rem}.portfolio-gallery__header p:last-child{max-width:35rem;color:var(--paper-muted);margin:.65rem 0 0;font-size:.95rem;line-height:1.8}.portfolio-gallery__controls{flex-shrink:0;gap:.45rem;display:flex}.portfolio-gallery__controls button{width:2.7rem;height:2.7rem;color:var(--ink);background:0 0;border:1px solid #08131f3d;border-radius:50%;font-size:1.05rem}.portfolio-gallery__controls button:hover,.portfolio-gallery__controls button:focus-visible{color:var(--paper-strong);background:var(--ink)}.portfolio-gallery__track{scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#08131f59 transparent;gap:.8rem;padding:.35rem .1rem 1.2rem;display:flex;overflow-x:auto}.portfolio-gallery__track:focus-visible{outline-offset:.35rem;outline:2px solid #0e6c76}.portfolio-shot{aspect-ratio:16/10;cursor:zoom-in;scroll-snap-align:start;background:#d5e3df;border:1px solid #08131f33;border-radius:1rem;flex:0 0 clamp(16rem,44vw,34rem);padding:0;position:relative;overflow:hidden}.portfolio-shot img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s;display:block}.portfolio-shot:hover img,.portfolio-shot:focus-visible img{filter:saturate(1.08);transform:scale(1.04)}.portfolio-shot:focus-visible{outline-offset:.25rem;outline:2px solid #0e6c76}.portfolio-shot span{color:var(--paper-strong);font:.65rem var(--utility);background:#08131fa6;border-radius:999px;padding:.28rem .45rem;position:absolute;bottom:.65rem;right:.7rem}.portfolio-lightbox{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#040c14db;place-items:center;padding:clamp(1rem,4vw,4rem);display:grid;position:fixed;inset:0}.portfolio-lightbox__panel{background:#0d2437;border:1px solid #67d4d373;width:min(88rem,100%);max-height:92vh;padding:.55rem;position:relative}.portfolio-lightbox__panel img{object-fit:contain;width:100%;max-height:calc(92vh - 1.1rem);display:block}#portfolio .section-heading{text-align:center;margin-inline:auto}#portfolio .portfolio-gallery__header{text-align:center;display:block}#portfolio .portfolio-gallery__header>div:first-child{max-width:42rem;margin-inline:auto}#portfolio .portfolio-gallery__header p:last-child{margin-inline:auto}#portfolio .portfolio-gallery__controls{justify-content:center;margin-top:1.15rem}.game-card__facts{gap:.46rem;margin:1rem 0 0;display:grid}.game-card__facts div{grid-template-columns:3.9rem 1fr;gap:.5rem;display:grid}.game-card__facts dt{color:var(--star);font:600 .62rem var(--utility)}.game-card__facts dd{color:#f7fbf7c7;margin:0;font-size:.8rem;line-height:1.65}.game-card p{color:#f7fbf7ad;min-height:0;margin-top:1rem;font-size:.8rem;line-height:1.75}.detail-facts{gap:.6rem;margin:1.5rem 0 0;display:grid}.detail-facts div{border-top:1px solid #f7fbf724;grid-template-columns:5rem 1fr;gap:.75rem;padding-top:.65rem;display:grid}.detail-facts dt{color:var(--star);font:600 .67rem var(--utility)}.detail-facts dd{color:#f7fbf7c7;margin:0;font-size:.88rem;line-height:1.7}#skills{background:linear-gradient(125deg,#0b2134 0%,#102f45 100%)}.skills-section{grid-template-columns:minmax(15rem,.72fr) minmax(0,1.28fr);align-items:start}.skills-section>.section-heading{grid-column:1/-1}.skills-section__visual{background:#081923;border:1px solid #67d4d347;grid-column:1;min-height:27rem;position:relative;overflow:hidden}.skills-section__visual img{object-fit:cover;object-position:50% 38%;opacity:.9;width:100%;height:100%;min-height:27rem;display:block}.skills-section__visual:after{color:var(--star);content:"FIELD NOTE / KEEP EXPLORING";font:.63rem var(--utility);letter-spacing:.12em;border-top:1px solid #f7fbf759;padding-top:.6rem;position:absolute;inset:auto 1rem 1rem}.skills-section__visual>span{z-index:1;color:#f7fbf7c2;font:.62rem var(--utility);letter-spacing:.12em;position:absolute;top:1rem;left:1rem}.skill-grid{grid-column:2;gap:1.35rem}.skill-group>span{font-size:.7rem}.skill-group b{font-size:.72rem}.site-footer h2{font-size:clamp(2.25rem,4.6vw,5rem)}.site-footer__contact a{font-size:.95rem}.site-footer__contact span,.site-footer small{font-size:.72rem;line-height:1.85}@media (width<=1000px){.intro-section__layout{grid-template-columns:1fr;gap:3.5rem}.intro-section__content{max-width:none}.profile-deck{width:min(100%,25rem);margin:0 auto}}@media (width<=760px){.hero-section{background-position:28%;justify-content:center;padding:7rem 1.2rem 5rem 3rem}.hero-section__content{text-align:right;width:min(100%,27rem)}.hero-section__intro{font-size:.9rem}.section-heading h2{font-size:clamp(2.25rem,10vw,4rem)}.intro-section__layout{grid-template-columns:1fr;gap:2.8rem}.intro-section__content{max-width:none}.intro-section__self-review{padding:.9rem 1rem}.profile-deck{width:min(100%,19rem);margin:0 auto}.profile-flowing-menu{margin-top:3.4rem}.about-decor--one{opacity:.1;right:-2rem}.about-decor--two{opacity:.1;left:-1rem}.portfolio-gallery__header{align-items:start}.portfolio-gallery__header p:last-child{font-size:.84rem}.portfolio-shot{flex-basis:min(82vw,23rem)}.game-card__facts dd,.game-card p{font-size:.82rem}.skills-section{display:block}.skills-section__visual{min-height:17rem;margin:2rem 0 2.5rem}.skills-section__visual img{min-height:17rem;max-height:22rem}#interests .section-heading h2{max-width:100%;font-size:clamp(2rem,8.8vw,3.35rem);line-height:1.12}}body,.site-shell{min-width:0}#about,#ai-capabilities,#experience,#portfolio,#interests,#skills{background-color:#0d2a3f;background-image:linear-gradient(135deg,#0d2a3ffa,#081827fa)}#about,#about .about-title{color:var(--foam)}#about .eyebrow,#about .profile-deck__controls{color:var(--ocean)}#about .eyebrow span{color:var(--rose)}#about .intro-section__copy{color:#f7fbf7d1}#about .intro-section__stamp{color:var(--ocean);border-color:#67d4d352}#about .profile-card{background:#102f45;border-color:#67d4d359}#about .profile-card--active{border-color:var(--ocean);box-shadow:0 1.2rem 3rem #00000057,0 0 1.5rem #67d4d31f}#about .profile-card:focus-visible{outline-color:var(--ocean)}#about .profile-flowing-menu{border-color:#67d4d342}#experience .section-heading h2,#experience .method-lab h3{color:var(--foam)}#experience .eyebrow{color:var(--star)}#experience .eyebrow span{color:var(--rose)}#experience .case-card,#experience .method-card{background:#102f45b8;border-color:#67d4d338}#experience .case-card__visual{background:#102f45}#experience .case-card h3,#experience .method-card h4{color:var(--foam)}#experience .case-card p,#experience .method-card p{color:#f7fbf7b3}#experience .case-card__top,#experience .game-card__eyebrow{color:var(--star)}#experience .case-card__tags span{color:var(--ocean);border-color:#67d4d352}#experience .text-button,#experience .archive-link{color:var(--ocean)}#experience .case-card p{font-size:1rem;line-height:1.8}#experience .case-card__tags span{font-size:.72rem}#portfolio,#portfolio .section-heading h2,#portfolio .portfolio-gallery__header h3{color:var(--foam)}#portfolio .eyebrow{color:var(--star)}#portfolio .eyebrow span{color:var(--rose)}#portfolio .portfolio-gallery__header p:last-child{color:#f7fbf7b8}#portfolio .portfolio-gallery__controls button{color:var(--foam);background:0 0;border-color:#67d4d36b}#portfolio .portfolio-gallery__controls button:hover,#portfolio .portfolio-gallery__controls button:focus-visible{color:var(--ink);background:var(--ocean)}#portfolio .portfolio-shot{background:#102f45;border-color:#67d4d347}#portfolio .portfolio-shot:focus-visible{outline-color:var(--ocean)}#about .about-decor{display:none}#about{background-color:#c5e1df;background-image:linear-gradient(110deg,#c5e1dff5,#c5e1dfdb),url(/assets/decor/object-03.webp);background-position:50%,92% 8%;background-repeat:no-repeat;background-size:cover,18rem}#about .profile-card{background:#e2f0ed}#ai-capabilities{background-color:#123d58;background-image:linear-gradient(125deg,#123d58fa,#081827f5),url(/assets/decor/object-02.webp);background-position:50%,96% 18%;background-repeat:no-repeat;background-size:cover,20rem}#experience{background-color:#d7ebe8;background-image:linear-gradient(120deg,#d7ebe8f5,#c5e1dfe6),url(/assets/decor/object-01.webp);background-position:50%,94% 12%;background-repeat:no-repeat;background-size:cover,16rem}#experience .case-card,#experience .method-card{background:#d2e8e5}#portfolio{background-color:#93d0cc;background-image:linear-gradient(115deg,#93d0ccf2,#c5e1dfe0),url(/assets/decor/object-03.webp);background-position:50%,4% 82%;background-repeat:no-repeat;background-size:cover,16rem}#interests{background-color:#081827;background-image:linear-gradient(130deg,#081827f7,#0d2940f0),url(/assets/decor/object-02.webp);background-position:50%,96% 10%;background-repeat:no-repeat;background-size:cover,17rem}#skills{background-color:#0d2940;background-image:linear-gradient(125deg,#081827fa,#10374ef0),url(/assets/decor/object-01.webp);background-position:50%,98% 76%;background-repeat:no-repeat;background-size:cover,14rem}.hero-section__intro{text-align:left;width:fit-content;max-width:100%;margin-left:auto;margin-right:0}.hero-section__actions .button{padding:1rem 1.45rem;font-size:clamp(.92rem,1.2vw,1.12rem)}.hero-section__actions .button span{font-size:1.25rem}.status-tags{gap:.65rem}.hero-section__meta{gap:1.35rem;font-size:clamp(.78rem,.95vw,.94rem)}.hero-section__scroll-hint{font-size:clamp(.8rem,1vw,.98rem)}#about,#ai-capabilities,#experience,#portfolio,#interests,#skills{background:#0d2a3f!important}:root{--module-bg:#060f1c;--surface-raised:#0b2132;--surface-hover:#102a3e;--surface-border:#b5d7e533;--navigation-copy-size:clamp(.9rem, 1.2vw, 1.08rem)}#about,#ai-capabilities,#experience,#portfolio,#interests,#skills,.site-footer{background:var(--module-bg)!important;background-image:none!important}#about{isolation:isolate;position:relative;overflow:hidden}#about:before{z-index:0;content:"";opacity:.15;mix-blend-mode:screen;pointer-events:none;background:url(/assets/about-water-lights.jpg) 50% 52%/cover no-repeat;position:absolute;inset:0}#about>.intro-section__layout,#about>.profile-flowing-menu{z-index:1;position:relative}#about .profile-deck__stage,#about .profile-card,.capability-card,#experience .case-card,#experience .method-card,#portfolio .portfolio-shot,#interests .game-card,#skills .skills-section__visual,.detail-panel,.portfolio-lightbox__panel,.detail-masonry__item{border-color:var(--surface-border);background:var(--surface-raised);background-image:none}.capability-card:hover{background:var(--surface-hover);border-color:#b5d7e557}#experience .case-card__visual,#interests .game-card__visual,#portfolio .portfolio-shot,#skills .skills-section__visual{background-color:var(--surface-raised)}#skills .button--primary{border-color:var(--surface-border);color:var(--foam);background:var(--surface-raised);box-shadow:0 .8rem 2rem #0003}#skills .button--primary:hover,#skills .button--primary:focus-visible{color:var(--foam);background:var(--surface-hover);border-color:#b5d7e561}.hero-section__actions .button--primary{color:var(--foam);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);letter-spacing:.035em;background:#0b21328f;border-color:#d9f6ff61;font-size:clamp(1.05rem,1.45vw,1.3rem);font-weight:700;box-shadow:0 .85rem 2.4rem #00000038}.hero-section__actions .button--primary span{color:var(--star)}.hero-section__actions .button--primary:hover,.hero-section__actions .button--primary:focus-visible{color:var(--foam);background:#102a3ec7;border-color:#d9f6ffa8;box-shadow:0 1rem 2.8rem #00000047}.hero-section__actions .button--primary{letter-spacing:.02em;padding:.88rem 1.22rem;font-size:clamp(.96rem,1.08vw,1.08rem)}.hero-section__actions .button--primary span{font-size:1.08em}.status-tags span{padding:.52rem .82rem;font-size:clamp(.84rem,.92vw,.94rem)}.hero-section__meta{font-size:clamp(.9rem,1vw,1rem);line-height:1.55}.hero-section__scroll-hint{font-size:clamp(.9rem,1vw,1rem);line-height:1.4}@media (width<=760px){.hero-section__actions .button--primary{padding:.78rem 1rem;font-size:.94rem}.status-tags span{padding:.44rem .68rem;font-size:.78rem}.hero-section__meta{font-size:.72rem;line-height:1.5}.hero-section__scroll-hint{font-size:.78rem}}.skill-grid{gap:1.75rem}.skill-group>span{font-size:var(--navigation-copy-size);margin-bottom:.8rem;line-height:1.4}.skill-group>div{gap:.75rem .65rem}.skill-group b{max-width:100%;font-size:var(--navigation-copy-size);white-space:normal;overflow-wrap:anywhere;padding:.55rem .85rem;line-height:1.35}.tool-group__label,.tool-group__label span,.tool-group__note,.tool-tags span{font-size:var(--navigation-copy-size)}.tool-group__label,.tool-group__note{line-height:1.8}.tool-tags{gap:.65rem}.tool-tags span{padding:.55rem .85rem;line-height:1.35}.site-footer__contact{gap:1rem;width:min(100%,38rem);min-width:0}.site-footer__contact a{overflow-wrap:anywhere;max-width:100%;font-size:1.8rem;line-height:1.25}.site-footer__contact span{text-wrap:balance;max-width:100%;font-size:1.35rem;line-height:1.6}.site-footer__contact>span{color:var(--ocean);font-family:var(--utility);overflow-wrap:anywhere;font-size:1.8rem;line-height:1.25}.site-footer small{font-size:.72rem}.site-footer{isolation:isolate;position:relative;overflow:hidden}.site-footer:before{z-index:0;content:"";opacity:.3;pointer-events:none;background:url(/assets/footer-aquarium.jpg) 50% 46%/cover no-repeat;position:absolute;inset:0}.site-footer>*{z-index:1;position:relative}@media (width<=1100px){.site-footer{grid-template-columns:minmax(0,1fr)}.site-footer__contact{text-align:left;align-items:flex-start;padding-top:0}}@media (width<=760px){.skill-grid{gap:1.35rem}.skill-group>span{font-size:var(--navigation-copy-size);margin-bottom:.65rem}.skill-group>div{gap:.55rem}.skill-group b{font-size:var(--navigation-copy-size);padding:.58rem .8rem;line-height:1.4}.site-footer__contact{gap:.75rem}.site-footer__contact a{font-size:1.3rem;line-height:1.3}.site-footer__contact span{font-size:.95rem;line-height:1.65}.site-footer__contact>span{font-size:1.3rem;line-height:1.3}.site-footer small{font-size:.68rem}}.accordion-gallery{--ag-accent:#67d4d3;--ag-overlay:#060f1c;--ag-text:#f7fbf7;--ag-gap:10px;--ag-radius:16px;--ag-media-size:320px;gap:var(--ag-gap);perspective:1400px;perspective-origin:50%;flex-direction:row;width:100%;max-width:100%;display:flex}.accordion-gallery--vertical{flex-direction:column}.ag-panel{border:1px solid var(--surface-border);border-radius:var(--ag-radius);min-width:0;min-height:0;color:inherit;background:var(--surface-raised);cursor:pointer;transform-style:preserve-3d;transform-origin:50%;will-change:flex-grow, flex-basis, transform;-webkit-tap-highlight-color:transparent;flex:1 1 0;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 1rem 2.5rem -1.5rem #000000d9}.ag-panel:focus-visible{outline:2px solid var(--ag-accent);outline-offset:3px}.ag-panel__frame{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.ag-panel__media{--ag-gray:1;--ag-dim:.34;width:var(--ag-media-size);height:100%;filter:grayscale(var(--ag-gray));will-change:transform, filter;position:absolute;top:50%;left:50%}.accordion-gallery--vertical .ag-panel__media{width:100%;height:var(--ag-media-size)}.ag-panel__media img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.ag-panel__overlay{pointer-events:none;background:linear-gradient(180deg, transparent 42%, color-mix(in srgb, var(--ag-overlay) 82%, transparent) 100%), color-mix(in srgb, var(--ag-overlay) calc(var(--ag-dim) * 100%), transparent);position:absolute;inset:0}.ag-panel__label{z-index:2;pointer-events:none;align-items:center;gap:.75rem;display:flex;position:absolute;bottom:1.2rem;left:1.2rem;right:1.2rem}.ag-panel__bar{background:var(--ag-accent);width:3px;height:1.7rem;box-shadow:0 0 1rem color-mix(in srgb, var(--ag-accent) 58%, transparent);opacity:0;border-radius:3px;flex:none}.ag-panel__text{color:var(--ag-text);font:600 clamp(.95rem, 1.35vw, 1.3rem) var(--utility);letter-spacing:.02em;text-overflow:ellipsis;text-shadow:0 2px 1rem #000000b3;white-space:nowrap;opacity:0;overflow:hidden}@media (width<=640px){.accordion-gallery{perspective:none;flex-direction:column;height:auto!important}.ag-panel{flex:0 0 92px;min-height:92px;transform:none!important}.accordion-gallery .ag-panel__media{width:100%;height:100%}.ag-panel__label{bottom:1rem;left:1rem;right:1rem}}@media (prefers-reduced-motion:reduce){.ag-panel,.ag-panel__media{will-change:auto}}.border-glow-card{--edge-proximity:0;--cursor-angle:45deg;--edge-sensitivity:28;--color-sensitivity:calc(var(--edge-sensitivity) + 18);--border-radius:16px;--glow-padding:30px;--cone-spread:23;isolation:isolate;border-radius:var(--border-radius);background:var(--card-bg,#0b2132);border:1px solid #b5d7e52e;display:grid;position:relative;overflow:visible;transform:translateZ(.01px);box-shadow:0 1rem 2.8rem #00000029}.border-glow-card:before,.border-glow-card:after,.border-glow-card>.edge-light{content:"";pointer-events:none;border-radius:inherit;transition:opacity .25s ease-out;position:absolute}.border-glow-card:before{z-index:4;background:linear-gradient(transparent 0 100%) padding-box, var(--gradient-one) border-box, var(--gradient-two) border-box, var(--gradient-three) border-box, var(--gradient-four) border-box, var(--gradient-five) border-box, var(--gradient-six) border-box, var(--gradient-seven) border-box, var(--gradient-base) border-box;opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, #000 calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), #000 calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center, #000 calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), #000 calc((100 - var(--cone-spread)) * 1%));border:1px solid #0000;inset:0}.border-glow-card:after{z-index:2;background:var(--gradient-one), var(--gradient-two), var(--gradient-three), var(--gradient-four), var(--gradient-five), var(--gradient-six), var(--gradient-seven);opacity:calc(var(--fill-opacity,.2) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light;inset:1px}.border-glow-card>.edge-light{z-index:5;inset:calc(var(--glow-padding) * -1);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, #000 2.5%, transparent 10%, transparent 90%, #000 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center, #000 2.5%, transparent 10%, transparent 90%, #000 97.5%);mix-blend-mode:plus-lighter}.border-glow-card>.edge-light:before{content:"";inset:var(--glow-padding);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--glow-color), inset 0 0 5px var(--glow-color-40), inset 0 0 18px var(--glow-color-20), 0 0 3px var(--glow-color-50), 0 0 12px var(--glow-color-30), 0 0 28px var(--glow-color-10);position:absolute}.border-glow-media,.border-glow-scrim{z-index:0;border-radius:calc(var(--border-radius) - 1px);pointer-events:none;position:absolute;inset:1px;overflow:hidden}.border-glow-media{opacity:.5;filter:none;background-repeat:no-repeat;background-size:cover;transition:opacity .45s,filter .45s,transform .7s cubic-bezier(.2,.8,.2,1);transform:scale(1.015)}.border-glow-scrim{z-index:1;background:linear-gradient(#060f1c61 0%,#060f1cab 48%,#060f1ce6 100%),linear-gradient(110deg,#0b213259,#060f1c29)}.border-glow-inner{z-index:3;flex-direction:column;min-width:0;display:flex;position:relative}.border-glow-card.capability-card{background:0 0;border-color:#b5d7e533;min-height:18rem;padding:1.6rem}.border-glow-card.capability-card:hover{background:0 0;border-color:#67d4d361}.border-glow-card.capability-card>.border-glow-scrim{display:none}.border-glow-card.capability-card:hover .border-glow-media{opacity:.5;filter:none;transform:scale(1.015)}.border-glow-card.capability-card .card-index{color:#7ce1e0;letter-spacing:.08em;text-shadow:0 2px 10px #0000008c;font-size:clamp(.72rem,.85vw,.8rem);font-weight:700}.border-glow-card.capability-card h3{color:#f7fbf7;text-shadow:0 3px 16px #000000d9;margin-top:clamp(3.6rem,5vw,5rem);font-size:clamp(1.45rem,1.8vw,1.75rem);line-height:1.2}.border-glow-card.capability-card p{color:#f7fbf7e0;overflow-wrap:anywhere;text-shadow:0 2px 12px #000000e6;margin-top:.9rem;font-size:clamp(1rem,1.15vw,1.1rem);line-height:1.75}@media (hover:none),(pointer:coarse){.border-glow-card:before,.border-glow-card:after,.border-glow-card>.edge-light{display:none}.border-glow-card.capability-card:hover .border-glow-media{opacity:.5;filter:none;transform:scale(1.015)}}@media (width<=760px){.border-glow-card.capability-card{min-height:14rem;padding:1.4rem}.border-glow-card.capability-card h3{margin-top:2.8rem;font-size:clamp(1.4rem,7vw,1.65rem)}.border-glow-card.capability-card p{font-size:1rem;line-height:1.7}}@media (prefers-reduced-motion:reduce){.border-glow-card,.border-glow-media{transition:none}.border-glow-card:before,.border-glow-card:after,.border-glow-card>.edge-light{display:none}.border-glow-card.capability-card:hover{transform:none}.border-glow-card.capability-card:hover .border-glow-media{opacity:.5;filter:none;transform:scale(1.015)}}.flowing-menu{border:1px solid #f7fbf721;width:100%;overflow:hidden}.flowing-menu__nav{flex-direction:column;display:flex}.flowing-menu__item{border-top:1px solid;position:relative;overflow:hidden}.flowing-menu__item:first-child{border-top:0}.flowing-menu__trigger{z-index:1;width:100%;min-height:5.5rem;color:inherit;cursor:pointer;text-align:left;font:600 clamp(1.08rem, 2.2vw, 1.8rem)/1.1 var(--display);letter-spacing:-.03em;background:0 0;border:0;justify-content:space-between;align-items:center;padding:1.15rem 1.35rem;display:flex;position:relative}.flowing-menu__trigger span:last-child{color:var(--star);font-family:var(--utility);font-size:.8rem}.flowing-menu__trigger:focus-visible{outline:2px solid var(--star);outline-offset:-4px}.flowing-menu__marquee{pointer-events:none;position:absolute;inset:0;overflow:hidden;transform:translateY(101%)}.flowing-menu__inner-wrap{width:100%;height:100%;overflow:hidden}.flowing-menu__inner{will-change:transform;align-items:center;width:max-content;height:100%;display:flex}.flowing-menu__part{flex-shrink:0;align-items:center;display:flex}.flowing-menu__part>span:first-child{white-space:nowrap;font:500 clamp(1.05rem, 2vw, 1.55rem)/1 var(--display)}.flowing-menu__image{background-position:50%;background-size:cover;border-radius:999px;width:clamp(10rem,16vw,15rem);height:3.5rem;margin:0 1.4rem}@media (width<=700px){.flowing-menu__trigger{min-height:4.4rem;padding:.85rem 1rem;font-size:1.1rem}.flowing-menu__image{width:9rem;height:2.8rem;margin:0 1rem}}@media (prefers-reduced-motion:reduce){.flowing-menu__marquee{opacity:0;transform:none}.flowing-menu__trigger:focus-visible+.flowing-menu__marquee{opacity:1}}.hobby-motion-section{background:radial-gradient(circle at 82% 8%,#67d4d31a,#0000 28rem),linear-gradient(145deg,#060f1c 0%,#0b2132 62%,#102a3e 100%);padding:clamp(6.5rem,11vw,11rem) clamp(2.6rem,9vw,9rem);position:relative;overflow:hidden}.hobby-motion-section:before{pointer-events:none;content:"";background-image:linear-gradient(#f7fbf709 1px,#0000 1px),linear-gradient(90deg,#f7fbf709 1px,#0000 1px);background-size:4rem 4rem;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.hobby-motion-section>*{z-index:1;position:relative}.hobby-motion-section .section-heading{margin-bottom:clamp(3rem,6vw,5.5rem)}.grid-motion{isolation:isolate;background:#060f1c8f;border:1px solid #67d4d340;border-radius:1.35rem;gap:.8rem;padding:clamp(1rem,2.2vw,2rem);display:grid;position:relative;overflow:hidden;box-shadow:0 2.4rem 6rem -3.2rem #000000e6}.grid-motion__current{z-index:-1;filter:blur(2rem);background:linear-gradient(90deg,#ffbc4c0d,#67d4d314,#0000);position:absolute;inset:-30% 55% -30% -15%;transform:skew(-8deg)}.grid-motion__row{border-top:1px solid #f7fbf71c;grid-template-columns:minmax(7.5rem,.22fr) minmax(0,1fr);align-items:stretch;gap:clamp(.8rem,2vw,1.5rem);min-width:0;padding:.7rem 0;display:grid}.grid-motion__row:first-of-type{border-top:0}.grid-motion__label{flex-direction:column;justify-content:space-between;min-height:8.5rem;padding:.45rem .2rem .45rem 0;display:flex}.grid-motion__label>span,.grid-motion__label small{color:#f7fbf775;font:600 .63rem var(--utility);letter-spacing:.12em}.grid-motion__label h3{color:var(--foam);font:600 clamp(1.35rem, 2.2vw, 2.35rem) var(--display);letter-spacing:-.035em;margin:auto 0}.grid-motion__label small{color:var(--star)}.grid-motion__track{will-change:transform;grid-template-columns:repeat(auto-fit,minmax(6.7rem,1fr));gap:.65rem;width:calc(100% + 3rem);min-width:0;margin-inline:-1.5rem;padding-inline:1.5rem;display:grid}.grid-motion__tile{min-width:0;min-height:8.5rem;color:inherit;cursor:zoom-in;background:#102a3e;border:1px solid #f7fbf71f;border-radius:.8rem;padding:0;position:relative;overflow:hidden;transform:translateZ(0)}.grid-motion__tile:nth-child(3n+1){transform:translateY(-.28rem)}.grid-motion__tile:nth-child(3n){transform:translateY(.28rem)}.grid-motion__tile-media{will-change:transform;display:block;position:absolute;inset:0}.grid-motion__tile img{object-fit:cover;filter:saturate(.84)brightness(.88);width:100%;height:100%;transition:filter .35s,transform .55s cubic-bezier(.2,.8,.2,1);display:block}.grid-motion__tile:after{pointer-events:none;content:"";background:linear-gradient(#0000 48%,#060f1cc7);position:absolute;inset:0}.grid-motion__tile-note{z-index:1;color:#f7fbf7d6;font:600 .56rem var(--utility);letter-spacing:.08em;text-overflow:ellipsis;text-shadow:0 2px .75rem #000c;white-space:nowrap;position:absolute;bottom:.5rem;left:.55rem;right:.55rem;overflow:hidden}.grid-motion__tile:hover img,.grid-motion__tile:focus-visible img{filter:saturate(1.08)brightness();transform:scale(1.045)}.grid-motion__tile:focus-visible{z-index:2;outline:2px solid var(--coral);outline-offset:3px}@media (width<=760px){.hobby-motion-section{padding:5.5rem 1.2rem 5.5rem 2.8rem}.grid-motion{border-radius:1rem;padding:.8rem}.grid-motion__row{padding:1.2rem 0;display:block}.grid-motion__label{grid-template-columns:auto 1fr auto;align-items:baseline;gap:.7rem;min-height:0;padding:0 .1rem .85rem;display:grid}.grid-motion__label h3{margin:0;font-size:1.35rem}.grid-motion__track{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:0;padding:0;transform:none!important}.grid-motion__tile{aspect-ratio:4/5;min-height:0;transform:none!important}.grid-motion__tile-media{transform:none!important}}@media (prefers-reduced-motion:reduce){.grid-motion__track,.grid-motion__tile-media{will-change:auto;transform:none!important}.grid-motion__tile img{transition:none}}.masked-heading{text-wrap:balance;-webkit-font-smoothing:antialiased;width:100%;min-height:1em;margin:0;padding:0;position:relative}.masked-heading__measure{color:#0000;display:block}.masked-heading__glyph-box{white-space:pre;display:inline-block}.masked-heading__space{white-space:pre-wrap}.masked-heading__baseline{width:0;height:0;display:inline-block}.masked-heading__defs{width:0;height:0;position:absolute;overflow:hidden}.masked-heading__reveal,.masked-heading__clip,.masked-heading__media{display:block;position:absolute;inset:0}.masked-heading__reveal{pointer-events:none;transform-origin:50%}.masked-heading__clip{overflow:hidden}.masked-heading__media{will-change:transform, filter;background:linear-gradient(115deg,#67d4d3 0%,#d9f6ff 42%,#ffe391 100%)}.masked-heading__source{object-fit:cover;object-position:center 52%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.masked-heading__media{will-change:auto}}.site-footer--stacked{grid-template-columns:minmax(0,1fr)}.site-footer--stacked>div{min-width:0}.site-footer--stacked .site-footer__masked-heading{max-width:48rem;margin-bottom:2rem}.site-footer--stacked .site-footer__contact{text-align:left;align-items:flex-start;width:min(100%,38rem);padding-top:0}.site-footer__meta-lines{gap:.2rem;display:grid}
