@font-face{font-family:LocalFallback;src:local('Segoe UI')}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#f2eadc;color:#f5f2e8;font-family:LocalFallback,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #a7efdd;outline-offset:6px}.skip{position:fixed;left:20px;top:-70px;background:white;color:black;padding:12px;z-index:100}.skip:focus{top:15px}header{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:22px 5vw;background:linear-gradient(#f2eadcbb,transparent)}.wordmark{font-size:38px;font-weight:800;letter-spacing:-5px}.wordmark span{color:#b3f6cf}nav{display:flex;gap:30px;padding:13px 26px;border:1px solid #ffffff24;border-radius:40px;background:#0d172dcf;backdrop-filter:blur(12px);font-size:13px}.header-cta{font-size:13px;border-bottom:1px solid #a1b6c7;padding:10px 0}.header-cta span{margin-left:22px}#visual{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 70% 45%,#eadcc6,transparent 60%),#f2eadc}canvas{display:block;width:100%;height:100%}.space-wash{position:absolute;inset:0;background:linear-gradient(90deg,#f2eadcea,transparent 65%);pointer-events:none}#sweep{position:absolute;inset:0;background:radial-gradient(ellipse at 66% 50%,#c0faffef,#69c8e842,transparent 70%);opacity:0}#story{position:relative}.beat{min-height:100svh;position:relative;padding:160px 7vw 95px;display:flex;align-items:center}.hero-copy{max-width:650px}.eyebrow{font:10px/1.6 Consolas,monospace;letter-spacing:2.4px;color:#a9b8c8;margin:0 0 25px}h1{font-size:clamp(62px,8vw,124px);font-weight:600;letter-spacing:-7px;line-height:.97;margin:0}h1 span{display:block;font-size:clamp(36px,4.2vw,64px);font-weight:350;letter-spacing:-2.6px;line-height:1.08;margin-top:24px;color:#bcc9d5}.intro{font-size:17px;line-height:1.6;color:#afbdc9;margin:28px 0}.text-link{display:inline-flex;gap:50px;border-bottom:1px solid #82959f;padding:13px 0;font-size:14px}.text-link span{color:#b3f6cf}.scene-label{position:absolute;right:7vw;bottom:45px;font:10px Consolas,monospace;letter-spacing:2px;color:#91a9bd}.scene-label i{display:inline-block;width:6px;height:6px;background:#b3f6cf;border-radius:50%;margin-right:10px}.scroll-cue{position:absolute;left:7vw;bottom:45px;font:9px Consolas,monospace;letter-spacing:2px}.scroll-cue span{margin-left:20px;font-size:24px}.passage{justify-content:center;text-align:center}.passage-copy{margin-top:45vh;text-shadow:0 2px 30px #050913}.passage h2{font-size:clamp(28px,4vw,60px);letter-spacing:-2px;font-weight:400}.about{align-items:flex-start;justify-content:space-between;padding-top:180px;min-height:110svh}.about-copy{max-width:420px}h2{font-size:clamp(44px,5vw,76px);letter-spacing:-3px;line-height:1.07;font-weight:450;margin:0 0 26px}em{font-style:normal;color:#b3f6cf}.about-copy p:not(.eyebrow){color:#bdc8d4;font-size:17px;line-height:1.8;max-width:350px}.skill-notes{align-self:center;width:250px;margin-top:120px}.skill-notes article{padding:22px 0;border-top:1px solid #ffffff26}.skill-notes span{font:10px Consolas;color:#9fceb9}.skill-notes h3{font-size:18px;font-weight:500;margin:9px 0}.skill-notes p{font-size:12px;color:#aab9c8;line-height:1.5}.section-pad{padding:110px 7vw}.work{background:#eeeae0;color:#17212c}.work .eyebrow{color:#586874}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px}.section-heading p:last-child{font-size:14px;line-height:1.7;color:#5c6871}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 30px}.project-wide{grid-column:1/-1}.project-image{position:relative;overflow:hidden;background:#182d41;border-radius:6px;aspect-ratio:1.6}.project-wide .project-image{aspect-ratio:2.3}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project:hover img{transform:scale(1.025)}.project-arrow{position:absolute;right:20px;top:20px;border-radius:50%;background:#eeeae0;color:#182c3b;padding:10px 15px;font-size:24px}.project-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:20px}.project-title h3{font-size:26px;font-weight:500;letter-spacing:-1px;margin:0}.project-title span{font:9px/1.5 Consolas;letter-spacing:1px;text-align:right}.project>p{max-width:540px;font-size:14px;line-height:1.7;color:#5a6670}.contact{background:#eee2cf;min-height:75svh}.contact h2{font-size:clamp(50px,8vw,116px);margin:35px 0 40px}.email{font-size:clamp(16px,2.6vw,36px);border-bottom:1px solid #5b7786;padding-bottom:14px;display:inline-block;overflow-wrap:anywhere}.email span{margin-left:30px}.contact-bottom{display:flex;justify-content:space-between;align-items:end;margin-top:70px;color:#b9c8ce;font-size:14px;line-height:1.6}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 7vw;background:#e5d7c2;font-size:11px;color:#b1c1ca}footer button{border:1px solid #60717d;background:transparent;color:inherit;border-radius:30px;padding:9px 15px;cursor:pointer}#scene-status{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);font:11px Consolas;color:#bdd5e4;z-index:22;pointer-events:none}.scene-failed #visual{background:radial-gradient(ellipse at 70% 30%,#eadcc6,#f2eadc 70%)}.scene-failed #scene-status{position:absolute;top:100px;bottom:auto}.scene-failed canvas{display:none}
@media(max-width:760px){header{padding:16px 6vw}.wordmark{font-size:30px}nav{gap:18px;padding:11px 18px;font-size:11px}.header-cta{display:none}.beat{padding:130px 7vw 70px;align-items:flex-start;min-height:110svh}.hero-copy{width:100%}h1{font-size:64px;letter-spacing:-4px}h1 span{font-size:36px;letter-spacing:-1.8px;margin-top:14px}.intro{font-size:14px;margin:17px 0}.text-link{font-size:12px;padding:9px 0}.scene-label{right:7vw;bottom:24px;font-size:8px;letter-spacing:1px}.scroll-cue{bottom:55px;font-size:8px}.space-wash{background:linear-gradient(#f2eadcbb,transparent 70%)}.passage{min-height:80svh;align-items:flex-end;padding-bottom:40px}.passage-copy{margin:0}.about{min-height:140svh;padding-top:110px;display:block}.about-copy{max-width:90%}.about h2{font-size:43px}.about-copy p:not(.eyebrow){font-size:14px;line-height:1.6}.skill-notes{width:100%;margin-top:55svh;display:flex;gap:14px}.skill-notes article{flex:1;min-width:0}.skill-notes h3{font-size:13px}.skill-notes p{font-size:11px}.section-pad{padding:70px 7vw}h2{letter-spacing:-2px}.section-heading{display:block;margin-bottom:30px}.project-grid{grid-template-columns:1fr;gap:36px}.project-wide{grid-column:auto}.project-wide .project-image{aspect-ratio:1.6}.project-title{display:block}.project-title span{display:block;text-align:left;margin-top:8px}.contact-bottom{display:block;margin-top:40px}.contact-bottom a{display:inline-block;margin-top:15px}footer{flex-wrap:wrap;gap:20px}.email span{margin-left:5px}.eyebrow{font-size:8px;letter-spacing:1.5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-image img{transition:none}}
.skill-notes article{background:linear-gradient(90deg,#f2eadcf5,#f2eadcbd);padding:20px 14px}.skill-notes{border-radius:6px}#market{scroll-margin-top:100px}

.project-phone{aspect-ratio:1.2;background:#d6dcd9;padding:24px}.project-phone img{object-fit:contain}.project-wide .project-image img{object-position:top}

/* The opening is pinned while world-space locomotion follows scroll distance. */
#opening{height:420svh;position:relative}.hero{position:sticky;top:0;height:100svh;min-height:100svh}.hero-copy{align-self:center;max-width:550px}.hero h1{font-size:clamp(62px,7vw,110px)}
#white-transition{position:fixed;inset:0;background:#fff;z-index:60;opacity:0;pointer-events:none}
body.developer-mode{color:#152631;background:#fff}body.developer-mode .about{background:transparent}body.developer-mode .about em{color:#367363}body.developer-mode .about-copy p:not(.eyebrow){color:#465b68}body.developer-mode .skill-notes article{background:#fffffff0;border-color:#ccd5d9}body.developer-mode .skill-notes p{color:#465b68}body.developer-mode .space-wash{opacity:0}body.developer-mode header{background:linear-gradient(#ffffffee,transparent)}body.developer-mode .wordmark{color:#152631}body.developer-mode .header-cta{color:#152631}body.developer-mode nav{color:#f5f2e8}.about{min-height:110svh}.work{position:relative}
.scene-failed #opening{height:100svh}.scene-failed #white-transition{display:none}.scene-failed .hero-copy{opacity:1!important}
@media(max-width:760px){#opening{height:360svh}.hero-copy{align-self:flex-start}.hero h1{font-size:56px}.hero h1 span{font-size:31px}.hero{padding-top:100px}.hero .intro{max-width:200px}.about{min-height:140svh}.about-copy{max-width:100%}}

@media(min-width:761px){.hero-copy{align-self:flex-start;margin-top:-35px;max-width:470px}.hero h1{font-size:78px}.hero h1 span{font-size:40px}.hero .intro{font-size:15px}}

.top-anchor{position:absolute;top:0;left:0}@media(max-width:760px){.about-copy{background:#fffffff2;padding:16px;margin:-16px;border-radius:8px}.about .eyebrow{color:#566b78}}

/* Quieter opening typography keeps the craft and astronaut readable. */
.hero .eyebrow{font-size:9px;letter-spacing:2px}.hero h1{font-size:clamp(48px,5.2vw,76px);letter-spacing:-3px}.hero h1 span{font-size:clamp(25px,2.7vw,38px);letter-spacing:-1.3px}.hero .intro{font-size:14px}.hero .text-link{font-size:12px}.hero .scene-label{display:none}@media(max-width:760px){.hero h1{font-size:48px}.hero h1 span{font-size:28px}.hero .intro{font-size:12px}.hero-copy{max-width:260px}}

/* Composition follows the supplied new render reference. */
header{top:24px;left:50%;right:auto;transform:translateX(-50%);width:min(920px,90vw);padding:8px 22px;border:1px solid #b3d9ef66;border-radius:50px;background:#06101ddd;backdrop-filter:blur(12px)}
nav{background:none;border:0;backdrop-filter:none}.header-cta{border:1px solid #55d9f4;border-radius:30px;padding:12px 24px;box-shadow:0 0 14px #2bcbef44}
.hero{justify-content:center;padding-top:16vh}.hero-copy{align-self:flex-start;text-align:center;margin:0;max-width:740px}.hero .eyebrow,.hero .text-link{display:none}.hero h1{font-weight:750;line-height:1;letter-spacing:-3px;font-size:clamp(48px,6vw,86px)}.hero h1 span{font-size:inherit;font-weight:750;line-height:1.05;margin-top:0;background:linear-gradient(100deg,#eef4ff,#4aedff);color:transparent;background-clip:text}.hero .intro{font-size:clamp(13px,1.4vw,20px);margin:18px 0}.space-wash{background:linear-gradient(#030a1433,transparent 55%)}
#office-background{position:absolute;inset:0;background:none;opacity:0}canvas{position:relative}.developer-mode .about-copy{background:#fffffff0;padding:24px;border-radius:12px}.developer-mode #visual{background:#f2f3f1}
@media(max-width:760px){header{top:14px;padding:6px 16px;width:92vw}nav{gap:20px;padding:10px 0}.hero{padding-top:115px}.hero-copy{max-width:340px}.hero h1{font-size:46px;letter-spacing:-2px}.hero h1 span{font-size:46px}.hero .intro{max-width:290px;font-size:13px}#office-background{background-size:100% auto;background-position:center 72%}.developer-mode .about-copy{padding:16px}}

body.developer-mode nav{color:#152631}body.developer-mode header{background:#ffffffeb}

/* The office is rendered by the live 3D scene. */
#office-background{background:none;display:none}
body.developer-mode header{background:#08101de8}body.developer-mode .wordmark,body.developer-mode nav,body.developer-mode .header-cta{color:#fff}
@media(max-width:760px){#office-background{background-size:cover;background-position:50% center}}

/* Leave the live room unobstructed before the biography. */
.about{padding-top:110svh;min-height:210svh}.about .skill-notes{align-self:flex-start;margin-top:120px}@media(max-width:760px){.about{padding-top:110svh;min-height:210svh}.about .skill-notes{margin-top:50px}}

/* Live project planes share the character's depth buffer. DOM links provide access. */
#portfolio-canvas{pointer-events:none}
.work.track-ready{height:110svh;min-height:720px;background:transparent;color:#f5f2e8;padding:110px 7vw 40px;touch-action:pan-y;overflow:hidden}
.track-ready .section-heading{position:relative;z-index:2;pointer-events:none;margin:0}
.track-ready .section-heading h2{font-size:clamp(28px,3vw,44px)}
.track-ready .section-heading p:last-child{display:none}
.track-ready .eyebrow{color:#bed3dd}
.track-ready .project-grid{position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none}
.track-ready .project{position:absolute;display:block;pointer-events:none;border-radius:6px}
.track-ready .project>*{opacity:0}
.track-active .project{pointer-events:auto;clip-path:none}
.track-ready .project:focus-visible{background:#b3f6cf33;outline:3px solid #b3f6cf;outline-offset:-3px}
.track-controls{position:absolute;bottom:38px;left:7vw;right:7vw;display:flex;justify-content:center;align-items:center;gap:22px;color:#eef7fa}
.track-controls button{border:1px solid #82a6b4;background:#152938;color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer}
.track-controls button:disabled{opacity:.3;cursor:default}.track-controls span{font-size:12px;max-width:240px;text-align:center}
.role-controls{position:fixed;bottom:105px;left:50%;transform:translateX(-50%);z-index:15;display:flex;align-items:center;gap:14px;background:#071521ec;border:1px solid #7196a9;border-radius:40px;padding:8px;color:#e8f4fa;touch-action:pan-y;max-width:94vw}.role-controls[hidden]{display:none}.role-controls span{font-size:12px;min-width:190px;text-align:center}.role-controls button{border:0;background:#243e50;color:white;width:36px;height:36px;border-radius:50%;cursor:pointer}
.character-action{position:fixed;z-index:14;left:50%;bottom:170px;transform:translateX(-50%);border:1px solid #7092a5;border-radius:30px;background:#132936e8;color:#eefaff;padding:10px 20px;cursor:pointer}.character-action[hidden]{display:none}
.track-active .track-controls{position:fixed;z-index:16}.track-ready:not(.track-active) .track-controls{visibility:hidden}.work.track-ready{height:100svh}
.character-hit{position:fixed;z-index:12;border:0;background:transparent;padding:0;cursor:pointer;touch-action:pan-y}.character-hit[hidden]{display:none}#office-background{display:none}
.project-preview{border:1px solid #82a6b4;border-radius:12px;background:#eee2cf;color:white;max-width:94vw;max-height:94svh;padding:14px}.project-preview::backdrop{background:#000c}.project-preview img{display:block;max-width:84vw;max-height:78svh;object-fit:contain;margin-top:12px}.project-preview button{background:#e8f1f4;color:#eee2cf;border:0;border-radius:20px;padding:10px 18px;cursor:pointer}
@media(max-width:760px){.work.track-ready{min-height:700px;padding-top:105px}.track-ready .section-heading h2{font-size:28px}.track-controls{gap:12px}}

.track-ready .section-heading h2{font-size:20px;line-height:1.2;letter-spacing:-.5px;margin:0}.track-ready .section-heading h2 br{display:none}.track-ready .section-heading .eyebrow{margin-bottom:6px}.track-ready .section-heading{width:max-content;max-width:90%;padding:8px 12px;background:#f2eadce8;border-radius:8px}
.track-active .section-heading{position:fixed;top:104px;left:7vw;max-width:86vw}

/* Office-first landing; the game is an explicit separate destination. */
#opening{height:140svh!important}.hero-copy{position:absolute;left:6vw;top:18vh!important;max-width:340px!important;pointer-events:auto}.hero h1{font-size:48px!important}.hero h1 span{font-size:32px!important}.space-journey{position:fixed;left:20px;bottom:24px;z-index:40;padding:12px 16px;border:1px solid #66808e;border-radius:30px;background:#0b1827eb;color:#e6f3f1;text-decoration:none;font-size:13px}@media(max-width:760px){.hero-copy{top:13vh!important;left:24px;max-width:240px!important}.hero h1{font-size:30px!important}.hero h1 span{font-size:23px!important}.hero .intro{font-size:12px;max-width:230px}.space-journey{bottom:12px;left:12px;font-size:11px;padding:9px 12px}}

.hero-copy,.hero h1{color:#f3f6f5!important}.hero-copy{text-align:left!important;text-shadow:0 2px 14px #000}.hero .intro{color:#e0e7e8!important}.hero .scroll-cue{color:#d8e6eb}.hero-copy .eyebrow{color:#a8c1ce}

#opening{height:400svh!important}
#identity-orbit{position:fixed;inset:0;z-index:12;pointer-events:none;color:#f4f0e7}
#identity-orbit[hidden]{display:none}
.identity-left,.identity-right{position:absolute;top:36%;width:clamp(210px,23vw,330px);display:grid;gap:18px}
.identity-left{left:5vw;text-align:right}.identity-right{right:5vw;text-align:left}
#identity-orbit p{margin:0;padding:14px 18px;background:#18212be6;border:1px solid #a7957066;border-radius:24px;line-height:1.4;font-size:16px;box-shadow:0 8px 30px #0002}
.identity-left p:first-child{transform:translateX(26px) rotate(-6deg)}.identity-left p:last-child{transform:translateX(22px) rotate(6deg)}
.identity-right p:first-child{transform:translateX(-26px) rotate(6deg)}.identity-right p:last-child{transform:translateX(-26px) rotate(-6deg)}
#identity-orbit .identity-name{font-size:22px;font-weight:650}
.arrival-transition .role-controls,.arrival-transition .character-action,.arrival-transition .character-hit{visibility:hidden}
.about-copy,.skill-notes,.about>.scene-label{visibility:hidden}
@media(max-width:760px){.identity-left,.identity-right{top:auto;bottom:135px;width:43vw;gap:8px}.identity-left{left:4vw;text-align:left}.identity-right{right:4vw}#identity-orbit p{padding:8px 10px;font-size:11px;border-radius:14px}#identity-orbit .identity-name{font-size:14px}.identity-left p:first-child,.identity-left p:last-child,.identity-right p:first-child,.identity-right p:last-child{transform:none}}

.details-visible .role-controls{bottom:12px}.details-visible .character-action{bottom:76px}@media(max-width:760px){.details-visible .space-journey{top:86px;bottom:auto}.details-visible .character-action{bottom:74px}.details-visible .identity-left,.details-visible .identity-right{bottom:20px}}
.identity-left,.identity-right{top:32%;padding:24px;background:linear-gradient(120deg,#392517ef,#171616f2);border:1px solid #efab62;border-radius:34px;box-shadow:0 0 22px #e3833338,inset 0 0 24px #c2752422;gap:12px;box-sizing:border-box}
.identity-left{transform:perspective(700px) rotateY(12deg) rotate(-3deg)}.identity-right{transform:perspective(700px) rotateY(-12deg) rotate(3deg)}
#identity-orbit p{background:none;border:0;box-shadow:none;padding:6px 2px;border-radius:0;transform:none!important;color:#ffe1b9;font-size:16px}
#identity-orbit .identity-name{color:#fff1df;font-size:24px}
@media(max-width:760px){.identity-left,.identity-right{top:auto;bottom:135px;padding:12px;gap:3px;border-radius:20px;transform:none}#identity-orbit p{font-size:11px;padding:3px 0}#identity-orbit .identity-name{font-size:14px}.identity-left{bottom:20px}}

/* Keep the room as the main visual, with restrained portfolio navigation. */
header,body.developer-mode header{top:0;width:100%;border:0;border-radius:0;background:#070d1630;padding:18px 32px;backdrop-filter:none;box-sizing:border-box}
.header-cta{box-shadow:none;background:#080e1680;border-color:#a8b4c455;padding:10px 18px}
.hero-copy{top:auto!important;bottom:78px;left:24px;max-width:380px!important}
.hero h1,.hero h1 span{display:inline;font-size:20px!important;letter-spacing:-.5px;line-height:1.2}
.hero h1 span:before{content:' / ';color:#a2bacb}.hero .intro{display:none}
.hero .scene-label{display:none}.hero .scroll-cue{bottom:24px}
body:not(.details-visible) .role-controls{left:auto;right:24px;bottom:24px;transform:none}
body:not(.details-visible) .character-action{left:auto;right:24px;bottom:88px;transform:none}
@media(max-width:760px){header,body.developer-mode header{padding:14px 16px}.header-cta{display:none}body:not(.details-visible) .role-controls{right:auto;left:50%;bottom:14px;transform:translateX(-50%)}body:not(.details-visible) .character-action{right:auto;left:50%;bottom:78px;transform:translateX(-50%)}.hero-copy{bottom:146px;left:18px}.hero h1,.hero h1 span{font-size:16px!important}.hero .scroll-cue{display:none}.space-journey{top:76px;bottom:auto}.identity-left,.identity-right{background:#241912f5}}

/* Individual tactile buttons; no continuous header plate. */
header,body.developer-mode header{background:none;pointer-events:none;gap:18px;align-items:flex-start}
header nav{gap:12px;padding:0;pointer-events:auto}
header a{pointer-events:auto}
header nav a,.header-cta,.wordmark{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border:1px solid #b4845d;border-top-color:#f4c997;border-radius:17px;background:linear-gradient(155deg,#4d4037,#251f20);color:#fff0db!important;font-weight:650;box-shadow:0 5px 0 #100f14,0 8px 15px #0005,inset 0 2px 1px #ffe0ab45;text-shadow:0 1px 1px #0008;transition:transform .16s ease,box-shadow .16s ease}
.wordmark{width:52px;min-height:48px;padding:3px;font-size:30px}
header nav a:hover,.header-cta:hover,.wordmark:hover{transform:translateY(-2px);box-shadow:0 7px 0 #100f14,0 10px 18px #0006,inset 0 2px 1px #ffe0ab60}
header nav a:active,.header-cta:active,.wordmark:active{transform:translateY(4px);box-shadow:0 1px 0 #100f14,inset 0 2px 4px #0004}
header a:focus-visible{outline:3px solid #9edaff;outline-offset:6px}
@media(max-width:760px){header,body.developer-mode header{padding:12px 14px;gap:10px}header nav{gap:7px;flex-wrap:wrap;justify-content:flex-end}header nav a{font-size:12px;padding:9px 13px;min-height:44px;border-radius:14px}.wordmark{width:44px;min-height:44px;font-size:25px}.header-cta{display:none}}
@media(prefers-reduced-motion:reduce){header nav a,.header-cta,.wordmark{transition:none}header nav a:hover,.header-cta:hover,.wordmark:hover{transform:none}}
header nav a,.header-cta,.wordmark{border-color:#c1b8aa;border-top-color:#fffdf7;background:linear-gradient(155deg,#fffdf3,#e4ded2);color:#302c29!important;box-shadow:0 5px 0 #a59a89,0 8px 15px #0004,inset 0 2px 1px #fff;text-shadow:none}
header nav a:hover,.header-cta:hover,.wordmark:hover{box-shadow:0 7px 0 #a59a89,0 10px 18px #0005,inset 0 2px 1px #fff}
header nav a:active,.header-cta:active,.wordmark:active{box-shadow:0 1px 0 #a59a89,inset 0 2px 4px #b0a59055}

/* Standalone cream lettering with an extruded edge; hit areas stay transparent. */
header nav a,.header-cta,.wordmark,.space-journey{background:none!important;border:0!important;box-shadow:none!important;color:#fff5e1!important;border-radius:8px;text-shadow:0 1px 0 #cfc2a9,0 2px 0 #b3a58d,0 3px 0 #8d816f,0 5px 5px #0009;font-weight:750;letter-spacing:.15px}
header nav a,.header-cta{font-size:17px}
header nav a:hover,.header-cta:hover,.wordmark:hover{box-shadow:none;transform:translateY(-2px);text-shadow:0 1px 0 #d8cbb2,0 2px 0 #b9aa90,0 3px 0 #91836d,0 7px 7px #000a}
header nav a:active,.header-cta:active,.wordmark:active{box-shadow:none;transform:translateY(2px);text-shadow:0 1px 0 #b3a58d,0 2px 3px #0009}
.space-journey{min-height:44px;display:flex;align-items:center}
@media(max-width:760px){header nav a{font-size:14px}.space-journey{font-size:12px;top:70px}}
@media(prefers-reduced-motion:reduce){header nav a:hover,.header-cta:hover,.wordmark:hover,header nav a:active,.header-cta:active,.wordmark:active{transform:none}}

.identity-left,.identity-right{background:#f3ecdedb;border-color:#c4b99e;box-shadow:0 8px 24px #4d514a24,inset 0 2px 2px #fff9}
#identity-orbit p,#identity-orbit .identity-name{color:#3d494b;text-shadow:none}
.role-controls{background:#eee7dbe8;color:#35464a;border-color:#c6bcaa;box-shadow:0 4px 10px #313a3820}.role-controls button{background:#d1d8d2;color:#33464a}
.character-action{background:#f6f0e4eb;color:#34484b;border-color:#b3b9af}
header nav a,.header-cta,.wordmark,.space-journey{text-shadow:-1px -1px 0 #786f60,1px -1px 0 #786f60,-1px 1px 0 #786f60,1px 1px 0 #786f60,0 2px 0 #8d816f,0 3px 0 #766b5c,0 5px 5px #0005}
.hero-copy,.hero h1,.hero .scroll-cue{color:#364c50!important;text-shadow:0 1px 2px #fffd}
@media(max-width:760px){.identity-left,.identity-right{background:#f5eee3f5}}
.track-ready .section-heading{background:none;color:#45504c;padding:0;max-width:80vw}
.track-ready .section-heading .eyebrow{color:#66726a}.track-ready .section-heading h2{font-size:clamp(25px,3vw,42px);letter-spacing:-1px;font-weight:750;text-shadow:0 2px 0 #fff9}
.track-controls{color:#3b4945}.track-controls button{background:#f1ebde;border-color:#bcb49f;color:#354740;box-shadow:0 3px 0 #bbb19b}
.project-preview{background:#eee8dc;color:#364844;border-color:#acb4a9}
.track-ready .section-heading{color:#fff0d6}.track-ready .section-heading .eyebrow{color:#ead0ad}.track-ready .section-heading h2{text-shadow:0 2px 0 #704b2d,0 4px 8px #24190e55}.track-active .track-controls{color:#34291e}
html,body{overflow-x:clip}
/* One light portfolio palette, including loading, closing sections and gaps. */
html,body,body.developer-mode{background:#f2eadc;color:#493f34}
#visual,.scene-failed #visual{background:#f2eadc}
.space-wash{background:none;opacity:0}
#sweep,#white-transition{background:#f2eadc}
.contact{background:#eee2cf;color:#493f34}
.contact h2{font-size:clamp(42px,6vw,80px);letter-spacing:-2px}
.contact em{color:#8a6946}
.contact .eyebrow,.contact-bottom,.contact-bottom a{color:#665744}
.contact .email{color:#59442f;border-color:#ab9478}
footer{background:#e5d7c2;color:#5c4c38}
footer button{color:#59442f;border-color:#a78c6b;background:#f3eadb}
#scene-status{color:#625541}
.scene-slow #scene-status{position:fixed;left:50%;bottom:16px;top:auto;transform:translateX(-50%);max-width:min(92vw,520px);padding:10px 14px;border:1px solid #ffffff35;border-radius:999px;background:#101a28dc;color:#e8eee8;text-align:center;line-height:1.45;z-index:22}
.role-controls{display:none!important}
.track-ready .section-heading{color:#5c452f}
.track-ready .section-heading .eyebrow{color:#79624c}
.track-ready .section-heading h2{text-shadow:0 2px 0 #fff4df}
#visual{z-index:0;pointer-events:none}
main,footer{position:relative;z-index:1}
#portfolio-canvas{opacity:0}
body.developer-mode #portfolio-canvas{opacity:1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skill-project-link{display:flex;align-items:center;min-height:44px;color:#785432;font-weight:700;background:none;border:0;text-shadow:0 1px 0 #d5b994,0 2px 0 #513b28,0 3px 3px #5c412a33}
.skill-project-link:hover{color:#9b6a38;transform:translateY(-1px)}
.skill-project-link:focus-visible{outline:2px solid #8c6038;outline-offset:3px;border-radius:4px}
.category-note{display:block!important;max-width:420px;font:14px/1.5 system-ui;color:#66503a!important;margin:8px 0 0}
.category-note[hidden]{display:none!important}
@media(max-width:760px){.skill-project-link{font-size:11px;min-height:44px}.identity-right{padding:12px}}
@media(prefers-reduced-motion:reduce){.skill-project-link:hover{transform:none}}

.skill-project-link{pointer-events:auto}
.track-ready:not(.track-active) .section-heading{visibility:hidden}
.track-ready .section-heading>p:not(.category-note){display:none}
.contact-visible .space-journey{display:none}
.project-preview button{color:#493f34;background:#fff7e8}
@media(max-width:760px){.identity-left,.identity-right{bottom:20px}}
@media(max-width:760px){
 .details-visible .identity-left{top:112px;bottom:auto;left:4vw;width:92vw;padding:10px 14px;gap:2px;background:#f5eee3e8}
 .details-visible .identity-left p:last-child br{display:none}
 .details-visible .identity-right{top:auto;bottom:12px;left:4vw;right:auto;width:92vw;display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding:8px 12px;background:#f5eee3e8}
 .details-visible .skill-project-link{font-size:11px;line-height:1.35;text-shadow:none}
}
body.projects-visible header{background:#eeeae0f7!important;backdrop-filter:blur(12px);border-bottom:1px solid #cfc8bb;color:#29332f}
body.projects-visible header a{color:#29332f!important;text-shadow:none!important}

/* The identity reveal frames the original character with fine, open arcs. */
#identity-orbit{overflow:hidden}
.identity-arcs{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.identity-arcs path{fill:none;stroke:#b7875c;stroke-width:1.15;stroke-opacity:.76;vector-effect:non-scaling-stroke}
.identity-left,.identity-right{top:50%;width:clamp(230px,23vw,340px);padding:0;border:0;border-radius:0;background:none;box-shadow:none;transform:translateY(-50%);gap:10px}
.identity-left{left:5vw;text-align:right}
.identity-right{right:5vw;text-align:left}
#identity-orbit p{padding:3px 0;background:none;border:0;border-radius:0;box-shadow:none;color:#493a2b;text-shadow:0 1px 8px #fff6;font-size:clamp(14px,1.1vw,17px);line-height:1.35}
#identity-orbit .identity-name{font-size:clamp(22px,1.65vw,28px);font-weight:650;color:#392b21}
.identity-left p:last-child{max-width:290px;margin-left:auto}
.identity-right p{transform:translateX(0)!important}
#identity-orbit .identity-right .skill-project-link{min-height:40px;line-height:1.2;font-size:clamp(13px,1vw,16px)}
@media(min-width:761px){.details-visible .identity-right{top:24%;transform:none;gap:3px}#identity-orbit .identity-right .skill-project-link{min-height:36px}}
@media(max-width:760px){
 .identity-arcs{opacity:.45}
 .identity-left,.identity-right{top:auto;bottom:12px;left:4vw;right:4vw;width:92vw;padding:10px 14px;gap:2px;transform:none;background:#f5eee3e8;border:0;border-radius:0;box-shadow:none}
 .identity-left{text-align:left;bottom:112px}
 .identity-right{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
 #identity-orbit .identity-right .skill-project-link{min-height:44px}
 #identity-orbit p{font-size:11px;padding:3px 0}
 #identity-orbit .identity-name{font-size:15px}
}
.details-visible #identity-orbit p{ text-shadow:0 1px 0 #e4c49c,0 2px 0 #a87b50,0 3px 5px #4b35232b }
.details-visible #identity-orbit .identity-name{ text-shadow:0 1px 0 #e4c49c,0 2px 0 #a87b50,0 4px 8px #4b35233b }
.details-visible .identity-left p:first-child{transform:translateX(5px) rotate(-2deg)}
.details-visible .identity-left p:nth-child(2){transform:translateX(-2px) rotate(1deg)}
.details-visible .identity-left p:last-child{transform:translateX(4px) rotate(2deg)}
.details-visible .identity-right p:nth-child(odd){transform:translateX(2px) rotate(1deg)!important}
.details-visible .identity-right p:nth-child(even){transform:translateX(-2px) rotate(-1deg)!important}
@media(max-width:760px){.details-visible #identity-orbit p{ text-shadow:none }.details-visible .identity-left p:first-child,.details-visible .identity-left p:nth-child(2),.details-visible .identity-left p:last-child,.details-visible .identity-right p:nth-child(odd),.details-visible .identity-right p:nth-child(even){transform:none!important}}

.scene-slow .hero-copy{opacity:1!important}
.scene-slow #scene-status,.scene-failed #scene-status{pointer-events:auto;max-width:min(92vw,560px);text-align:center;line-height:1.55}
#scene-status button{display:inline-block;margin-left:10px;padding:7px 12px;border:1px solid currentColor;border-radius:999px;background:#f2eadc;color:#493f34;cursor:pointer}
