@charset 'UTF-8';
@font-face{font-family:Space;src:url('./assets/space-grotesk-latin.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{--ink:#d8dadd;--muted:#7a8086;--mono:'Cascadia Code',Consolas,monospace;--ease:cubic-bezier(.22,.8,.2,1)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%;color:var(--ink);font-family:Arial,Helvetica,sans-serif}body{background:#55747a;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:22px 20px 42px;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default}[hidden]{display:none!important}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #b8c9d1;outline-offset:5px}::selection{background:#bfcacf;color:#121517}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.skip-link{position:fixed;z-index:50;top:-90px;left:30px;padding:13px 18px;background:#ddd;color:#111;font-size:12px}.skip-link:focus{top:15px}.wallpaper{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#6e8a8a}.wallpaper:after{content:'';position:absolute;inset:0;background:#122a3620;box-shadow:inset 0 0 160px #182e4445}.wallpaper svg{width:100%;height:100%;display:block;filter:blur(2px) saturate(.9);transform:scale(1.04)}
.portfolio-window{position:relative;isolation:isolate;overflow:hidden;width:min(1120px,calc(100vw - 50px),calc((100dvh - 66px)*1.08));height:min(1000px,calc(100dvh - 66px));border-radius:10px;background:#121518;border:1px solid #7b858690;box-shadow:0 0 0 5px #1c292d70,0 0 0 6px #81908e66,0 15px 50px #091c2977,inset 0 0 3px #d8e2dd55;--ui-opacity:1;--ui-scale:1;--intro-opacity:0;--scene-entrance:1}.glass-edge{position:absolute;inset:0;z-index:20;border:1px solid #91a1a12c;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 4px #080c1130,inset 0 0 10px #b0bfc215}.pond-canvas,.intro-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.pond-canvas{z-index:1;opacity:var(--scene-entrance)}.water-shade{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 50% 42%,#10131600 30%,#05080b35);pointer-events:none}.intro-canvas{z-index:10;opacity:var(--intro-opacity);visibility:hidden}.portfolio-window[data-phase="intro"] .intro-canvas{visibility:visible}.interface{position:absolute;inset:0;z-index:2;opacity:var(--ui-opacity);transform:scale(var(--ui-scale));transform-origin:50% 50%}.portfolio-window[data-phase="intro"] .interface{pointer-events:none}.window-header{position:absolute;left:18px;right:18px;top:16px;z-index:8;display:flex;justify-content:space-between;opacity:var(--scene-entrance)}.metal-pill{font-family:var(--mono);font-size:9px;letter-spacing:-.04em;line-height:1;display:inline-flex;gap:8px;align-items:center;border:1px solid #ffffff0c;border-radius:30px;padding:9px 12px;background:linear-gradient(180deg,#33383d99,#20252a80);box-shadow:inset 0 1px 1px #ffffff16,0 1px 3px #0006;color:#939ca5;min-height:30px;transition:color .2s,background .2s}.metal-pill:hover{background:linear-gradient(180deg,#444b51,#282e33);color:#e2e7eb}.slides{position:absolute;inset:0;perspective:1300px;overflow:hidden;touch-action:pan-y}.slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;will-change:transform;transform:translate3d(calc(var(--slide-offset,0)*100%),0,0);transition:transform .72s var(--ease),opacity .65s var(--ease);backface-visibility:hidden}.slide[inert]{pointer-events:none}.profile-slide{--slide-offset:0}.project-slide{--slide-offset:1}.profile{position:relative;width:55%;max-width:470px;transform:translateY(-14px);font-size:13px}.signature{position:absolute;width:88%;max-width:365px;height:auto;left:5px;top:-84px;transform:rotate(-2deg);overflow:visible;opacity:.53;pointer-events:none}.signature path{stroke:#71767a;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1250;stroke-dashoffset:1250}.signature-drawn .signature path{animation:sign 2.8s cubic-bezier(.4,.05,.2,1) forwards}@keyframes sign{to{stroke-dashoffset:0}}.identity{display:flex;align-items:center;gap:12px;margin-bottom:20px;position:relative;z-index:2}.portrait-wrap{width:51px;height:58px;flex-shrink:0;perspective:400px}.identity img{width:100%;height:100%;object-fit:contain;transform:rotateX(var(--face-y,0deg)) rotateY(var(--face-x,0deg));transition:transform .2s ease-out;transform-origin:50% 80%;filter:saturate(.6)}h1{font-size:20px;font-weight:500;letter-spacing:-.6px;margin:0 0 7px}h1>span{color:#97a7af}.identity p{font-family:var(--mono);font-size:9px;letter-spacing:-.02em;color:#747c84;margin:0}.intro-copy{font-size:13px;line-height:2;color:#bec3c7;max-width:440px;margin:0 0 28px;letter-spacing:-.015em}.inline-chip{display:inline-block;line-height:1.55;white-space:nowrap;padding:0px 6px;border-radius:4px;background:linear-gradient(180deg,#30363a99,#20262c99);box-shadow:inset 0 1px 1px #ffffff0c;color:#c3c9cf}.inline-chip>span{font-size:11px;color:#96a2ac;padding-right:3px}.tree-label{font-family:var(--mono);font-size:10px;line-height:1.5;color:#858d95;margin:0 0 5px}.tree-branches{position:relative;margin-left:7px;padding-left:16px;border-left:1px solid #727b8566}.tree-branches details{position:relative;font-family:var(--mono);font-size:10px;line-height:1.65;letter-spacing:-.03em}.tree-branches details:before{content:'';position:absolute;left:-16px;width:13px;border-top:1px solid #727b8566;top:11px}.tree-branches details:last-child:after{content:'';position:absolute;background:#121518;width:2px;left:-17px;top:12px;bottom:0}.tree-branches summary{cursor:pointer;list-style:none;color:#8e979e;min-height:24px;display:flex;gap:7px;align-items:center;width:fit-content;padding-right:12px}.tree-branches summary::-webkit-details-marker{display:none}.tree-branches summary:hover{color:#d1d9de}.expand-mark{color:#64717c;font-size:10px;line-height:1}.tree-branches details[open] .expand-mark{font-size:0}.tree-branches details[open] .expand-mark:after{content:'−';font-size:10px}.branch-content{padding-left:18px;padding-bottom:10px;border-left:1px solid #727b8544;position:relative;margin-left:7px;color:#7b858e;font-size:9px;max-width:330px;animation:branch-in .3s ease both}.branch-content:before{content:'';position:absolute;left:0;top:7px;width:13px;border-top:1px solid #727b8544}.branch-content p{margin:0 0 3px;max-width:290px}.branch-content a{display:inline-block;min-height:25px;line-height:25px;color:#adb9c1}.branch-content a:hover{color:#fff}@keyframes branch-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.profile-footnote{font-family:var(--mono);font-size:9px;color:#6c7780;margin:30px 0 0;line-height:1.7;letter-spacing:-.03em}.profile-footnote>span{margin-inline:4px;color:#454e56}
.navigation-deck{position:absolute;z-index:6;width:57%;max-width:485px;bottom:7.4%;left:50%;transform:translateX(-50%);opacity:var(--scene-entrance)}.range-shell{position:relative;height:44px;border-radius:27px;background:linear-gradient(180deg,#242a2f,#383e43 47%,#292f34);box-shadow:inset 0 2px 4px #0009,inset 0 -1px 1px #fff2,0 4px 12px #0005;border:1px solid #20262a}.range-shell:before{content:'';position:absolute;height:4px;left:25px;right:25px;top:20px;background:#080c10;box-shadow:0 1px #66727a33;border-radius:5px}.deck-reflection{position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 2px 1px 4px #ffffff09}input[type=range]{-webkit-appearance:none;appearance:none;display:block;width:calc(100% - 12px);height:44px;margin:-1px 6px 0;position:relative;z-index:1;background:transparent;cursor:grab;touch-action:pan-y}input[type=range]:active{cursor:grabbing}input[type=range]::-webkit-slider-runnable-track{height:4px;background:transparent}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:37px;height:37px;border:1px solid #4b535b;border-radius:50%;margin-top:-17px;background:radial-gradient(circle at 31% 22%,#929ca5 0%,#737e88 19%,#58636c 42%,#3b454e 72%,#2a333b 100%);box-shadow:1px 3px 7px #0009,inset 0 1px 2px #c1cbd355,inset 0 -3px 5px #07111a55}input[type=range]::-moz-range-track{height:4px;background:transparent}input[type=range]::-moz-range-thumb{width:35px;height:35px;border:1px solid #4b535b;border-radius:50%;background:radial-gradient(circle at 31% 22%,#929ca5,#3b454e 72%);box-shadow:1px 3px 7px #0009}.deck-labels{display:flex;justify-content:space-between;padding:3px 7px 0}.deck-labels button{font-family:var(--mono);font-size:8px;letter-spacing:-.05em;border:0;background:none;color:#4e5a65;padding:10px 8px;min-width:32px;min-height:32px}.deck-labels button[aria-current="true"]{color:#c2cbd3;text-shadow:0 0 8px #becbd533}.deck-labels button:hover{color:#c3cdd4}.work-card{width:68%;max-width:580px;margin:0;transform:translateY(-25px);perspective:800px}.work-visual{display:flex;position:relative;flex-direction:column;justify-content:center;aspect-ratio:1.05;border-radius:12px;overflow:hidden;padding:9%;box-shadow:0 20px 35px #0005;transition:transform .8s var(--ease);transform:rotateY(var(--card-y,0deg)) rotateZ(var(--card-z,0deg));transform-style:preserve-3d}.work-visual:hover{transform:rotateY(-3deg) rotateZ(-1deg)}.cover-kicker{font-family:var(--mono);font-size:7px;letter-spacing:.06em;position:absolute;top:8%;left:8%;right:8%;line-height:1.5}.cover-link{position:absolute;bottom:7%;left:8%;right:8%;font-family:var(--mono);font-size:8px;letter-spacing:-.01em;opacity:.7}.work-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 1px 0}.work-caption h2{font-size:10px;font-weight:400;margin:0;color:#c6ced4;letter-spacing:-.015em}.work-caption>span{font-size:8px;color:#606d78}.skill-cover{background:#becab8;color:#26362a}.skill-cover>strong{font-family:Space,sans-serif;font-size:clamp(30px,4.2vh,52px);font-weight:500;line-height:1.1;letter-spacing:-.06em;margin-top:-12%}.skill-cover strong em{font-style:normal;color:#758870}.flow-window{border-radius:6px;margin-top:7%;background:#17201be8;box-shadow:0 12px 30px #233b3440;border:1px solid #e9ffe333;transform:rotate(-3deg);animation:float-window 6s ease-in-out infinite alternate}.flow-top{height:23px;display:flex;align-items:center;gap:4px;border-bottom:1px solid #ffffff10;padding:0 9px}.flow-top i{width:4px;height:4px;background:#70846e;border-radius:50%}.flow-top>span{font-family:var(--mono);font-size:6px;color:#9aaf98;margin-left:auto}.flow-code{font-family:var(--mono);color:#b4cbb2;font-size:10px;padding:16px 14px 10px;line-height:1.8}.flow-code>span{color:#7d9c72}.flow-code small{font-size:7px;color:#70896c}.flow-tags{display:flex;gap:5px;padding:0 14px 13px}.flow-tags span{font-size:5px;font-family:var(--mono);border:1px solid #8aaf791f;border-radius:2px;padding:4px;color:#8a9f83;animation:tag-glow 4s ease infinite}.flow-tags span:nth-child(2){animation-delay:1s}.flow-tags span:nth-child(3){animation-delay:2s}.typing-block{animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@keyframes float-window{to{transform:rotate(1deg) translateY(-3px)}}@keyframes tag-glow{50%{background:#97c58420;color:#c3eab9}}.luso-cover{background:#ced9e2;color:#2b4053;align-items:center}.luso-cover>strong{position:absolute;top:17%;left:8%;font-family:Space,sans-serif;font-size:32px;letter-spacing:-1.4px;font-weight:500}.luso-cover>strong>span{color:#7d95a6}.luso-badge{width:135px;height:135px;display:grid;place-items:center;background:linear-gradient(130deg,#f2f8fa,#8ba1b1);border-radius:28px;box-shadow:12px 20px 40px #31485d33,inset 0 2px 2px #fff;transform:rotate(-12deg);font-size:96px;font-family:Space,sans-serif;color:#39586d;text-shadow:0 1px #fff;animation:luso-float 6s ease-in-out infinite alternate;margin-top:12%}.luso-badge>span{position:absolute;right:23px;top:20px;font-size:29px}.luso-descriptor{font-family:var(--mono);font-size:7px;color:#6a8497;margin-top:22px;letter-spacing:.05em}@keyframes luso-float{to{transform:rotate(4deg) translateY(-8px)}}.motion-cover{background:#172a3b;color:#e2e4df;padding:0}.motion-cover video{width:100%;height:100%;object-fit:contain;padding:12% 3%}.pixel-cover{background:#ede7da;color:#494e41;padding:5%}.pixel-cover img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;padding:11% 0}.project-slide.neighbour .work-visual{--card-y:-12deg;--card-z:1deg}.project-slide.past .work-visual{--card-y:12deg;--card-z:-1deg}.intro-caption{position:absolute;z-index:12;bottom:24px;left:24px;font-family:var(--mono);font-size:8px;color:#8d969c;letter-spacing:.1em;pointer-events:none}.skip-intro{position:absolute;right:19px;bottom:21px;z-index:15;min-height:36px}.graphics-fallback{position:absolute;z-index:20;bottom:5px;left:15px;right:15px;font-size:8px;color:#89949c;text-align:center}
.experience-footer{position:fixed;left:24px;right:24px;bottom:12px;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:8px;color:#dde5e3;text-shadow:0 1px 3px #000b;z-index:25;gap:15px}.experience-footer>span{opacity:.7}.footer-cross{padding:0 9px;color:#dae4d5}.experience-footer>div{display:flex;gap:18px;align-items:center}.experience-footer button,.experience-footer summary{font-family:var(--mono);font-size:8px;border:0;background:none;color:#e5eeed;padding:5px 0;text-shadow:0 1px 4px #001e29;min-height:22px}.experience-footer button:hover,.experience-footer summary:hover{color:#fff}.experience-footer summary{cursor:pointer;list-style:none}.experience-footer summary::-webkit-details-marker{display:none}.lab-panel{position:absolute;width:330px;max-width:calc(100vw - 30px);right:0;bottom:32px;background:#20282dee;border:1px solid #8a9ba24a;box-shadow:0 15px 50px #0006;border-radius:10px;padding:18px;color:#c0cbd2;backdrop-filter:blur(20px);text-shadow:none}.lab-panel>div:first-child{display:flex;justify-content:space-between}.lab-panel strong{font-family:Space,sans-serif;font-size:14px;font-weight:500}.lab-panel output{font-family:var(--mono);font-size:11px}.lab-panel>label{display:block;margin-top:16px;font-size:8px;color:#80909b}.lab-panel input[type=range]{width:100%;margin:0;height:50px}.lab-panel input[type=range]::-webkit-slider-runnable-track{background:#0b1014;height:3px}.lab-panel input[type=range]::-webkit-slider-thumb{width:22px;height:22px;margin-top:-10px}.lab-actions{display:flex;gap:20px;justify-content:space-between}.lab-actions button{padding:8px 0;color:#b9c7d0;font-size:9px}
html:not(.js) body{overflow:auto}html:not(.js) .portfolio-window{height:auto;min-height:85vh;overflow:visible}html:not(.js) .interface,html:not(.js) .slides{position:relative}html:not(.js) .window-header{position:relative;padding:18px;left:auto;right:auto;top:auto}html:not(.js) .slide{position:relative;transform:none;padding:100px 20px 70px}html:not(.js) .profile{width:85%;transform:none}html:not(.js) .work-card{width:85%;transform:none}html:not(.js) .signature path{stroke-dashoffset:0}html:not(.js) .experience-footer{position:relative;margin-top:20px;left:auto;right:auto;bottom:auto}
.wallpaper img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.88);transform:scale(1.015)}
.luso-real-icon{background:none;box-shadow:none;text-shadow:none;object-fit:contain;filter:drop-shadow(10px 18px 24px #102b4c45)}
.quinas-cover{padding:0;background:#092b68;color:#fff8e8;isolation:isolate}
.quinas-cover .quinas-city{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:22% 50%;image-rendering:auto}
.quinas-cover:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#04153355,transparent 38%,transparent 60%,#03122aee)}
.quinas-cover .cover-kicker{z-index:2;top:7%;font-size:7px;letter-spacing:.12em;text-shadow:0 1px 8px #03122a}
.quinas-cover .quinas-brand{position:absolute;z-index:2;top:14%;right:5%;width:52%;height:auto;object-fit:contain;filter:drop-shadow(0 3px 7px #03122a99)}
.quinas-cover .cover-link{z-index:2;opacity:1;display:flex;flex-direction:column;gap:12px;line-height:1.6;color:#fff8e8}
.quinas-cover .cover-link>span:first-child{font-size:7px;letter-spacing:.08em;opacity:.75}
.portfolio-window[data-phase="intro"] .interface{z-index:12;transform-origin:0 0;overflow:hidden;border-radius:7%;background:rgba(18,21,24,var(--screen-backdrop,1))}.portfolio-window[data-phase="intro"] .navigation-deck{opacity:1}.signature-drawn .signature path{animation-duration:2s}
.portfolio-window.initializing .slide,.portfolio-window[data-phase="intro"] .slide{transition:none!important}
html:not(.js) body{display:block}html:not(.js) .portfolio-window{margin-inline:auto}html:not(.js) .experience-footer{max-width:calc(100vw - 40px);margin-inline:auto}
html:not(.js) #motion-lab{display:none}
.work-card{width:64%;max-width:550px;transform:translateY(-40px)}
@media(min-width:1500px){.profile{font-size:14px;width:55%}.identity{gap:13px}h1{font-size:22px}.identity p{font-size:10px}.intro-copy{font-size:14px}.tree-branches details,.tree-label{font-size:11px}.tree-branches summary{min-height:26px}.profile-footnote{font-size:10px}.signature{top:-95px}.work-caption h2{font-size:11px}.work-caption>span{font-size:9px}}
@media(max-height:720px) and (min-width:701px){.profile{width:58%;transform:translateY(-5px)}.identity{margin-bottom:12px}.intro-copy{font-size:11px;margin-bottom:18px}.identity p{font-size:8px}h1{font-size:18px}.tree-branches details,.tree-label{font-size:9px}.tree-branches summary{min-height:21px}.profile-footnote{font-size:8px;margin-top:18px}.signature{top:-66px;width:78%}.portrait-wrap{height:46px;width:40px}.navigation-deck{bottom:5.5%;width:57%}.range-shell{height:36px}.range-shell:before{top:17px}.range-shell input{height:36px}.range-shell input::-webkit-slider-thumb{width:31px;height:31px;margin-top:-14px}.deck-labels{padding-top:1px}.deck-labels button{padding-block:6px}.work-card{width:65%;max-height:75%;transform:translateY(-16px)}.work-visual{max-height:410px}.cover-kicker{font-size:6px}.work-caption{padding-top:8px}.work-caption h2{font-size:9px}.work-caption>span{font-size:7px}}
@media(max-width:700px){body{padding:12px 12px 48px}.portfolio-window{width:calc(100vw - 28px);height:calc(100dvh - 65px);max-height:1000px;border-radius:8px}.window-header{left:14px;right:14px;top:14px}.metal-pill{min-height:36px;font-size:9px;padding:9px 12px}.profile{width:76%;transform:translateY(-12px)}.signature{top:-72px;width:94%;left:0;max-width:320px}.identity{gap:10px;margin-bottom:21px}.portrait-wrap{width:43px;height:50px}h1{font-size:20px}.identity p{font-size:8px;line-height:1.8;max-width:190px}.intro-copy{font-size:12px;line-height:2;margin-bottom:25px}.inline-chip{padding-inline:5px}.tree-label,.tree-branches details{font-size:10px}.tree-branches summary{min-height:29px}.branch-content{font-size:9px;padding-bottom:12px}.branch-content a{min-height:30px;line-height:30px}.profile-footnote{font-size:8px;line-height:1.9;margin-top:25px;max-width:220px}.navigation-deck{width:75%;bottom:5.5%}.range-shell{height:44px}.deck-labels button{font-size:8px;min-height:36px;min-width:36px}.work-card{width:82%;transform:translateY(-18px)}.work-visual{border-radius:9px;aspect-ratio:.84}.cover-kicker{font-size:6px}.cover-link{font-size:7px}.skill-cover>strong{font-size:35px;line-height:1.1}.flow-code{font-size:8px;padding:15px 10px 8px}.flow-code small{font-size:6px}.flow-tags{padding-inline:10px;gap:3px}.flow-top span{font-size:5px}.flow-top{height:20px}.flow-tags span{font-size:5px}.work-caption{padding-top:13px;gap:8px}.work-caption h2{font-size:10px}.work-caption>span{font-size:7px}.luso-cover>strong{font-size:28px}.luso-badge{width:118px;height:118px;font-size:85px}.luso-badge>span{font-size:25px;right:18px}.luso-descriptor{font-size:6px}.motion-cover video{padding:17% 2%}.pixel-cover img{padding-block:18%}.experience-footer{font-size:6px;bottom:13px;left:16px;right:16px}.experience-footer>span{max-width:90px;line-height:1.7}.experience-footer>div{gap:13px}.experience-footer button,.experience-footer summary{font-size:7px;min-height:30px}.experience-footer .footer-cross{display:none}.experience-footer>span{font-size:0}.experience-footer>span:before{content:'johnny.';font-size:9px}.lab-panel{right:0;bottom:35px}.skip-intro{right:16px;bottom:22px}.intro-caption{left:16px;bottom:68px;font-size:7px}}
@media(max-width:380px){.profile{width:79%}.identity p{font-size:7px}.intro-copy{font-size:11px}.inline-chip{padding-inline:3px}.signature{top:-65px}.navigation-deck{width:78%}.work-card{width:83%}.skill-cover>strong{font-size:29px}.work-caption h2{font-size:9px}.work-caption>span{font-size:6px}.experience-footer>div{gap:9px}.experience-footer button,.experience-footer summary{font-size:6px}}
@media(max-height:650px) and (max-width:700px){.profile{transform:translateY(-6px)}.identity{margin-bottom:10px}.intro-copy{font-size:10px;margin-bottom:13px}.portrait-wrap{width:35px;height:40px}.signature{top:-50px;width:70%}.tree-branches summary{min-height:23px;font-size:9px}.tree-label{font-size:9px}.profile-footnote{margin-top:13px;font-size:7px}.navigation-deck{bottom:3%}.work-visual{aspect-ratio:1.1}.work-card{width:75%}.cover-kicker{font-size:5px}.skill-cover>strong{font-size:27px}.flow-window{margin-top:4%}.flow-code{padding-block:8px}.flow-tags{padding-bottom:8px}.luso-badge{width:80px;height:80px;font-size:60px;border-radius:18px;margin-top:25%}.luso-badge>span{font-size:18px;right:14px;top:12px}.luso-descriptor{margin-top:13px;font-size:5px}.luso-cover>strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) *,html:not([data-motion="full"]) *:before,html:not([data-motion="full"]) *:after{animation:none!important;transition:none!important}html:not([data-motion="full"]) .signature path{stroke-dashoffset:0}}
html[data-motion="reduced"] *,html[data-motion="reduced"] *:before,html[data-motion="reduced"] *:after{animation:none!important;transition:none!important}html[data-motion="reduced"] .signature path{stroke-dashoffset:0}html[data-motion="reduced"] .portrait-wrap img,html[data-motion="reduced"] .work-visual{transform:none!important}

/* The experience is the page, from the physical computer to the interactive pond. */
html.booting .portfolio-window,html.booting .experience-footer{visibility:hidden}
body{display:block;padding:0;background:#121518}
.portfolio-window{width:100%;height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none}
.window-header{top:max(18px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}
.experience-footer{bottom:max(10px,env(safe-area-inset-bottom));color:#a6b1b8;text-shadow:none}
.experience-footer button,.experience-footer summary{color:#a6b1b8;text-shadow:none}
.skip-intro{bottom:48px}
.intro-caption{bottom:60px}
html:not(.js) .portfolio-window{height:auto;min-height:100dvh}
@media(max-width:700px){.skip-intro{bottom:55px}.intro-caption{bottom:101px}.navigation-deck{bottom:7%}}

/* New projects keep their own identities inside the existing physical slider. */
.profile-slide{overflow-y:auto;overscroll-behavior:contain;align-items:safe center;padding-block:110px 145px;scrollbar-width:thin}
.profile{flex-shrink:0}
.cover-description{font-size:12px;line-height:1.8;letter-spacing:-.01em;margin:16px 0 0}
.vela-cover{background:radial-gradient(ellipse at 95% 12%,#274a70 0,transparent 60%),#0c1521;color:#edf4ff;justify-content:flex-start;padding-top:21%}
.vela-signature{width:54%;height:auto;margin-bottom:9%}
.vela-cover>strong{font-family:Space,sans-serif;font-size:clamp(30px,4.8vh,50px);font-weight:500;line-height:1.1;letter-spacing:-.055em}
.vela-cover .cover-kicker,.vela-cover .cover-description{color:#9fcfff}
.atlas-cover{background:#211b16;color:#f0e6ce;justify-content:flex-end;padding-bottom:21%;isolation:isolate}
.atlas-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:57% center;z-index:-2}
.atlas-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#17130e66 0,#17130e08 28%,#17130ec9 55%,#17130ef5 100%);z-index:-1}
.atlas-cover>strong{font-family:Georgia,serif;font-size:clamp(34px,5.2vh,55px);font-weight:400;line-height:1.02;letter-spacing:-.04em}
.atlas-cover>strong em{font-weight:400}
.atlas-cover .cover-description{color:#ddd0b7}
.conta-cover{background:#222420;color:#e6e7de;justify-content:flex-start;padding-top:19%}
.conta-cover>strong{font-family:Space,sans-serif;font-weight:500;font-size:clamp(28px,4.4vh,44px);letter-spacing:-.065em;line-height:1.1}
.conta-cover>strong>span{color:#afbd93}
.conta-cover .cover-description{color:#bac2ad;margin-top:12px;font-size:11px}
.conta-preview{margin-top:7%;height:43%;border:1px solid #ffffff13;border-radius:5px;overflow:hidden;box-shadow:0 12px 30px #0005;transform:rotate(-3deg);flex-shrink:0}
.conta-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.deck-labels{gap:0}
.deck-labels button{flex:1;min-width:0}
html:not(.js) .profile-slide{overflow:visible}
@media(max-width:700px){.profile-slide{padding-block:105px 150px}.cover-description{font-size:11px}.vela-cover{padding-top:24%}.vela-signature{width:65%;margin-bottom:13%}.vela-cover>strong{font-size:36px}.atlas-cover>strong{font-size:40px}.conta-cover>strong{font-size:31px}.conta-cover .cover-description{font-size:10px}.conta-preview{height:42%;margin-top:10%}.deck-labels button{padding-inline:0}.navigation-deck{width:82%}}
@media(max-height:650px){.profile-slide{padding-block:85px 115px}.cover-description{font-size:10px;margin-top:10px}.vela-signature{margin-bottom:6%;width:48%}.vela-cover>strong{font-size:30px}.atlas-cover>strong{font-size:33px}.conta-cover>strong{font-size:27px}.conta-cover .cover-description{font-size:9px}.conta-preview{margin-top:5%;height:38%}}
