:root{--bg:#0b0f13;--paper:#f4f2ed;--text:#f3f1eb;--muted:#a3a7a7;--acid:#bad2e9;--line:#ffffff21;--ease:cubic-bezier(.2,.8,.2,1);font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;overflow-x:clip}
body.locked{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--acid);outline-offset:6px}
::selection{background:var(--acid);color:#0b0f13}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:400}
img{display:block;max-width:100%}
.wrap{width:min(1440px,calc(100% - 96px));margin:auto}
.micro{font-size:14px;line-height:1.7;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.muted{color:var(--muted)}
.serif{font-family:Georgia,serif;font-style:italic;font-weight:400}
.skip{position:fixed;top:-70px;left:20px;background:var(--acid);color:#0b0f13;padding:15px;z-index:200}
.skip:focus{top:15px}
.progress{position:fixed;top:0;left:0;width:0;height:2px;background:var(--acid);z-index:120}
header{position:fixed;top:0;width:100%;z-index:100;background:#0b0f13bc;backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}
.nav{height:84px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{font-size:25px;letter-spacing:-.06em;font-weight:700}
.brand b{color:var(--acid)}
.nav-mid{display:flex;gap:32px}
.nav-mid a{font-size:14px;color:#b5b9b3;transition:color .2s}
.nav-mid a:hover{color:var(--acid)}
.nav-end{display:flex;gap:12px;align-items:center}
.nav-button{background:none;border:1px solid var(--line);border-radius:40px;padding:12px 18px;min-height:44px;font-size:14px}
.nav-button:hover{border-color:var(--acid)}
.nav-contact{background:var(--acid);color:#11181b;border-radius:30px;font-size:14px;padding:15px 21px}
.hero{position:relative;min-height:900px;height:100svh;max-height:1250px;isolation:isolate;overflow:hidden;padding-top:84px;background:radial-gradient(ellipse at 77% 42%,#34463154,transparent 49%),#0b0f13}
.hero:after{content:"";position:absolute;inset:84px 0 0;z-index:-1;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:100px 100px;mask-image:linear-gradient(#000,transparent)}
.hero-layout{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center}
.hero-topline{display:flex;align-items:center;gap:12px;color:#b8c3c7;margin-bottom:35px}
.live-dot{width:6px;height:6px;background:var(--acid);border-radius:50%;box-shadow:0 0 20px #bad2e999}
.hero h1{font-size:clamp(90px,10.7vw,175px);line-height:.88;letter-spacing:-.085em;position:relative;z-index:3;pointer-events:none;width:80%;margin-left:-7px}
.hero h1 .serif{color:var(--acid);letter-spacing:-.075em}
.hero .outline{color:transparent;-webkit-text-stroke:1px #c1c6b6a8;display:block}
.hero-description{font-size:15px;line-height:1.85;color:#b5babc;max-width:360px;margin-top:32px;position:relative;z-index:3}
.hero-description strong{font-weight:400;color:var(--text)}
.hero-cta{display:flex;gap:25px;align-items:center;margin-top:29px;position:relative;z-index:4}
.pill{display:inline-flex;gap:35px;align-items:center;border:1px solid #a3b6936b;border-radius:40px;padding:17px 23px;font-size:14px;transition:background .25s,color .25s,transform .25s;min-height:52px}
.pill:hover{background:var(--acid);color:#0b0f13;transform:translateY(-3px)}
.pill span{font-size:20px}
.quiet{font-size:14px;border-bottom:1px solid var(--line);padding:10px 0}
.hero-floor{position:absolute;bottom:30px;left:0;right:0;display:flex;align-items:end;justify-content:space-between;gap:25px;z-index:4}
.hero-floor .micro{font-size:14px}
.hero-floor .middle{color:#819097}
.hero-index{display:flex;gap:30px;align-items:center}
.scroll-disc{width:38px;height:55px;border:1px solid var(--line);border-radius:25px;display:grid;place-items:center;font-size:19px}
.scene-wrap{position:absolute;right:-13%;top:4%;width:77%;height:91%;z-index:1;pointer-events:none}
#universe{width:100%;height:100%;display:block}
.scene-label{position:absolute;right:14%;top:25%;font-size:14px;letter-spacing:.13em;color:#b8cedc;writing-mode:vertical-rl}
.scene-caption{position:absolute;right:18%;bottom:13%;display:flex;gap:28px;font-size:14px;letter-spacing:.18em;color:#92a6b0}
.scene-fallback{position:absolute;inset:22%;border-radius:50%;border:1px solid #bad2e955;box-shadow:0 0 100px #bad2e916,inset 0 0 80px #bad2e918;transform:rotate(-25deg)}
.scene-fallback:after,.scene-fallback:before{content:"";position:absolute;inset:-15%;border:1px solid #bad2e944;border-radius:50%;transform:rotateX(65deg)}
.scene-fallback:after{transform:rotateY(65deg)}
.rendered .scene-fallback{display:none}
.ticker{display:flex;gap:70px;justify-content:center;overflow:hidden;white-space:nowrap;padding:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;letter-spacing:.19em;background:#0f1418;color:#aab9c1}
.ticker b{color:var(--acid);font-size:15px}
.section{padding:115px 0}
.section-top{display:flex;justify-content:space-between;gap:25px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:22px}
.section-heading{display:flex;justify-content:space-between;gap:60px;align-items:end;margin:55px 0}
.section-heading h2{font-size:clamp(48px,6.4vw,100px);letter-spacing:-.065em;line-height:.98}
.section-heading h2 .serif{color:var(--acid)}
.section-heading p{max-width:310px;color:var(--muted);font-size:14px;line-height:1.85}
.work{background:var(--paper);color:#1d2325;border-radius:40px 40px 0 0;position:relative}
.work .section-top{border-color:#20292b30}
.work .muted,.work .section-heading p{color:#6e7475}
.work .section-heading h2 .serif{color:#839a98}
.work-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;perspective:1500px}
.project{border:1px solid #20292b28;border-radius:12px;overflow:hidden;display:block;transform-style:preserve-3d;transition:transform .45s var(--ease),box-shadow .45s}
.project:hover{box-shadow:0 30px 60px #16231620}
.project:first-child{grid-row:span 2}
.project-visual{height:275px;background:#19242a;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.project:first-child .project-visual{height:550px;background:radial-gradient(ellipse at 65% 20%,#526876,#20303a 70%)}
.project-meta{padding:24px;display:flex;justify-content:space-between;gap:20px;align-items:start}
.project-meta h3{font-size:28px;letter-spacing:-.04em;margin:9px 0}
.project-meta p{font-size:14px;color:#6e7475;line-height:1.7;max-width:350px}
.project-arrow{font-size:25px;padding:8px}
.project-number{position:absolute;top:22px;left:24px;color:#b8cdd6;font-size:14px;letter-spacing:.15em}
.visual-tag{position:absolute;bottom:20px;left:24px;color:#a7bac5;font-size:14px;letter-spacing:.16em}
.dashboard3d{width:80%;background:#e4e8e7;border-radius:10px;transform:rotateX(12deg) rotateY(-17deg) rotateZ(-7deg);color:#263c48;padding:28px;box-shadow:25px 45px 80px #0006;border:5px solid #ffffff38;transition:transform .7s var(--ease)}
.project:hover .dashboard3d{transform:rotateX(3deg) rotateY(-6deg) rotateZ(-2deg)}
.dash-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;border-bottom:1px solid #243c4820;padding-bottom:20px}
.dash-head strong{font-size:25px;letter-spacing:-.06em}
.dash-welcome{font-size:27px;letter-spacing:-.045em;margin:27px 0 22px}
.dash-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dash-stats>div{border:1px solid #243c4820;border-radius:6px;padding:16px;font-size:14px;letter-spacing:.1em}
.dash-stats strong{font-size:27px;letter-spacing:-.04em;display:block;margin-top:12px;font-weight:400}
.dash-bars{height:105px;display:flex;align-items:end;gap:9px;margin-top:28px;border-bottom:1px solid #243c4840;padding-bottom:8px}
.dash-bars i{background:#7896a4;flex:1;border-radius:3px 3px 0 0;height:var(--h)}
.dash-foot{font-size:14px;color:#667d88;display:flex;justify-content:space-between;margin-top:18px}
.web-visual{background:#263a43}
.web-visual:before,.web-visual:after{content:"";position:absolute;width:320px;height:320px;border:1px solid #b6d2df40;border-radius:50%;transform:rotateX(60deg) rotateZ(-25deg);box-shadow:0 0 0 35px #b6d2df09,0 0 0 70px #b6d2df05}
.web-visual:after{transform:rotateY(65deg) rotateZ(25deg)}
.web-word{font-size:54px;letter-spacing:-.07em;z-index:1;color:#e5eeeb}
.web-word span{color:var(--acid)}
.chain-visual{background:#c8d6d9;perspective:600px}
.phone{width:140px;height:240px;padding:30px 17px;background:#f0f2eb;color:#28434d;border:5px solid #ffffff8c;border-radius:25px;transform:rotateY(-25deg) rotateZ(13deg) translateY(35px);box-shadow:20px 20px 50px #19303b45}
.phone h4{font-size:27px;letter-spacing:-.05em;margin:20px 0}
.phone p{font-size:14px;line-height:1.6}
.phone div{background:#28434d;color:white;padding:10px;font-size:14px;margin-top:20px;border-radius:5px}
.chain-visual .project-number,.chain-visual .visual-tag{color:#3c5962}
.work-footer{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-top:35px;border-top:1px solid #20292b30;padding-top:25px;font-size:14px}
.work-footer a{border-bottom:1px solid #20292b66;padding-bottom:7px}
.person{position:relative;overflow:hidden}
.person-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;align-items:center;margin-top:65px}
.portrait-stage{perspective:1200px}
.portrait{position:relative;border-radius:220px 220px 12px 12px;overflow:hidden;transform:rotateY(9deg) rotateZ(-3deg);max-width:440px;border:1px solid #e3e8cf38;box-shadow:25px 35px 70px #0006;transition:transform .6s var(--ease)}
.portrait-stage:hover .portrait{transform:rotateY(0) rotateZ(0)}
.portrait img{width:100%;height:580px;object-fit:cover;object-position:center;filter:saturate(.75)}
.portrait-label{position:absolute;bottom:0;left:0;right:0;padding:45px 25px 25px;background:linear-gradient(transparent,#000b);font-size:14px;letter-spacing:.16em}
.person-copy h2{font-size:clamp(45px,5.6vw,83px);letter-spacing:-.065em;line-height:1.03;margin:25px 0 30px}
.person-copy h2 em{color:var(--acid)}
.person-copy p{font-size:14px;color:var(--muted);line-height:1.95;margin:20px 0;max-width:520px}
.person-copy .belief{font-size:18px;color:var(--text);border-left:1px solid var(--acid);padding-left:24px;margin-top:30px}
.signature{font-family:Georgia,serif;font-style:italic;font-size:35px;margin-top:26px}
.interest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:95px}
.interest{border-top:1px solid var(--line);padding-top:24px}
.interest .glyph{font-size:35px;color:var(--acid);margin:24px 0}
.interest h3{font-size:22px;letter-spacing:-.035em;margin-bottom:16px}
.interest p{font-size:14px;line-height:1.85;color:var(--muted)}
.skills{background:#10161b;position:relative;overflow:hidden}
.skills-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center;margin-top:55px}
.constellation{min-height:440px;position:relative;perspective:900px}
.constellation-lines{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.constellation-lines line{stroke:#b6cdd8;stroke-width:.5}
.skill-node{position:absolute;width:110px;height:110px;border-radius:50%;border:1px solid #bad2e955;background:#1b2932;box-shadow:inset 0 0 30px #bad2e908,0 10px 30px #0003;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;font-size:14px;transition:background .3s,transform .4s,box-shadow .3s;transform:translate(-50%,-50%);min-height:44px}
.skill-node span{font-size:22px;font-family:Georgia,serif;color:var(--acid)}
.skill-node:hover{transform:translate(-50%,-50%) scale(1.08)}
.skill-node[aria-pressed="true"]{background:var(--acid);color:#15232c;border-color:var(--acid);box-shadow:0 0 70px #bad2e924}
.skill-node[aria-pressed="true"] span{color:#355366}
.node-code{left:24%;top:28%}
.node-data{left:75%;top:28%}
.node-ai{left:50%;top:62%}
.node-product{left:18%;top:85%;width:85px;height:85px;font-size:14px}
.skill-detail{min-height:340px;border-left:1px solid var(--line);padding-left:50px}
.skill-detail h3{font-size:44px;letter-spacing:-.05em;line-height:1.1;margin:22px 0}
.skill-detail p{font-size:14px;line-height:1.85;color:var(--muted);max-width:410px}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:25px 0}
.chips li{font-size:14px;border:1px solid #bad2e930;padding:10px 14px;border-radius:30px}
.skill-note{font-size:14px;color:#b8cdd6;letter-spacing:.1em}
.journey .section-heading{margin-bottom:30px}
.timeline-row{display:grid;grid-template-columns:1fr 1.7fr 1.4fr;gap:40px;padding:34px 0;border-bottom:1px solid var(--line);align-items:start}
.timeline-row time{font-size:14px;color:var(--muted);letter-spacing:.08em;line-height:1.8}
.timeline-row h3{font-size:25px;letter-spacing:-.04em;margin-bottom:10px}
.timeline-row .company{font-size:14px;color:#bed2dc}
.timeline-row p{font-size:14px;line-height:1.85;color:var(--muted)}
.journey-foot{margin-top:25px;text-align:right;font-size:14px}
.journey-foot a{border-bottom:1px solid var(--line);padding-bottom:8px}
.contact{background:var(--acid);color:#18303b;position:relative;overflow:hidden;padding:70px 0 35px}
.contact .section-top{border-color:#18303b30}
.contact-main{position:relative;z-index:2;margin:85px 0}
.contact h2{font-size:clamp(60px,10vw,150px);line-height:.95;letter-spacing:-.075em}
.contact h2 em{letter-spacing:-.08em}
.contact p{max-width:450px;font-size:14px;line-height:1.85;margin-top:35px;color:#4a6672}
.contact .pill{border-color:#18303b60;margin-top:28px;background:#18303b;color:var(--acid)}
.contact .pill:hover{background:#344e5c}
.contact-ring{position:absolute;right:-200px;top:10%;width:700px;height:700px;border:1px solid #18303b25;border-radius:50%;box-shadow:0 0 0 70px #18303b05,0 0 0 140px #18303b04;transform:rotateX(45deg) rotateY(-25deg)}
.contact-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #18303b30;padding-top:25px;position:relative;z-index:2}
.email-tools{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.email-tools a{font-size:14px}
.copy{color:#18303b;background:none;border:1px solid #18303b50;border-radius:30px;padding:12px 18px;font-size:14px;min-height:44px}
#copy-status{font-size:14px}
footer{padding:30px 0}
.footer-inner{display:flex;justify-content:space-between;gap:25px;align-items:center}
.footer-links{display:flex;gap:25px;font-size:14px}
.footer-inner>.micro{font-size:14px;color:var(--muted)}
.reveal{transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal:not(.visible){opacity:0;transform:translateY(25px)}
.motion-button{position:fixed;right:20px;bottom:20px;z-index:90;background:#18242dee;backdrop-filter:blur(15px);border:1px solid #bad2e940;color:#deebec;border-radius:30px;padding:11px 16px;font-size:14px;min-height:42px;letter-spacing:.06em}
.motion-button:hover{background:#344e5c}
.jump-dialog{background:#111b23;color:var(--text);border:1px solid #bad2e940;border-radius:15px;width:min(520px,calc(100% - 32px));padding:30px;box-shadow:0 40px 150px #0009}
.jump-dialog::backdrop{background:#080d12c9;backdrop-filter:blur(15px)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.dialog-head button{background:none;border:1px solid var(--line);border-radius:50%;width:44px;height:44px;font-size:20px}
.jump-links{display:grid}
.jump-links a{padding:20px 0;border-top:1px solid var(--line);font-size:22px;display:flex;justify-content:space-between;letter-spacing:-.03em}
.jump-links a:hover{color:var(--acid)}
.jump-links span{font-size:14px;color:var(--muted)}
.dialog-foot{margin-top:20px;font-size:14px;color:var(--muted)}

@media(min-width:1600px){.hero h1{font-size:180px}
.hero-description{font-size:17px}
.scene-wrap{right:-7%;width:77%}
}

@media(max-width:1100px){.wrap{width:calc(100% - 64px)}
.hero{min-height:830px}
.hero h1{font-size:12vw}
.hero-description{max-width:310px}
.scene-wrap{right:-24%;width:95%}
.person-grid{gap:60px}
.interest-grid{gap:20px}
.skills-grid{gap:35px}
.skill-detail{padding-left:30px}
.timeline-row{gap:25px}
.project:first-child .project-visual{height:540px}
.dashboard3d{padding:20px;width:88%}
}

@media(max-width:760px){.wrap{width:calc(100% - 40px)}
.nav{height:70px}
.nav-mid{display:none}
.nav-contact{display:none}
.nav-button{font-size:14px;padding:12px 16px}
.hero{min-height:950px;height:auto;max-height:none;padding-top:70px}
.hero-layout{justify-content:flex-start;padding-top:60px;min-height:880px}
.hero h1{font-size:clamp(65px,13.4vw,100px);width:100%;margin-left:-3px}
.hero-topline{font-size:14px;margin-bottom:25px}
.hero-description{font-size:14px;max-width:330px;margin-top:25px}
.hero-cta{gap:22px;margin-top:23px}
.hero-cta .pill{font-size:14px;padding:12px 18px;gap:25px}
.hero-floor{bottom:22px}
.hero-floor .middle{display:none}
.hero-floor .micro{font-size:14px;letter-spacing:.1em}
.hero-index{gap:14px}
.scene-wrap{top:360px;right:-16%;width:125%;height:490px}
.scene-label{top:40%;right:17%;font-size:14px}
.scene-caption{bottom:9%;font-size:14px;right:20%}
.ticker{gap:30px;justify-content:flex-start;font-size:14px;padding:20px}
.section{padding:75px 0}
.section-top .micro{font-size:14px}
.section-top .muted{max-width:135px;text-align:right}
.section-heading{display:block;margin:40px 0}
.section-heading h2{font-size:clamp(46px,10vw,70px)}
.section-heading p{margin-top:25px;font-size:14px}
.work{border-radius:25px 25px 0 0}
.work-grid{grid-template-columns:1fr;gap:25px}
.project:first-child{grid-row:auto}
.project:first-child .project-visual{height:400px}
.project-visual{height:290px}
.project-meta{padding:22px}
.project-meta h3{font-size:25px}
.dashboard3d{width:80%;max-width:400px;padding:23px}
.dash-welcome{font-size:23px}
.dash-bars{height:70px}
.work-footer{display:block;font-size:14px;line-height:1.8}
.work-footer a{display:inline-block;margin-top:15px}
.person-grid{grid-template-columns:1fr;gap:55px;margin-top:45px}
.portrait{width:85%;max-width:390px;margin:auto;transform:rotateZ(-3deg)}
.portrait img{height:470px}
.person-copy h2{font-size:clamp(43px,10vw,68px)}
.person-copy p{font-size:14px}
.person-copy .belief{font-size:16px}
.interest-grid{grid-template-columns:1fr 1fr;gap:35px 22px;margin-top:60px}
.interest h3{font-size:21px}
.interest p{font-size:14px}
.interest .micro{font-size:14px}
.skills-grid{grid-template-columns:1fr;gap:25px;margin-top:10px}
.constellation{min-height:350px;max-width:500px;width:100%;margin:auto}
.skill-node{width:90px;height:90px;font-size:14px}
.node-product{width:75px;height:75px;font-size:14px}
.skill-detail{border-left:0;border-top:1px solid var(--line);padding:30px 0 0;min-height:350px}
.skill-detail h3{font-size:37px;margin:20px 0}
.skill-detail p{font-size:14px}
.timeline-row{grid-template-columns:1fr;gap:15px;padding:28px 0}
.timeline-row h3{font-size:24px}
.timeline-row p{max-width:450px}
.contact{padding:50px 0 30px}
.contact-main{margin:60px 0}
.contact h2{font-size:clamp(57px,12.6vw,90px)}
.contact p{font-size:14px}
.contact-ring{right:-440px;top:0}
.contact-bottom{display:block}
.email-tools{gap:14px;margin-top:20px}
.footer-inner{flex-wrap:wrap}
.footer-links{gap:20px}
.footer-inner>.micro{width:100%;order:3;padding-right:80px;line-height:1.9}
.motion-button{right:12px;bottom:12px;font-size:14px;padding:10px 12px}
}

@media(max-width:360px){.hero h1{font-size:13vw}
.hero-description{max-width:270px}
.hero{min-height:920px}
.hero-layout{min-height:850px}
.scene-wrap{top:385px;height:410px}
.hero-topline{font-size:14px}
.hero-cta{gap:16px}
.quiet{font-size:14px}
.project:first-child .project-visual{height:350px}
.dashboard3d{width:86%;padding:15px}
.dash-stats>div{padding:12px}
.dash-head strong{font-size:21px}
.dash-welcome{margin:20px 0}
.portrait img{height:410px}
.interest-grid{grid-template-columns:1fr}
.interest p{max-width:270px}
.skill-node{width:80px;height:80px}
.node-product{width:68px;height:68px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{transition-duration:.01ms!important;animation:none!important}
.js .reveal:not(.visible){opacity:1;transform:none}
}

@media(min-width:361px) and (max-width:760px){.hero{min-height:1050px}
.hero-layout{min-height:980px}
.scene-wrap{top:500px;height:430px}
}

@media(max-width:360px){.scene-wrap{top:480px;height:380px}
.hero{min-height:1000px}
.hero-layout{min-height:930px}
}


.brand{display:inline-flex;align-items:center;gap:13px;flex:none}
.logo-mark{font-size:35px;font-weight:700;letter-spacing:-.11em;line-height:1}
.logo-dot{color:#bad2e9}
.logo-wordmark{font-size:14px;letter-spacing:.22em;font-weight:700;line-height:1.42}
.logo-wordmark>span{display:block;opacity:.57;letter-spacing:.2em}
.hero h1 .serif{color:#c3d2d7}
.nav-contact{background:#e9edeb;color:#11181b}
.ticker b{color:#bfddc8}
.contact{background:linear-gradient(120deg,#bdced9,#c6d7d7)}
.contact .pill{color:#e9f0ed}
.skill-node[aria-pressed="true"]{background:#c3d2d7}
.origin-panel{display:grid;grid-template-columns:1fr 1.3fr;gap:70px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:50px 0;margin-top:85px}
.origin-intro h3{font-size:clamp(31px,3.4vw,48px);line-height:1.15;letter-spacing:-.045em;margin-top:20px}
.origin-intro h3 em{color:#bed2d0}
.route-cities{display:flex;justify-content:space-between;gap:25px}
.route-cities strong{display:block;font-size:30px;font-weight:400;letter-spacing:-.05em;margin-top:13px}
.route-cities strong>span{display:block;font-size:14px;font-weight:400;letter-spacing:0;color:var(--muted);margin-top:8px}
.route-destination{text-align:right}
.route-cities .micro{font-size:14px}
.route-art{display:block;width:100%;height:auto;margin-top:5px;overflow:visible}
.origin-route>p{color:var(--muted);font-size:14px;line-height:1.85;margin-top:15px;max-width:500px}
.route-path{stroke-dasharray:680;stroke-dashoffset:0}
.js .origin-panel:not(.visible) .route-path{stroke-dashoffset:680}
.origin-panel.visible .route-path{transition:stroke-dashoffset 2s var(--ease)}
.case-detail{margin:0 24px 25px;border-top:1px solid #20292b30}
.case-detail summary{cursor:pointer;font-size:14px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:52px}
.case-detail summary::-webkit-details-marker{display:none}
.case-detail[open] summary>span{transform:rotate(90deg)}
.case-detail dl{display:grid;gap:22px;margin:12px 0 5px}
.case-detail dt{font-size:14px;letter-spacing:.13em;text-transform:uppercase;color:#49666d;font-weight:650}
.case-detail dd{font-size:14px;line-height:1.85;color:#6e7475;margin:8px 0 0;max-width:450px}
.case-detail summary:focus-visible{outline:2px solid #7896a4;outline-offset:3px}
.connect-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin:0 0 50px;position:relative;z-index:2}
.connect-paths a{display:block;border-top:1px solid #18303b40;padding:22px 0;transition:transform .3s var(--ease)}
.connect-paths a:hover{transform:translateY(-4px)}
.connect-paths .micro{font-size:14px;color:#466571}
.connect-paths strong{display:flex;justify-content:space-between;gap:15px;font-size:24px;letter-spacing:-.04em;font-weight:400;margin:20px 0 13px}
.connect-paths p{font-size:14px;line-height:1.8;max-width:280px;color:#4a6672;margin:0}
.contact-main{margin-bottom:60px}
.work .section-heading h2 .serif{color:#839a98}
.person-copy h2 em{color:#bbd2cf}

@media(max-width:1100px){.nav-mid{gap:23px}
.nav{gap:20px}
.origin-panel{gap:40px}
.connect-paths{gap:24px}
.connect-paths strong{font-size:22px}
}

@media(max-width:760px){.logo-mark{font-size:31px}
.logo-wordmark{font-size:14px}
.origin-panel{grid-template-columns:1fr;gap:35px;margin-top:55px;padding:35px 0}
.origin-intro h3{font-size:37px}
.route-cities strong{font-size:29px}
.connect-paths{grid-template-columns:1fr;gap:8px;margin-bottom:30px}
.connect-paths a{padding:20px 0}
.connect-paths strong{font-size:26px;margin:14px 0 10px}
.connect-paths p{max-width:none}
.contact-main{margin-bottom:45px}
}


/* A quieter opening: spacious typography and a single tactile form. */
.hero{min-height:800px;height:100svh;max-height:1100px;background:radial-gradient(ellipse at 79% 44%,#52677216,transparent 43%),#0b0f13}
.hero:after{display:none}
.hero-layout{padding-top:0;justify-content:center}
.hero-topline{margin-bottom:32px;font-size:14px;letter-spacing:.2em;color:#a5b5bb}
.hero-topline .live-dot{width:5px;height:5px;background:#bfddc8;box-shadow:none}
.hero h1{font-size:clamp(64px,6.6vw,104px);line-height:1.09;letter-spacing:-.065em;width:70%;margin-left:-4px}
.hero h1 .serif{color:#c3d2d7;letter-spacing:-.06em;white-space:nowrap}
.hero-description{font-size:15px;line-height:1.95;max-width:400px;color:#a9b6bc;margin-top:31px}
.hero-cta{margin-top:34px;gap:31px}
.hero-cta .pill{background:#e5eae8;color:#16242b;border:0;min-height:56px;gap:35px;padding:15px 24px}
.hero-cta .pill:hover{background:#bad2e9}
.hero-cta .quiet{color:#b9c5c9;border-color:#71838c66}
.hero-floor{bottom:35px}
.hero-floor .micro{font-size:14px;letter-spacing:.12em;line-height:1.85;color:#82959f}
.hero-floor .middle{font-size:14px;color:#71858e}
.hero-index{gap:20px}
.scroll-disc{width:33px;height:46px;color:#99afb9;border-color:#8ca3af38}
.scene-wrap{top:8%;right:-2%;width:55%;height:82%;mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 88%,transparent);filter:drop-shadow(0 35px 40px #0006)}
.scene-wrap:before{content:"";position:absolute;left:20%;right:20%;bottom:10%;height:8%;background:#000;opacity:.3;border-radius:50%;filter:blur(25px);z-index:-1}
.scene-caption{bottom:7%;left:0;right:0;justify-content:center;font-family:Georgia,serif;font-style:italic;text-transform:none;font-size:18px;letter-spacing:-.02em;color:#91a6b1}
.scene-fallback{inset:24% 16%;border:45px solid #9bb2bb;border-radius:48% 52% 50% 46%;box-shadow:inset 12px 12px 25px #07121c88,20px 22px 60px #0005;transform:rotate(-22deg);background:transparent}
.scene-fallback:before,.scene-fallback:after{display:none}

@media(min-width:1600px){.hero h1{font-size:110px}
.scene-wrap{right:-4%;width:55%;top:8%;height:82%}
.hero-description{font-size:16px}
}

@media(max-width:1100px) and (min-width:761px){.hero{min-height:780px}
.hero h1{font-size:6.6vw}
.scene-wrap{right:-11%;width:62%;height:72%;top:15%}
.hero-description{max-width:350px;font-size:14px}
.hero-floor .middle{display:none}
}

@media(max-width:760px){.hero{min-height:1020px;height:auto;max-height:none}
.hero-layout{min-height:950px;padding-top:68px;justify-content:flex-start}
.hero-topline{font-size:14px;margin-bottom:26px}
.hero h1{font-size:clamp(34px,10.8vw,72px);line-height:1.16;width:100%;letter-spacing:-.06em;margin-left:-2px}
.hero-description{font-size:14px;line-height:1.9;max-width:350px;margin-top:27px}
.hero-cta{margin-top:28px;gap:25px}
.hero-cta .pill{min-height:50px;padding:13px 20px;gap:25px;font-size:14px}
.hero-cta .quiet{font-size:14px}
.scene-wrap{width:118%;right:-9%;top:455px;height:450px}
.scene-caption{font-size:17px;bottom:5%}
.hero-floor{bottom:27px}
.hero-floor .micro{font-size:14px;letter-spacing:.09em}
.hero-floor .middle{display:none}
.hero-index{gap:12px}
.scroll-disc{height:40px;width:28px;font-size:15px}
}

@media(max-width:360px){.hero{min-height:970px}
.hero-layout{min-height:900px;padding-top:58px}
.hero h1{font-size:10.7vw}
.hero-description{max-width:280px;font-size:14px}
.hero-cta{gap:18px}
.hero-cta .pill{padding:12px 16px;gap:18px}
.scene-wrap{top:450px;height:390px}
}


/* Readability and a continuous, low-glare slate palette. */
:root{
  --bg:#17232c;
  --paper:#202f3a;
  --text:#f1f3f1;
  --muted:#bbc9d0;
  --acid:#c1d8e8;
  --line:#aec4cf33;
  font-size:16px;
}
body{background:var(--bg);line-height:1.65}
header{background:#17232cef;border-bottom-color:var(--line)}
.nav-mid a{font-size:15px;color:#d2dce0}
.nav-button,.nav-contact{font-size:14px}
.logo-wordmark{font-size:11px}
.micro{font-size:14px;letter-spacing:.09em;line-height:1.65}
.hero{background:radial-gradient(ellipse at 76% 40%,#526e7d24,transparent 49%),linear-gradient(180deg,#17232c 0%,#1c2933 100%)}
.hero-topline{font-size:18px;letter-spacing:.06em;color:#d3e2e8;font-weight:600;margin-bottom:28px}
.hero-topline .live-dot{width:7px;height:7px}
.hero-description{font-size:18px;line-height:1.85;color:#c5d2d8;max-width:470px}
.hero-cta .pill,.hero-cta .quiet{font-size:16px}
.hero-cta .quiet{color:#d4e0e5}
.hero-floor .micro,.hero-floor .middle{font-size:13px;letter-spacing:.045em;line-height:1.75;color:#b5c7d0}
.scene-caption{font-size:21px;color:#b5c9d2}
.ticker{background:#1c2933;color:#c4d4dc;font-size:14px;letter-spacing:.09em;border-color:var(--line);padding:25px}
.work{background:linear-gradient(180deg,#1c2933 0%,#202f3a 28%,#202f3a 78%,#1c2933 100%);color:var(--text);border-radius:0}
.work .section-top,.work-footer,.case-detail{border-color:var(--line)}
.work .muted,.work .section-heading p,.project-meta p,.case-detail dd{color:#c1cfd6}
.work .section-heading h2 .serif{color:#c1d7ce}
.section-heading p,.project-meta p,.person-copy p,.interest p,.skill-detail p,.timeline-row p,.origin-route>p,.case-detail dd,.contact p,.connect-paths p{font-size:17px;line-height:1.85}
.section-heading p{max-width:400px}
.section-top .micro{font-size:14px;letter-spacing:.075em}
.project{background:#23343f;border-color:#aec4cf33}
.project-meta{padding:27px}
.project-meta h3{font-size:30px}
.project-meta p{max-width:430px}
.project-meta .micro{font-size:13px}
.project-number,.visual-tag{font-size:12px;letter-spacing:.06em;left:24px;right:20px;line-height:1.7}
.project-number{color:#d7e5ea}
.visual-tag{color:#d0dfe5}
.dashboard3d{background:#c9d6da;color:#243a46}
.dash-stats>div,.dash-foot{font-size:12px;letter-spacing:.035em}
.dash-foot{color:#3c5663;gap:14px}
.dash-head{font-size:14px}
.dash-stats strong{font-size:25px}
.dash-stats>div{padding:15px 12px}
.project:first-child .project-visual{min-height:570px}
.chain-visual{background:#607c8a}
.chain-visual .project-number,.chain-visual .visual-tag{color:#f2f4ef}
.phone{background:#ccd8da}
.phone p,.phone div{font-size:11px}
.phone div{padding:9px 6px}
.case-detail{margin:0 27px 27px}
.case-detail summary{font-size:16px;min-height:58px;color:#e0e9ed}
.case-detail dt{font-size:13px;color:#bfd6dc;letter-spacing:.065em}
.work-footer{font-size:16px;color:#ccd9df;align-items:start}
.work-footer a{border-color:#a8c0cc80;white-space:nowrap}
.person{background:linear-gradient(180deg,#1c2933,#17232c 22%,#17232c 80%,#1c2b35)}
.person-copy .belief{font-size:20px;line-height:1.8}
.portrait-label{font-size:13px;letter-spacing:.08em;color:#eef1ec}
.interest .micro{font-size:13px}
.interest h3{font-size:26px}
.interest p{font-size:16px}
.origin-route>p{max-width:560px}
.route-cities .micro{font-size:13px}
.route-cities strong>span{font-size:15px;color:#c2d1d9}
.skills{background:linear-gradient(180deg,#1c2b35,#20323d 25%,#20323d 80%,#1d2c36)}
.skill-node{background:#2b404d;font-size:15px;width:118px;height:118px;color:#e4edf1}
.node-product{font-size:14px;width:100px;height:100px}
.skill-node[aria-pressed="true"]{background:#c3d2d7;color:#15232c}
.chips li{font-size:15px;border-color:#aec4cf50;color:#e0e8eb}
.skill-note{font-size:13px;letter-spacing:.065em;color:#c5dbe2;line-height:1.8;display:block}
.journey{background:linear-gradient(180deg,#1d2c36,#1b2a34 70%,#233742)}
.timeline-row time{font-size:14px;letter-spacing:.035em;color:#c6d4dc}
.timeline-row .company{font-size:16px;color:#c6dbe5;line-height:1.75}
.journey-foot{font-size:16px}
.contact{background:linear-gradient(180deg,#233742,#2b424e 45%,#2b424e);color:var(--text)}
.contact .section-top,.contact-bottom,.connect-paths a{border-color:#aec4cf40}
.contact p,.connect-paths p{color:#cbd9df}
.contact-main>p{max-width:540px}
.contact .pill{font-size:16px;background:#d2e1e5;color:#19313d;border-color:transparent}
.contact .pill:hover{background:#e3ecec}
.contact-ring{border-color:#bad2e91a;box-shadow:0 0 0 70px #bad2e906,0 0 0 140px #bad2e904}
.connect-paths .micro{font-size:13px;color:#d0e1e7}
.connect-paths strong{font-size:27px;color:#f1f3f1}
.connect-paths p{font-size:16px}
.contact-bottom{flex-wrap:wrap}
.contact-bottom>.micro{font-size:13px;max-width:430px}
.email-tools a{font-size:16px;color:#e5edf0}
.copy{font-size:14px;color:#e5edf0;border-color:#b5cbd67a}
.copy:hover{background:#bfd3dd14}
#copy-status{font-size:14px;color:#d7e8e2}
footer{background:#243944}
.footer-inner>.micro{font-size:13px;color:#c1d0d8;letter-spacing:.04em;line-height:1.85}
.footer-links{font-size:14px;color:#e0eaee}
.motion-button{font-size:13px;letter-spacing:.025em;color:#e2edf1;background:#273d49f2;min-height:44px}
.jump-dialog{background:#21333e}
.jump-links span,.dialog-foot{font-size:14px;color:#c6d5dc}
@media(max-width:1100px){
  .nav-mid{gap:20px}
  .nav-mid a{font-size:14px}
  .nav{gap:18px}
  .hero-description{max-width:410px}
  .hero-floor .middle{display:none}
  .project:first-child .project-visual{min-height:570px}
  .footer-inner{flex-wrap:wrap}
  .footer-inner>.micro{max-width:450px}
}
@media(max-width:980px){.nav-mid{display:none}}
@media(max-width:760px){
  .logo-wordmark{font-size:11px}
  .hero{min-height:1150px}
  .hero-layout{min-height:1080px;padding-top:62px}
  .hero-topline{font-size:17px;letter-spacing:.05em;margin-bottom:26px}
  .hero-description{font-size:17px;line-height:1.8;max-width:410px}
  .hero-cta{flex-wrap:wrap;gap:20px;margin-top:28px}
  .hero-cta .pill,.hero-cta .quiet{font-size:15px}
  .scene-wrap{top:555px;height:440px}
  .hero-floor .micro{font-size:12px;letter-spacing:.035em}
  .hero-floor{bottom:35px}
  .scene-caption{font-size:20px;bottom:3%}
  .ticker{font-size:13px;gap:28px;padding:23px 20px}
  .section-top{align-items:start}
  .section-top .micro{font-size:13px;letter-spacing:.055em}
  .section-top .muted{max-width:160px}
  .section-heading p,.project-meta p,.person-copy p,.interest p,.skill-detail p,.timeline-row p,.origin-route>p,.case-detail dd,.contact p,.connect-paths p{font-size:16px;line-height:1.85}
  .section-heading p{max-width:470px}
  .project-meta{padding:23px}
  .project-meta .micro{font-size:12px}
  .project-number,.visual-tag{font-size:12px;left:20px;right:18px}
  .project:first-child .project-visual{height:460px;min-height:460px}
  .dashboard3d{width:86%;padding:20px}
  .dash-head{font-size:12px}
  .dash-stats strong{font-size:22px}
  .dash-stats>div,.dash-foot{font-size:11px}
  .dash-stats>div{padding:13px 9px}
  .dash-foot{flex-wrap:wrap;gap:5px;line-height:1.6}
  .dash-welcome{font-size:26px}
  .case-detail{margin:0 23px 23px}
  .work-footer{font-size:16px}
  .person-copy .belief{font-size:19px}
  .interest .micro{font-size:12px}
  .interest h3{font-size:25px}
  .route-cities{gap:18px}
  .route-cities .micro{font-size:12px;letter-spacing:.035em;display:block;max-width:130px;min-height:40px}
  .route-cities strong>span{font-size:14px}
  .skill-node{width:100px;height:100px;font-size:14px}
  .node-product{width:86px;height:86px;font-size:13px}
  .chips li{font-size:14px}
  .skill-detail{min-height:420px}
  .timeline-row time{font-size:14px}
  .timeline-row .company{font-size:16px}
  .connect-paths .micro{font-size:13px}
  .contact .section-top{flex-wrap:wrap;gap:14px}
  .contact-bottom>.micro{font-size:13px}
  .footer-inner>.micro{font-size:12px;padding-right:0}
  .footer-inner{padding-bottom:60px}
  .motion-button{font-size:12px}
}
@media(max-width:360px){
  .hero{min-height:1180px}
  .hero-layout{min-height:1110px;padding-top:55px}
  .hero-description{font-size:16px;max-width:none}
  .scene-wrap{top:610px;height:380px}
  .hero-floor{bottom:40px}
  .hero-floor .micro{font-size:12px}
  .section-top{flex-direction:column;gap:10px}
  .section-top .muted{max-width:none;text-align:left}
  .skill-node{width:88px;height:88px;font-size:13px}
  .node-product{width:78px;height:78px}
  .dash-head{flex-wrap:wrap;gap:10px}
}

/* Keep illustration captions readable against the artwork as it tilts. */
.project-number,.visual-tag{z-index:2;width:fit-content;max-width:calc(100% - 40px);right:auto;background:#172b35f2;color:#e1ecf0;border-radius:5px;padding:5px 9px;letter-spacing:.035em}
.project-number{top:18px}
.visual-tag{bottom:18px}
.chain-visual{background:#4a6472}
.chain-visual .project-number,.chain-visual .visual-tag{color:#e1ecf0}
.scene-wrap{mask-image:none}


/* Chapter palettes: midnight, mineral sage, deep teal, and warm stone. */
:root{--bg:#172630;--muted:#bbcbd2;--line:#aec4cf3d}
body{background:#172630}
header{background:#15232ddc;box-shadow:0 12px 45px #07121b15}
.nav-contact{background:linear-gradient(135deg,#e8eee7,#cadcde);box-shadow:0 4px 20px #07121b22}
.hero{background:radial-gradient(ellipse at 80% 32%,#6d929f30,transparent 45%),radial-gradient(ellipse at 56% 15%,#b7a3830c,transparent 50%),linear-gradient(155deg,#18252f,#142530 65%,#1d3037)}
.hero h1 .serif{color:#c5d9d9}
.hero-topline{color:#d1e1e6}
.hero-topline .live-dot{box-shadow:0 0 15px #c0d9c94a}
.hero-cta .pill{background:linear-gradient(130deg,#edf0e9,#c8d9db);box-shadow:0 9px 30px #07131e33,inset 0 1px 0 #fff9}
.hero-cta .pill:hover{box-shadow:0 15px 35px #07131e55}
.scene-wrap{filter:drop-shadow(0 24px 40px #06101940)}
.scene-wrap:before{inset:auto 18% 10%;height:9%;background:#050f1a;filter:blur(24px);opacity:.5;animation:shadow-breathe 9s ease-in-out infinite}
.scene-wrap:after{content:"";position:absolute;z-index:-1;inset:16% 3% 22%;border-radius:50%;background:radial-gradient(ellipse,#acc6c51f,transparent 67%);filter:blur(25px);animation:aura-breathe 12s ease-in-out infinite alternate}
.scene-caption{color:#bad0d8}
@keyframes shadow-breathe{50%{transform:scaleX(.78);opacity:.3}}
@keyframes aura-breathe{to{transform:translate(3%,-3%) scale(1.1);opacity:.55}}
.motion-paused .scene-wrap:before,.motion-paused .scene-wrap:after{animation-play-state:paused}
.ticker{background:#1d3037;color:#cbdadf;border-top-color:#c5d7df21;border-bottom:0}
.work{background:#bdc9c1;color:#20332f;padding-top:170px;padding-bottom:190px;position:relative;isolation:isolate}
.work:before{content:"";position:absolute;left:0;right:0;top:0;height:85px;background:linear-gradient(#1d3037,#566e69 40%,#bdc9c1);z-index:-1;pointer-events:none}
.work:after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(#bdc9c1,#526361 58%,#1b2a32);z-index:-1;pointer-events:none}
.work .section-top,.work-footer,.case-detail{border-color:#29423938}
.work .muted,.work .section-heading p{color:#374f46}
.work .section-heading h2 .serif{color:#506b61}
.work-grid{gap:30px}
.project{background:linear-gradient(135deg,#e1e6dd,#d2dcd4);border-color:#fff5;box-shadow:0 12px 35px #293e3520,inset 0 1px 0 #fff8}
.project:hover{box-shadow:0 26px 55px #213c3c35}
.project-meta h3,.project-arrow{color:#233a34}
.project-meta .muted,.project-meta p,.case-detail dd{color:#3e5850}
.case-detail summary{color:#263f37}
.case-detail dt{color:#3e5c50}
.case-detail summary:focus-visible{outline-color:#385f55}
.project:first-child .project-visual{background:radial-gradient(ellipse at 65% 10%,#6c8a87,#294847 65%,#263a3e)}
.dashboard3d{background:linear-gradient(130deg,#e2e9e3,#c8d8d5);box-shadow:25px 45px 70px #0b222c55,inset 0 1px 0 #fff}
.web-visual{background:radial-gradient(ellipse at 60% 20%,#456e63,#2a4c42 70%)}
.chain-visual{background:linear-gradient(135deg,#658492,#42616e)}
.work-footer{color:#2f4c42}
.work-footer a{border-color:#36544877}
.person{background:radial-gradient(ellipse at 15% 40%,#78919413,transparent 45%),linear-gradient(#1b2a32,#192730 72%,#1a3034)}
.portrait{border-color:#d2dfd34d;box-shadow:0 0 0 12px #c4d6cc07,25px 35px 70px #06121c66}
.person-copy h2 em{color:#bbd4ce}
.person-copy .belief{color:#e0e9e6;border-color:#b4cdbd}
.origin-panel{border-color:#b1cbc23d}
.origin-intro h3 em{color:#bdd4c4}
.interest-grid{gap:18px}
.interest{border:1px solid #bfd6cd30;border-radius:14px;padding:24px;background:linear-gradient(140deg,#b6cec60e,#c6d8de03);box-shadow:inset 0 1px 0 #d5e6dd09;transition:transform .4s var(--ease),background .4s}
.interest:hover{transform:translateY(-5px);background:linear-gradient(140deg,#b6cec61b,#c6d8de05)}
.interest .glyph{color:#bbd3bf}
.skills{background:radial-gradient(ellipse at 18% 55%,#96c6b31c,transparent 50%),linear-gradient(#1a3034,#1b3b3a 30%,#1b3b3a 75%,#203d3a)}
.skills .section-heading h2 .serif{color:#c2d8c2}
.skill-node{background:linear-gradient(135deg,#4c70674d,#244c47b3);border-color:#b6d8c36b;box-shadow:inset 0 1px 0 #dcf1df25,0 16px 30px #081f2440}
.skill-node[aria-pressed="true"]{background:linear-gradient(130deg,#e1ead7,#bdd5c6);border-color:#e0eddb;color:#1d3830;box-shadow:0 0 50px #b6ddbf1a,inset 0 1px 0 #fff9}
.skill-node span{color:#c2dbbf}
.skill-node[aria-pressed="true"] span{color:#3e6552}
.skill-note{color:#c3dfcf}
.journey{background:#d1c7b7;color:#30362e;padding-top:170px;padding-bottom:120px;position:relative;isolation:isolate}
.journey:before{content:"";position:absolute;left:0;right:0;top:0;height:85px;background:linear-gradient(#203d3a,#77877a 48%,#d1c7b7);z-index:-1}
.journey .section-top,.timeline-row{border-color:#414f4033}
.journey .muted,.journey .section-heading p,.timeline-row time,.timeline-row p{color:#434f3f}
.journey .section-heading h2 .serif{color:#64745a}
.timeline-row .company{color:#405e4a}
.timeline-row h3{color:#2e3c30}
.journey-foot a{color:#334d3c;border-color:#405e4a66}
.contact{background:linear-gradient(170deg,#b4c5c7,#a2bbc4 55%,#9bb6c2);color:#203d49;padding-top:100px}
.contact:before{content:"";position:absolute;top:0;left:0;right:0;height:65px;background:linear-gradient(#d1c7b7,#b4c5c7);pointer-events:none}
.contact .section-top,.contact-bottom,.connect-paths a{border-color:#304f5d38}
.contact p,.connect-paths p{color:#263f4a}
.contact h2 em{color:#36586a}
.contact .pill{background:linear-gradient(135deg,#233e4d,#1b3542);color:#edf3ef;box-shadow:0 10px 25px #24485628,inset 0 1px 0 #d8e6ea24}
.contact .pill:hover{background:#365769}
.contact-ring{border-color:#32556228;box-shadow:0 0 0 70px #32556206,0 0 0 140px #32556205}
.connect-paths .micro{color:#294754}
.connect-paths strong{color:#233e4b}
.email-tools a,.copy{color:#233e4b}
.copy{border-color:#3a5b6b7d}
.copy:hover{background:#e9f0eb35}
#copy-status{color:#264d3b}
footer{background:#1c303c;border-top:1px solid #d4e1e82b}
.motion-button{background:#263c46ec;color:#e4eeed;border-color:#c3d9dc5c}
@media(max-width:1100px){.interest-grid{grid-template-columns:1fr 1fr;gap:22px}.interest p{max-width:420px}}
@media(max-width:760px){
 .work{padding-top:130px;padding-bottom:145px}
 .work:before{height:65px}.work:after{height:65px}
 .project-meta h3{font-size:29px}
 .interest-grid{gap:18px;grid-template-columns:1fr}
 .interest{padding:26px}.interest .glyph{margin:18px 0}
 .journey{padding-top:130px;padding-bottom:85px}.journey:before{height:65px}
 .contact{padding-top:100px}
}


/* Compact color bridges fit inside normal section spacing. */
.section{padding-top:88px;padding-bottom:96px}
@media(max-width:760px){.section{padding-top:64px;padding-bottom:72px}}

.work{padding-top:96px;padding-bottom:88px}
.work:before{height:40px;background:linear-gradient(180deg,#1d3037 0.00%,#1e3138 8.33%,#23353c 16.67%,#2e4045 25.00%,#3f5054 33.33%,#546567 41.67%,#6d7d7c 50.00%,#869491 58.33%,#9ba9a4 66.67%,#acb9b3 75.00%,#b7c4bc 83.33%,#bcc8c0 91.67%,#bdc9c1 100.00%)}
.work:after{height:40px;background:linear-gradient(180deg,#bdc9c1 0.00%,#bcc8c0 8.33%,#b7c3bc 16.67%,#acb9b2 25.00%,#9ba8a3 33.33%,#85928f 41.67%,#6c7a7a 50.00%,#536164 58.33%,#3d4b50 66.67%,#2c3a41 75.00%,#213037 83.33%,#1c2b33 91.67%,#1b2a32 100.00%)}
.journey{padding-top:96px;padding-bottom:88px}
.journey:before{height:40px;background:linear-gradient(180deg,#203d3a 0.00%,#213e3b 8.33%,#26423e 16.67%,#324b47 25.00%,#455a54 33.33%,#5d6d65 41.67%,#798279 50.00%,#94978c 58.33%,#acaa9d 66.67%,#bfb9aa 75.00%,#cbc2b3 83.33%,#d0c6b6 91.67%,#d1c7b7 100.00%)}
.contact{padding-top:84px;padding-bottom:96px;isolation:isolate}
.contact:before{height:32px;background:linear-gradient(180deg,#d1c7b7 0.00%,#d1c7b7 8.33%,#d0c7b8 16.67%,#cec7b9 25.00%,#cbc7ba 33.33%,#c7c6bd 41.67%,#c3c6bf 50.00%,#bec6c1 58.33%,#bac5c4 66.67%,#b7c5c5 75.00%,#b5c5c6 83.33%,#b4c5c7 91.67%,#b4c5c7 100.00%);z-index:-1}
.contact:after{content:"";position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(180deg,#9bb6c2 0.00%,#9ab5c1 8.33%,#96b1bd 16.67%,#8ea8b4 25.00%,#809aa6 33.33%,#6f8894 41.67%,#5c737f 50.00%,#485e6a 58.33%,#374c58 66.67%,#293e4a 75.00%,#213541 83.33%,#1d313d 91.67%,#1c303c 100.00%);pointer-events:none;z-index:-1}
@media(max-width:760px){
 .work{padding-top:76px;padding-bottom:72px}
 .work:before{height:28px}.work:after{height:28px}
 .journey{padding-top:76px;padding-bottom:72px}.journey:before{height:28px}
 .contact{padding-top:72px;padding-bottom:84px}
 .contact:before{height:24px}.contact:after{height:28px}
}


/* One continuous color curve spans both sides of a boundary. It uses
   existing padding; content positions and page height do not change. */
.person,.skills,footer{isolation:isolate}
footer{position:relative}
.person:before,.skills:after,footer:before{content:"";position:absolute;left:0;right:0;pointer-events:none;z-index:-1}
.person:before,footer:before{top:0}
.skills:after{bottom:0}
.work:before{height:96px;background:linear-gradient(180deg,#1d3037 0.000%,#1d3037 4.167%,#1e3138 8.333%,#203239 12.500%,#23353c 16.667%,#273a40 20.833%,#2e4045 25.000%,#35474c 29.167%,#3f5054 33.333%,#495a5d 37.500%,#546567 41.667%,#617171 45.833%,#6d7d7c 50.000%,#798887 54.167%,#869491 58.333%,#919f9b 62.500%,#9ba9a4 66.667%,#a5b2ac 70.833%,#acb9b3 75.000%,#b3bfb8 79.167%,#b7c4bc 83.333%,#bac7bf 87.500%,#bcc8c0 91.667%,#bdc9c1 95.833%,#bdc9c1 100.000%)}
.work:after{height:88px;background:linear-gradient(180deg,#bdc9c1 0.000%,#bdc9c1 4.167%,#bdc9c1 8.333%,#bdc9c1 12.500%,#bcc8c0 16.667%,#bbc7c0 20.833%,#bac6bf 25.000%,#b9c5bd 29.167%,#b7c3bc 33.333%,#b5c1ba 37.500%,#b3bfb8 41.667%,#b0bcb5 45.833%,#acb9b2 50.000%,#a8b5af 54.167%,#a4b1ab 58.333%,#a0aca7 62.500%,#9ba8a3 66.667%,#96a39e 70.833%,#909d9a 75.000%,#8b9895 79.167%,#85928f 83.333%,#7f8c8a 87.500%,#798685 91.667%,#72807f 95.833%,#6c7a7a 100.000%)}
.person:before{height:88px;background:linear-gradient(180deg,#6c7a7a 0.000%,#667374 4.167%,#5f6d6e 8.333%,#596769 12.500%,#536164 16.667%,#4d5b5e 20.833%,#485659 25.000%,#425055 29.167%,#3d4b50 33.333%,#38474c 37.500%,#344248 41.667%,#303e44 45.833%,#2c3a41 50.000%,#28373e 54.167%,#25343b 58.333%,#233239 62.500%,#213037 66.667%,#1f2e36 70.833%,#1e2d34 75.000%,#1d2c33 79.167%,#1c2b33 83.333%,#1b2a32 87.500%,#1b2a32 91.667%,#1b2a32 95.833%,#1b2a32 100.000%)}

.skills:after{height:96px;background:linear-gradient(180deg,#203d3a 0.000%,#203d3a 4.167%,#203d3a 8.333%,#203d3a 12.500%,#213e3b 16.667%,#223e3b 20.833%,#233f3c 25.000%,#24403d 29.167%,#26423e 33.333%,#294440 37.500%,#2b4642 41.667%,#2f4844 45.833%,#324b47 50.000%,#364e4a 54.167%,#3b524d 58.333%,#405651 62.500%,#455a54 66.667%,#4b5e58 70.833%,#51635c 75.000%,#576861 79.167%,#5d6d65 83.333%,#64726a 87.500%,#6b776f 91.667%,#727d74 95.833%,#798279 100.000%)}
.journey:before{height:96px;background:linear-gradient(180deg,#798279 0.000%,#7f877d 4.167%,#868d82 8.333%,#8d9287 12.500%,#94978c 16.667%,#9a9c90 20.833%,#a0a195 25.000%,#a6a699 29.167%,#acaa9d 33.333%,#b1aea0 37.500%,#b6b2a4 41.667%,#bbb6a7 45.833%,#bfb9aa 50.000%,#c2bcad 54.167%,#c6beaf 58.333%,#c8c0b1 62.500%,#cbc2b3 66.667%,#cdc4b4 70.833%,#cec5b5 75.000%,#cfc6b6 79.167%,#d0c6b6 83.333%,#d1c7b7 87.500%,#d1c7b7 91.667%,#d1c7b7 95.833%,#d1c7b7 100.000%)}

.journey:after{content:"";position:absolute;left:0;right:0;bottom:0;pointer-events:none;z-index:-1}
.journey:after{height:88px;background:linear-gradient(180deg,#d1c7b7 0.000%,#d1c7b7 4.167%,#d1c7b7 8.333%,#d1c7b7 12.500%,#d1c7b7 16.667%,#d1c7b7 20.833%,#d1c7b7 25.000%,#d0c7b7 29.167%,#d0c7b8 33.333%,#cfc7b8 37.500%,#cfc7b8 41.667%,#cec7b8 45.833%,#cec7b9 50.000%,#cdc7b9 54.167%,#ccc7ba 58.333%,#cbc7ba 62.500%,#cbc7bb 66.667%,#cac6bb 70.833%,#c9c6bc 75.000%,#c8c6bc 79.167%,#c6c6bd 83.333%,#c5c6bd 87.500%,#c4c6be 91.667%,#c3c6bf 95.833%,#c2c6bf 100.000%)}
.contact:before{height:84px;background:linear-gradient(180deg,#c2c6bf 0.000%,#c1c6c0 4.167%,#c0c6c1 8.333%,#bfc6c1 12.500%,#bec6c2 16.667%,#bdc6c2 20.833%,#bcc6c3 25.000%,#bbc5c3 29.167%,#bac5c4 33.333%,#b9c5c4 37.500%,#b8c5c5 41.667%,#b7c5c5 45.833%,#b7c5c5 50.000%,#b6c5c6 54.167%,#b6c5c6 58.333%,#b5c5c6 62.500%,#b5c5c6 66.667%,#b5c5c7 70.833%,#b4c5c7 75.000%,#b4c5c7 79.167%,#b4c5c7 83.333%,#b4c5c7 87.500%,#b4c5c7 91.667%,#b4c5c7 95.833%,#b4c5c7 100.000%)}

.contact:after{height:96px;background:linear-gradient(180deg,#9bb6c2 0.000%,#9bb6c2 4.167%,#9bb6c2 8.333%,#9ab5c1 12.500%,#99b4c0 16.667%,#97b2be 20.833%,#95afbb 25.000%,#91acb8 29.167%,#8da8b4 33.333%,#89a3af 37.500%,#839da9 41.667%,#7d97a3 45.833%,#77909c 50.000%,#708894 54.167%,#69818d 58.333%,#617985 62.500%,#5a717d 66.667%,#526975 70.833%,#4b616d 75.000%,#445a66 79.167%,#3d535f 83.333%,#374c58 87.500%,#314652 91.667%,#2c414d 95.833%,#283c48 100.000%)}
footer:before{height:30px;background:linear-gradient(180deg,#283c48 0.000%,#263b47 4.167%,#253a46 8.333%,#243945 12.500%,#233844 16.667%,#223743 20.833%,#213642 25.000%,#213541 29.167%,#203440 33.333%,#1f333f 37.500%,#1f333f 41.667%,#1e323e 45.833%,#1e323e 50.000%,#1d313d 54.167%,#1d313d 58.333%,#1d313d 62.500%,#1d313d 66.667%,#1c303c 70.833%,#1c303c 75.000%,#1c303c 79.167%,#1c303c 83.333%,#1c303c 87.500%,#1c303c 91.667%,#1c303c 95.833%,#1c303c 100.000%)}

@media(max-width:760px){
 .work:before{height:76px}
 .work:after{height:72px;background:linear-gradient(180deg,#bdc9c1 0.000%,#bdc9c1 4.167%,#bdc9c1 8.333%,#bdc9c1 12.500%,#bcc8c0 16.667%,#bbc7bf 20.833%,#bac6be 25.000%,#b8c4bd 29.167%,#b6c2bb 33.333%,#b4c0b9 37.500%,#b1bdb6 41.667%,#adbab3 45.833%,#aab6b0 50.000%,#a5b2ac 54.167%,#a1ada8 58.333%,#9ca8a4 62.500%,#96a39f 66.667%,#909d9a 70.833%,#8a9794 75.000%,#84918f 79.167%,#7e8b89 83.333%,#778483 87.500%,#707e7d 91.667%,#6a7778 95.833%,#637172 100.000%)}
.person:before{height:64px;background:linear-gradient(180deg,#637172 0.000%,#5d6b6c 4.167%,#576567 8.333%,#526062 12.500%,#4c5a5d 16.667%,#475559 20.833%,#425054 25.000%,#3d4b50 29.167%,#38474c 33.333%,#344348 37.500%,#303f45 41.667%,#2d3b42 45.833%,#29383f 50.000%,#26353c 54.167%,#24333a 58.333%,#223138 62.500%,#202f36 66.667%,#1e2d35 70.833%,#1d2c34 75.000%,#1c2b33 79.167%,#1c2b33 83.333%,#1b2a32 87.500%,#1b2a32 91.667%,#1b2a32 95.833%,#1b2a32 100.000%)}

 .skills:after{height:72px;background:linear-gradient(180deg,#203d3a 0.000%,#203d3a 4.167%,#203d3a 8.333%,#203d3a 12.500%,#213e3b 16.667%,#223e3b 20.833%,#233f3c 25.000%,#24403d 29.167%,#26423e 33.333%,#284340 37.500%,#2b4542 41.667%,#2e4844 45.833%,#314a46 50.000%,#354d49 54.167%,#39514c 58.333%,#3e544f 62.500%,#435853 66.667%,#485c56 70.833%,#4e615a 75.000%,#54655f 79.167%,#5a6a63 83.333%,#606f67 87.500%,#67746c 91.667%,#6d7971 95.833%,#747f75 100.000%)}
.journey:before{height:76px;background:linear-gradient(180deg,#747f75 0.000%,#7b847a 4.167%,#828a7f 8.333%,#898f84 12.500%,#909489 16.667%,#979a8e 20.833%,#9d9f92 25.000%,#a4a497 29.167%,#a9a89b 33.333%,#afad9f 37.500%,#b4b1a3 41.667%,#b9b4a6 45.833%,#bdb8a9 50.000%,#c1bbac 54.167%,#c5bdae 58.333%,#c8c0b0 62.500%,#cac2b2 66.667%,#ccc3b4 70.833%,#cec5b5 75.000%,#cfc6b6 79.167%,#d0c6b6 83.333%,#d1c7b7 87.500%,#d1c7b7 91.667%,#d1c7b7 95.833%,#d1c7b7 100.000%)}

 .journey:after{height:72px;background:linear-gradient(180deg,#d1c7b7 0.000%,#d1c7b7 4.167%,#d1c7b7 8.333%,#d1c7b7 12.500%,#d1c7b7 16.667%,#d1c7b7 20.833%,#d1c7b7 25.000%,#d0c7b7 29.167%,#d0c7b8 33.333%,#d0c7b8 37.500%,#cfc7b8 41.667%,#cfc7b8 45.833%,#cec7b9 50.000%,#cdc7b9 54.167%,#cdc7b9 58.333%,#ccc7ba 62.500%,#cbc7ba 66.667%,#cac7bb 70.833%,#c9c6bb 75.000%,#c8c6bc 79.167%,#c7c6bd 83.333%,#c6c6bd 87.500%,#c5c6be 91.667%,#c4c6be 95.833%,#c3c6bf 100.000%)}
.contact:before{height:72px;background:linear-gradient(180deg,#c3c6bf 0.000%,#c1c6c0 4.167%,#c0c6c0 8.333%,#bfc6c1 12.500%,#bec6c1 16.667%,#bdc6c2 20.833%,#bcc6c3 25.000%,#bbc5c3 29.167%,#bac5c4 33.333%,#b9c5c4 37.500%,#b8c5c5 41.667%,#b8c5c5 45.833%,#b7c5c5 50.000%,#b6c5c6 54.167%,#b6c5c6 58.333%,#b5c5c6 62.500%,#b5c5c6 66.667%,#b5c5c7 70.833%,#b4c5c7 75.000%,#b4c5c7 79.167%,#b4c5c7 83.333%,#b4c5c7 87.500%,#b4c5c7 91.667%,#b4c5c7 95.833%,#b4c5c7 100.000%)}

 .contact:after{height:84px;background:linear-gradient(180deg,#9bb6c2 0.000%,#9bb6c2 4.167%,#9bb6c2 8.333%,#9ab5c1 12.500%,#99b4c0 16.667%,#97b2be 20.833%,#95b0bc 25.000%,#92adb9 29.167%,#8ea9b5 33.333%,#8aa4b0 37.500%,#859fab 41.667%,#8099a5 45.833%,#79939f 50.000%,#738c98 54.167%,#6c8490 58.333%,#657d89 62.500%,#5e7581 66.667%,#566d79 70.833%,#4f6672 75.000%,#485e6a 79.167%,#415763 83.333%,#3b515d 87.500%,#354a56 91.667%,#304551 95.833%,#2b404c 100.000%)}
footer:before{height:30px;background:linear-gradient(180deg,#2b404c 0.000%,#293e4a 4.167%,#283d49 8.333%,#273b47 12.500%,#253a46 16.667%,#243945 20.833%,#233743 25.000%,#223642 29.167%,#213541 33.333%,#203541 37.500%,#203440 41.667%,#1f333f 45.833%,#1e323e 50.000%,#1e323e 54.167%,#1d313d 58.333%,#1d313d 62.500%,#1d313d 66.667%,#1d313d 70.833%,#1c303c 75.000%,#1c303c 79.167%,#1c303c 83.333%,#1c303c 87.500%,#1c303c 91.667%,#1c303c 95.833%,#1c303c 100.000%)}

}
