/* V3 — A personal introduction, frame by frame. */
:root{--paper:#efeee6;--accent:#caff4b;--olive:#63713e}html{scroll-padding-top:100px}.site-header{position:fixed;height:88px;background:#121412e8;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff14;z-index:40}.identity{display:flex;align-items:center;gap:16px;font-size:12px;font-weight:700;letter-spacing:.7px}.identity-mark{font:700 47px/.8 var(--display);letter-spacing:-5px}.identity-mark>span{font:400 23px var(--body);letter-spacing:0;color:var(--accent);margin-left:4px}.identity small{display:block;color:#909784;font-size:6px;letter-spacing:1.2px;margin-top:7px}.site-header nav{gap:25px;font-size:10px}.contact-link{border:1px solid #586547;border-radius:25px;padding:11px 18px;font-size:10px}.chapter-progress{position:fixed;top:87px;left:0;right:0;height:2px;z-index:41;pointer-events:none}.chapter-progress>span{display:block;height:100%;background:var(--accent);width:0}.motion-control{position:fixed;left:auto;right:20px;bottom:18px;z-index:45;transform:none!important;padding:10px 15px;background:#171b13e8;border:1px solid #5d6c46;border-radius:30px;color:#d8e4c4;font-size:9px}.introduction{position:relative;height:200svh}.intro-stage{position:sticky;top:0;height:100svh;min-height:700px;overflow:hidden;background:#171a14;isolation:isolate}.intro-grid{position:absolute;inset:0;opacity:.15;background-image:linear-gradient(90deg,#82936938 1px,transparent 1px);background-size:16.66% 100%;mask-image:linear-gradient(transparent,#000 30%,transparent)}.intro-stage:after{content:'';position:absolute;inset:0;z-index:8;pointer-events:none;box-shadow:inset 0 -90px 80px -70px #121412}.intro-copy{position:absolute;left:6%;top:23%;z-index:4;width:52%;will-change:transform,opacity}.intro-copy .eyebrow{font-size:9px;letter-spacing:1.8px;color:#b0b8a4}.intro-name{margin:34px 0 15px;letter-spacing:2px;font-size:11px;color:#d5ddc7}.intro-copy h1{font:600 clamp(90px,9.1vw,160px)/.86 var(--display);letter-spacing:-2px;max-width:none;margin:0;position:relative}.intro-copy h1 em{font-style:normal;color:var(--accent)}.asterisk{font:400 65px/1 var(--body);color:var(--accent);position:absolute;left:62%;top:31%;transform:rotate(-15deg)}.intro-description{display:flex;align-items:start;gap:20px;margin-top:30px}.short-line{width:34px;height:1px;background:#a2af8c;margin-top:10px}.intro-description p{font-size:11px;line-height:1.8;color:#b1b9a4;margin:0}.intro-scroll{display:flex;align-items:center;gap:16px;margin-top:35px;font-size:8px;letter-spacing:1px;width:max-content}.scroll-circle{display:grid;place-items:center;width:43px;height:43px;border:1px solid #6e7c56;border-radius:50%;font-size:22px;transition:background .2s}.intro-scroll:hover .scroll-circle{background:var(--accent);color:#141810}.intro-scroll small{display:block;letter-spacing:0;font-size:9px;color:#869276;margin-top:7px}.portrait-scene{position:absolute;right:-3%;bottom:-3%;width:58%;height:89%;z-index:3;transform:translate3d(0,0,0);will-change:transform}.portrait-wrap{position:absolute;inset:0;transform-origin:65% 65%}.portrait-rig{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 25px 35px #0004)}#portrait-arm{will-change:transform;transform-origin:225px 730px}.portrait-orbit{position:absolute;width:49vw;height:49vw;max-width:750px;max-height:750px;top:18%;right:0;border:1px solid #7f92623d;border-radius:50%;background:radial-gradient(circle,#9db66318,transparent 66%);transform:rotate(-25deg)}.portrait-orbit:after{content:'';position:absolute;inset:22px;border:1px dashed #a4bb6629;border-radius:50%}.portrait-orbit i{position:absolute;top:10%;left:15%;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 28px #caff4b88}.portrait-orbit b{font-size:8px;letter-spacing:2px;font-weight:400;position:absolute;right:1%;top:45%;writing-mode:vertical-rl;color:#839369}.hello-sticker{position:absolute;z-index:4;left:3%;top:10%;width:104px;height:104px;border-radius:50% 50% 3px 50%;background:var(--accent);color:#18210a;transform:rotate(-10deg);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 15px 40px #0002}.hello-sticker>span{font:600 60px/.9 var(--display);letter-spacing:-2px}.hello-sticker small{font-size:13px;margin-top:4px}.portrait-caption{position:absolute;right:15%;bottom:9%;font-size:7px;line-height:1.8;letter-spacing:1.7px;color:#e9eddc;z-index:5;text-shadow:0 1px 10px #000}.intro-meta{position:absolute;left:6%;right:6%;bottom:25px;display:flex;justify-content:space-between;z-index:10;font:8px monospace;letter-spacing:1px;color:#8f9d7c}.intro-step{color:var(--accent)}.cv-teaser{position:absolute;left:6%;bottom:10%;z-index:5;opacity:0;transform:translateY(60px);pointer-events:none}.cv-teaser>span{display:block;color:var(--accent);font:9px var(--body);letter-spacing:2px;margin-bottom:20px}.cv-teaser strong{font:600 clamp(55px,7vw,110px)/.91 var(--display);letter-spacing:-1px}.cv-section{background:var(--paper);color:#252a20;padding-top:90px;padding-bottom:110px;position:relative;z-index:10}.cv-section .mono{color:#6c765d}.cv-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center;margin-top:65px}.cv-intro h2{font:600 clamp(60px,6.6vw,102px)/.9 var(--display);letter-spacing:-1px;margin:0 0 40px}.cv-intro h2 em{font-style:normal;color:#788466}.years-line{display:flex;align-items:center;gap:25px;border-top:1px solid #c5cbba;padding-top:28px}.years-line strong{font:600 115px/.9 var(--display);letter-spacing:-4px}.years-line strong span{font-size:.6em;vertical-align:top}.years-line p{font-size:9px;line-height:1.9;letter-spacing:1.5px}.cv-intro>p{font-size:12px;line-height:1.8;max-width:330px;color:#646e58;margin-top:25px}.cv-sheet{padding:35px 38px 0;background:#fafaf5;box-shadow:0 22px 75px #303a1a1c;border:1px solid #d9dfce;transform:rotate(2deg);transition:transform .6s;position:relative}.cv-sheet:hover{transform:rotate(0)}.sheet-top{display:flex;justify-content:space-between;font:8px monospace;letter-spacing:1px;color:#6e795f;border-bottom:1px solid #d6ddcc;padding-bottom:20px}.sheet-top>span:last-child{font-size:14px}.cv-sheet h3{font:600 49px/.95 var(--display);margin:25px 0}.cv-sheet h3 span{display:block;font:11px/1.8 var(--body);margin-top:12px;letter-spacing:0;color:#6d765f}.cv-facts{margin:0}.cv-facts>div{display:grid;grid-template-columns:105px 1fr;gap:12px;padding:15px 0;border-top:1px solid #e0e4d8}.cv-facts dt{font:7px/1.8 var(--body);letter-spacing:1px;color:#6c765f}.cv-facts dd{font:11px/1.8 var(--body);margin:0}.sheet-link{display:flex;justify-content:space-between;padding:20px 0;border-top:1px solid #c6cdbb;font-size:10px}.sheet-link>span{font-size:19px}.capabilities-section{padding-top:100px}.discipline-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:70px}.discipline-tabs{display:flex;flex-direction:column}.discipline-tabs>button{display:flex;align-items:center;text-align:left;gap:20px;background:transparent;border-bottom:1px solid #39452c;padding:27px 0;color:#879477;font:500 clamp(22px,2.3vw,36px)/1.1 var(--display);transition:color .25s}.discipline-tabs>button>span{font:9px var(--body);color:#667451}.discipline-tabs>button>i{font:23px var(--body);font-style:normal;margin-left:auto;opacity:0;transform:translate(-10px,10px);transition:.2s}.discipline-tabs>button[aria-selected=true]{color:var(--accent)}.discipline-tabs>button[aria-selected=true]>i{opacity:1;transform:none}.discipline-visual{height:250px;position:relative;overflow:hidden;background:#25301b;border-radius:3px}.discipline-visual img{width:100%;height:100%;object-fit:cover;opacity:.55;filter:saturate(.65)}.discipline-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#091006b0,transparent)}#cap-symbol{position:absolute;right:22px;top:4px;font:110px var(--display);color:var(--accent);z-index:2}#cap-visual-label{position:absolute;bottom:20px;left:24px;font:8px var(--body);letter-spacing:1.4px;z-index:2}.discipline-body h3{font-size:21px;letter-spacing:-.5px;margin:25px 0 14px}.discipline-body>p{font-size:11px;line-height:1.9;color:#a6b398;min-height:65px}.skill-tags{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0 24px}.skill-tags>span{padding:7px 10px;border:1px solid #455137;border-radius:15px;font-size:8px;color:#b6c3a6}.team-line{margin:65px 0 0;padding-top:25px;border-top:1px solid #36442b;display:flex;justify-content:space-between;color:#a8b89a;font-size:12px}.team-line>span{font-size:9px;letter-spacing:1.5px;color:var(--accent)}.experience{height:245svh}.stage{min-height:760px}.scene-title{font:600 clamp(70px,9vw,140px)/.9 var(--display);letter-spacing:-2px;margin:18px 0}.scene-title>span{color:var(--accent)}.hero-copy{top:24%}.hero-role{margin-top:40px}.live-heading{top:14%}.experience .hero-copy .hero-bottom p{font-size:10px}.experience .hero-bottomline{bottom:80px}.formation-switch{bottom:28px}.scene-marker{bottom:34px}.scene-toolbar{bottom:105px}.work-section{padding-top:80px}.personal-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:10%;align-items:center;margin:65px 0 15px}.personal-photo{height:550px;background:#dadfcf;position:relative;overflow:hidden;border-radius:3px;transform:rotate(-3deg)}.personal-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#27321de0,transparent 40%)}.personal-photo>img{height:125%;width:130%;max-width:none;object-fit:contain;position:absolute;left:-18%;top:3%;filter:grayscale(1)}.photo-note{position:absolute;left:30px;bottom:27px;font:8px/1.8 var(--body);letter-spacing:1.5px;color:white;z-index:2}.personal-copy h2{font:600 clamp(54px,5.5vw,85px)/.95 var(--display);margin:0 0 35px;letter-spacing:-1px}.personal-copy h2 em{font-style:normal;color:#7a856a}.personal-copy>p{font-size:12px;line-height:1.9;color:#636e56}.personal-facts{display:flex;justify-content:space-between;border-top:1px solid #c4cbb8;margin-top:32px;padding-top:23px;gap:15px}.personal-facts>span{font-size:7px;letter-spacing:1px;color:#6b775d}.personal-facts strong{display:block;margin-top:8px;color:#303b24;font-size:10px;letter-spacing:0}.playground{background:#20271b}.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:65px}.tools-grid>article{padding:35px;background:#171e12;border:1px solid #465537;border-radius:5px}.tool-number{font-size:8px;color:var(--accent);letter-spacing:1.6px}.tool-heading h3{font:600 48px/.96 var(--display);letter-spacing:-.5px;margin:25px 0 20px}.tool-heading p{font-size:11px;line-height:1.8;color:#a4b295;max-width:320px}.motion-tracks{margin:40px 0}.motion-track{margin:27px 0}.motion-track>span{font-size:8px;letter-spacing:1.4px;color:#b8c8a5;display:block}.motion-track>div{height:2px;background:#3d4d2d;position:relative;margin:22px 18px 16px 0}.motion-track i{position:absolute;left:0;top:-9px;width:20px;height:20px;background:var(--accent);border-radius:50%;box-shadow:0 0 20px #bfff4b20;will-change:left}.motion-track:nth-child(2) i{border-radius:2px;background:#e7eddc}.motion-track:nth-child(3) i{border-radius:2px;transform:rotate(45deg);background:#8fae60}.motion-track>small{font-size:9px;color:#80916d}.motion-settings label{display:flex;justify-content:space-between;font-size:10px}.motion-settings output{color:var(--accent);font:10px monospace}.motion-settings input{width:100%;accent-color:var(--accent);margin:20px 0 28px}.motion-settings .pill,.brief-tool .pill{width:100%;display:flex;justify-content:space-between}.tool-status,.tool-privacy{font-size:9px!important;line-height:1.7;color:#82976e;margin:20px 0 0}.brief-tool form{display:grid;grid-template-columns:1fr 1fr;gap:20px 15px;margin-top:30px}.brief-tool label{font-size:9px;color:#aaba97;line-height:1.6}.brief-tool select,.brief-tool input,.brief-tool textarea{display:block;width:100%;background:#222d1a;color:#ecf2e3;border:1px solid #445732;padding:12px 11px;font:10px var(--body);border-radius:3px;margin-top:8px;outline:none;min-width:0}.brief-tool select:focus,.brief-tool input:focus,.brief-tool textarea:focus{border-color:var(--accent);outline:1px solid var(--accent)}.brief-tool label:has(input){grid-column:1/-1}.brief-tool label:last-of-type{grid-column:1/-1}.brief-tool button[type=submit]{grid-column:1/-1;margin-top:7px}#brief-result{margin-top:25px;border-top:1px solid #445732;padding-top:20px}#brief-result>div{display:flex;gap:25px;margin-top:17px}#brief-result textarea{font-size:10px;line-height:1.8;resize:vertical}#brief-status{font-size:10px;color:var(--accent)}.useful-note{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:35px 0 0;margin-top:55px;border-top:1px solid #4d5e3e}.useful-note>span:first-child{font-size:8px;letter-spacing:1.6px;max-width:170px;line-height:1.8;color:#9bb782}.useful-note p{font-size:12px;line-height:2;margin:0;color:#a5b795}.useful-note strong{font-weight:500;color:#e4edd9}.note-arrow{font:70px var(--display);color:var(--accent)}.contact-section .mono{font-size:9px}.reduced .introduction{height:100svh;min-height:700px}.reduced .intro-stage{position:relative}.reduced .cv-teaser{display:none}.reduced .portrait-rig,.reduced .portrait-wrap{transform:none!important}.reduced .card-image{transform:none!important}.reduced .experience{height:100svh;min-height:760px}.reduced .stage{height:100svh;min-height:760px}.reduced .scene-toolbar{opacity:1}.reduced .intro-copy{opacity:1!important;transform:none!important}.reduced .portrait-scene{transform:none!important}.reduced .hello-sticker{opacity:1!important}.reduced .intro-meta{opacity:1!important}footer a{font:8px var(--body)}
@media(min-width:1600px){.intro-copy{top:23%}.portrait-scene{width:58%;height:91%}.intro-name{margin-top:45px}.intro-description{margin-top:35px}.intro-scroll{margin-top:40px}}
@media(max-height:800px) and (min-width:901px){.intro-stage{min-height:640px}.intro-copy{top:20%}.intro-copy h1{font-size:8.5vw}.intro-name{margin-top:24px}.intro-description{margin-top:22px}.intro-scroll{margin-top:22px}.portrait-scene{height:86%;width:56%}.hello-sticker{width:86px;height:86px;top:7%}.hello-sticker>span{font-size:50px}.reduced .introduction{min-height:640px}}
@media(max-width:1000px){.site-header nav{gap:18px;font-size:9px}.identity{font-size:10px;gap:12px}.identity small{font-size:5px}.site-header{padding:0 5%}.contact-link{padding:10px 12px}.intro-copy{left:5%;width:57%}.intro-copy h1{font-size:10.5vw}.intro-name{margin-top:30px}.portrait-scene{right:-12%;width:66%;height:80%}.hello-sticker{width:85px;height:85px;left:9%;top:12%}.hello-sticker>span{font-size:48px}.asterisk{left:70%;font-size:45px}.intro-meta{left:5%;right:5%}.cv-layout{gap:5%}.cv-sheet{padding:25px 25px 0}.cv-facts>div{grid-template-columns:85px 1fr}.cv-facts dt{font-size:6px}.cv-facts dd{font-size:10px}.discipline-layout{gap:5%}.discipline-tabs>button{font-size:27px}.tools-grid{gap:20px}.tools-grid>article{padding:27px}.personal-layout{gap:6%}.personal-photo{height:440px}.portrait-orbit{top:32%;width:62vw;height:62vw;right:-12%}.intro-meta>span:nth-child(2){display:none}}
@media(max-width:700px){html{scroll-padding-top:78px}.site-header{height:72px;padding:0 6%}.identity{font-size:9px;gap:12px}.identity-mark{font-size:39px}.identity small{font-size:4.5px;letter-spacing:.9px}.site-header nav{display:none;position:absolute;top:72px;right:5%;background:#20271b;border:1px solid #566d3c;border-radius:5px;padding:28px;flex-direction:column;gap:25px;font-size:12px}.site-header nav.open{display:flex}.site-header .contact-link{margin-left:auto;margin-right:17px;font-size:8px;padding:9px 11px}.menu-toggle{display:block;font-size:21px}.chapter-progress{top:71px}.intro-stage{height:100svh;min-height:760px}.introduction{height:180svh;min-height:1368px}.intro-copy{top:123px;left:6%;width:88%;z-index:4}.intro-copy .eyebrow{font-size:7px;letter-spacing:1.3px}.intro-name{margin:23px 0 12px;font-size:9px;letter-spacing:1.8px}.intro-copy h1{font-size:20vw;line-height:.86;letter-spacing:-1px}.asterisk{left:auto;right:6%;top:0;font-size:37px}.intro-description{margin-top:19px;gap:12px}.intro-description p{font-size:9px;line-height:1.7;max-width:200px}.short-line{width:22px;flex-shrink:0;margin-top:7px}.intro-scroll{position:absolute;top:500px;left:0;margin:0;font-size:7px;letter-spacing:.5px;z-index:6;align-items:start;gap:10px}.intro-scroll small{max-width:100px;font-size:8px;line-height:1.7;margin-top:6px}.scroll-circle{width:32px;height:32px;font-size:17px;flex-shrink:0}.intro-scroll>span:last-child{max-width:118px}.portrait-scene{right:-19%;width:97%;height:54%;bottom:0;z-index:3}.portrait-wrap{inset:0}.portrait-orbit{width:95vw;height:95vw;top:auto;bottom:0;right:-25%}.hello-sticker{width:65px;height:65px;left:3%;top:15%;border-radius:50% 50% 2px 50%}.hello-sticker>span{font-size:38px}.hello-sticker small{font-size:10px}.portrait-caption{display:none}.intro-meta{left:6%;right:6%;bottom:22px;font-size:6px;letter-spacing:.5px}.intro-meta>span:last-child{max-width:110px;text-align:right}.cv-teaser{left:6%;bottom:auto;top:19%;width:85%;z-index:6}.cv-teaser strong{font-size:15vw}.cv-teaser>span{font-size:8px}.cv-section{padding:65px 6% 70px}.cv-layout{display:block;margin-top:40px}.cv-intro h2{font-size:18vw}.cv-intro>p{max-width:270px;font-size:11px}.years-line{gap:25px;margin-top:25px}.years-line strong{font-size:95px}.years-line p{font-size:8px}.cv-sheet{margin-top:40px;padding:27px 25px 0;transform:rotate(1.5deg)}.cv-sheet h3{font-size:43px}.cv-facts>div{grid-template-columns:90px 1fr}.cv-facts dt{font-size:6.5px}.cv-facts dd{font-size:10px}.cv-sheet h3 span{font-size:10px}.sheet-top{font-size:6px}.sheet-link{font-size:9px}.section-shell{padding-left:6%;padding-right:6%}.section-top .mono{max-width:145px;text-align:right;font-size:7px;line-height:1.8}.section-heading h2{font-size:17vw}.capabilities-section{padding-top:70px}.discipline-layout{display:block;margin-top:35px}.discipline-tabs>button{font-size:27px;padding:20px 0}.discipline-panel{margin-top:30px}.discipline-visual{height:230px}.discipline-body h3{font-size:20px}.discipline-body>p{min-height:0}.team-line{margin-top:35px;font-size:10px;gap:20px;line-height:1.6}.team-line>span{font-size:7px;max-width:120px}.experience{height:215svh}.stage{min-height:760px}.experience .hero-copy{top:17%;left:6%}.experience .hero-role{margin:18px 0 13px}.scene-title{font-size:19vw;margin-top:0}.experience .hero-bottom{margin-top:20px}.experience .hero-bottom p{display:none}.live-heading{top:13%;left:6%}.live-heading h2{font-size:50px}.experience .hero-bottomline{bottom:90px}.scene-toolbar{bottom:120px}.scene-marker{bottom:58px}.formation-switch{bottom:27px}.skip-experience{bottom:88px}.motion-control{right:12px;bottom:11px;left:auto;font-size:7px;padding:8px 11px}.experience .formation-switch{right:6%;bottom:54px}.experience .scene-marker{bottom:32px}.personal-layout{display:flex;flex-direction:column-reverse;gap:40px;margin-top:40px}.personal-copy h2{font-size:18vw}.personal-copy>p{font-size:11px}.personal-facts{margin-top:25px}.personal-photo{height:400px;width:92%;transform:rotate(-2deg)}.personal-photo>img{height:128%;width:125%;left:-17%}.personal-facts>span{font-size:6px}.personal-facts strong{font-size:9px}.tools-grid{grid-template-columns:1fr;gap:25px;margin-top:40px}.tools-grid>article{padding:27px}.tool-heading h3{font-size:43px}.tool-heading p{font-size:10px}.brief-tool form{gap:17px 12px}.brief-tool label{font-size:8px}.brief-tool select{font-size:9px;padding:12px 8px}.useful-note{display:block;margin-top:35px;padding-top:25px}.useful-note>span:first-child{font-size:7px;max-width:none}.useful-note p{font-size:11px;margin-top:20px}.note-arrow{display:none}.reduced .introduction,.reduced .intro-stage{height:100svh;min-height:760px}.reduced .experience,.reduced .stage{height:800px;min-height:800px}.contact-section{padding-bottom:80px}.contact-section h2{font-size:20vw}.contact-section .contact-bottom{gap:22px}footer{padding-bottom:50px}footer a{font-size:7px}}
@media(max-width:380px){.identity small{display:none}.site-header .contact-link{font-size:7px;margin-right:10px}.intro-copy h1{font-size:21vw}.intro-scroll{top:515px}.cv-facts>div{grid-template-columns:80px 1fr}.brief-tool form{grid-template-columns:1fr}.brief-tool form label{grid-column:1/-1}.tools-grid>article{padding:23px}.portrait-scene{height:53%;bottom:0}}
@media(prefers-reduced-motion:reduce){.introduction{height:100svh;min-height:760px}.intro-stage{position:relative}.cv-sheet{transform:none}.motion-track i{transition:none!important}}
#portrait-arm{transform-origin:0 0}
html:has(body.reduced){scroll-behavior:auto}.reduced .cv-sheet{transform:none;transition:none}
@media(max-width:700px){.intro-scroll{flex-direction:column;gap:10px;max-width:93px}.intro-scroll>span:last-child{max-width:93px}.intro-scroll small{max-width:85px}.asterisk{top:-32px;right:5%}}
.stage[data-formation=grid] .live-heading h2{display:none}
