@font-face{font-family:Nunito;src:url('/fonts/nunito.woff2') format('woff2');font-weight:800;font-display:swap}@font-face{font-family:Mono;src:url('/fonts/mono.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#0a0a0a;color:#f3f1ed;font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #ff8b52;outline-offset:6px}::selection{background:#f4773a;color:#080808}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.1;letter-spacing:-.04em}h1,h2{font-family:Nunito,Arial,sans-serif;font-weight:800}h3{font-size:25px}p{color:#b9b9bd}img{display:block;max-width:100%}.wrap{width:min(1200px,calc(100% - 96px));margin:auto}.section{padding:110px 0;border-bottom:1px solid #262626}.eyebrow{font:12px/1.6 Mono,monospace;letter-spacing:.12em;color:#ff8b52;margin-bottom:24px}.orange,.dot{color:#ff8b52}header{height:88px;padding:0 48px;display:flex;justify-content:space-between;align-items:center;background:#0a0a0af5;border-bottom:1px solid #262626;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.logo{font:bold 17px/1.12 Mono,monospace;letter-spacing:-.07em}.logo>span{display:block}.logo .dot{display:inline}nav{display:flex;align-items:center;gap:34px;font-size:14px;color:#c6c6c8}.nav-contact{border:1px solid #555;padding:9px 19px;border-radius:6px;color:#fff}nav a:hover,.text-link:hover{color:#ff8b52}.menu-toggle{display:none}.skip{position:fixed;top:-100px;left:20px;background:#ff8b52;color:#000;z-index:30;padding:12px}.skip:focus{top:10px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;padding-top:92px;padding-bottom:96px}.hero h1{font-size:clamp(42px,4.3vw,66px);line-height:1.08;letter-spacing:-.05em}.hero h1 span{color:#ff8b52}.lead{font-size:18px;line-height:1.75}.hero .lead{margin-top:28px;max-width:600px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{display:inline-flex;justify-content:center;align-items:center;border:1px solid #555;border-radius:6px;min-height:50px;padding:13px 22px;font-size:14px;font-weight:700;transition:background .18s,transform .18s;color:#f5f5f5}.button:hover{background:#272727;transform:translateY(-2px)}.primary{background:#ff8b52;border-color:#ff8b52;color:#17100d}.primary:hover{background:#ffad83;color:#17100d}.hero-note{font-size:12px;margin-top:27px;display:flex;align-items:center;gap:10px}.hero-note>span{height:6px;width:6px;background:#ff8b52;border-radius:100%;flex-shrink:0}.hero-art{border:1px solid #38332e;background:#151310;border-radius:12px;overflow:hidden;transform:rotate(2deg);box-shadow:0 32px 70px #0008}.window-bar{font:11px Mono,monospace;padding:15px 20px;display:flex;justify-content:space-between;color:#aeaaa6}.window-bar span{color:#ff8b52}.hero-preview{display:block;height:350px;overflow:hidden}.hero-preview img{width:100%;height:auto}.art-caption{display:flex;align-items:center;justify-content:space-between;padding:22px;font-size:14px;line-height:1.5}.art-caption>.orange{font-size:35px}.service-strip{border-block:1px solid #262626}.service-strip>.wrap{display:flex;justify-content:space-between;gap:20px;padding-block:22px;font:12px Mono,monospace;color:#bdbdbd}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;margin-bottom:46px}.section-head>p{max-width:345px;font-size:16px}h2{font-size:clamp(34px,3.7vw,49px)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.services article{padding:30px 27px;border:1px solid #333;border-radius:9px;display:flex;flex-direction:column;background:#101010}.service-number{font:12px Mono,monospace;color:#ff8b52;margin-bottom:30px}.services h3{font-size:24px;line-height:1.25;margin-bottom:20px}.services p{font-size:15px}.services ul{padding-left:18px;color:#b9b9bd;font-size:14px;margin:22px 0 30px}.services li{padding:5px 0}.text-link{font-size:14px;font-weight:700;display:inline-block}.services .text-link{margin-top:auto}.section-note{font-size:13px;line-height:1.7;margin-top:24px;max-width:900px;color:#a5a5aa}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 24px}.project{display:block;min-width:0}.project-image{border:1px solid #333;border-radius:10px;height:315px;overflow:hidden;background:#181818}.project-image img{width:100%;height:auto;transition:transform .35s}.project:hover .project-image img{transform:scale(1.025)}.project-meta{display:flex;justify-content:space-between;gap:12px;font:11px Mono,monospace;color:#b5b5b5;margin:20px 0 12px}.project h3{display:flex;justify-content:space-between;font-size:27px}.project h3 span{color:#ff8b52}.project>p{font-size:15px;margin:12px 0;max-width:520px}.project>.text-link{font-size:13px;color:#ffae87}.terminal-preview{padding:30px;height:100%;background:linear-gradient(125deg,#181818,#13100d);display:flex;flex-direction:column;justify-content:space-between}.terminal-preview>span{font:12px Mono,monospace;color:#ff8b52}.terminal-preview strong{font-size:42px}.terminal-preview p{font:13px/1.8 Mono,monospace}.more-projects,.experience{margin-top:48px;border-block:1px solid #333}.more-projects summary,.experience summary{padding:23px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;font-weight:700}.more-projects[open]>.project-grid{padding:20px 0 40px}summary span{color:#ff8b52;font-size:22px}details[open]>summary span{transform:rotate(45deg)}.code-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.code-card{display:flex;flex-direction:column;align-items:flex-start;padding:30px;border:1px solid #333;border-radius:9px;background:#101010}.code-card h3{margin:0 0 18px}.code-card p{font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:24px 0}.tags span{padding:3px 8px;border:1px solid #444;border-radius:4px;font:11px/1.6 Mono,monospace;color:#c3c3c8}.code-card .text-link{margin-top:auto;color:#ffae87}.agency-band{background:#18130f;border-block:1px solid #3b2d23;padding:80px 0}.agency-band p:not(.eyebrow){max-width:620px;margin:24px 0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px}.about-grid .lead{margin:26px 0 18px}.about-grid .text-link{margin-top:24px;color:#ffae87}.process{padding:30px;border-left:1px solid #383838}.process h3{font-size:24px}.process ol{list-style:none;counter-reset:steps;padding:0;margin:28px 0 0}.process li{counter-increment:steps;position:relative;padding-left:40px;margin:25px 0}.process li:before{content:'0' counter(steps);position:absolute;left:0;top:2px;font:12px Mono,monospace;color:#ff8b52}.process li p{font-size:14px;margin-top:6px}.experience>h3{font:13px Mono,monospace;color:#ff8b52;margin:28px 0 16px}.experience-row{display:grid;grid-template-columns:200px 1fr;border-top:1px solid #242424;padding:18px 0;gap:25px}.experience-row>span{font:12px/1.8 Mono,monospace;color:#a9a9ad}.experience-row h3{font-size:18px;line-height:1.4;letter-spacing:0}.experience-row p{font-size:14px}.contact{text-align:center;padding-bottom:90px}.contact h2{font-size:clamp(52px,7vw,88px)}.contact h2 span{color:#ff8b52}.contact .lead{max-width:620px;margin:24px auto 30px}.email{display:block;font-size:20px;margin-top:22px;overflow-wrap:anywhere}.contact .section-note{margin:16px auto}.copy-email{background:none;border:0;padding:10px;color:#ffae87}#copy-status{min-height:24px;font-size:13px}footer{display:flex;flex-wrap:wrap;align-items:center;gap:32px;padding:35px 48px;font-size:12px}footer .logo>span{display:inline}footer>div{display:flex;gap:22px;margin-left:auto}footer small{color:#999}.detail{padding-top:65px}.detail>.eyebrow{margin-top:50px}.detail h1{font-size:clamp(45px,7vw,88px)}.detail>.lead{max-width:800px;margin:25px 0}.detail-meta{display:flex;gap:60px;padding:25px 0 40px}.detail-meta span{font:12px Mono,monospace;color:#ff8b52}.detail-meta p{margin-top:10px}.detail figure{margin:0}.detail figcaption{font-size:13px;color:#bbb;margin:20px 0}.detail-image{width:min(100%,1000px);margin:auto;border-radius:10px}.detail-contact{margin-top:70px;border-top:1px solid #333;padding-top:45px}.detail-contact h2{font-size:36px}.detail-contact p{margin:20px 0}.detail .text-link{color:#ffae87}
@media(min-width:1600px){.hero{padding-block:120px}}@media(max-width:1000px){.wrap{width:calc(100% - 56px)}header{padding:0 28px}.hero{gap:30px}.hero h1{font-size:46px}.hero-preview{height:300px}.services{gap:12px}.services article{padding:22px 18px}.services h3{font-size:21px}.project-image{height:250px}.about-grid{gap:35px}footer{padding:32px 28px}}@media(max-width:720px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 40px)}header{height:76px;padding:0 20px}.menu-toggle{display:flex;gap:20px;align-items:center;border:1px solid #444;border-radius:5px;background:none;padding:10px 14px;font-size:14px}nav{display:none;position:absolute;top:75px;left:0;right:0;padding:20px;background:#111;border-bottom:1px solid #444;align-items:stretch;gap:0}nav.open{display:flex;flex-direction:column}nav>a{padding:13px 10px}.nav-contact{margin-top:10px}.hero{grid-template-columns:1fr;padding:55px 0 50px;gap:36px}.hero h1{font-size:43px}.eyebrow{font-size:10px;letter-spacing:.08em;margin-bottom:19px}.lead{font-size:16px}.hero .lead{margin-top:22px}.actions{margin-top:25px;gap:10px}.button{font-size:13px;padding:13px 17px}.hero-note{font-size:11px;line-height:1.7;margin-top:20px}.hero-art{transform:none}.hero-preview{height:260px}.art-caption{padding:16px 20px;font-size:13px}.service-strip>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:13px;font-size:10px;padding-block:20px}.section{padding:65px 0}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:22px;max-width:none;font-size:15px}h2{font-size:36px}.services{grid-template-columns:1fr;gap:16px}.services article{padding:26px}.services h3{font-size:25px}.service-number{margin-bottom:22px}.project-grid{grid-template-columns:1fr;gap:34px}.project-image{height:250px}.project h3{font-size:25px}.project-meta{font-size:10px}.code-grid{grid-template-columns:1fr}.code-card{padding:25px}.agency-band{padding:60px 0}.about-grid{grid-template-columns:1fr;gap:30px}.process{padding:25px 0;border-left:0;border-top:1px solid #333}.experience-row{grid-template-columns:1fr;gap:8px}.experience{margin-top:20px}.contact h2{font-size:58px}.contact .eyebrow{font-size:9px}.email{font-size:18px}footer{padding:28px 20px;gap:20px}footer>p{width:calc(100% - 110px);font-size:11px}footer>div{margin:0;gap:24px}footer small{width:100%}.detail{padding-top:35px}.detail h1{font-size:48px;overflow-wrap:anywhere}.detail-meta{flex-direction:column;gap:20px}.detail-contact h2{font-size:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Continuous logo ribbon: identical groups make the loop seamless. */
.logo-ribbon{border-block:1px solid #292929;padding:16px 0 22px;background:#0d0d0d;overflow:hidden}.ribbon-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ribbon-top p{font:10px Mono,monospace;letter-spacing:.12em;color:#aaa}.ribbon-pause{background:none;border:1px solid #444;border-radius:5px;padding:5px 10px;font-size:11px;color:#ccc;min-height:32px}.ribbon-viewport{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}.ribbon-track{display:flex;width:max-content;animation:logo-drift 36s linear infinite}.logo-group{list-style:none;display:flex;align-items:center;flex:none;gap:64px;padding:0 32px;margin:0}.logo-item{flex:0 0 160px;width:160px;height:76px;display:flex;justify-content:center;align-items:center}.logo-item img{width:140px;height:44px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1);opacity:.72}.logo-item:hover img{opacity:1}.logo-ribbon.is-paused .ribbon-track,.logo-ribbon:hover .ribbon-track,.logo-ribbon:focus-within .ribbon-track{animation-play-state:paused}@keyframes logo-drift{to{transform:translateX(-50%)}}@media(max-width:720px){.logo-ribbon{padding:12px 0 16px}.logo-group{gap:36px;padding-inline:18px}.logo-item{width:126px;flex-basis:126px;height:62px}.logo-item img{width:112px;height:36px}.ribbon-top p{font-size:9px}.ribbon-track{animation-duration:32s}}@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none;width:auto;flex-wrap:wrap}.logo-group{flex-wrap:wrap;justify-content:center;width:100%;gap:15px;padding:0 20px}.logo-group[aria-hidden="true"]{display:none}.ribbon-viewport{mask-image:none}.ribbon-pause{display:none}}
.logo-certified img{height:90px;width:160px;max-width:none}@media(max-width:720px){.logo-certified img{height:80px;width:142px}}
/* Preserve internal lettering and tonal detail in multi-colour marks. */
.logo-item img[src*="excel"],.logo-item img[src*="woocommerce"],.logo-item img[src*="shopify"]{filter:grayscale(1) brightness(1.7);opacity:.9}
.logo-item img[src*="shopify"]{filter:grayscale(1) invert(1) brightness(1.4);opacity:.85}
.logo-item img[src*="nodejs"]{filter:grayscale(1) brightness(0) invert(1);opacity:.85}

/* Pause control hidden on all screen sizes. */
.ribbon-pause{display:none!important}

.ribbon-top{display:none}.logo-ribbon{padding-top:18px}.hero-intro{display:flex;align-items:center;gap:20px;margin-bottom:24px}.hero-intro .eyebrow{margin:0;flex:1;font-size:10px;letter-spacing:.08em}.hero-awards{width:175px;height:auto;flex-shrink:0;filter:invert(1);opacity:.9}@media(max-width:720px){.hero-intro{gap:12px}.hero-intro .eyebrow{font-size:9px}.hero-awards{width:125px}}
/* Centered awards above the hero and horizontal wordmark. */
header .logo{white-space:nowrap;font-size:21px;letter-spacing:-.065em}header .logo>span{display:inline}.awards-banner{display:flex;justify-content:center;align-items:center;padding-top:20px;padding-bottom:4px}.awards-banner .hero-awards{width:240px;height:auto;max-width:75%;filter:invert(1)}.hero{padding-top:28px}@media(min-width:1600px){.hero{padding-top:32px}}@media(max-width:720px){header .logo{font-size:19px}.awards-banner{padding-top:14px;padding-bottom:0}.awards-banner .hero-awards{width:195px}.hero{padding-top:22px}}
/* Scroll-driven alternating project stack; the complete grid follows. */
.project-swipe{display:none}.swipe-enabled .project-swipe{display:block;height:calc(100svh + 4200px);position:relative}.swipe-sticky{position:sticky;top:88px;height:calc(100svh - 88px);display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;overflow:clip}.swipe-deck{position:relative;width:min(660px,90%);height:min(530px,calc(100svh - 200px));min-height:260px}.swipe-card{position:absolute;inset:0;background:#151515;border:1px solid #444;border-radius:16px;overflow:hidden;box-shadow:0 16px 45px #0007;will-change:transform,opacity;display:flex;flex-direction:column}.swipe-card>img{width:100%;height:65%;object-fit:cover;object-position:top;flex-shrink:0}.swipe-caption{padding:20px 24px}.swipe-caption>span{font:11px Mono,monospace;color:#ff8b52}.swipe-caption h3{margin:8px 0;font-size:27px}.swipe-caption p{font-size:14px;line-height:1.5}.swipe-own{height:65%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,#252019,#111);font:800 48px Nunito,Arial;flex-shrink:0}.swipe-own span{font:12px Mono,monospace;color:#aaa;margin-top:18px}.swipe-skip{font-size:13px;color:#bbb;margin-top:24px;padding:8px}.project-grid{scroll-margin-top:110px}@media(max-width:720px){.swipe-sticky{top:76px;height:calc(100svh - 76px)}.swipe-deck{width:94%;height:min(470px,calc(100svh - 180px))}.swipe-caption{padding:16px}.swipe-caption h3{font-size:23px}.swipe-caption p{font-size:13px}.swipe-card>img,.swipe-own{height:58%}.swipe-own{font-size:35px}.swipe-own span{font-size:10px}.swipe-enabled .project-swipe{height:calc(100svh + 3400px)}}@media(prefers-reduced-motion:reduce){.swipe-enabled .project-swipe{display:none}}
/* Alejandro Vidal digital studio — immersive cover and desktop interaction. */
body{background:#090c10}header{background:#090c10e8;border-color:#ffffff12;height:76px}header .logo{font-family:Arial,Helvetica,sans-serif;font-size:22px;letter-spacing:-1px}h1,h2{font-family:Arial,Helvetica,sans-serif;font-weight:800;letter-spacing:-.065em}.studio-hero{height:max(800px,calc(100svh - 76px));max-height:1100px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 78% 45%,#194b6855,transparent 53%),radial-gradient(ellipse at 25% 80%,#81432344,transparent 50%),#090c10}.studio-hero:before{content:'';position:absolute;inset:-20%;background:conic-gradient(from 70deg at 65% 55%,transparent,#487f9922,transparent,#ff8b5210,transparent);filter:blur(60px);animation:studio-atmosphere 22s ease-in-out infinite alternate;z-index:-1}.studio-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(#0008,transparent);pointer-events:none}.studio-heading{position:absolute;left:7%;top:7%;z-index:1}.studio-heading>p:first-child{font:10px Mono,monospace;letter-spacing:.15em;color:#9bafb9;margin-bottom:22px}.studio-heading h1{font-size:clamp(68px,9.6vw,155px);line-height:.85;letter-spacing:-.075em}.studio-heading h1 span{color:#ff9b68}.studio-description{margin-top:28px;font-size:18px;line-height:1.6;color:#aeb8c0}.desktop-shortcuts{position:absolute;left:7%;top:59%;display:flex;gap:25px;z-index:3}.desktop-shortcuts button{border:0;background:none;font:11px Mono,monospace;display:flex;flex-direction:column;align-items:center;gap:10px;color:#cdd3d8;padding:8px}.folder-icon{display:grid;place-items:center;width:53px;height:46px;background:linear-gradient(145deg,#ffc39a,#c96932);color:#351b0e;border-radius:7px 10px 10px 10px;box-shadow:inset 0 1px 0 #ffecd9,0 10px 20px #0004;font:bold 22px Arial;transition:transform .2s}.code-icon{background:linear-gradient(140deg,#8dc5da,#355a73);color:#102631;box-shadow:inset 0 1px 0 #d6f7ff,0 10px 20px #0004}.desktop-shortcuts button:hover .folder-icon{transform:translateY(-6px)}.studio-preview{position:absolute;right:6%;top:27%;width:43%;max-width:670px;border:1px solid #ffffff35;border-radius:13px;background:#171d24;overflow:hidden;transform:perspective(1300px) rotateY(-9deg) rotateZ(3deg);box-shadow:0 45px 100px #0009;transition:transform .5s}.studio-preview:hover{transform:perspective(1300px) rotateY(0) rotateZ(0)}.studio-window-bar{height:44px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 18px;background:linear-gradient(#303640,#20252d);border-bottom:1px solid #ffffff14;font:10px Mono,monospace;color:#bac4ce}.window-dots{display:flex;gap:6px}.window-dots i{width:8px;height:8px;border-radius:50%;background:#fd966c}.window-dots i:nth-child(2){background:#e4c071}.window-dots i:nth-child(3){background:#74ae9c}.preview-open{display:block;border:0;padding:0;background:none;width:100%;text-align:left}.preview-open img{height:310px;width:100%;object-fit:cover;object-position:top}.preview-open>span{display:flex;justify-content:space-between;padding:18px 22px;font:11px Mono,monospace;color:#d4dae1}.preview-open b{color:#ff9b68;font-size:20px}.studio-note{position:absolute;left:7%;bottom:10%;font:11px/1.8 Mono,monospace;color:#d9dce0}.studio-note>span:last-child{color:#7f8e9b}.status-dot{display:inline-block;background:#ff9b68;width:6px;height:6px;border-radius:50%;margin-right:10px}.studio-awards{position:absolute;right:8%;bottom:11%;width:190px;opacity:.65}.studio-awards img{filter:invert(1)}.studio-dock{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);display:flex;gap:8px;padding:10px;border:1px solid #ffffff30;border-radius:19px;background:#bacada12;backdrop-filter:blur(20px);box-shadow:0 12px 40px #0005}.studio-dock button,.studio-dock a{display:grid;place-items:center;background:linear-gradient(145deg,#36434e,#19222c);width:45px;height:45px;border:1px solid #ffffff20;border-radius:11px;font:bold 18px Arial;color:#e5e9ed;transition:transform .2s,background .2s}.studio-dock button:hover,.studio-dock a:hover{transform:translateY(-8px);background:#6e4b38}.studio-dock>span{width:1px;background:#ffffff25;margin:6px 2px}.studio-scroll{position:absolute;bottom:2%;left:50%;transform:translateX(-50%);font:9px Mono,monospace;letter-spacing:.15em;color:#87929d;white-space:nowrap}.studio-dialog{padding:0;border:1px solid #69727b;border-radius:14px;background:#10151b;color:#eee;width:min(1000px,calc(100% - 40px));max-height:82svh;box-shadow:0 30px 150px #000b;overflow:hidden}.studio-dialog::backdrop{background:#050a10aa;backdrop-filter:blur(12px)}.dialog-drag{cursor:grab;height:50px;touch-action:none}.studio-close{border:0;background:#ffffff0d;padding:5px 10px;border-radius:5px;font-size:16px}.studio-dialog-content{padding:30px;max-height:calc(82svh - 50px);overflow:auto;overscroll-behavior:contain}.studio-dialog-content .project-grid{gap:28px 20px}.studio-dialog-content .project-image{height:200px}.studio-dialog-content .project h3{font-size:22px}.studio-dialog-content .services{grid-template-columns:1fr}.studio-dialog-content .services article{background:#151d25}.studio-dialog-content .about-grid{grid-template-columns:1fr;gap:30px}.studio-dialog-content .contact{padding:15px 0;border:0}.studio-dialog-content h2{font-size:42px}.studio-dialog-content .copy-email,.studio-dialog-content #copy-status{display:none}.section-head h2{font-size:clamp(38px,5vw,70px)}.agency-band{background:radial-gradient(ellipse at right,#23435344,transparent 70%),#10151b}.services article,.code-card{background:#10151b}.project-image{border-radius:5px}.services article{border-radius:5px}.contact h2{font-size:clamp(60px,9vw,130px)}@keyframes studio-atmosphere{to{transform:rotate(20deg) scale(1.1)}}@media(max-width:1000px){.studio-heading h1{font-size:10vw}.studio-preview{right:4%;width:45%;top:33%}.studio-heading{left:5%;top:8%}.desktop-shortcuts,.studio-note{left:5%}.studio-note{bottom:18%}.studio-awards{bottom:18%;right:5%}.studio-preview .preview-open img{height:260px}}@media(max-width:720px){.studio-hero{height:auto;min-height:970px;max-height:none;padding:42px 20px 170px}.studio-heading{position:relative;left:auto;top:auto}.studio-heading>p:first-child{font-size:8px;letter-spacing:.08em}.studio-heading h1{font-size:clamp(52px,12.5vw,88px);line-height:.91}.studio-description{font-size:16px;margin-top:20px}.desktop-shortcuts{position:relative;top:auto;left:auto;justify-content:space-between;gap:8px;margin:28px 0}.desktop-shortcuts button{font-size:9px;padding:4px}.folder-icon{width:43px;height:38px;font-size:18px}.studio-preview{position:relative;right:auto;top:auto;width:100%;transform:none;margin:0 auto}.studio-preview .preview-open img{height:220px}.studio-window-bar{font-size:8px;padding-inline:12px;gap:8px}.studio-note{bottom:116px;left:20px;font-size:9px}.studio-awards{bottom:114px;right:20px;width:120px}.studio-dock{bottom:40px;padding:8px;border-radius:15px}.studio-dock button,.studio-dock a{height:39px;width:39px;font-size:15px}.studio-scroll{bottom:14px;font-size:8px}.studio-dialog{width:calc(100% - 20px);max-height:88svh}.studio-dialog-content{padding:20px;max-height:calc(88svh - 50px)}.studio-dialog-content .project-grid{grid-template-columns:1fr}.studio-dialog-content h2{font-size:34px}}@media(prefers-reduced-motion:reduce){.studio-hero:before{animation:none}.studio-preview{transform:none}}
/* Art direction: an inhabited workspace, ink, paper and metal. */
header{height:72px;background:#141715;border-color:#ffffff17}header .logo{font-size:25px;letter-spacing:-1.6px}nav{font-size:13px}nav .nav-contact{border-radius:0;border-color:#757970}.workbench{position:relative;isolation:isolate;min-height:920px;height:calc(100svh - 72px);max-height:1200px;background:#252d28;overflow:hidden;color:#f2f0e6;background-image:radial-gradient(ellipse at 50% 10%,#64726055,transparent 65%),repeating-linear-gradient(0deg,#ffffff02 0px,#ffffff02 1px,transparent 1px,transparent 3px)}.desk-topline{position:absolute;left:4%;right:4%;top:26px;display:flex;justify-content:space-between;font:11px Mono,monospace;color:#b7bcaf}.desk-topline i{font-style:normal;margin-left:15px;color:#ebad81}.desk-word{position:absolute;bottom:10px;left:1%;font:900 27vw/.8 Arial;letter-spacing:-.09em;color:#d8e3cc09;white-space:nowrap;z-index:-1}.desk-note{position:absolute;left:5%;top:13%;width:260px;background:#e9e3cf;color:#252d28;transform:rotate(-4deg);padding:36px 27px 24px;box-shadow:6px 16px 35px #0004;z-index:2}.note-pin{position:absolute;top:-12px;left:37%;width:90px;height:25px;transform:rotate(2deg);background:#d3b77e88;box-shadow:0 1px 2px #0001}.note-kicker{font:italic 20px Georgia,serif;color:#656655}.desk-note h1{font:800 44px/.97 Arial;letter-spacing:-2.5px;margin:18px 0 24px}.desk-note h1 em{font:italic 47px Georgia,serif;letter-spacing:-2px}.desk-note>p:not(.note-kicker){font-size:13px;line-height:1.65;color:#5f6457}.note-link{display:flex;justify-content:space-between;width:100%;font-size:12px;color:#313a2f;border:0;border-bottom:1px solid #9c9c87;padding:18px 0 12px;background:none}.note-signature{font:italic 31px Georgia,serif;letter-spacing:-2px;text-align:right;margin-top:20px}.project-browser{position:absolute;top:11%;left:29%;width:65%;height:655px;background:#e8e8e2;border:1px solid #111;border-radius:9px;overflow:hidden;box-shadow:0 38px 70px #0006,0 1px 0 #fff8 inset;color:#272d28;transform:rotate(1deg)}.browser-chrome{height:39px;display:flex;justify-content:space-between;align-items:center;padding:0 14px;background:linear-gradient(#e2e3dd,#c9ccc4);border-bottom:1px solid #a5aaa0;font-size:11px;font-weight:600;letter-spacing:.01em}.browser-chrome>button{background:none;border:0;color:#3c443a;font-size:20px;padding:0 8px}.browser-traffic{display:flex;gap:6px}.browser-traffic i{width:9px;height:9px;border:1px solid #0002;border-radius:50%;background:#dd8b72}.browser-traffic i:nth-child(2){background:#cfbb7f}.browser-traffic i:nth-child(3){background:#9eae90}.browser-layout{display:grid;grid-template-columns:150px 1fr;height:calc(100% - 39px)}.browser-sidebar{padding:28px 12px 16px;background:#d7dbd1;border-right:1px solid #b7beb0;display:flex;flex-direction:column;gap:7px}.browser-sidebar>span{font:9px Mono,monospace;color:#69745e;margin:0 10px 8px}.browser-filter{display:flex;align-items:center;text-align:left;gap:8px;border:0;border-radius:5px;background:none;color:#4d5845;padding:9px 10px;font-size:12px}.browser-filter small{margin-left:auto;font-size:9px;color:#65745d}.browser-filter.active{background:#b9c5ae;color:#23311d;box-shadow:inset 0 1px 2px #83937544}.sidebar-bottom{margin-top:auto;display:flex;gap:8px;align-items:center;font-size:10px;line-height:1.6}.sidebar-bottom small{font-size:8px;color:#697460}.sidebar-avatar{background:#28382a;color:#e1e9dc;border-radius:7px;width:28px;height:28px;display:grid;place-items:center;font:bold 15px Georgia}.browser-main{padding:23px 23px 0;min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a5ad9d #e8e8e2}.browser-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.browser-heading h2{font-size:29px;letter-spacing:-1px;color:#283324}.browser-heading p{font-size:11px;color:#77816f;margin-top:5px}.browser-count{font:9px Mono,monospace;color:#727d69}.desktop-projects{display:grid;grid-template-columns:1fr 1fr;gap:25px 18px}.desktop-project{min-width:0}.desktop-project>div{height:155px;border:1px solid #bdc0b6;border-radius:3px;overflow:hidden;background:#ccc}.desktop-project img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s}.desktop-project:hover img{transform:scale(1.05)}.desktop-project h3{font:600 13px Arial;letter-spacing:-.2px;display:flex;justify-content:space-between;margin:10px 0 3px;color:#313d2b}.desktop-project h3>span{color:#7d896e}.desktop-project p{font-size:10px;color:#808773}.desktop-project[hidden]{display:none}.browser-status{display:flex;justify-content:space-between;gap:15px;margin-top:26px;border-top:1px solid #ccd0c4;padding:12px 0;font:8px Mono,monospace;color:#6e7966}.desk-contact-card{position:absolute;left:7%;bottom:20%;transform:rotate(3deg);text-align:left;background:#e59b69;color:#34271c;border:1px solid #f5bc8a;padding:20px 24px;width:260px;box-shadow:8px 12px 25px #0003;z-index:4;transition:transform .2s}.desk-contact-card:hover{transform:rotate(0) translateY(-4px)}.desk-contact-card>span{font:11px Georgia,serif}.desk-contact-card strong{font:bold 32px Arial;letter-spacing:-1px;display:flex;justify-content:space-between;margin:8px 0 12px}.desk-contact-card small{font:10px Mono,monospace}.desk-awards{position:absolute;bottom:9%;left:9%;width:185px;opacity:.55}.desk-awards img{filter:invert(1)}.desk-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:22px 4%;border-top:1px solid #ffffff14;background:#19201bc9;font:10px Mono,monospace;color:#c0c7b7}.desk-bottom>a span{margin-left:15px;color:#e9aa7f}.desk-apps{display:flex;gap:22px}.desk-apps button{border:0;padding:0;background:none;font:inherit}.desk-bottom>span{color:#87957e}.section-head h2{font-size:clamp(36px,4.5vw,64px)}.studio-dialog{background:#e8e8e2;color:#283324;border-color:#849079}.studio-dialog-content p{color:#626c59}.studio-dialog-content .project h3,.studio-dialog-content h2{color:#283324}.studio-dialog-content .project-meta{color:#69765f}.studio-dialog-content .text-link{color:#695337}.studio-dialog-content .services article{background:#d7dbd1;border-color:#b9c4ad;color:#283324}.studio-dialog-content .services ul{color:#626c59}.studio-dialog-content .email{color:#283324}@media(min-width:1600px){.desk-note{width:300px;left:7%;top:14%;padding:40px 32px}.desk-note h1{font-size:53px}.desk-note h1 em{font-size:57px}.project-browser{left:30%;width:63%;height:700px}.desktop-project>div{height:185px}.desk-contact-card{left:10%;bottom:17%}.desk-awards{left:12%;bottom:7%}}@media(max-width:1100px) and (min-width:721px){.desk-note{width:220px;left:4%;padding:30px 20px}.desk-note h1{font-size:38px}.desk-note h1 em{font-size:40px}.project-browser{left:32%;width:65%}.browser-layout{grid-template-columns:115px 1fr}.browser-main{padding:20px 15px 0}.browser-sidebar{padding-inline:7px}.desktop-project>div{height:125px}.desk-contact-card{left:4%;width:220px}.desk-awards{left:6%}}@media(max-width:720px){.workbench{height:auto;max-height:none;min-height:0;padding:65px 20px 95px;overflow:hidden}.desk-topline{top:18px;left:20px;right:20px;font-size:8px}.desk-topline>span:last-child{display:none}.desk-note{position:relative;left:auto;top:auto;transform:rotate(-2deg);width:100%;padding:25px;z-index:1}.desk-note h1{font-size:47px;line-height:1;margin:13px 0 20px}.desk-note h1 br{display:none}.desk-note h1 em{font-size:49px;display:block}.desk-note>p:not(.note-kicker){max-width:260px}.note-signature{position:absolute;right:25px;top:23px;font-size:26px;margin:0}.note-link{max-width:210px}.project-browser{position:relative;top:auto;left:auto;width:100%;height:auto;max-height:none;margin:35px 0 0;transform:rotate(0);box-shadow:0 20px 35px #0004}.browser-layout{grid-template-columns:1fr;height:auto}.browser-sidebar{flex-direction:row;flex-wrap:wrap;padding:9px;border-right:0;border-bottom:1px solid #b7beb0;gap:5px}.browser-sidebar>span,.sidebar-bottom{display:none}.browser-filter{padding:7px 9px;font-size:11px;gap:8px}.browser-main{padding:20px 14px 0;max-height:520px}.browser-heading{margin-bottom:20px}.browser-heading h2{font-size:26px}.desktop-projects{gap:20px 12px}.desktop-project>div{height:115px}.desktop-project h3{font-size:11px}.desktop-project p{font-size:9px}.browser-count{font-size:8px}.desk-contact-card{position:relative;left:auto;bottom:auto;width:100%;margin-top:30px;transform:rotate(1deg);padding:20px 25px}.desk-awards{position:relative;bottom:auto;left:auto;margin:25px auto 0;width:170px}.desk-bottom{padding:18px 20px;font-size:9px;gap:10px}.desk-bottom>span{display:none}.desk-apps{gap:13px}.desk-word{font-size:45vw;bottom:80px;left:0}.desktop-project:focus-visible{outline-color:#614c30}.browser-filter:focus-visible{outline-color:#614c30}}@media(prefers-reduced-motion:reduce){.desk-note,.project-browser,.desk-contact-card{transform:none}}

@media(max-width:720px){.desk-note h1 br{display:block}.desk-note h1{font-size:43px}.desk-note h1 em{font-size:47px}.note-signature{font-size:23px}}

/* Full portfolio operating system. Other home sections are app content sources. */
body:has(.os-shell){overflow:hidden;background:#111821}body:has(.os-shell)>header,body:has(.os-shell)>footer,body:has(.os-shell) main>section:not(.os-shell),body:has(.os-shell) main>.agency-band{display:none}.os-shell{position:fixed;inset:0;overflow:hidden;font-family:Arial,Helvetica,sans-serif;color:#e5ebee;isolation:isolate}.os-wallpaper{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 65% 30%,#536c76,#213039 45%,#121b22 78%);overflow:hidden}.os-wallpaper:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,#ffffff02 0,#ffffff02 1px,transparent 1px,transparent 3px);pointer-events:none}.os-orbit{position:absolute;width:75vw;height:75vw;left:35%;top:-25%;border:1px solid #b4cdd522;border-radius:50%;box-shadow:0 0 0 90px #ffffff03,0 0 0 180px #ffffff02,0 0 0 270px #ffffff01;background:radial-gradient(circle at 25% 25%,#acc2c322,transparent 60%);transform:rotate(-20deg)}.os-wallpaper-type{position:absolute;right:11%;bottom:19%;font:800 clamp(150px,24vw,420px)/.7 Arial;letter-spacing:-.11em;color:#d2e0de0c}.os-wallpaper-type span{display:block;font:11px Mono,monospace;letter-spacing:1em;color:#c5d1cc33;margin-top:45px;margin-left:25px}.os-top{position:absolute;top:0;left:0;right:0;height:42px;background:#10192077;border-bottom:1px solid #ffffff12;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font-size:11px;color:#bccbd1;backdrop-filter:blur(20px)}.os-top>span:first-child{font-weight:bold;font-size:14px;letter-spacing:-.5px}.os-top>button{background:none;border:0;font-size:19px;color:#c2cbd0}.os-icons{position:absolute;top:70px;left:28px;display:grid;grid-template-rows:repeat(4,100px);grid-auto-flow:column;gap:20px 24px}.os-icon{width:84px;border:1px solid transparent;border-radius:6px;background:none;display:flex;flex-direction:column;align-items:center;gap:9px;padding:9px 4px;color:#eff3f4;font-size:11px;text-shadow:0 2px 4px #000a;cursor:pointer}.os-icon:hover,.os-icon:focus-visible{background:#ffffff12;border-color:#ffffff22}.os-app-icon{display:grid;place-items:center;width:52px;height:46px;border-radius:9px;background:linear-gradient(145deg,#e5c49a,#b38350);box-shadow:inset 0 1px 0 #fff7,0 5px 8px #0003;color:#4d3520;font:bold 26px Arial;text-shadow:none;position:relative}.app-projects:before,.app-services:before,.app-python:before{content:'';position:absolute;top:-5px;left:0;width:22px;height:7px;border-radius:5px 5px 0 0;background:#dfbc8d}.app-services{background:linear-gradient(145deg,#abc4d1,#5b879a);color:#173c4d}.app-python{background:linear-gradient(145deg,#a6b8a0,#587c61);font-size:18px;color:#183824}.app-about{background:linear-gradient(145deg,#ded5c0,#9f9786);font-size:20px}.app-contact{background:linear-gradient(145deg,#dfaa8c,#ae6953);color:#502a1a}.app-awards{background:linear-gradient(145deg,#e5d49a,#ad8e40);color:#4e3e12}.app-cv{background:linear-gradient(145deg,#f1e8e3,#aba6a4);font-size:14px;color:#995b4c}.os-welcome{position:absolute;right:10%;top:24%;width:390px;pointer-events:auto}.os-welcome>span{font:11px Mono,monospace;color:#c7d5d6}.os-welcome p{font:500 50px/1.12 Arial;letter-spacing:-2px;color:#e0e9e8;margin:22px 0 30px}.os-welcome button{background:#d9e3df;color:#243435;border:0;padding:12px 20px;border-radius:5px;font-size:12px}.os-taskbar{position:absolute;bottom:0;left:0;right:0;height:58px;display:flex;gap:14px;align-items:center;background:#10171fd9;border-top:1px solid #ffffff24;backdrop-filter:blur(25px);padding:0 18px;z-index:30000}.os-start{font:bold 26px Georgia;background:linear-gradient(#53675e,#283c33);border:1px solid #8c9d8c66;border-radius:7px;padding:0;width:43px;height:38px;letter-spacing:-3px}.os-start span{color:#f0b789;letter-spacing:0}.os-running{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto}.os-running button{padding:9px 14px;border:1px solid #ffffff12;background:#ffffff08;border-radius:5px;font-size:11px;white-space:nowrap}.os-running button.active{background:#ffffff18;border-bottom:2px solid #d4ae89}.os-system{display:flex;gap:16px;align-items:center;font-size:10px;color:#b6c1ca}.os-online{color:#9ebba9}.os-clock{white-space:pre;text-align:right;font-size:11px;line-height:1.5}.os-start-menu{position:absolute;bottom:70px;left:18px;width:300px;padding:24px;border:1px solid #ffffff35;border-radius:12px;background:#19232ef5;box-shadow:0 10px 50px #0007;z-index:31000}.os-start-menu[hidden]{display:none}.os-start-menu strong{font-size:20px}.os-start-menu p{font-size:11px;margin:5px 0 18px}.os-start-menu button{display:block;border:0;background:none;width:100%;text-align:left;padding:12px 8px;font-size:13px;border-radius:5px}.os-start-menu button:hover{background:#ffffff15}.os-window{position:absolute;top:11%;left:22%;width:min(950px,73vw);height:min(670px,77svh);min-width:360px;min-height:260px;resize:both;overflow:hidden;border:1px solid #8c989e;border-radius:9px;background:#e4e7e2;color:#29352f;box-shadow:0 22px 75px #0006;display:flex;flex-direction:column}.os-window[hidden]{display:none}.os-window.maximized{top:43px!important;left:0!important;width:100%!important;height:calc(100% - 101px)!important;resize:none;border-radius:0}.os-window-title{height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-left:15px;background:linear-gradient(#dce2dd,#bdc8c0);border-bottom:1px solid #a8b5ac;font-size:11px;cursor:grab;touch-action:none;user-select:none}.os-window-controls{display:flex;height:100%}.os-window-controls button{border:0;background:none;color:#37463d;width:38px;font-size:17px}.os-window-controls button:hover{background:#a7b9ac}.os-window-controls button:last-child:hover{background:#a64e42;color:white}.os-window-content{overflow:auto;overscroll-behavior:contain;padding:28px;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:#a6b4a6 #e4e7e2}.os-window-content p{color:#63705f}.os-window-content h2,.os-window-content h3{color:#28392c}.os-window-content .project-grid{grid-template-columns:1fr 1fr;gap:28px 20px}.os-window-content .project-image{height:190px}.os-window-content .project h3{font-size:22px}.os-window-content .project-meta{color:#6c7968}.os-window-content .project p{font-size:13px}.os-window-content .text-link{color:#725c3c}.os-window-content .services{grid-template-columns:1fr}.os-window-content .services article,.os-window-content .code-card{background:#d6ddd2;border-color:#a9b8a3;color:#33432f}.os-window-content .services ul{color:#5e7154}.os-window-content .service-number,.os-window-content .eyebrow{color:#886a41}.os-window-content .about-grid{grid-template-columns:1fr;gap:25px}.os-window-content .contact{padding:0;border:0}.os-window-content h2{font-size:38px}.os-window-content .email{color:#33432f}.os-window-content .copy-email,.os-window-content #copy-status{display:none}.os-window-content .experience{border-color:#aebba8;margin-top:0}.os-window-content .experience-row{border-color:#bdc8b8}.os-window-content .experience-row>span{color:#6d7e62}.os-window-content .experience>h3{color:#6f633d}.os-window-content .code-grid{grid-template-columns:1fr}.os-window-content .tags span{border-color:#a1ae96;color:#4e6043}.os-award-content{text-align:center;padding:25px}.os-award-content h2{margin-bottom:25px}.os-award-content img{width:100%;max-width:600px;margin:auto}.os-app-intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;border-bottom:1px solid #bfcabc;padding-bottom:18px}.os-app-intro p{font-size:12px}.os-app-intro h2{font-size:30px}.os-app-intro span{font:10px Mono,monospace;color:#77856e}.os-boot{position:absolute;inset:0;z-index:40000;background:radial-gradient(ellipse at 50% 48%,#444c6133,transparent 40%),radial-gradient(ellipse at 80% 85%,#44251d44,transparent 55%),#090c12;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .65s,visibility .65s}.os-boot:before{content:'';position:absolute;width:42vmin;height:42vmin;background:conic-gradient(#9d553577,#3f638577,#615b7c55,#9d553577);filter:blur(60px);border-radius:50%;animation:os-glow 12s linear infinite;z-index:-1}.os-boot.entered{opacity:0;visibility:hidden;pointer-events:none}.boot-brand{position:absolute;top:8%;font:600 14px Arial;letter-spacing:4px;text-align:center}.boot-brand span{display:block;font:9px Mono,monospace;letter-spacing:3px;color:#8d98a6;margin-top:10px}.boot-center{display:flex;align-items:center;justify-content:center;gap:50px;width:100%;padding:30px}.boot-word{font:600 clamp(28px,4vw,65px)/1 Arial;letter-spacing:-2px}.os-enter{border:1px solid #af8f7b;border-radius:50%;width:138px;height:138px;flex-shrink:0;background:radial-gradient(circle at 40% 30%,#e8ac79,#a8623f 65%,#5e3929);box-shadow:0 0 0 9px #3c3a3a,0 0 0 11px #77706b,0 20px 45px #000b,inset 0 3px 9px #ffdcc77a;color:#fff4e5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:transform .2s,box-shadow .2s}.os-enter:hover{transform:scale(1.04);box-shadow:0 0 0 9px #48403b,0 0 0 11px #ad8c73,0 0 65px #d5934a55}.os-enter>span{font:35px Arial}.os-enter small{font:10px Mono,monospace;letter-spacing:2px}.os-boot>p{position:absolute;bottom:20%;font:12px Mono,monospace;color:#a5adb6}.boot-foot{position:absolute;bottom:6%;font:9px Mono,monospace;letter-spacing:2px;color:#747f8b}@keyframes os-glow{to{transform:rotate(360deg)}}@media(max-width:720px){.os-top>span:nth-child(2){display:none}.os-icons{top:65px;left:15px;grid-template-rows:repeat(4,88px);gap:12px 10px}.os-icon{width:72px;font-size:10px;gap:7px}.os-app-icon{width:45px;height:41px}.os-welcome{right:22px;top:auto;bottom:110px;width:calc(100% - 44px)}.os-welcome>span{font-size:10px}.os-welcome p{font-size:32px;margin:12px 0 18px;letter-spacing:-1px}.os-welcome button{font-size:11px;padding:10px 15px}.os-wallpaper-type{right:7%;bottom:32%;font-size:50vw}.os-taskbar{padding:0 10px;gap:8px}.os-system{gap:8px}.os-system>span{display:none}.os-running button{font-size:10px;padding:10px}.os-window{top:43px!important;left:0!important;width:100%!important;height:calc(100% - 101px)!important;min-width:0;resize:none;border-radius:0}.os-window-content{padding:20px}.os-window-content .project-grid{grid-template-columns:1fr}.os-window-content .project-image{height:180px}.os-window-controls button[data-action="maximize"]{display:none}.os-window-content h2{font-size:32px}.os-app-intro span{display:none}.boot-center{flex-direction:column;gap:40px;padding:0}.boot-word{font-size:33px;letter-spacing:-1px}.os-enter{width:115px;height:115px}.os-boot>p{bottom:13%;font-size:9px;text-align:center;padding:0 20px}.boot-brand{font-size:12px;top:7%;letter-spacing:2px}.boot-foot{font-size:8px;letter-spacing:1px}.os-start-menu{left:10px;width:min(300px,calc(100% - 20px))}}@media(max-height:700px) and (max-width:720px){.os-icons{grid-template-rows:repeat(2,88px);grid-auto-flow:row;grid-template-columns:repeat(4,72px);gap:10px}.os-welcome p{font-size:25px}.os-welcome{bottom:90px}.boot-center{gap:25px}.boot-word{font-size:25px}.os-enter{width:85px;height:85px}}@media(prefers-reduced-motion:reduce){.os-boot:before{animation:none}.os-boot{transition:none}}
.os-enter>span svg{width:35px;height:35px}.os-power svg{vertical-align:middle}.os-window-content .logo-ribbon{border-radius:8px;background:#18222a;margin-top:20px}.os-window-content .detail{width:100%;padding:0;border:0}.os-window-content .detail h1{font-size:46px;color:#28392c}.os-window-content .detail-contact h2{font-size:30px}.os-window-content .detail-meta span{color:#776446}

/* Desktop icon set and pinned taskbar. */
.os-app-icon.app-projects{background: url("/icons/projects.svg") center/contain no-repeat}
.os-app-icon.app-services{background: url("/icons/services.svg") center/contain no-repeat}
.os-app-icon.app-python{background: url("/icons/python.svg") center/contain no-repeat}
.os-app-icon.app-about{background: url("/icons/about.svg") center/contain no-repeat}
.os-app-icon.app-experience{background: url("/icons/experience.svg") center/contain no-repeat}
.os-app-icon.app-contact{background: url("/icons/contact.svg") center/contain no-repeat}
.os-app-icon.app-awards{background: url("/icons/awards.svg") center/contain no-repeat}
.os-app-icon.app-cv{background: url("/icons/cv.svg") center/contain no-repeat}
.os-app-icon{width:58px;height:58px;border-radius:0;box-shadow:none;font-size:0!important;color:transparent}.os-app-icon:before{display:none}.os-icons{grid-template-rows:repeat(4,105px)}.os-icon{gap:7px}.os-taskbar{height:64px;background:linear-gradient(#24323bee,#111c25ee);box-shadow:0 -4px 25px #0003;border-top:1px solid #a6bec044}.os-pinned{display:flex;gap:5px;padding-right:12px;border-right:1px solid #ffffff22}.os-pinned button{position:relative;border:1px solid transparent;border-radius:7px;background:none;width:47px;height:49px;padding:4px}.os-pinned .os-app-icon{width:37px;height:37px}.os-pinned button:hover{background:#ffffff16;border-color:#ffffff1c}.os-pinned button.is-open:after{content:'';position:absolute;bottom:1px;height:3px;width:18px;left:14px;border-radius:3px;background:#b6dbf0}.os-show-desktop{background:none;border:1px solid #ffffff22;border-radius:5px;height:34px;min-width:32px;font-size:19px;color:#b8cbd4}.os-start{background:linear-gradient(#63b6ea,#2778c6);border-color:#9cd3f0;font:600 19px Arial;letter-spacing:-1px;color:#eaf7ff}.os-window.maximized{height:calc(100% - 107px)!important}.os-system{padding-left:8px}.os-running button{height:40px}@media(max-width:720px){.os-app-icon{width:48px;height:48px}.os-icons{grid-template-rows:repeat(4,94px);gap:9px 12px}.os-taskbar{gap:6px}.os-pinned{gap:0;padding-right:5px}.os-pinned button{width:34px;height:43px;padding:3px}.os-pinned .os-app-icon{width:28px;height:28px}.os-pinned button.is-open:after{width:14px;left:10px}.os-start{width:34px;flex-shrink:0}.os-show-desktop{min-width:26px;padding:0}.os-running button{font-size:10px;min-width:55px;padding:0 7px}.os-clock{font-size:9px}.os-system{padding:0}.os-window{height:calc(100% - 107px)!important}}@media(max-height:700px) and (max-width:720px){.os-icons{grid-template-rows:repeat(2,90px)}}
/* Personal photographic desktop, with a clear left area for shortcuts. */
.os-wallpaper{background:#0c1210}.os-wallpaper:after{background:linear-gradient(90deg,#090e0c 0%,#090e0cf2 25%,#090e0c9c 42%,#090e0c12 66%,#090e0c2b 100%)}.os-portrait{position:absolute;right:0;top:0;width:70%;height:calc(100% - 64px);object-fit:cover;object-position:65% 34%}.os-top,.os-welcome{display:none}.os-icons{top:35px;left:28px;gap:18px 26px}.os-icon{font-size:12px;text-shadow:0 2px 5px #000}.os-desktop-signature{position:absolute;right:20px;bottom:80px;color:#a4b2a355;font-size:12px;pointer-events:none}.os-taskbar{background:linear-gradient(90deg,#161f23f5,#0b1a13ed,#10151cf5);border-top:1px solid #8ca49a40}.os-window.maximized{top:0!important;height:calc(100% - 64px)!important}.os-start{background:#087dc4;border:0;border-radius:3px}.os-pinned button:hover{background:#c4f2de1a}@media(min-width:1800px){.os-portrait{width:66%;object-position:65% 32%}}@media(max-width:720px){.os-portrait{width:100%;object-position:64% 24%;height:calc(100% - 64px)}.os-wallpaper:after{background:linear-gradient(90deg,#06110bcc 0%,#06110b77 35%,#06110b18 70%,#06110b22)}.os-icons{left:12px;top:22px;gap:10px 8px}.os-icon{font-size:10px}.os-desktop-signature{font-size:10px;right:12px;bottom:78px}.os-window{top:0!important;height:calc(100% - 64px)!important}}@media(max-height:700px) and (max-width:720px){.os-icons{gap:8px;grid-template-columns:repeat(4,68px)}}

/* Reference desktop assets, mapped to portfolio applications. */
.os-app-icon.app-projects{background-image:url("/icons/projects.png")}
.os-app-icon.app-services{background-image:url("/icons/services.png")}
.os-app-icon.app-python{background-image:url("/icons/python.png")}
.os-app-icon.app-experience{background-image:url("/icons/experience.png")}
.os-app-icon.app-about{background-image:url("/icons/about.png")}
.os-app-icon.app-contact{background-image:url("/icons/contact.png")}
.os-app-icon.app-cv{background-image:url("/icons/cv.png")}
.os-app-icon.app-awards{background-image:url("/icons/awards.png")}
.os-icon-credit{display:block;color:#b7cbd7;font-size:10px;margin:0 8px 12px}.os-app-icon{filter:drop-shadow(0 3px 3px #0005);background-size:contain}.os-icons .os-app-icon{width:46px;height:46px}.os-icons .os-icon{gap:10px}.os-pinned .os-app-icon{width:34px;height:34px}@media(max-width:720px){.os-icons .os-app-icon{width:42px;height:42px}.os-pinned .os-app-icon{width:28px;height:28px}}
/* Searchable desktop Start menu. */
.os-start-menu{left:50%;bottom:72px;transform:translateX(-50%);width:min(700px,calc(100vw - 24px));max-height:calc(100dvh - 88px);padding:0;border:1px solid #ffffff28;background:linear-gradient(125deg,#20232ef5,#13271ff5);color:#f5f7fa;border-radius:10px;box-shadow:0 20px 80px #0008;backdrop-filter:blur(35px);overflow:auto;z-index:10000;font:14px Arial}.start-main{padding:30px 38px 18px}.start-search{display:flex;align-items:center;gap:12px;border:1px solid #83b7ce77;border-bottom:2px solid #54bfe9;border-radius:5px;padding:0 14px;background:#ffffff0b}.start-search>span{font-size:26px}.start-search input{width:100%;height:42px;background:none;border:0;outline:none;color:inherit;font:15px Arial}.start-search:focus-within{outline:2px solid #66bbdd}.start-search input::placeholder{color:#b7c1c8}.start-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 14px}.os-start-menu button{color:inherit;background:none;border:0;margin:0;cursor:pointer;font:14px Arial}.os-start-menu .start-all{background:#ffffff12;border-radius:4px;padding:8px 12px;width:auto}.start-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px 4px}.start-grid>button,.start-grid>a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12px 4px;border-radius:5px;min-height:86px;text-align:center;font-size:13px;color:inherit}.start-grid img,.recommend-grid img{width:40px;height:40px;object-fit:contain}.start-symbol{display:grid;place-items:center;width:40px;height:40px;font-size:33px}.os-start-menu button:hover,.start-grid a:hover,.recommend-grid a:hover{background:#ffffff12}.os-start-menu :focus-visible{outline:2px solid #69caf0;outline-offset:2px}.start-list{grid-template-columns:repeat(2,1fr)}.start-list>button,.start-list>a{flex-direction:row;justify-content:flex-start;min-height:56px;padding:8px 12px}.recommend-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.recommend-grid>button,.recommend-grid>a{display:flex;align-items:center;gap:16px;padding:12px;text-align:left;border-radius:5px;color:inherit}.recommend-grid small{display:block;font-size:12px;color:#aebbbf;margin-top:6px}.start-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff14;background:#0002;padding:16px 38px}.start-footer>button{display:flex;align-items:center;gap:12px;width:auto}.start-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#087cc5;color:white;font-size:12px}.start-footer>div{display:flex;gap:12px}.start-footer>div button{width:36px;height:36px;font-size:24px}.start-hint{display:flex;justify-content:space-between;margin-top:18px;font-size:11px;color:#9cafb4}.start-hint a{color:inherit}.windows-mark{display:grid;grid-template-columns:repeat(2,12px);gap:3px}.windows-mark i{width:12px;height:12px;background:#0da8f5}.os-start{display:grid;place-items:center;background:transparent;width:44px;height:44px}.os-start:hover,.os-start[aria-expanded=true]{background:#ffffff16}.os-search-button{background:none;border:0;color:#7de8fa;font-size:32px;width:36px;flex-shrink:0;cursor:pointer}.utility{max-width:650px;margin:auto}.utility h2{font-size:30px;margin-bottom:18px}.utility label{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0}.utility select{padding:10px}.desktop-notes{display:block;width:100%;min-height:300px;resize:vertical;padding:18px;font:16px/1.7 Arial;border:1px solid #aaa;background:#fffef7;color:#243029}.notes-state{display:block;margin-top:10px}.desktop-terminal{background:#101915;color:#a4eeb6;min-height:100%;padding:24px;font:14px/1.7 monospace}.desktop-terminal p{margin:0 0 10px}.desktop-terminal input{background:none;color:inherit;border:0;outline:none;font:inherit;width:55%}.os-window-content:has(.desktop-terminal){padding:0;background:#101915}.os-light .os-start-menu{background:#eff5f1f5;color:#22312c;border-color:#fff}.os-light .start-search{background:white}.os-light .start-search input::placeholder,.os-light .recommend-grid small,.os-light .start-hint{color:#52645d}.os-light .os-taskbar{background:#e2ebe9ed}.os-light .os-clock,.os-light .os-system,.os-light .os-running button{color:#20382c}.os-light .os-start-menu button:hover,.os-light .start-grid a:hover{background:#0000000a}@media(max-width:720px){.start-main{padding:18px}.start-grid{grid-template-columns:repeat(3,1fr)}.start-list{grid-template-columns:1fr 1fr}.start-footer{padding:14px 18px}.recommend-grid{grid-template-columns:1fr}.start-hint{gap:12px;font-size:10px}.os-start-menu{left:50%;width:calc(100% - 16px)}.os-search-button{width:26px;font-size:26px}.start-search input{font-size:13px}.start-heading{margin-top:20px}.os-pinned{gap:0}.os-taskbar{padding-left:6px;padding-right:6px}.os-start{width:32px}.windows-mark{grid-template-columns:repeat(2,10px)}.windows-mark i{width:10px;height:10px}}
.os-task-view{width:32px;flex-shrink:0;background:none;border:0;color:#b9cccf;font-size:22px;cursor:pointer}.start-footer{position:sticky;bottom:0;background:#1c2927;z-index:1}.os-light .start-footer{background:#d9e3df}.os-light .os-task-view{color:#324e46}.start-symbol{color:#9ad6dd}.os-boot.entered{visibility:hidden}@media(max-width:720px){.os-task-view{display:none}.start-footer{padding:10px 18px}.start-main{padding-bottom:12px}}
/* Automotive ignition entrance. */
.os-boot{background:radial-gradient(ellipse at 0% 65%,#00234455,transparent 47%),radial-gradient(ellipse at 100% 30%,#65071344,transparent 45%),radial-gradient(ellipse at 48% 100%,#5b0b203d,transparent 50%),radial-gradient(ellipse at 40% 40%,#29233955,transparent 55%),#050609}.os-boot:before{inset:-20%;width:auto;height:auto;background:conic-gradient(from 30deg at 50% 50%,transparent,#380b151e,transparent,#151d3933,transparent);filter:blur(65px);opacity:.8;animation:none}.boot-brand{top:8%;font-size:17px;letter-spacing:4px}.boot-brand span{display:none}.boot-center{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(35px,5.5vw,105px);width:min(1450px,94%);padding:0}.boot-word{font-family:Arial,Helvetica,sans-serif;font-weight:900;font-size:clamp(42px,5.7vw,110px);letter-spacing:-.065em;line-height:.92;text-align:center;transform:scaleX(1.08);white-space:nowrap}.boot-word:last-child{font-size:clamp(34px,4.8vw,92px)}.os-enter{width:clamp(150px,11vw,210px);height:clamp(150px,11vw,210px);border:2px solid #777176;border-radius:50%;background:radial-gradient(ellipse at 50% 72%,#f21139 0%,#d30727 48%,#a9061c 77%,#5e0711 100%);box-shadow:0 0 0 8px #161316,0 0 0 10px #252027,0 7px 6px 10px #0009,inset 0 3px 8px #ffadb188,inset 0 -9px 14px #65000d80;color:white;gap:0;transition:transform .16s,filter .2s,box-shadow .2s}.os-enter>span{font:400 clamp(20px,1.5vw,28px)/1.12 Arial;letter-spacing:-.5px}.os-enter:hover{transform:scale(1.025);filter:brightness(1.12)}.os-enter:active,.starting .os-enter{transform:scale(.96);box-shadow:0 0 0 8px #161316,0 0 0 10px #252027,0 0 55px #ed123d55,inset 0 6px 20px #57000d99}.os-enter:focus-visible{outline:3px solid #fff;outline-offset:16px}.os-boot>p{display:none}.boot-foot{bottom:8%;font-size:13px;letter-spacing:1px;color:#ddd}.os-boot.starting:before{background:radial-gradient(ellipse,#c80c2833,transparent 65%)}.os-boot.entered{opacity:0;visibility:hidden;pointer-events:none}@media(max-width:720px){.boot-center{display:flex;flex-direction:column;gap:40px;width:94%}.boot-word,.boot-word:last-child{font-size:clamp(40px,10vw,64px);letter-spacing:-2px;transform:scaleX(1.06)}.os-enter{width:150px;height:150px}.os-enter>span{font-size:22px}.boot-brand{font-size:13px;letter-spacing:3px}.boot-foot{font-size:10px;bottom:6%;letter-spacing:.5px}}@media(max-height:600px){.boot-center{display:grid;grid-template-columns:1fr auto 1fr;gap:25px}.os-enter{width:120px;height:120px}.boot-word,.boot-word:last-child{font-size:clamp(28px,5vw,56px)}.boot-brand{top:6%}.boot-foot{bottom:5%}}
