/* Connected leaves, rather than disconnected destination screens. */
.fold-page{padding:125px 4.5% 35px;background:#e9e4d8}.fold-right{background:#20201e}.fold-layout{display:grid;grid-template-columns:minmax(0,1fr) 85px;gap:0;margin-top:25px;perspective:1800px;align-items:stretch}.fold-right .fold-layout{grid-template-columns:85px minmax(0,1fr)}.fold-right .leaf-rail{order:-1}.fold-layout .fold-sheet{margin-top:0;background:var(--paper);padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:25px;min-height:58svh;box-shadow:0 18px 28px #17171522;overflow:visible;border:1px solid #17171533}.fold-right .fold-sheet{background:#292926;color:var(--paper);border-color:#faf7ee33;box-shadow:0 18px 28px #0005}.fold-copy{max-width:100%;padding:20px 0}.fold-right .fold-copy{padding-left:0}.fold-copy h1{font-size:clamp(32px,4.6vw,78px);margin:20px 0}.fold-summary{font-size:17px}.fold-detail{font-size:12px}.fold-number{font-size:200px;right:25px}.leaf-rail{display:flex;position:relative;align-items:stretch;overflow:visible;background:#161614;box-shadow:8px 10px 18px #0003;min-width:0;z-index:2}.leaf-rail a{display:flex;justify-content:space-between;align-items:center;writing-mode:vertical-rl;padding:17px 6px;font-size:9px;letter-spacing:1px;border-left:1px solid #faf7ee33;background:linear-gradient(90deg,#d42d19,#fa0704);color:var(--paper);flex:1;min-width:0;box-shadow:-3px 0 6px #0003;transform:skewY(-3deg);transform-origin:left top}.leaf-rail a:nth-child(even){background:#252522;transform:skewY(3deg)}.leaf-rail .center-leaf{background:#171715;writing-mode:horizontal-tb;padding:8px 3px;display:flex;flex-direction:column;justify-content:center;gap:10px;font-size:8px;letter-spacing:0;text-align:center;transform:none;min-width:28px}.center-leaf img{width:35px;max-width:100%;height:70px;object-fit:contain}.leaf-rail a:hover{filter:brightness(1.25)}.fold-gallery{z-index:1;align-self:center}.media-pending{position:relative;aspect-ratio:4/3;background:#e8e2d5;border:1px solid #17171544;display:flex;flex-direction:column;justify-content:space-between;padding:20px;overflow:hidden}.media-pending:before,.media-pending:after{content:'';position:absolute;background:#17171515;pointer-events:none}.media-pending:before{width:1px;top:0;bottom:0;left:50%;transform:rotate(30deg)}.media-pending:after{height:1px;left:0;right:0;top:50%;transform:rotate(-15deg)}.media-pending .eyebrow{font-size:8px}.media-pending strong{font-size:clamp(24px,3vw,45px);line-height:1.1;letter-spacing:-1px;max-width:90%;font-weight:500}.media-pending small{font-size:9px;line-height:1.7}.media-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:7px}.media-strip span{aspect-ratio:1.8;border:1px dashed #17171555;font-size:8px;display:flex;align-items:center;justify-content:center}.fold-right .media-pending{background:#363631;border-color:#faf7ee44}.fold-right .media-pending:before,.fold-right .media-pending:after{background:#faf7ee22}.fold-right .media-strip span{border-color:#faf7ee44}.case-details{margin:28px 85px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid #17171533;padding-top:20px}.fold-right .case-details{margin:28px 0 0 85px;border-color:#faf7ee33}.case-details h2{font-size:11px;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px}.case-details p{font-size:12px;line-height:1.8;color:#6e6a65;margin:0}.fold-right .case-details p{color:#bdb8ad}.case-details a{font-size:10px;display:inline-block;border-bottom:1px solid;margin-top:10px}.fold-pending{margin-top:18px}.fold-spine{width:8px;z-index:3}.cv-accordion{background:#171715;color:var(--paper)}.cv-fold{grid-template-columns:1fr 1.4fr;gap:0;min-height:70svh;padding:0;margin:0;border-top:1px solid #faf7ee33;isolation:isolate}.cv-fold-title{background:var(--red);color:var(--ink);padding:80px 12% 90px;position:relative;overflow:hidden}.cv-fold-title:after{content:'';position:absolute;width:220px;height:220px;border:1px solid #17171533;border-radius:50%;right:-110px;bottom:15%;pointer-events:none}.cv-fold-title h2{font-size:clamp(35px,4.8vw,80px);position:relative;z-index:2}.cv-fold-content{padding:65px 9% 80px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;background:#252522;box-shadow:inset 12px 0 16px -12px #000b}.cv-fold:nth-child(even){background:#171715}.cv-fold:nth-child(even) .cv-fold-title{background:#252522;color:var(--paper)}.cv-fold:nth-child(even) .cv-fold-content{background:var(--paper);color:var(--ink)}.cv-fold .resume-row{border-color:#faf7ee22}.cv-fold .resume-year,.cv-fold .resume-detail{color:#bcb6aa}.cv-fold:nth-child(even) .resume-row{border-color:#17171522}.cv-fold:nth-child(even) .resume-year,.cv-fold:nth-child(even) .resume-detail{color:#6e6a65}.cv-fold .skill-tags span{border-color:#faf7ee55}.cv-fold:nth-child(even) .skill-tags span{border-color:#17171555}.cv-fold .cv-fold-controls{z-index:4;color:var(--paper)}.cv-fold .cv-fold-controls a:first-child{color:var(--ink);background:var(--red);padding:10px 16px;border-radius:30px}.cv-fold .cv-fold-controls a:last-child{background:#252522;padding:10px 16px;border-radius:30px;border:1px solid #faf7ee55}.cv-fold:nth-child(even) .cv-fold-controls a:first-child{background:#252522;color:var(--paper)}.cv-fold:nth-child(even) .cv-fold-controls a:last-child{background:var(--paper);color:var(--ink);border-color:#17171555}.cv-fold .resume-footnote{color:#bcb6aa}.cv-fold:nth-child(even) .resume-footnote{color:#6e6a65}.cv-fold:before{height:8px;z-index:5;background:linear-gradient(#0006,transparent)}.cv-links{position:relative;z-index:2}.press-section{background:#171715;color:var(--paper);padding:90px 8%;display:grid;grid-template-columns:1fr 1.45fr;gap:8%;border-top:1px solid #faf7ee33}.press-heading h2{font-size:clamp(45px,6vw,95px);line-height:.95;letter-spacing:-.06em;margin:30px 0}.press-heading h2 em{font-style:normal;color:var(--red)}.press-heading p{font-size:13px;color:#bcb6aa}.press-entry{position:relative;display:block;padding:25px 0 30px;border-top:1px solid #faf7ee44;overflow:hidden}.press-meta{display:flex;justify-content:space-between;font-size:10px;color:#bcb6aa}.press-entry h3{font-size:24px;line-height:1.2;letter-spacing:-.8px;margin:20px 0 13px;max-width:85%}.press-entry p{font-size:12px;color:#bcb6aa;line-height:1.8;max-width:85%}.press-read{display:inline-block;font-size:10px;border-bottom:1px solid;padding:8px 0}.press-index{position:absolute;right:0;bottom:15px;font-size:85px;opacity:.08;font-weight:800}.press-entry:hover h3{color:#f5a47b}.page .press-section{margin:40px -4%;padding:50px 4%;grid-template-columns:1fr}.page .press-heading{display:none}@media(max-width:760px){.fold-page{padding:105px 5% 25px}.fold-layout{grid-template-columns:minmax(0,1fr) 42px}.fold-right .fold-layout{grid-template-columns:42px minmax(0,1fr)}.leaf-rail a{padding:12px 3px;font-size:7px;letter-spacing:.4px}.leaf-rail .center-leaf{min-width:16px;font-size:7px;padding:4px 1px}.center-leaf img{width:18px;height:40px}.fold-layout .fold-sheet{grid-template-columns:1fr;padding:20px 15px;gap:0}.fold-copy h1{font-size:36px}.fold-summary{font-size:15px}.fold-gallery{margin:10px 0}.media-pending{aspect-ratio:1.5;padding:16px}.media-pending strong{font-size:26px}.case-details,.fold-right .case-details{margin:25px 0 0;grid-template-columns:1fr;gap:20px}.cv-fold{grid-template-columns:1fr;min-height:auto;padding:0;gap:0;scroll-margin-top:70px}.cv-fold-title{padding:50px 6% 25px}.cv-fold-title h2{margin:15px 0;font-size:44px}.cv-fold-content{padding:25px 6% 90px;min-height:260px}.cv-fold-controls{bottom:17px!important}.cv-fold-controls a:first-child{background:#252522!important;color:var(--paper)!important}.cv-fold:nth-child(even) .cv-fold-controls a:first-child{background:var(--paper)!important;color:var(--ink)!important}.press-section{padding:60px 6%;grid-template-columns:1fr;gap:35px}.press-heading h2{font-size:65px}.press-entry h3{font-size:23px}.media-strip span{font-size:7px}}
.hero-title-block{position:absolute;top:15%;left:5%;right:5%;z-index:10;pointer-events:none;display:flex;flex-direction:column;align-items:stretch;gap:18px}.hero-title-block .hero-heading{position:static;margin:0;font-size:clamp(42px,min(8.1vw,15svh),135px);line-height:1}.hero-title-block .hero-subtitle{position:static;inset:auto;margin:0;line-height:1.6;font-size:10px;letter-spacing:2.8px}.portrait-stage{top:36%;width:min(49vw,51svh,620px)}@media(min-width:1500px){.portrait-stage{top:36%;width:min(47vw,51svh,680px)}}@media(max-width:760px){.hero-title-block{top:18%;left:2%;right:2%;gap:15px}.hero-title-block .hero-heading{font-size:clamp(35px,9.4vw,76px)}.hero-title-block .hero-subtitle{font-size:8px;letter-spacing:1.8px}.portrait-stage{top:33%;width:min(82vw,45svh)}}
.fold-controls{position:sticky!important;bottom:12px;z-index:25;background:var(--paper)!important;padding:12px 16px!important;border:1px solid #17171533!important;border-radius:40px;box-shadow:0 5px 25px #17171522;flex-wrap:nowrap}.fold-right .fold-controls{background:#252522!important;border-color:#faf7ee44!important}.fold-left .fold-controls>a:first-child{order:3}.fold-left .fold-controls .fold-dots{order:2}.fold-left .fold-controls>.fold-next{order:1}.fold-controls .fold-next{background:var(--red);border-color:var(--red)!important;color:var(--paper);font-weight:700}.fold-controls>a{white-space:nowrap}.fold-controls{margin-top:20px}.fold-layout{scroll-margin-bottom:100px}@media(max-width:760px){.fold-controls{bottom:10px;padding:10px!important;gap:5px;border-radius:22px;flex-wrap:wrap}.fold-controls>a{font-size:10px;padding:12px 10px}.fold-controls .fold-dots{display:none}.fold-left .fold-controls>a:first-child{order:2}.fold-left .fold-controls>.fold-next{order:1}.fold-page{padding-bottom:25px}}

/* CV uses the same horizontal folded-panel navigation. */
.cv-horizontal{padding:65px 6% 25px;background:#171715;scroll-margin-top:90px}
.cv-spread{display:grid;grid-template-columns:145px minmax(0,1fr);perspective:1600px;align-items:stretch}
.cv-horizontal .cv-fold{min-height:60svh;border:1px solid #faf7ee33;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr)}
.cv-horizontal .cv-fold-title{padding:55px 12%}
.cv-horizontal .cv-fold-title h2{font-size:clamp(30px,3.6vw,62px);overflow-wrap:anywhere}
.cv-horizontal .cv-fold-content{padding:40px 8%;animation:none}
.cv-horizontal .resume-row{grid-template-columns:78px minmax(0,1fr)}
.cv-leaves{display:flex;flex-direction:column;position:relative;z-index:2;background:#20201e}
.cv-leaves a{display:flex;gap:10px;align-items:center;padding:14px 10px;font-size:10px;line-height:1.4;border-bottom:1px solid #faf7ee22;border-right:1px solid #faf7ee33;color:var(--paper)}
.cv-leaves a>span:first-child{font-size:8px;opacity:.5}
.cv-leaves a.selected{background:var(--red);color:var(--ink);box-shadow:5px 0 10px #0005;font-weight:800}
.cv-leaves a:hover{background:#3b3b36}
.cv-leaves a.selected:hover{background:var(--red)}
.cv-horizontal-controls{position:sticky!important;bottom:12px;display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:center;gap:15px;z-index:25;padding:12px!important;margin-top:20px;background:#252522!important;border:1px solid #faf7ee44!important;border-radius:40px;color:var(--paper);font-size:11px}
.cv-horizontal-controls a{border:1px solid #faf7ee55;border-radius:30px;padding:12px 17px;white-space:nowrap}
.cv-horizontal-controls .cv-next{background:var(--red);border-color:var(--red);font-weight:700}
.cv-position{font-size:10px;text-align:center;line-height:1.5}
@media(max-width:760px){.cv-horizontal{padding:35px 5% 25px}.cv-spread{grid-template-columns:32px minmax(0,1fr)}.cv-leaves a{padding:12px 5px;justify-content:center}.cv-leaves a>span:first-child{font-size:10px}.cv-leaves a>span:last-child{display:none}.cv-horizontal .cv-fold{grid-template-columns:1fr;min-height:70svh}.cv-horizontal .cv-fold-title{padding:30px 7% 20px}.cv-horizontal .cv-fold-title h2{font-size:36px}.cv-horizontal .cv-fold-content{padding:25px 7%}.cv-horizontal .resume-row{grid-template-columns:60px minmax(0,1fr);gap:12px}.cv-horizontal-controls{gap:6px;flex-wrap:wrap!important;border-radius:22px;padding:10px!important}.cv-horizontal-controls a{font-size:10px;padding:12px 10px}.cv-position{width:100%;order:3}.cv-leaves{border-left:1px solid #faf7ee33}}

.hero-title-block .hero-subtitle{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(50px,8vw,150px);color:inherit;background:none;text-align:initial}.profession-left{text-align:right;color:var(--ink)}.profession-right{text-align:left;color:var(--paper)}

/* Left: projects. Right: product design. */
.background.technical{left:50%;right:0}.background.network{left:0;right:50%}.identity[data-hover=left] .technical,.identity[data-hover=right] .network{opacity:0}.identity[data-hover=right] .technical,.identity[data-hover=left] .network{opacity:.18}
body.route-projects{background:var(--paper);color:var(--ink)}body.route-projects header{background:var(--paper)!important}body.route-projects .draft-note,body.route-projects .candidate small{color:#6e6a65}body.route-projects footer{border-color:#17171533}
body.route-products{background:#20201e;color:var(--paper)}body.route-products header{background:#20201e!important}body.route-products footer{border-color:#faf7ee44}
@media(max-width:760px){body.route-products header nav{background:#20201e;color:var(--paper)}body.route-projects header nav{background:var(--paper);color:var(--ink)}}

.cv-horizontal .cv-fold,.cv-horizontal .cv-fold-title,.cv-horizontal .cv-fold-content{min-width:0}
.software-strip{overflow:hidden;width:100%;max-width:100%;padding:35px 0;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.software-track{display:flex;width:max-content;animation:software-marquee 24s linear infinite}
.software-group{display:flex;gap:22px;padding-right:22px}
.software-icon{width:92px;height:92px;display:grid;place-items:center;background:var(--paper);border:1px solid #17171522;border-radius:18px;box-shadow:0 8px 20px #0002}
.software-icon img{width:58px;height:58px;object-fit:contain}
.software-strip:hover .software-track{animation-play-state:paused}
.cv-event-photo{display:block;width:100%;max-height:240px;object-fit:cover;object-position:center 28%;margin-top:25px;border:1px solid #17171544;filter:saturate(.7)}
@keyframes software-marquee{to{transform:translateX(-50%)}}
@media(max-width:760px){.software-icon{width:74px;height:74px}.software-icon img{width:45px;height:45px}.software-group{gap:15px;padding-right:15px}.cv-event-photo{max-height:180px;aspect-ratio:1.8}}
@media(prefers-reduced-motion:reduce){.software-track{animation:none}.software-strip{overflow:auto;mask-image:none}.software-group[aria-hidden=true]{display:none}}
