 
:root{--bg:#05050a;--bg2:#090911;--ink:#f5f4fa;--muted:#9f9eaf;--violet:#a38bfa;--purple:#8067ff;--line:rgba(255,255,255,.13);--pad:clamp(20px,5vw,80px);--max:1460px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.6 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}a:hover{color:white}button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}img{display:block;max-width:100%}em{font-style:normal;color:var(--violet)}
:focus-visible{outline:2px solid #aa90ff;outline-offset:5px}
.skip{position:fixed;z-index:1000;top:-100px;left:12px;background:white;color:black;padding:10px 16px}.skip:focus{top:12px}
.grain{position:fixed;inset:0;z-index:91;opacity:.029;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.cursor-glow{position:fixed;left:-30px;top:-30px;width:11px;height:11px;border-radius:50%;background:#b39afd;box-shadow:0 0 16px 7px rgba(128,96,255,.25);z-index:93;pointer-events:none;transform:translate(-50%,-50%);transition:width .2s,opacity .2s;opacity:.77}body.is-link-hover .cursor-glow{width:20px;height:20px;opacity:.55}
.page-progress{position:fixed;top:0;right:0;width:2px;height:100vh;background:#ffffff08;z-index:92}.page-progress span{display:block;height:var(--progress,0%);background:var(--purple)}
.nav-shell{height:75px;position:fixed;left:0;right:0;top:0;z-index:90;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);background:linear-gradient(180deg,rgba(5,5,10,.92),rgba(5,5,10,.48));border-bottom:1px solid #ffffff0b;backdrop-filter:blur(10px)}
.monogram{font-size:13px;font-weight:850;letter-spacing:.40em}.nav-shell nav{display:flex;align-items:center;gap:32px}.nav-shell nav a{font-size:11px;color:#c8c8d3}.nav-shell nav a:hover{color:white}.nav-cta{justify-self:end;padding:8px 15px;border:1px solid #ffffff3b;border-radius:99px;font-size:11px}
.scene{position:relative;background:var(--bg)}.sticky-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}.scene-index{position:absolute;bottom:22px;left:var(--pad);font-size:10px;color:#938abb;letter-spacing:.18em}.kicker{margin:0 0 16px;color:#a996f1;font-size:10px;letter-spacing:.24em;font-weight:750;text-transform:uppercase}
.intro-scene{height:258vh;background:var(--bg)}.intro-stage{background:#05050a}.intro-light{position:absolute;left:50%;bottom:-12vh;width:34vw;height:76vh;transform:translateX(-50%) translateX(var(--person-x,0px)) scaleX(var(--light-scale,1));background:linear-gradient(90deg,transparent,rgba(109,71,245,.14) 20%,rgba(117,86,255,.38) 50%,rgba(109,71,245,.14) 80%,transparent);filter:blur(55px);opacity:var(--light-o,.78);pointer-events:none}.intro-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#00000022,transparent 18%,transparent 85%,#00000022),linear-gradient(0deg,#05050a,transparent 26%)}
.intro-left{position:absolute;left:clamp(35px,8vw,145px);top:28%;z-index:5;opacity:var(--intro-left-o,1);transform:translate3d(var(--intro-left-x,0px),var(--intro-left-y,0px),0)}
.intro-hello{margin:0 0 6px;color:#a38dfa;font-size:clamp(13px,1.1vw,17px);clip-path:inset(0 100% 0 0);animation:helloWipe .7s cubic-bezier(.2,.72,.25,1) .1s forwards}
.intro-name{margin:0;font-size:clamp(62px,6.1vw,110px);font-weight:770;letter-spacing:-.075em;line-height:.87}.intro-name-line{display:block;opacity:0;clip-path:inset(0 0 100% 0);animation:nameReveal .75s cubic-bezier(.2,.75,.24,1) forwards}.intro-name-line:nth-child(1){animation-delay:.18s}.intro-name-line:nth-child(2){animation-delay:.30s}
.intro-role{position:absolute;right:clamp(30px,7vw,125px);top:32%;z-index:5;display:flex;flex-direction:column;min-width:min(30vw,460px);opacity:var(--intro-role-o,1);transform:translate3d(var(--intro-role-x,0px),var(--intro-role-y,0px),0)}
.role-small{font-size:clamp(14px,1.1vw,18px);color:#a58efa;opacity:0;clip-path:inset(0 100% 0 0);animation:roleReveal .72s .36s forwards;transform:translateX(var(--role-small-x,0px))}.role-main{display:block;font-size:clamp(34px,3.5vw,63px);font-weight:630;letter-spacing:-.06em;line-height:.98;opacity:0;clip-path:inset(0 100% 0 0);animation:roleReveal .75s .42s forwards;transform:translateX(var(--role-main-x,0px))}.role-main-last{animation-delay:.5s;transform:translateX(var(--role-last-x,0px))}
.hero-caption{margin:18px 0 16px;font-size:12px;color:#adabb8;line-height:1.5;letter-spacing:.01em}.hero-meta{color:#8d8c9b;font-size:11px;margin:0}.hero-actions{margin-top:25px;display:flex;gap:23px;align-items:center}.hero-actions a{font-size:12px;border-bottom:1px solid #846fff;padding-bottom:8px}.hero-actions a+ a{color:#bcb9ce;border-color:#55525d}
.shared-person{position:absolute;left:50%;bottom:0;width:min(35vw,590px);height:88vh;z-index:4;transform:translate3d(calc(-50% + var(--person-x,0px)),var(--person-y,0px),0) scale(var(--person-scale,1));transform-origin:50% 100%;pointer-events:none}.shared-person-img{position:absolute;left:50%;bottom:-1.2%;height:96%;width:auto;max-width:none;transform:translateX(-50%);filter:drop-shadow(0 25px 50px #0008)}.person-backlight{position:absolute;left:50%;bottom:5vh;width:51%;height:60%;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(110,77,255,.36),transparent);filter:blur(35px);opacity:var(--backlight-o,.82)}
.intro-statement{position:absolute;right:clamp(40px,8.4vw,160px);top:29%;z-index:6;width:min(36vw,600px);opacity:var(--statement-o,0);transform:translate3d(var(--statement-x,62px),var(--statement-y,24px),0);pointer-events:var(--statement-pe,none)}
.intro-statement h2{font-size:clamp(44px,4.55vw,82px);font-weight:660;line-height:.99;letter-spacing:-.062em;margin:0;max-width:11ch}.intro-statement-foot{font-size:13px;color:#a29fae;max-width:36ch;line-height:1.7;margin:24px 0 0}.statement-link{display:inline-block;margin-top:25px;border-bottom:1px solid #8d76ec;padding-bottom:7px;font-size:12px}
.intro-scroll{position:absolute;right:var(--pad);bottom:6.8vh;display:flex;gap:15px;align-items:center;font-size:9px;letter-spacing:.3em;color:#85818d;opacity:var(--scroll-o,1);transform:translateY(var(--scroll-y,0px))}.intro-scroll i{width:38px;height:1px;background:#76708e}.intro-index{left:auto;right:var(--pad);bottom:24px;display:flex;gap:11px}.intro-index span:first-child{opacity:var(--index1-o,1)}.intro-index span:last-child{opacity:var(--index2-o,.2)}
@keyframes helloWipe{to{clip-path:inset(0)}}@keyframes nameReveal{0%{opacity:0;clip-path:inset(0 0 100% 0);filter:blur(8px)}100%{opacity:1;clip-path:inset(0);filter:blur(0)}}@keyframes roleReveal{0%{opacity:0;clip-path:inset(0 100% 0 0);filter:blur(7px)}100%{opacity:1;clip-path:inset(0);filter:blur(0)}}
.proof-strip{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#ffffff14;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.proof-strip a{background:#080810;min-height:110px;padding:29px clamp(18px,4vw,60px);transition:background .2s}.proof-strip a:hover{background:#111020}.proof-strip strong{display:block;color:#f5f3ff;font-size:clamp(27px,3.3vw,45px);font-weight:700;line-height:1.03;letter-spacing:-.045em}.proof-strip span{display:block;color:#b9b4cd;font-size:11px;margin-top:6px}.proof-strip small{display:block;color:#858196;font-size:10px}
.work-title{height:198vh}.work-title-stage{display:flex;align-items:center;isolation:isolate;background:#05050a;padding:75px var(--pad)}.work-title-stage::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 65% 45%,rgba(129,100,255,.3),rgba(64,43,170,.40) 35%,#0b091c 76%,#080713 100%);opacity:var(--portal-wash,0)}.work-title-copy{position:relative;z-index:3;opacity:var(--work-copy-o,1);transform:translate3d(var(--work-copy-x,0px),var(--work-copy-y,0px),0) scale(var(--work-copy-scale,1));max-width:850px}.work-title-copy h2{font-size:clamp(60px,8vw,138px);line-height:.94;letter-spacing:-.07em;font-weight:650;margin:0}.work-title-copy>p:last-child{margin-top:23px;color:#9694a4;font-size:13px}.planet{position:absolute;right:-9vw;top:12vh;width:51vw;height:51vw;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 24% 22%,#baaaff 0 1%,#6a50d2 4%,#291f72 18%,#0a0a16 55%,#050509 72%);box-shadow:-12px 0 70px #5941c32a,inset 28px 0 80px #927aff26;transform:translate3d(var(--planet-x,0px),var(--planet-y,0px),0) scale(var(--planet-scale,1));opacity:var(--planet-o,1);filter:brightness(var(--planet-brightness,1));z-index:0;transform-origin:50% 50%;will-change:transform}.planet:after{content:"";position:absolute;inset:-4%;border:1px solid #a18afa30;border-radius:50%;opacity:var(--planet-ring-o,1)}.work-transition-label{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-50%) translateY(var(--portal-label-y,30px));font-size:10px;letter-spacing:.27em;color:#f5f0ff;white-space:nowrap;opacity:var(--portal-label-o,0);pointer-events:none}
.project-scene{height:148vh}.project-stage{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(540px,1.28fr);align-items:center;gap:4vw;padding:85px var(--pad) 45px;background:radial-gradient(circle at 78% 46%,#4a36b221,transparent 45%)}.project-scene[data-project="1"] .project-stage{background:linear-gradient(rgba(5,5,10,var(--p1-dark-o,0)),rgba(5,5,10,var(--p1-dark-o,0))),radial-gradient(circle at 58% 43%,rgba(138,108,255,.48),rgba(58,39,155,.44) 37%,#0a081d 77%,#06060c 100%)}.project-copy{z-index:3;opacity:var(--project-copy-o,1);transform:translate3d(var(--project-copy-x,0px),var(--project-copy-y,0px),0);max-width:450px}.project-count{font-size:10px;color:#8981a8;letter-spacing:.24em;margin-bottom:28px}.project-copy h2{font-size:clamp(38px,4.5vw,70px);line-height:1;letter-spacing:-.06em;font-weight:640;margin:0 0 21px}.project-copy>p{color:#aba9b8;font-size:14px;line-height:1.7;max-width:40ch}.project-copy .result{font-size:12px;color:#b5a0ff}.project-link{display:inline-block;margin-top:24px;padding:9px 0;border-bottom:1px solid #8f73e8;font-size:12px}.project-device{position:relative;width:min(68vw,1000px);justify-self:end;border:1px solid #ffffff24;border-radius:14px;background:#080910;box-shadow:0 35px 100px #0007;overflow:hidden;transform:perspective(1300px) rotateY(var(--device-ry,-7deg)) rotateX(var(--device-rx,2deg)) translate3d(var(--device-x,0px),var(--device-y,0px),0) scale(var(--device-scale,.96));will-change:transform}.device-top{display:flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-bottom:1px solid #ffffff10;color:#79768c;font-size:10px;letter-spacing:.1em}.device-top i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#3d3a4b}.device-top b{margin-left:10px;font-size:9px;font-weight:500}.device-body{padding:clamp(15px,3vw,36px);height:min(60vh,610px);overflow:auto;scrollbar-width:thin;background:linear-gradient(160deg,#0a0b14,#070811)}
.arch-label{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:21px;margin-bottom:21px;color:#8d89a3;font-size:10px;letter-spacing:.13em}.flow-graph{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:stretch}.flow-node{border:1px solid #ffffff25;border-radius:8px;padding:16px 11px;background:#141321;min-height:102px}.flow-node span{display:block;font-size:9px;color:#9a88cd;letter-spacing:.1em}.flow-node strong{display:block;font-size:13px;line-height:1.25;letter-spacing:-.02em;margin-top:14px;font-weight:610}.flow-node small{display:block;margin-top:6px;color:#9390a3;line-height:1.4;font-size:10px}.flow-node.active{border-color:#886bf770;background:#231a45}.flow-node.warn{border-color:#b1a3ff70;background:#1b1832}.flow-note{display:flex;justify-content:space-between;gap:16px;margin-top:20px;padding:17px 18px;border-left:2px solid #8d78ec;background:#a28aff12}.flow-note b{font-size:13px;font-weight:600}.flow-note span{font-size:11px;color:#a9a6b6}.flow-meta{margin-top:22px;display:flex;flex-wrap:wrap;gap:9px}.flow-meta span{border:1px solid #ffffff20;padding:6px 9px;font-size:10px;color:#aaa8ba;border-radius:3px}.project-stack{position:absolute;right:var(--pad);bottom:25px;font-size:9px;color:#787488;letter-spacing:.12em}
.proof-note{background:#090911;padding:20px var(--pad);border-bottom:1px solid var(--line);color:#8b889a;font-size:11px}.proof-note a{text-decoration:underline;text-underline-offset:4px;color:#d0c0ff}
.content-width{width:min(var(--max),100%);margin:0 auto}.section-pad{padding:clamp(92px,10vw,145px) var(--pad)}.section-head{max-width:850px;margin-bottom:50px}.section-head h2{font-size:clamp(40px,5.2vw,83px);font-weight:630;letter-spacing:-.065em;line-height:1;margin:0}.section-head p:not(.kicker){color:#a09dad;font-size:13px;max-width:51ch}
.other-work{background:#06060c}.other-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.other-card{border:1px solid var(--line);padding:34px;min-height:255px;background:linear-gradient(135deg,#111019,#09090f);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;transition:border-color .25s,transform .25s}.other-card:hover{transform:translateY(-3px);border-color:#8d74ff6e}.other-card h3{font-size:clamp(22px,2.6vw,32px);font-weight:630;letter-spacing:-.045em;line-height:1.1;margin:8px 0 12px}.other-card p:not(.kicker){color:#9d9aaa;margin:0 0 16px;max-width:48ch;font-size:13px;line-height:1.7}.other-card a{font-size:12px;border-bottom:1px solid #8c73d5;padding-bottom:6px}.compact-proof{color:#ada4c5;font-size:10px;letter-spacing:.04em}.minor-project{margin-top:21px;color:#8f899e;font-size:12px}.minor-project a{color:#ded5ff;text-decoration:underline;text-underline-offset:4px}
.approach{background:#080810;border-top:1px solid #ffffff0e}.approach h2{max-width:19ch}.approach-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-top:66px}.approach-row article{padding:27px 30px 10px 0;min-height:170px;border-right:1px solid var(--line)}.approach-row article+article{padding-left:30px}.approach-row article:last-child{border:0}.approach-row h3{font-size:22px;margin:24px 0 9px;letter-spacing:-.03em;font-weight:620}.approach-row p{color:#9694a2;font-size:12px;line-height:1.65;margin:0}.approach-number{font-size:11px;color:var(--violet)}
.skills{background:#05050a}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.skill{padding:25px 22px 28px 0;border-right:1px solid var(--line)}.skill+ .skill{padding-left:28px}.skill:last-child{border:0}.skill .icon{font-size:22px;color:#ad99fc;font-weight:550;display:inline-block;line-height:1;margin-bottom:22px}.skill h3{font-size:17px;font-weight:650;margin:0 0 10px}.skill p{font-size:12px;line-height:1.9;color:#a19fac;margin:0}
.engagements{border-top:1px solid var(--line);background:#08080e}.engagements-row{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.engagements article{padding:24px 0;border-top:1px solid var(--line)}.engagements h3{font-size:18px;letter-spacing:-.025em;margin:0 0 7px;font-weight:620}.engagements p{font-size:12px;max-width:46ch;line-height:1.7;color:#a6a2af;margin:0}.engagements small{display:block;margin-top:18px;color:#7d7b88;font-size:10px}
.contact{min-height:75vh;display:flex;align-items:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 82% 85%,#49318b22,transparent 46%),#07070d}.contact h2{font-size:clamp(65px,8.4vw,136px);font-weight:640;letter-spacing:-.08em;line-height:.95;margin:0}.contact .lead{color:#aaa6b6;max-width:44ch;margin:27px 0;font-size:13px}.contact-actions{display:flex;gap:30px;align-items:center;flex-wrap:wrap}.contact-actions a{font-size:12px;border-bottom:1px solid #8d72ff;padding:10px 0}.contact-actions a:first-child{font-weight:650;font-size:14px}.resume-links{margin-top:22px;display:flex;flex-wrap:wrap;gap:16px}.resume-links a{color:#afabbc;font-size:11px;border:1px solid #ffffff28;border-radius:3px;padding:10px 13px}.resume-links a:hover{border-color:#a48fff;color:#fff}.footer{padding:25px var(--pad) 32px;display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);align-items:center;background:#07070d;color:#8f8c9c;font-size:11px}.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(30px);transition:transform .75s cubic-bezier(.2,.75,.2,1),opacity .75s ease}.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:1150px){.intro-left{left:5vw}.intro-role{right:4vw;min-width:32vw}.shared-person{width:42vw}.intro-statement{right:5vw;width:39vw}.project-stage{grid-template-columns:1fr;align-content:center;gap:32px}.project-copy{max-width:none}.project-device{width:100%;justify-self:center}.device-body{height:39vh}.project-stack{display:none}.project-scene{height:170vh}}
@media(max-width:760px){:root{--pad:20px}.nav-shell{height:62px;grid-template-columns:1fr auto}.nav-shell nav{display:none}.cursor-glow,.page-progress{display:none}.intro-scene{height:225vh}.intro-left{left:20px;top:14%}.intro-name{font-size:clamp(52px,14vw,80px)}.intro-role{left:20px;top:40%;right:auto;min-width:0;width:calc(100% - 40px)}.role-main{font-size:clamp(29px,8vw,47px)}.hero-caption{margin:10px 0;font-size:10px;max-width:21ch}.hero-meta{font-size:10px;max-width:23ch}.hero-actions{margin-top:12px;gap:18px}.hero-actions a{font-size:11px}.shared-person{width:90vw;left:56%;height:66vh}.intro-statement{left:20px;right:auto;top:20%;width:calc(100% - 40px)}.intro-statement h2{font-size:clamp(40px,11vw,65px)}.intro-statement-foot{max-width:31ch;font-size:11px}.intro-scroll{right:20px;bottom:5vh}.intro-index{right:20px}.proof-strip{grid-template-columns:repeat(2,1fr)}.proof-strip a{padding:21px 20px;min-height:100px}.work-title{height:178vh}.work-title-stage{padding:80px 20px}.work-title-copy h2{font-size:clamp(52px,13vw,86px)}.planet{width:92vw;height:92vw;top:22vh;right:-45vw}.project-scene{height:165vh}.project-stage{padding:92px 20px 35px;gap:22px}.project-copy{max-width:none}.project-copy h2{font-size:40px;margin-bottom:8px}.project-copy>p{font-size:12px;line-height:1.5}.project-link{margin-top:8px}.device-body{height:42vh;padding:14px}.flow-graph{grid-template-columns:repeat(2,1fr)}.flow-node{min-height:68px;padding:10px}.flow-node strong{margin-top:5px;font-size:11px}.flow-node small{font-size:9px}.flow-note{padding:10px;display:block}.flow-note span{display:block;margin-top:5px}.flow-meta{margin-top:12px}.flow-meta span{font-size:9px}.other-grid,.engagements-row{grid-template-columns:1fr}.approach-row{display:block}.approach-row article,.approach-row article+article{min-height:auto;padding:22px 0;border-right:0;border-bottom:1px solid var(--line)}.skills-grid{grid-template-columns:1fr 1fr}.skill{padding:20px 15px 28px 0}.skill+ .skill{padding-left:14px}.skill:nth-child(2){border:0}.skill h3{font-size:14px}.skill p{font-size:11px}.footer{display:block}.footer-links{margin-top:14px}.contact{min-height:75vh}}
@media(max-width:410px){.intro-name{font-size:13vw}.intro-role{top:40%}.shared-person{height:65vh}.hero-caption{font-size:9px}.device-body{height:40vh}.section-head h2{font-size:39px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.intro-hello,.intro-name-line,.role-small,.role-main{opacity:1!important;clip-path:none!important;filter:none!important}.intro-left,.intro-role{opacity:1!important;transform:none!important}.shared-person{transform:translateX(-50%)!important}.intro-statement{opacity:1!important;transform:none!important}.intro-scene{height:170vh}.intro-statement{top:64%;left:var(--pad);width:75vw}.work-title{height:100vh}.work-title-copy,.planet{opacity:1!important;transform:none!important}.project-scene{height:auto}.project-stage{position:relative;height:auto;min-height:100vh}.project-copy{opacity:1!important;transform:none!important}.project-device{transform:none!important}.work-title-stage::after{display:none}}

/* Accessibility states only. Baseline layout, colours and motion are intact. */
@media(prefers-reduced-motion:reduce){.intro-statement{pointer-events:auto}}
.device-body:focus-visible{outline-offset:-4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Content-sized mobile placement; desktop remains display:contents. */
.intro-copy{display:contents}
@media(max-width:760px){
 .nav-shell{height:76px;grid-template-rows:44px 28px}
 .nav-shell nav{display:flex;grid-area:2 / 1 / 3 / 3;justify-content:center;gap:26px}
 .nav-shell nav a{font-size:11px}
 .intro-copy{display:flex;flex-direction:column;gap:16px;position:absolute;left:20px;right:20px;top:100px;z-index:5}
 .intro-left,.intro-role{position:relative;left:auto;right:auto;top:auto;width:100%;min-width:0}
 .shared-person{left:auto;right:0;width:auto;height:var(--portrait-height,66svh);aspect-ratio:1122 / 1402;transform:scale(var(--person-scale,1));transform-origin:100% 100%}
 .shared-person-img{left:0;bottom:0;width:100%;height:100%;transform:none}
 .intro-statement{top:100px}
}
/* When a sticky frame is taller than the viewport, let the content scroll
   normally instead of cutting off headings, links or the diagram toolbar. */
.project-scene[data-flow]{height:auto}
.project-scene[data-flow] .project-stage{position:relative;height:auto;min-height:100svh}
.project-scene[data-flow] .project-copy{opacity:1;transform:none}
.project-scene[data-flow] .project-device{transform:none}
.project-scene[data-flow] .project-stack,.project-scene[data-flow] .scene-index{display:none}
.intro-scene[data-flow]{height:auto}
.intro-scene[data-flow] .intro-stage{position:relative;height:auto;min-height:100svh;display:flex;flex-direction:column;padding:100px 20px 40px;gap:24px}
.intro-scene[data-flow] .intro-copy{position:relative;left:auto;right:auto;top:auto;display:flex;flex-direction:column;gap:16px}
.intro-scene[data-flow] .intro-left,.intro-scene[data-flow] .intro-role{opacity:1;transform:none}
.intro-scene[data-flow] .shared-person{position:relative;align-self:flex-end;right:auto;bottom:auto;flex-shrink:0;width:min(65%,360px);height:auto;transform:none}
.intro-scene[data-flow] .intro-statement{position:relative;left:auto;right:auto;top:auto;opacity:1;transform:none;pointer-events:auto}
.intro-scene[data-flow] .intro-scroll,.intro-scene[data-flow] .intro-index{display:none}
@media(max-width:760px) and (prefers-reduced-motion:reduce){
 .intro-scene{height:auto}
 .intro-stage{position:relative;height:auto;min-height:100svh;display:flex;flex-direction:column;padding:100px 20px 40px;gap:24px}
 .intro-copy{position:relative;left:auto;right:auto;top:auto}
 .shared-person{position:relative;align-self:flex-end;right:auto;bottom:auto;flex-shrink:0;width:min(65%,360px);height:auto;transform:none!important}
 .intro-statement{position:relative;left:auto;right:auto;top:auto;width:100%}
 .intro-scroll,.intro-index{display:none}
}

@media(min-width:761px) and (max-width:1150px){
 .shared-person{height:min(88vh,65vw)}
}
/* Reduced motion presents the same copy sequentially instead of pinning two
   simultaneous text scenes over the portrait. */
@media(min-width:761px) and (prefers-reduced-motion:reduce){
 .intro-scene{height:auto}
 .intro-stage{height:auto;min-height:100svh;padding-bottom:40px}
 .intro-statement{position:relative;top:auto;left:auto;width:39%;margin:0 5vw 0 auto;padding-top:32px}
 .intro-copy{display:block;position:relative;height:max(65vh,460px)}
 .shared-person{bottom:auto;top:80px;height:min(55vh,50vw)}
}

a,[tabindex]{scroll-margin-top:100px}

@media(min-width:761px) and (max-width:1150px){
 .shared-person{left:var(--tablet-person-left,50%);height:var(--tablet-person-height,min(88vh,65vw))}
}
@media(prefers-reduced-motion:reduce){.role-small,.role-main{transform:none!important}}
.intro-scene[data-flow] .role-small,.intro-scene[data-flow] .role-main{transform:none}

@media(min-width:1151px){.intro-role{left:var(--desktop-role-left,auto);min-width:0}}

/* BUSINESS EXAMPLES — isolated from cinematic scene geometry and animations */
.biz-examples{position:relative;isolation:isolate;background:linear-gradient(180deg,#080910 0%,#0c0e19 55%,#080910 100%);color:#f6f5fb}
.biz-heading{max-width:960px;margin-bottom:clamp(32px,5vw,72px)}
.biz-heading>p:last-child{max-width:650px;color:#b9bbcd;line-height:1.7;font-size:clamp(15px,1.4vw,19px);margin-top:18px}
.biz-showcase{display:grid;gap:22px}.biz-card{display:grid;grid-template-columns:minmax(0,0.91fr) minmax(0,1.09fr);gap:clamp(25px,4vw,64px);align-items:center;border:1px solid rgba(172,168,224,.19);border-radius:22px;background:linear-gradient(125deg,rgba(31,32,54,.66),rgba(10,12,25,.7));padding:clamp(23px,4vw,48px);overflow:hidden}
.biz-overline{font-size:11px;letter-spacing:.18em;color:#ad9bff;font-weight:700}.biz-copy h3{font-size:clamp(26px,3.1vw,42px);line-height:1.12;margin:15px 0}.biz-copy p{line-height:1.7;color:#c5c7d6;font-size:clamp(14px,1.24vw,17px);max-width:500px}.biz-copy a{display:inline-block;margin-top:18px;color:#d0bdff;text-underline-offset:5px;font-weight:650}.biz-copy a:hover,.biz-copy a:focus-visible{color:#fff}.biz-copy small{display:block;margin-top:17px;color:#969ab2;line-height:1.5;font-size:12px}
.biz-preview{min-height:264px;border:1px solid rgba(155,151,239,.28);border-radius:17px;background:radial-gradient(ellipse at 90% 0%,rgba(126,89,224,.15),transparent 62%),#121523;box-shadow:0 22px 55px rgba(0,0,0,.24);padding:22px;display:flex;flex-direction:column;justify-content:flex-start;gap:18px;overflow:hidden}
.biz-window-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#e9e7ff;font-size:14px;font-weight:700}.biz-live{font-size:9px;letter-spacing:.14em;color:#aaa1d5;border:1px solid #555073;border-radius:99px;padding:5px 8px}
.biz-inquiry{display:flex;align-items:center;gap:12px;border:1px solid rgba(160,163,202,.23);background:#1b2030;border-radius:12px;padding:13px;animation:biz-in 5s ease-in-out infinite}.biz-avatar{width:35px;height:35px;flex:0 0 35px;border-radius:50%;display:grid;place-items:center;background:#444076;font-size:11px;color:#fff}.biz-inquiry>div{flex:1;min-width:0}.biz-inquiry strong,.biz-fields strong{display:block;font-size:13px}.biz-inquiry small{display:block;font-size:11px;margin-top:5px;color:#b8bdd0}.biz-dot{width:8px;height:8px;border-radius:50%;background:#90eacb;box-shadow:0 0 12px #7ee7c1}
.biz-step-track{display:flex;justify-content:space-between;gap:6px;position:relative}.biz-step-track span{font-size:10px;text-align:center;flex:1;padding:9px 5px;border-radius:7px;background:#24273e;border:1px solid #454569;animation:biz-stage 8s ease-in-out infinite}.biz-step-track span:nth-child(2){animation-delay:1.5s}.biz-step-track span:nth-child(3){animation-delay:3s}.biz-step-track span:nth-child(4){animation-delay:4.5s}.biz-status{margin-top:auto;font-size:11px;color:#aff1dc;background:rgba(30,114,99,.15);border:1px solid rgba(94,194,159,.22);padding:10px 12px;border-radius:9px}
.biz-document{display:flex;gap:15px;align-items:center;justify-content:center;flex:1}.biz-paper{width:105px;min-height:137px;padding:15px 11px;background:#e9e9fa;border-radius:8px;color:#2d2a54;flex-shrink:0;transform:rotate(-3deg);animation:biz-paper 6s ease-in-out infinite}.biz-paper b{font-size:10px}.biz-paper i{display:block;height:6px;border-radius:4px;background:#b5afca;margin-top:14px}.biz-paper i:last-child{width:60%}.biz-doc-arrow{font-size:27px;color:#bdaaff}.biz-fields{display:grid;gap:9px;flex:1;max-width:225px}.biz-fields strong{color:#eeeaff}.biz-fields span{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#aeb6cd;border-bottom:1px solid #343951;padding-bottom:7px}.biz-fields b{color:#e8ecff;text-align:right}
.biz-chat-question{margin-left:auto;max-width:84%;padding:14px 16px;border-radius:13px 13px 3px 13px;background:#35335c;font-size:13px;color:#f4f1ff;animation:biz-in 6s ease-in-out infinite}.biz-chat-answer{display:flex;gap:12px;background:#1c2531;border:1px solid #354653;border-radius:12px;padding:15px;animation:biz-in 6s 1s ease-in-out infinite}.biz-spark{color:#b4e8d7;font-size:22px}.biz-chat-answer strong{font-size:13px}.biz-chat-answer p{font-size:12px;color:#c7cdde;line-height:1.5;margin:7px 0}.biz-chat-answer small{font-size:10px;color:#98d4c4}
.biz-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}.biz-mini{border:1px solid rgba(172,168,224,.19);background:rgba(21,23,40,.7);border-radius:16px;padding:24px}.biz-mini-icon{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#35315d;color:#d3c3ff;font-size:22px}.biz-mini h3{font-size:20px;margin:16px 0 9px}.biz-mini p{line-height:1.65;color:#b9bdd0;font-size:13px;min-height:65px}.biz-mini-visual{display:flex;gap:12px;align-items:center;justify-content:center;border:1px solid #393951;background:#181b2a;border-radius:9px;min-height:58px;margin-top:19px;color:#cabaff;font-size:12px}.biz-mini-visual span:nth-child(2){font-size:20px}.biz-bars{align-items:flex-end;padding:10px}.biz-bars i{width:14px;height:20px;border-radius:3px 3px 0 0;background:#a896e7}.biz-bars i:nth-child(2){height:29px}.biz-bars i:nth-child(3){height:16px}.biz-bars i:nth-child(4){height:36px}.biz-bars i:nth-child(5){height:26px}
.biz-disclaimer{font-size:12px;color:#989bb2;line-height:1.6;max-width:940px;margin:24px 0 0}
@keyframes biz-in{0%,8%{opacity:.48;transform:translateY(5px)}19%,85%{opacity:1;transform:translateY(0)}100%{opacity:.48;transform:translateY(5px)}}@keyframes biz-stage{0%,9%,80%,100%{border-color:#454569;background:#24273e}15%,30%{border-color:#9bd8c5;background:#31534f}}
@keyframes biz-paper{0%,100%{transform:rotate(-3deg) translateY(3px)}50%{transform:rotate(0) translateY(-4px)}}
@media(max-width:850px){.biz-card{grid-template-columns:1fr}.biz-mini-grid{grid-template-columns:1fr 1fr}.biz-mini p{min-height:0}}
@media(max-width:540px){.biz-preview{padding:14px;min-height:245px}.biz-step-track span{font-size:9px;padding:8px 2px}.biz-mini-grid{grid-template-columns:1fr}.biz-card{padding:20px}.biz-document{gap:9px}.biz-paper{width:86px}.biz-fields{min-width:0}.biz-fields span{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.biz-examples *{animation:none!important;transition:none!important}}

/* Business demonstrations use the same sticky .project-scene, .project-stage,
   .project-copy and .project-device scroll transforms as the flagship work. */
.biz-examples-intro{background:radial-gradient(circle at 72% 62%,#32265c45,transparent 54%),#07070e;color:#f4f1fb}
.biz-examples-intro .biz-heading{margin:0}
.biz-scene{height:148vh}
.biz-scene .biz-stage{grid-template-columns:minmax(260px,.72fr) minmax(540px,1.28fr);background:radial-gradient(circle at 65% 45%,rgba(101,80,211,.22),transparent 60%),#070810}
.biz-scene .biz-copy{max-width:450px}
.biz-scene .biz-preview{width:min(68vw,1000px);min-height:min(58vh,490px);margin:0;justify-self:end;border-radius:14px;padding:clamp(18px,2.4vw,34px);gap:clamp(15px,2vw,28px)}
.biz-scene .biz-window-head{font-size:clamp(14px,1.2vw,18px)}
.biz-scene .biz-inquiry{padding:clamp(12px,1.6vw,21px)}
.biz-scene .biz-chat-question,.biz-scene .biz-chat-answer{padding:clamp(14px,2vw,24px)}
.biz-scene .biz-preview .biz-status{margin-top:auto}
.biz-examples-outro{background:#080910}
.biz-examples-outro .biz-mini-grid{margin-top:0}
@media(max-width:1100px){.biz-scene .biz-stage{grid-template-columns:minmax(210px,.85fr) minmax(360px,1.15fr)}.biz-scene .biz-preview{width:100%;min-height:295px}}
@media(max-width:760px){.biz-scene .biz-stage{grid-template-columns:1fr}.biz-scene .biz-preview{width:100%;min-height:245px}.biz-scene[data-flow]{height:auto}.biz-scene[data-flow] .sticky-stage{position:relative;height:auto;overflow:visible}.biz-scene[data-flow] .project-copy,.biz-scene[data-flow] .project-device{transform:none!important;opacity:1!important}.biz-scene .biz-copy h3{font-size:clamp(30px,7vw,42px)}}
@media(prefers-reduced-motion:reduce){.biz-scene .project-copy,.biz-scene .project-device{transform:none!important;opacity:1!important}}

/* Operations Console: authentic evidence within the existing cinematic scene contract. */
.console-scene .project-copy{max-width:470px}
.console-scene h2{font-size:clamp(34px,3vw,48px);line-height:1.04}
.console-scene .result{margin:14px 0 10px}
.console-scene .console-disclosure{font-size:12px;line-height:1.55;color:#c4badb}
.console-scene .console-stack{font-size:11px;line-height:1.7;color:#c4badb;margin:12px 0}
.console-links{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-top:14px}
.console-links a{font-size:12px;line-height:1.5;color:#dac8ff;text-decoration:underline;text-underline-offset:4px;padding:5px 0}
.console-links .project-link{margin:0}
.console-capture{margin:0;width:100%;max-width:100%;background:#0b1018}
.console-scene .project-stack{color:#c4badb}
.console-image-link{display:block}
.console-image-link img{display:block;width:100%;height:auto}
.console-capture figcaption{padding:13px 16px;font-size:10px;line-height:1.6;color:#c4badb;background:#0e0b19}
.console-capture .device-top b{color:#c4badb}
.console-capture figcaption a{color:#dac8ff;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.console-scene h2{font-size:36px}.console-scene .console-disclosure{font-size:12px}.console-links{gap:6px 16px}.console-capture figcaption{padding:10px 12px}}
