:root{--bg:#090d12;--panel:#10161e;--panel2:#151d27;--ink:#f0f3f5;--muted:#929eaa;--blue:#348cf4;--line:#26313c;--mono:'DM Mono',monospace;--display:'Barlow Condensed',sans-serif;--body:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.noise{position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.08;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E")}.topbar{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 5.2vw;gap:70px;position:sticky;top:0;z-index:10;background:#090d12eF;backdrop-filter:blur(14px)}.wordmark{font:700 25px/ .8 var(--display);letter-spacing:-1px;display:grid}.wordmark b{color:var(--blue);font-size:23px}.topbar nav{display:flex;gap:36px}.topbar nav a,.availability{font:11px var(--mono);text-transform:uppercase;letter-spacing:.09em;color:#b5bec7;transition:color .2s}.topbar nav a:hover,.footer-links a:hover{color:var(--blue)}.availability{margin-left:auto;color:#f29aa0}.availability i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ef727e;margin-right:10px;box-shadow:0 0 12px #ef727e}.availability span{margin-left:12px;color:#ef727e}.menu-toggle{display:none}.hero{min-height:660px;height:calc(100svh - 82px);max-height:900px;position:relative;display:grid;grid-template-columns:1fr 1.13fr;align-items:center;padding:0 9vw;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 69% 47%,#13243a 0%,#0b1119 52%,var(--bg) 78%)}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,transparent 49.9%,#ffffff0a 50%,transparent 50.1%),linear-gradient(#ffffff08 1px,transparent 1px);background-size:100% 100%,100% 120px;pointer-events:none}.hero-copy{position:relative;z-index:2;padding-bottom:30px}.eyebrow{font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 24px}.eyebrow span{color:var(--blue);margin-right:13px}.eyebrow b{color:#52606b;margin:0 10px}.hero h1,.section h2{font:700 clamp(72px,10vw,148px)/.82 var(--display);letter-spacing:-.025em;margin:0;text-transform:uppercase}.hero h1 em,.section h2 em{font-style:normal;color:var(--blue)}.intro{max-width:380px;font-size:15px;line-height:1.8;color:#aab4be;margin:32px 0}.hero-actions{display:flex;align-items:center;gap:28px}.button{padding:15px 18px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em}.button-bright{background:var(--blue);color:#fff}.button span{margin-left:24px}.text-link{font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#c2cbd2}.text-link span{color:var(--blue);margin-left:10px}.hero-art{height:83%;max-height:720px;position:relative;align-self:end;margin-bottom:0;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%,0 19%);border:1px solid #26374a;overflow:hidden}.art-image{position:absolute;inset:0;background-image:url('Home%20Page/326aea57-61e8-4a04-8e90-035a8b25c33e.png');background-size:cover;background-position:65% center;filter:brightness(.64) saturate(.85);transform:scale(1.02)}.art-wash{position:absolute;inset:0;background:linear-gradient(90deg,#09111cc9,transparent 65%),linear-gradient(0deg,#080d14d9,transparent 46%),linear-gradient(135deg,#203c6073,transparent 48%)}.hero-caption{position:absolute;left:8%;bottom:9%;display:flex;align-items:center;gap:15px;font:9px/1.7 var(--mono);letter-spacing:.09em;color:#abb8c6}.hero-caption b{font-weight:400;color:#f2f4f5}.caption-line{height:1px;width:34px;background:var(--blue)}.caption-index{margin-left:22px;color:#6e7c89}.hero-coordinates{position:absolute;top:7%;right:6%;font:9px/1.9 var(--mono);letter-spacing:.12em;color:#b7c6d6}.reticle{position:absolute;color:#6baaff}.reticle-one{top:25%;left:20%;font-size:20px}.reticle-one span{display:block;font:8px var(--mono);color:#97a6b4;margin-top:8px}.reticle-two{right:14%;bottom:32%;font-size:23px}.hero-index{position:absolute;right:3%;top:50%;display:grid;gap:13px;color:#596674;font:10px var(--mono)}.hero-index span:first-child{color:var(--blue)}.scroll-note{position:absolute;bottom:27px;left:5.2vw;font:9px var(--mono);letter-spacing:.13em;color:#77838e}.scroll-note span{color:var(--blue);margin-left:15px}.section{padding:112px 10vw}.work{background:var(--bg)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px}.section-head .eyebrow{margin-bottom:18px}.section h2{font-size:clamp(52px,7vw,92px);line-height:.88}.section-head>.text-link{margin-bottom:8px}.project-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:18px}.project-card{min-width:0}.project-card>a{display:block;border:1px solid var(--line);background:var(--panel);transition:border-color .25s,transform .25s}.project-card>a:hover{border-color:var(--blue);transform:translateY(-5px)}.project-visual{height:270px;position:relative;overflow:hidden;background-color:#111923;background-size:cover;background-position:center;isolation:isolate}.project-visual:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#090d12a8,transparent 52%),radial-gradient(ellipse at 50% 55%,#49a9ff48,transparent 45%)}.visual-impact{background-image:url('Portfolio%20Page/a2c5ecdb-ac4c-49ac-924b-3a17c28edaf5.jpg');background-position:48% 36%;background-size:cover}.visual-impact:before{background:linear-gradient(0deg,#090d12a8,transparent 70%),#07101a66}.visual-energy{background-image:radial-gradient(ellipse at 50% 54%,#f3d171 0,#f58b35 3%,#c34d25 8%,transparent 35%),repeating-radial-gradient(ellipse at 50% 53%,transparent 0 28px,#f4ad5a4c 30px 32px,transparent 34px 55px),linear-gradient(140deg,#111927,#211812 50%,#090d12)}.visual-energy:after{content:"";position:absolute;width:70px;height:70px;left:calc(50% - 35px);top:calc(50% - 35px);border-radius:50%;background:#fff9da;box-shadow:0 0 15px 10px #ffc664,0 0 65px 30px #fc5b29a8;animation:pulse 3s infinite alternate}.visual-shield{background-image:radial-gradient(circle at 50% 52%,#f5e5a8 0 2%,#91d6ff 4%,transparent 9%),radial-gradient(ellipse at 50% 55%,#1485f9a1,transparent 47%),repeating-radial-gradient(circle at 50% 53%,transparent 0 65px,#6ac9ff5c 66px 68px,transparent 70px 83px),linear-gradient(145deg,#101a29,#0a1020)}.visual-shield:after{content:"";position:absolute;inset:20% 22%;border:1px solid #61b5fd88;border-radius:50%;box-shadow:inset 0 0 28px #1884ff55,0 0 28px #1884ff33;transform:rotate(-18deg) scaleY(.68)}.visual-label{position:absolute;top:18px;left:18px;font:9px var(--mono);letter-spacing:.1em;color:#c8d2dc}.visual-cross{position:absolute;right:20px;top:14px;font-size:17px;color:var(--blue)}.project-info{display:flex;justify-content:space-between;align-items:center;padding:19px 20px 21px}.project-type{font:8px var(--mono);letter-spacing:.1em;color:var(--blue)}.project-info h3{font:600 25px/.98 var(--display);text-transform:uppercase;margin:9px 0 0;letter-spacing:.02em}.card-arrow{font-size:18px;color:#91a0ae}.portfolio-note{font:10px var(--mono);color:#788591;margin:21px 0 0}.portfolio-note span{color:var(--blue);margin-right:9px}.about{display:grid;grid-template-columns:.55fr 1.2fr 1fr;gap:6vw;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(110deg,#0e151e,#0a0f15 60%);position:relative;overflow:hidden}.about-mark{font:800 clamp(170px,25vw,370px)/.7 var(--display);letter-spacing:-.1em;color:#12243a;position:relative}.about-mark span{color:var(--blue)}.about-content{position:relative;z-index:1}.about-content .eyebrow{margin-bottom:22px}.about-content h2{font-size:clamp(53px,6vw,79px)}.about-content h2 em{font-size:.78em}.about-text{font-size:13px;line-height:1.9;color:#a6b1ba;max-width:430px;margin:27px 0}.toolbox{border-left:1px solid var(--line);padding-left:32px}.toolbox .eyebrow{margin-bottom:23px}.tool-row{padding:15px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:35px 1fr 20px;align-items:center;font-size:11px;color:#d5dbe0}.tool-row>span{font:9px var(--mono);color:var(--blue)}.tool-row>span:last-child{text-align:right}.software{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:27px}.software span{width:100%;font:8px var(--mono);letter-spacing:.12em;color:#788591;margin-bottom:2px}.software b{font:8px var(--mono);font-weight:400;color:#aeb9c2;border:1px solid var(--line);padding:7px 8px}.contact{min-height:390px;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden}.contact h2{font-size:clamp(54px,7vw,96px);line-height:.94;position:relative;z-index:1}.contact h2 em{font-size:.75em}.contact .eyebrow{position:relative;z-index:1}.contact-button{display:flex;align-items:center;gap:34px;position:relative;z-index:1;border:1px solid #425365;padding:17px 18px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em;transition:background .2s}.contact-button:hover{background:var(--blue);border-color:var(--blue)}.contact-button b{font-size:18px;color:var(--blue)}.contact-button:hover b{color:#fff}.contact-orbit{position:absolute;width:430px;height:430px;border:1px solid #17283a;border-radius:50%;right:5%;top:50%;transform:translateY(-50%);box-shadow:0 0 0 35px #0b121b,0 0 0 36px #17283a,0 0 90px #0c2742 inset}.contact-orbit:after,.contact-orbit:before{content:"";position:absolute;border:1px solid #17283a;inset:55px;border-radius:50%}.contact-orbit:before{inset:120px;border-color:#1e3d5b}footer{border-top:1px solid var(--line);min-height:90px;padding:20px 5.2vw;display:flex;align-items:center;gap:35px;color:#77838e}footer>span,footer small,.footer-links{font:8px var(--mono);letter-spacing:.08em}.footer-mark{font-size:20px}footer>span{margin-right:auto}.footer-links{display:flex;gap:20px}.footer-links a{transition:color .2s}.footer-links+a{color:var(--blue)}footer small{color:#77838e} @keyframes pulse{from{transform:scale(.78);opacity:.75}to{transform:scale(1.12);opacity:1}}
@media(max-width:900px){.hero{padding:0 7vw;grid-template-columns:1fr 1fr;min-height:610px}.hero h1{font-size:clamp(72px,12vw,110px)}.hero-art{height:75%}.section{padding:88px 7vw}.project-visual{height:220px}.about{grid-template-columns:.35fr 1fr 1fr;gap:3vw}.about-mark{font-size:190px}.about-content h2{font-size:60px}.toolbox{padding-left:20px}.contact-orbit{right:-20%}}
@media(max-width:650px){.topbar{height:68px;padding:0 6vw;gap:24px}.topbar nav{display:none;position:absolute;top:67px;left:0;right:0;padding:24px 6vw;background:#0c121a;border-bottom:1px solid var(--line);flex-direction:column;gap:22px}.topbar nav.open{display:flex}.availability{font-size:8px}.availability i{width:6px;height:6px;margin-right:5px}.availability span{margin-left:5px}.menu-toggle{display:grid;gap:5px;background:none;border:0;padding:10px}.menu-toggle span{height:1px;width:20px;background:#dce2e8}.hero{height:auto;min-height:0;padding:82px 7vw 74px;display:flex;flex-direction:column;align-items:stretch;background:radial-gradient(ellipse at 70% 62%,#13243a 0%,#0b1119 48%,var(--bg) 78%)}.hero-copy{padding:0}.hero h1{font-size:clamp(76px,20vw,124px)}.intro{font-size:13px;max-width:340px;margin:25px 0}.hero-art{height:330px;margin-top:46px;align-self:stretch}.hero-index{top:auto;bottom:25px;right:7vw;display:flex;gap:10px}.scroll-note{left:7vw;bottom:25px}.section{padding:74px 7vw}.section-head{align-items:start;gap:15px;flex-direction:column}.section h2{font-size:65px}.section-head>.text-link{margin-top:5px}.project-grid{grid-template-columns:1fr;gap:14px}.project-visual{height:240px}.project-large .project-visual{height:265px}.project-info{padding:16px}.about{grid-template-columns:1fr;gap:30px}.about-mark{display:none}.about-content h2{font-size:65px}.about-text{font-size:12px}.toolbox{padding:28px 0 0;border-left:0;border-top:1px solid var(--line)}.tool-row{padding:16px 0}.contact{min-height:410px;display:block;padding-top:76px}.contact h2{font-size:clamp(53px,14vw,78px)}.contact-button{margin-top:35px;width:max-content}.contact-orbit{width:320px;height:320px;right:-180px;top:50%}footer{padding:21px 7vw;display:grid;grid-template-columns:auto 1fr;gap:12px 18px}footer>span{font-size:7px}footer small{grid-column:1}.footer-links{grid-column:2;grid-row:2;justify-content:flex-end}.footer-mark{grid-row:1/3}}
.work-page .section-head h1{font:700 clamp(52px,7vw,92px)/.88 var(--display);letter-spacing:-.025em;margin:0;text-transform:uppercase}

/* Home page composition, scoped to index.html so the other routes keep their layouts. */
html:has(body.home-route),body.home-route{height:100%;overflow:hidden}
body.home-route{height:100vh;height:100dvh;display:flex;flex-direction:column}
body.home-route>.topbar{flex:0 0 auto}
body.home-route .home-main{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 48px minmax(150px,28%);overflow:hidden}
body.home-route .home-hero{height:auto;min-height:0;max-height:none;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:3vw;padding:22px 5.8vw;background-color:#0c1520;background-image:linear-gradient(145deg,rgba(10,17,26,.9),rgba(10,17,26,.94)),url('Media/Optimized/Patterns/Topographic_map_tex5.png.webp');background-repeat:no-repeat,repeat;background-size:cover,360px 360px}
body.home-route .home-hero:after{content:"";position:absolute;z-index:1;left:0;top:0;bottom:0;width:44%;background:#e5e9ed;transform:translateX(0);animation:home-panel-sweep 1.15s cubic-bezier(.77,0,.18,1) .18s forwards;pointer-events:none}
@keyframes home-panel-sweep{to{transform:translateX(-101%)}}
body.home-route .home-hero:before{background-image:linear-gradient(90deg,transparent 43.9%,#182b4020 44%,transparent 44.1%),linear-gradient(#19293b0b 1px,transparent 1px);background-size:100% 100%,100% 80px}
body.home-route .home-hero .hero-copy{align-self:center;padding:0;max-width:520px}
body.home-route .home-hero .eyebrow{font-size:9px;color:#347fc7;margin:0 0 22px}
body.home-route .home-hero .eyebrow b{color:#77838e}
body.home-route .home-hero h1{font-size:clamp(44px,6.1vw,88px);line-height:.83;letter-spacing:-.025em;color:#10151b;transition:color .65s ease 1s}
body.home-route .home-hero h1 em{color:#10151b;transition:color .65s ease 1s}
body.home-route .home-hero .eyebrow,body.home-route .home-hero .intro{transition:color .65s ease 1s}
body.home-route .home-hero .intro{max-width:385px;margin:21px 0 22px;color:#46525d;font-size:clamp(11px,1.15vw,14px);line-height:1.65}
@keyframes home-title-color-shift{to{color:#f0f3f5}}
@keyframes home-intro-color-shift{to{color:#aab4be}}
body.home-route .home-hero .hero-copy .intro{animation:home-intro-color-shift .65s ease 1s both}
body.home-route .home-hero .hero-copy h1,body.home-route .home-hero .hero-copy h1 em{animation:home-title-color-shift .65s ease 1s both}
body.home-route .hero-art{width:100%;height:auto;max-height:none;align-self:stretch;margin:0;clip-path:polygon(14% 0,100% 0,100% 100%,0 100%,0 15%);border-color:#778899}
body.home-route .hero-art:after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid #d3e5f5;opacity:.3}
body.home-route .hero-art .art-image{filter:brightness(.84) saturate(.88)}
body.home-route .hero-art .art-wash{background:linear-gradient(90deg,#0b15232b,transparent 60%),linear-gradient(0deg,#07101c91,transparent 48%),linear-gradient(135deg,#b7d6f12b,transparent 48%)}
body.home-route .hero-art .hero-caption{bottom:6%;left:7%;font-size:8px}
body.home-route .hero-art .hero-coordinates{top:7%;right:6%;font-size:8px}
body.home-route .hero-index{top:50%;right:2.2%;z-index:3}
body.home-route .home-tools{min-height:0;padding:0;overflow:hidden;border-top:1px solid #64717e;border-bottom:1px solid #64717e;background:#111820;color:#c3cbd2}
body.home-route .home-tools-track{width:max-content;height:100%;display:flex;animation:home-tools-scroll-right 36s linear infinite}
body.home-route .home-tools-group{height:100%;flex:0 0 auto;display:flex;align-items:center}
body.home-route .home-tools-group>span{height:100%;min-width:max-content;padding:0 23px;display:flex;align-items:center;justify-content:center;gap:9px;border-right:1px solid #293541;font:8px var(--mono);letter-spacing:.06em;white-space:nowrap}
body.home-route .home-tools img{width:17px;height:17px;object-fit:contain}
@keyframes home-tools-scroll-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}
body.home-route .home-projects{min-height:0;display:grid;grid-template-rows:13px minmax(0,1fr);gap:7px;padding:9px 5.8vw 12px;background:#10161e}
body.home-route .home-projects-heading{color:#419bf4;font:8px var(--mono);letter-spacing:.09em;text-transform:uppercase}
body.home-route .home-project-grid{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.home-route .home-project-card{position:relative;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 39px;border:1px solid #36414c;background:#10161e;overflow:hidden}
body.home-route .home-project-image{display:block;min-height:0;background-size:cover;background-position:center;filter:brightness(.78) saturate(.9);transition:filter .25s,transform .35s}
body.home-route .home-project-fighter{background-image:url('Media/Optimized/Projects/Fighter%20Jet%20FX/Side%20Images/Thumbnails/fighter-jet-03.jpg.webp')}
body.home-route .home-project-lightsaber{background-image:url('Media/Optimized/Projects/LightSaber%20FX/Side%20Images/Thumbnails/UnrealEditor_BP90uxHVvx.jpg.webp');background-position:42% 45%}
body.home-route .home-project-ethereal{background-image:url('Media/Optimized/Projects/Ethereal%20Energy%20Core/Square%20Cover/Cover.png.webp')}
body.home-route .home-project-portal{background-image:url('Media/Optimized/Projects/Portal%20FX/Square%20Cover/portal%20fx%20screenshots_1.1.1.png.webp')}
body.home-route .home-project-card:hover .home-project-image{filter:brightness(1) saturate(1);transform:scale(1.015)}
body.home-route .home-project-title{display:flex;align-items:center;gap:12px;padding:0 13px;font:600 17px var(--display);color:#e5e9ed}
body.home-route .home-project-title i{font:7px var(--mono);font-style:normal;color:#8997a4}
body.home-route .home-project-card>b{position:absolute;right:12px;bottom:9px;color:var(--blue);font:20px var(--mono);font-weight:400}
footer.home-footer{flex:0 0 auto;position:relative;z-index:1;flex-wrap:wrap;margin-top:auto;min-height:58px;padding:0 5.8vw;display:flex;align-items:center;gap:clamp(14px,3vw,46px);border-top:1px solid #34404c;background:#0b1016;color:#84909c}
footer.home-footer>a:not(.wordmark),footer.home-footer>span,footer.home-footer small{font:7px var(--mono);letter-spacing:.07em;white-space:nowrap}
footer.home-footer>span{margin-left:auto;margin-right:auto;color:#a5afb9}
footer.home-footer>a:not(.wordmark){color:#a5afb9}
footer.home-footer small{color:#77838e}
@media(max-width:760px){
  body.home-route .home-main{grid-template-rows:minmax(0,1fr) 42px minmax(125px,25%)}
  body.home-route .home-hero{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:2vw;padding:15px 5vw}
  body.home-route .home-hero h1{font-size:clamp(35px,7vw,54px)}
  body.home-route .home-hero .eyebrow{font-size:7px;margin-bottom:13px}
  body.home-route .home-hero .intro{font-size:9px;margin:14px 0;line-height:1.5}
  body.home-route .home-tools{padding:0 4vw;grid-template-columns:.55fr repeat(5,1fr)}
  body.home-route .home-tools>span{font-size:6px;gap:4px}
  body.home-route .home-tools img{width:13px;height:13px}
  body.home-route .home-projects{padding:8px 4vw;gap:8px}
  body.home-route .home-project-card{grid-template-rows:minmax(0,1fr) 29px}
  body.home-route .home-project-title{font-size:14px;padding:0 8px;gap:5px}
  body.home-route .home-project-title i{font-size:6px}
  body.home-route .home-project-card>b{right:7px;bottom:6px;font-size:16px}
  footer.home-footer{min-height:46px;padding:0 4vw;gap:12px}
  footer.home-footer>a:not(.wordmark),footer.home-footer>span,footer.home-footer small{font-size:6px}
}
@media(max-width:500px){
  body.home-route .home-main{grid-template-rows:minmax(0,1fr) 38px minmax(112px,23%)}
  body.home-route .home-hero{grid-template-columns:1fr 1fr;padding-left:4vw;padding-right:4vw}
  body.home-route .home-hero h1{font-size:clamp(29px,8vw,40px)}
  body.home-route .home-hero .eyebrow{font-size:6px;letter-spacing:.04em}
  body.home-route .home-hero .intro{font-size:8px;line-height:1.35}
  body.home-route .home-hero .hero-caption{font-size:6px;gap:5px}
  body.home-route .home-hero .caption-index{display:none}
  body.home-route .home-hero .hero-coordinates{font-size:6px}
  body.home-route .home-hero .reticle{display:none}
  body.home-route .home-tools{padding:0 3vw;grid-template-columns:.5fr repeat(5,1fr)}
  body.home-route .home-tools>span{font-size:0;gap:0}
  body.home-route .home-tools>span:first-child{font-size:6px}
  body.home-route .home-tools img{width:14px;height:14px}
  body.home-route .home-project-title{font-size:12px}
  body.home-route .home-project-title i{display:none}
  footer.home-footer{gap:8px;padding:0 3vw}
  footer.home-footer>span{display:none}
  footer.home-footer small{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){body.home-route .home-hero:after{animation:none;transform:translateX(-101%)}body.home-route .home-hero .hero-copy .intro{animation:none;color:#aab4be;transition:none}body.home-route .home-hero .hero-copy h1,body.home-route .home-hero .hero-copy h1 em{animation:none;color:#f0f3f5;transition:none}}

body.home-route .home-clock{position:static;z-index:2;width:max-content;max-width:100%;margin-top:12px;display:grid;grid-template-columns:auto auto;gap:4px 15px;color:#b3c0cc;font:8px var(--mono);letter-spacing:.08em;text-transform:uppercase}
body.home-route .home-clock-label{grid-column:1/-1;margin-bottom:3px;color:#71859a;font-size:7px;letter-spacing:.12em}
body.home-route .home-clock-label i{display:inline-block;width:5px;height:5px;margin-right:6px;background:var(--blue);box-shadow:0 0 7px #348cf4;vertical-align:1px}
body.home-route .home-clock>span:not(.home-clock-label){display:flex;gap:8px;align-items:center}
body.home-route .home-clock b{color:#348cf4;font-size:7px;font-weight:400}
.home-footer .home-social-links{display:flex;align-items:center;gap:clamp(10px,1.8vw,24px);font:7px var(--mono);letter-spacing:.07em;white-space:nowrap}
.home-footer .home-social-links a{color:#a5afb9;transition:color .2s}
.home-footer .home-social-links a:hover{color:var(--blue)}
body.home-route .home-hero .home-copyright{position:static;display:block;margin:0 0 12px;color:#7f8e9c;font:7px var(--mono);letter-spacing:.13em}
.page-copyright{display:block;margin:0 0 14px;color:#7f8e9c;font:7px var(--mono);letter-spacing:.13em}
.site-social-links{display:flex;align-items:center;gap:clamp(10px,1.8vw,24px);font:8px var(--mono);letter-spacing:.08em;white-space:nowrap}
.site-social-links a{color:#98a8b8;transition:color .2s}
.site-social-links a:hover{color:var(--blue)}
.work-footer .site-social-links{font-size:8px}
.article-footer .site-social-links{margin-left:auto}
.article-footer .site-social-links a{font:8px var(--mono);letter-spacing:.08em}
@media(max-width:760px){.work-footer .site-social-links{font-size:7px;gap:10px}.article-footer .site-social-links{gap:10px}.article-footer .site-social-links a{font-size:7px}}
@media(max-width:500px){.work-footer .site-social-links,.article-footer .site-social-links{gap:8px}.work-footer .site-social-links a,.article-footer .site-social-links a{font-size:6px}}
body.home-route .home-hero .home-specialty{margin:0 0 10px;color:#348cf4;font:8px var(--mono);letter-spacing:.11em;text-transform:uppercase}
@media(max-width:760px){body.home-route .home-clock{margin-top:9px;font-size:7px;gap:3px 10px}.home-footer .home-social-links{font-size:6px;gap:9px}}
@media(max-width:500px){body.home-route .home-clock{margin-top:7px;gap:3px 8px;font-size:6px}body.home-route .home-clock-label{font-size:6px}}

/* Compact square tabs for the single-screen homepage's lower panel. */
body.home-route .home-projects{grid-template-rows:18px minmax(0,1fr)}
body.home-route .home-panel-tabs{grid-column:1;grid-row:1;display:flex;align-items:stretch;gap:22px;border-bottom:1px solid #293541}
body.home-route .home-panel-tab{position:relative;padding:0 0 5px;border:0;background:none;color:#778897;font:8px var(--mono);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
body.home-route .home-panel-tab:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
body.home-route .home-panel-tab.is-active{color:#55aaff}
body.home-route .home-panel-tab.is-active:after{transform:scaleX(1)}
body.home-route .home-panel-tab:focus-visible{outline:1px solid var(--blue);outline-offset:3px}
body.home-route .home-panel-content{grid-column:1;grid-row:2;min-height:0}
body.home-route .home-panel-content[hidden]{display:none!important}
body.home-route .home-project-grid{display:flex;align-items:center;justify-content:flex-start;gap:12px;overflow:hidden}
body.home-route .home-project-card{flex:0 0 min(20vh,20vw,220px);width:min(20vh,20vw,220px);height:auto;align-self:center;max-width:100%;aspect-ratio:1/1;min-height:0}
body.home-route .home-project-card .home-project-image{min-width:0}
body.home-route .home-project-title{min-width:0;font-size:clamp(9px,1.4vw,17px);gap:7px;white-space:nowrap}
body.home-route .home-project-title i{font-size:clamp(5px,.55vw,7px)}
body.home-route .home-about-panel{display:flex;align-items:center;gap:12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#348cf4 #10161e}
body.home-route .home-about-photo,body.home-route .home-about-card{flex:0 0 min(20vh,20vw,220px);width:min(20vh,20vw,220px);height:auto;align-self:center;max-width:100%;aspect-ratio:1/1;min-height:0;border:1px solid #36414c;overflow:hidden}
body.home-route .home-about-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .35s ease}
body.home-route .home-about-photo:hover img{transform:scale(1.025)}
body.home-route .home-about-card{padding:clamp(10px,1.5vw,18px);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#131d28,#0c1118);color:#e6ebef}
body.home-route .home-about-card{padding:clamp(9px,.9vw,12px);transition:border-color .2s ease,background-color .2s ease}
body.home-route .home-about-card:hover{border-color:#348cf4}
body.home-route a.home-about-card,body.home-route a.home-about-photo{color:inherit;text-decoration:none;cursor:pointer}
body.home-route a.home-about-card:focus-visible,body.home-route a.home-about-photo:focus-visible{outline:2px solid #348cf4;outline-offset:2px}
body.home-route .home-about-hover-card{position:relative;isolation:isolate}
body.home-route .home-about-hover-card:before{content:"";position:absolute;z-index:1;inset:78% 0 0;background:linear-gradient(to top,rgba(0,0,0,.96),rgba(0,0,0,0));opacity:0;transition:opacity .22s ease;pointer-events:none}
body.home-route .home-about-hover-hint{position:absolute;z-index:2;left:10px;bottom:9px;color:#e8f0f8;font:6px var(--mono);letter-spacing:.07em;text-transform:uppercase;opacity:0;transform:translateY(4px);transition:opacity .22s ease,transform .22s ease}
body.home-route .home-about-hover-card:hover:before{opacity:1}
body.home-route .home-about-hover-card:hover .home-about-hover-hint{opacity:1;transform:translateY(0)}
body.home-route .home-about-photo.home-about-hover-card:hover{border-color:#348cf4}
body.home-route .home-about-topic{position:relative;isolation:isolate;background:linear-gradient(145deg,#131d28,#0c1118)}
body.home-route .home-about-topic:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(145deg,transparent 49.8%,#348cf41c 50%,transparent 50.4%);pointer-events:none}
body.home-route .home-about-topic h2{font-size:clamp(17px,1.8vw,24px);letter-spacing:.02em;color:#dfe7ee}
body.home-route .home-about-stats{display:grid;gap:7px;margin-top:8px}
body.home-route .home-about-stats>div{display:flex;align-items:baseline;justify-content:space-between;gap:3px}
body.home-route .home-about-stats span{font:clamp(5px,.48vw,5.5px) var(--mono);letter-spacing:0;color:#8d9baa;text-transform:uppercase}
body.home-route .home-about-stats strong{font:700 clamp(19px,2.15vw,29px)/.9 var(--display);letter-spacing:.01em;color:#e5edf4;white-space:nowrap}
body.home-route .home-about-card{justify-content:flex-start;padding-top:clamp(20px,2vw,24px)}
body.home-route .home-about-card p{text-align:left}
body.home-route .home-about-index,body.home-route .home-about-location{font:clamp(5px,.6vw,7px) var(--mono);letter-spacing:.08em;color:#489cf0}
body.home-route .home-about-card h2{margin:6px 0;font:700 clamp(18px,2vw,27px)/.82 var(--display);letter-spacing:-.02em}
body.home-route .home-about-card p{margin:8px 0 0;color:#b5c0ca;font:clamp(8px,.72vw,9px)/1.35 var(--mono)}
body.home-route .home-about-location{margin-top:5px;color:#758696}
body.home-route .home-panel-content.is-entering{animation:home-panel-enter .3s cubic-bezier(.16,1,.3,1) both}
body.home-route .home-panel-content.is-entering .home-project-card{animation:home-card-arrive .3s cubic-bezier(.16,1,.3,1) 0s both!important}
body.home-route .home-hero .hero-copy{top:clamp(-16px,-1.5vh,-7px)}
body.home-route .home-hero .home-identity{margin-top:clamp(3px,.4vh,5px)}
body.home-route .hero-glitch-overlay{position:absolute;z-index:3;inset:0;pointer-events:none;opacity:0;mix-blend-mode:screen;background:linear-gradient(90deg,transparent 0 13%,#54caff48 13.2% 13.8%,transparent 14% 72%,#ff4c7960 72.2% 72.6%,transparent 72.8%),repeating-linear-gradient(0deg,transparent 0 12px,#73c8ff26 13px,transparent 15px 31px);animation:home-glitch-flash 8s steps(1,end) infinite}
body.home-route .hero-frame{position:absolute;z-index:5;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
body.home-route .hero-frame path{fill:none;stroke:#a7bfd4;stroke-width:1.2;vector-effect:non-scaling-stroke;opacity:.72}
@keyframes home-glitch-flash{0%,90%,100%{opacity:0;transform:translateX(0);clip-path:inset(0)}90.2%{opacity:.3;transform:translateX(-4px);clip-path:inset(21% 0 67% 0)}90.55%{opacity:.16;transform:translateX(3px);clip-path:inset(48% 0 44% 0)}90.9%{opacity:.27;transform:translateX(-2px);clip-path:inset(68% 0 22% 0)}91.4%{opacity:0;transform:translateX(0);clip-path:inset(0)}}
@keyframes home-panel-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){body.home-route .home-projects{grid-template-rows:16px minmax(0,1fr)}body.home-route .home-panel-tabs{gap:16px}body.home-route .home-panel-tab{font-size:7px}body.home-route .home-project-grid,body.home-route .home-about-panel{gap:8px}body.home-route .home-project-grid{justify-content:flex-start}body.home-route .home-project-card,body.home-route .home-about-photo,body.home-route .home-about-card{flex-basis:min(20vh,20vw,220px);width:min(20vh,20vw,220px)}body.home-route .home-project-title{font-size:clamp(8px,1.6vw,14px);padding:0 7px;gap:4px}body.home-route .home-project-title i{display:none}}
@media(max-width:500px){body.home-route .home-projects{grid-template-rows:15px minmax(0,1fr)}body.home-route .home-panel-tab{font-size:6px}body.home-route .home-project-card,body.home-route .home-about-photo,body.home-route .home-about-card{flex-basis:min(16vh,27vw,132px);width:min(16vh,27vw,132px)}body.home-route .home-about-card{padding:6px}body.home-route .home-about-card h2{font-size:clamp(14px,5vw,20px);margin:4px 0}body.home-route .home-about-card p{font-size:6px;line-height:1.2}body.home-route .home-about-location{display:none}}

/* Cinematic, one-time home-page entrance sequence. */
body.home-route .home-hero:before{opacity:0;animation:home-grid-arrive .8s ease .45s forwards}
body.home-route .home-hero .hero-copy{opacity:0;animation:home-copy-arrive .7s cubic-bezier(.2,.75,.25,1) .08s forwards}
body.home-route .home-hero .eyebrow{animation:home-eyebrow-arrive .5s ease .15s both}
body.home-route .home-hero h1,body.home-route .home-hero h1 em{animation:home-title-color-shift .65s ease 1s both,home-title-reveal .72s cubic-bezier(.16,1,.3,1) .24s both}
body.home-route .home-hero .intro{animation:home-intro-color-shift .65s ease 1s both,home-copy-detail-arrive .55s ease .52s both}
body.home-route .home-hero .hero-art{opacity:0;transform:translateX(24px) scale(.985);animation:home-art-arrive .9s cubic-bezier(.16,1,.3,1) .12s forwards}
body.home-route .home-hero .hero-art:before{content:"";position:absolute;z-index:4;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#b8e7ff,var(--blue),transparent);box-shadow:0 0 14px #348cf4;opacity:0;pointer-events:none;animation:home-art-scan 1.05s cubic-bezier(.2,.65,.3,1) .48s both}
body.home-route .home-hero .hero-art:after{animation:home-outline-arrive .9s ease .35s both}
body.home-route .home-hero .hero-coordinates{opacity:0;animation:home-hud-arrive .48s steps(5,end) .75s both}
body.home-route .home-hero .reticle-one{opacity:0;animation:home-hud-arrive .45s steps(4,end) .62s both}
body.home-route .home-hero .reticle-two{opacity:0;animation:home-hud-arrive .45s steps(4,end) .9s both}
body.home-route .home-hero .hero-caption{opacity:0;animation:home-caption-arrive .65s cubic-bezier(.16,1,.3,1) .92s both}
body.home-route .home-hero .hero-index{opacity:0;animation:home-hud-arrive .5s steps(4,end) .78s both}
body.home-route .home-tools{opacity:0;transform:translateY(9px);animation:home-strip-arrive .6s cubic-bezier(.16,1,.3,1) 1.16s forwards}
body.home-route .home-projects-heading{opacity:0;animation:home-hud-arrive .45s steps(4,end) 1.36s forwards}
body.home-route .home-project-card{opacity:0;transform:translateY(17px) scale(.99);animation:home-card-arrive .62s cubic-bezier(.16,1,.3,1) both}
body.home-route .home-project-card:nth-child(1){animation-delay:1.42s}
body.home-route .home-project-card:nth-child(2){animation-delay:1.55s}
body.home-route .home-project-card:nth-child(3){animation-delay:1.68s}
body.home-route .home-project-card:nth-child(4){animation-delay:1.81s}
body.home-route>.home-footer{opacity:0;animation:home-footer-arrive .65s ease 1.72s forwards}
@keyframes home-grid-arrive{to{opacity:.6}}
@keyframes home-copy-arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@keyframes home-eyebrow-arrive{0%{opacity:0;transform:translateX(-9px);clip-path:inset(0 100% 0 0)}100%{opacity:1;transform:translateX(0);clip-path:inset(0)}}
@keyframes home-title-reveal{0%{clip-path:inset(0 100% 0 0);transform:translateX(-10px)}100%{clip-path:inset(0);transform:translateX(0)}}
@keyframes home-copy-detail-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes home-art-arrive{to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes home-art-scan{0%{top:0;opacity:0}12%{opacity:1}82%{opacity:.9}100%{top:100%;opacity:0}}
@keyframes home-outline-arrive{from{opacity:0}to{opacity:.3}}
@keyframes home-hud-arrive{0%{opacity:0}24%{opacity:.18}48%{opacity:0}72%{opacity:.72}100%{opacity:1}}
@keyframes home-caption-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes home-strip-arrive{to{opacity:1;transform:translateY(0)}}
@keyframes home-card-arrive{to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes home-footer-arrive{to{opacity:1}}
.work-page .section-head h1 em{font-style:normal;color:var(--blue)}
.topbar nav a.current{color:var(--ink);position:relative}
.topbar nav a.current:before{content:"";position:absolute;left:-13px;top:5px;width:6px;height:2px;background:var(--blue)}
.work-route{min-height:100vh}
.work-sidebar{position:fixed;z-index:12;left:0;top:0;bottom:0;width:clamp(150px,11.3vw,190px);padding:27px 25px;background:#090d12;border-right:1px solid #2a3540;display:flex;flex-direction:column;color:#94a1ad}
.work-logo{font-size:35px;padding:29px 5px 32px;border-bottom:1px solid var(--line)}
.work-logo b{font-size:33px}
.work-side-index{margin-top:42px;display:grid;gap:13px;font:11px var(--mono);letter-spacing:.1em}
.work-side-index span{color:var(--blue)}
.work-side-index b{font-weight:400;color:#dfe5eb}
.work-side-index i{height:1px;background:linear-gradient(90deg,var(--blue) 32%,var(--line) 32%);margin-top:12px}
.work-scroll{margin-top:auto;margin-bottom:100px;font:9px var(--mono);letter-spacing:.12em}
.work-scroll span{display:block;height:56px;width:1px;margin:13px 0 0 6px;background:linear-gradient(var(--blue),#273442)}
.work-location{font:9px/1.7 var(--mono);letter-spacing:.06em;padding-bottom:24px}
.work-location small{display:block;margin-top:35px;color:#77838e;font:8px/1.8 var(--mono)}
.work-main{margin-left:clamp(150px,11.3vw,190px);min-height:100vh;display:flex;flex-direction:column}
.work-nav{position:sticky;top:0;z-index:10;height:82px;flex:none;padding:0 4.5vw 0 3vw;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#090d12ef;backdrop-filter:blur(14px)}
.work-nav nav{display:flex;align-items:center;gap:60px}
.work-nav nav a,.work-nav .availability{font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#a8b2bc}
.work-nav nav a.current{color:var(--ink);position:relative}
.work-nav nav a.current:before{content:"";position:absolute;left:-18px;top:4px;width:7px;height:2px;background:var(--blue)}
.work-nav .availability{margin:0}
.work-page{padding:54px 4.4vw 50px}
.work-heading{margin-bottom:30px}
.work-heading .eyebrow{margin-bottom:14px}
.work-heading h1{font:700 clamp(47px,5.6vw,78px)/.9 var(--display);letter-spacing:-.02em;text-transform:uppercase;margin:0;color:#e9edf1}
.work-heading h1 em{font-style:normal;color:var(--blue)}
.work-heading h1 span{font-weight:500;color:#aab5c0}
.work-heading .portfolio-note{margin:12px 0 0}
.work-toolbar{min-height:47px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:21px;margin:0 0 17px;flex-wrap:wrap}
.toolbar-label,.work-count{font:8px var(--mono);letter-spacing:.1em;color:#778491}
.work-filter{border:0;background:none;padding:12px 0;color:#99a5b0;font:9px var(--mono);letter-spacing:.08em;cursor:pointer;transition:color .18s}
.work-filter:hover,.work-filter.active{color:var(--blue)}
.work-filter i{font-style:normal;color:#64717d;margin-left:5px}
.work-filter i{display:none}
.work-filter.active i{display:inline}
.work-count{margin-left:auto}.work-count b{font-weight:400;color:var(--blue);margin-left:7px}
.work-page .project-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media(min-width:1440px){.work-page .project-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.work-page .project-grid.is-gated{display:none}
.work-page .project-card{opacity:1;transform:translateY(0);transition:transform .26s cubic-bezier(.16,1,.3,1),opacity .22s ease;transition-delay:calc(var(--reveal-index, 0) * 35ms)}
.work-page .project-grid.is-entering .project-card{opacity:0;transform:translateY(-42px)}
.work-page .project-grid.is-collapsing .project-card{opacity:0;transform:translateY(-42px)}
.work-gallery-gate{width:100%;height:175px;min-height:175px;margin:0 0 17px;padding:22px;appearance:none;text-align:left;font-family:var(--mono);cursor:pointer;flex:none;transform-origin:top center;transition:height .42s cubic-bezier(.2,.8,.2,1),min-height .42s cubic-bezier(.2,.8,.2,1),padding .42s ease}
.work-gallery-gate[aria-expanded="true"]{height:78px;min-height:78px;padding-top:16px;padding-bottom:16px}
.work-gallery-gate:after{background-image:linear-gradient(90deg,transparent,#0b182999)}
.work-gallery-gate:before{opacity:0;clip-path:circle(0px at var(--pointer-x,50%) var(--pointer-y,50%))}
.work-gallery-gate:hover:before,.work-gallery-gate:focus-visible:before{opacity:.34;clip-path:circle(var(--map-reveal-radius,0px) at var(--pointer-x,50%) var(--pointer-y,50%))}
.work-gallery-gate:focus-visible{outline:2px solid #8bc5ff;outline-offset:3px}
.work-gallery-gate span{max-width:none}
.work-gallery-gate .work-gate-caption{position:absolute;z-index:1;top:12px;left:15px;font:7px var(--mono);letter-spacing:.1em;color:#9eacb9;text-transform:uppercase;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.work-gallery-gate:hover .work-gate-caption,.work-gallery-gate:focus-visible .work-gate-caption{opacity:1;visibility:visible}
.work-gallery-gate .work-gate-copy{display:grid;gap:5px;max-width:none;transform:none}
.work-gallery-gate:hover .work-gate-copy,.work-gallery-gate:focus-visible .work-gate-copy{transform:none}
.work-gallery-gate .work-gate-filter-hint{font:7px var(--mono);letter-spacing:.08em;color:#8296aa}
.work-gallery-gate[aria-expanded="false"]>b{animation:gate-arrow-down 1.05s linear infinite}
.work-gallery-gate[aria-expanded="true"]>b{animation:gate-arrow-up 1.05s linear infinite}
.hero-art .art-image-layer{transition:opacity .85s ease}
.hero-art .art-image-layer:not(.is-active){opacity:0}
.hero-art .art-image-layer.is-active{opacity:1}
@keyframes gate-arrow-down{0%{transform:translateY(-8px);opacity:0}18%{opacity:1}82%{opacity:1}100%{transform:translateY(8px);opacity:0}}
@keyframes gate-arrow-up{0%{transform:translateY(8px);opacity:0}18%{opacity:1}82%{opacity:1}100%{transform:translateY(-8px);opacity:0}}
@media(prefers-reduced-motion:reduce){.work-gallery-gate> b{animation:none!important;opacity:1}}
@media(prefers-reduced-motion:reduce){.work-gallery-gate:before{transition:none}}
.work-page .project-visual{aspect-ratio:1/1}
.work-page .project-cover-fighter{background-image:url('Media/Optimized/Projects/Fighter%20Jet%20FX/Square%20Cover/Sqaure.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-lightsaber{background-image:url('Media/Optimized/Projects/LightSaber%20FX/Square%20Cover/Cover_Square2.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-ethereal{background-image:url('Media/Optimized/Projects/Ethereal%20Energy%20Core/Square%20Cover/Cover.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-portal{background-image:url('Media/Optimized/Projects/Portal%20FX/Square%20Cover/portal%20fx%20screenshots_1.1.1.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-fate{background-image:url('Media/Optimized/Projects/Fate%20Series%20-%20Lord%20Chaldeas/Square%20Cover/Cover.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-security{background-image:url('Media/Optimized/Projects/SciFi%20Security%20Barrier/Square%20Cover/e_HighresScreenshot000002_alt2.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-ready-for-battle{background-image:url('Media/Optimized/Projects/Ready%20for%20Battle/Square%20Cover/Untitled-1.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-screen-slash{background-image:url('Media/Optimized/Projects/ScreenSlash%20FX/SciFi%20Security%20Barrier/Square%20Cover/Still%202025-02-04%20064315_1.1.1.png.webp');background-size:cover;background-position:center}
.work-page .project-cover-weapon-glitch{background-image:url('Media/Optimized/Projects/Weapon%20Glitch%20FX/Square%20Cover/Secondary%20(1).png.webp');background-size:cover;background-position:center}
.work-page .project-cover-fighter:before{background:linear-gradient(0deg,#080c12ed 0%,#080c126b 20%,transparent 56%)}
.work-page .project-name{font-size:clamp(20px,1.85vw,29px);left:15px;bottom:14px}
.work-page .project-tags{left:12px;top:12px;font-size:7px;padding:7px 8px}
.work-page .project-card>a:hover{transform:translateY(-3px)}
.work-page .project-card>a.is-intro-hover{transform:translateY(-3px)}
.work-footer{margin-top:auto;padding:20px 4.4vw;min-height:76px;display:flex;align-items:center;gap:28px;border-top:1px solid var(--line);color:#77838e}
.work-footer .footer-mark{font-size:20px}.work-footer .footer-mark b{font-size:19px}
.work-footer>span,.work-footer>a:not(.wordmark),.work-footer small{font:8px var(--mono);letter-spacing:.08em}
.work-footer>span{margin-right:auto}.work-footer>a:not(.wordmark){color:#98a8b8}.work-footer small{color:#77838e}
@media(max-width:1180px){.work-page .project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.work-nav nav{gap:38px}}
@media(max-width:760px){.work-sidebar{display:none}.work-main{margin-left:0}.work-nav{height:68px;padding:0 6vw}.work-nav nav{gap:28px}.work-nav nav a,.work-nav .availability{font-size:8px}.work-nav nav a.current:before{left:-12px}.work-page{padding:42px 6vw 38px}.work-page .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.work-page .project-name{font-size:clamp(18px,4vw,24px)}.work-heading h1{font-size:clamp(42px,9vw,65px)}.work-toolbar{gap:14px}.toolbar-label,.work-filter{font-size:8px}.work-footer{padding:17px 6vw;gap:12px;flex-wrap:wrap}.work-footer>span{font-size:7px}.work-footer small{margin-left:auto}}
@media(max-width:420px){.work-page{padding-left:5vw;padding-right:5vw}.work-page .project-grid{gap:8px}.work-page .project-name{font-size:17px;left:10px;bottom:11px}.work-heading h1{font-size:40px}.work-toolbar{column-gap:11px}.work-count{width:100%;margin:0 0 10px}}
.work-page .project-name{transition:transform .22s ease,color .22s ease}
.work-page .project-tags{top:auto;bottom:12px;left:15px;max-width:calc(100% - 30px);white-space:nowrap;overflow:hidden;text-overflow:clip;line-height:1.4;opacity:0;transform:translateY(6px);transition:opacity .22s ease,transform .22s ease}
.work-page .project-card>a:hover .project-name,.work-page .project-card>a:focus-visible .project-name{color:var(--blue);transform:translateY(-22px)}
.work-page .project-card>a:hover .project-tags,.work-page .project-card>a:focus-visible .project-tags{opacity:1;transform:translateY(0)}
.work-page .project-visual:before{z-index:1;background:linear-gradient(to top,rgba(6,10,15,.96) 0%,rgba(6,10,15,.76) 17%,rgba(6,10,15,0) 34%)}
.work-page .project-card>a:hover .project-name,.work-page .project-card>a:focus-visible .project-name{transform:translateY(-32px)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Square portfolio gallery: project names stay visible while tags appear on hover/focus. */
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.project-card>a{border:0;background:none}
.project-card>a:hover{border-color:transparent;transform:translateY(-3px)}
.project-visual{height:auto;aspect-ratio:1/1;border:1px solid #283440;background-size:cover;transition:border-color .25s,filter .25s}
.project-card>a:hover .project-visual,.project-card>a:focus-visible .project-visual{border-color:var(--blue)}
.project-visual:before{z-index:0;background:linear-gradient(0deg,#080c12ed 0%,#080c126b 20%,transparent 56%)}
.project-visual:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;mix-blend-mode:screen}
.project-name{position:absolute;z-index:2;left:20px;bottom:18px;font:600 clamp(23px,2.4vw,34px)/.95 var(--display);letter-spacing:.02em;text-transform:uppercase;color:#f3f5f7;text-shadow:0 2px 16px #000a}
.project-tags{position:absolute;z-index:2;left:18px;top:17px;font:8px var(--mono);letter-spacing:.1em;color:#fff;text-transform:uppercase;background:#080d16b8;border:1px solid #ffffff32;padding:8px 10px;opacity:0;transform:translateY(-5px);transition:opacity .22s,transform .22s}
.project-card>a:hover .project-tags,.project-card>a:focus-visible .project-tags{opacity:1;transform:translateY(0)}
.work-page .project-card>a.is-intro-hover .project-visual{border-color:var(--blue)}
.work-page .project-card>a.is-intro-hover .project-name{color:var(--blue);transform:translateY(-32px)}
.work-page .project-card>a.is-intro-hover .project-tags{opacity:1;transform:translateY(0)}
.project-card>a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.fx-impact{background:radial-gradient(ellipse at 50% 61%,#ffe6b0 0 2%,#ff9e46 4%,#ff4f15 8%,#831e16 17%,transparent 41%),radial-gradient(ellipse at 50% 98%,#39414b,transparent 56%),linear-gradient(150deg,#20334a,#101a28 52%,#080c12)}
.fx-impact:after{background:repeating-conic-gradient(from 2deg at 50% 59%,transparent 0 8deg,#ffd7a855 8.5deg 9deg,transparent 10deg 22deg)}
.fx-pulse{background:radial-gradient(circle at 50% 50%,#fffbdc 0 1.5%,#ffe791 3%,#ffb537 6%,#a553e7 11%,#291c73 25%,transparent 47%),linear-gradient(140deg,#071523,#151038 56%,#080c12)}
.fx-pulse:after{background:repeating-radial-gradient(ellipse at 50% 50%,transparent 0 28px,#c4a3ff80 29px 30px,transparent 31px 43px)}
.fx-shield{background:radial-gradient(circle at 50% 52%,#fff5d2 0 2%,#a5eeff 4%,#178ef9 8%,#132f72 23%,transparent 45%),linear-gradient(135deg,#12263c,#0a1220 66%)}
.fx-shield:after{inset:22% 20%;border:1px solid #95e9ffb5;border-radius:48%;transform:rotate(-24deg) scaleY(.75);box-shadow:inset 0 0 32px #27aaff72,0 0 24px #2c9cff80}
.fx-ember{background:radial-gradient(ellipse at 54% 65%,#fff0a0 0 2%,#ff9a36 5%,#eb421e 10%,transparent 36%),linear-gradient(120deg,#171b22,#321a15 52%,#0b1017)}
.fx-ember:after{background:linear-gradient(145deg,transparent 42%,#ffbc554d 43%,transparent 45%),linear-gradient(160deg,transparent 52%,#ff582e72 53%,transparent 56%),radial-gradient(ellipse at 58% 63%,#ffe7aa 0 1%,transparent 4%)}
.fx-ice{background:radial-gradient(ellipse at 50% 70%,#efffff 0 2%,#93f2ff 5%,#29aaff 9%,#155b9d 17%,transparent 37%),linear-gradient(180deg,#131e31,#09131f 67%,#1c3645)}
.fx-ice:after{background:linear-gradient(78deg,transparent 38%,#c8fbffbb 39%,transparent 41%),linear-gradient(102deg,transparent 47%,#9fe8ffcc 48%,transparent 50%),linear-gradient(90deg,transparent 59%,#d1ffffb8 60%,transparent 62%),linear-gradient(112deg,transparent 28%,#75d8ff72 29%,transparent 31%)}
.fx-void{background:radial-gradient(ellipse at 50% 52%,#04050b 0 12%,#141026 14%,#7848ca 19%,#0e1433 27%,transparent 46%),linear-gradient(145deg,#101a2b,#090b17 60%,#19102d)}
.fx-void:after{background:repeating-radial-gradient(ellipse at 50% 52%,transparent 0 38px,#a18cff73 39px 40px,transparent 42px 53px);transform:rotate(-18deg) scaleY(.75)}
.fx-storm{background:radial-gradient(circle at 52% 54%,#fff 0 2%,#bcf6ff 4%,#349eff 8%,transparent 25%),linear-gradient(145deg,#182b40,#080e1a 60%,#12152c)}
.fx-storm:after{background:linear-gradient(120deg,transparent 45%,#a9f7ff 46%,transparent 47%),linear-gradient(64deg,transparent 52%,#76caff 53%,transparent 54%),linear-gradient(137deg,transparent 37%,#d4fcff 38%,transparent 39%);filter:drop-shadow(0 0 6px #5bbdff)}
.fx-solar{background:radial-gradient(circle at 50% 51%,#fffde1 0 3%,#ffe77e 5%,#ff973b 10%,#dc461f 17%,#4e1830 29%,transparent 46%),linear-gradient(140deg,#152134,#10101e 62%,#251314)}
.fx-solar:after{background:repeating-radial-gradient(ellipse at 50% 51%,transparent 0 35px,#ffa65d74 36px 37px,transparent 39px 50px);transform:scaleY(.72)}
.fx-spirit{background:radial-gradient(circle at 50% 54%,#edffe5 0 2%,#a9ffcf 5%,#39cdac 10%,#265599 22%,transparent 44%),linear-gradient(145deg,#10252d,#091520 59%,#151f38)}
.fx-spirit:after{background:repeating-conic-gradient(from 12deg at 50% 54%,transparent 0 13deg,#78ffc45c 13.5deg 14deg,transparent 15deg 29deg);mask-image:radial-gradient(ellipse,#000,transparent 68%)}
@media(max-width:650px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.project-visual{height:auto;aspect-ratio:1/1}.project-name{left:12px;bottom:13px;font-size:clamp(18px,5vw,25px)}.project-tags{left:10px;top:10px;font-size:6px;padding:6px}.portfolio-note{line-height:1.7}}
@media(max-width:390px){.project-grid{gap:8px}.project-name{font-size:18px}}

/* Shared layout for individual portfolio articles. */
.article-page{min-height:70vh;padding:80px 10vw 110px}.article-back{display:inline-block;font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#aab4be;margin-bottom:35px}.article-back span{color:var(--blue);margin-right:10px}.article-layout{display:grid;grid-template-columns:1fr .86fr;gap:7vw;align-items:start}.article-art{aspect-ratio:1/1;position:relative;overflow:hidden;border:1px solid var(--line)}.article-art .project-visual{height:100%;aspect-ratio:auto;border:0}.article-copy .eyebrow{margin-bottom:20px}.article-copy h1{font:700 clamp(55px,8vw,104px)/.86 var(--display);text-transform:uppercase;margin:0 0 26px}.article-copy h1 em{display:block;font-style:normal;color:var(--blue)}.article-copy>p{font-size:14px;line-height:1.9;color:#a8b3bd}.article-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin:30px 0}.article-meta span{display:block;font:8px var(--mono);color:var(--blue);letter-spacing:.1em;margin-bottom:8px}.article-meta b{font:11px var(--mono);font-weight:400;text-transform:uppercase}.article-copy h2{font:600 26px var(--display);text-transform:uppercase;margin:32px 0 10px}.article-end{margin-top:70px;padding-top:30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.article-end p{font:10px var(--mono);color:var(--muted)}.article-end a{font:10px var(--mono);text-transform:uppercase;color:var(--blue)}
@media(max-width:700px){.article-page{padding:45px 7vw 75px}.article-layout{grid-template-columns:1fr;gap:38px}.article-art{max-width:500px}.article-copy h1{font-size:68px}.article-end{gap:20px;align-items:flex-start;flex-direction:column}}

/* Project article layout follows the wide media + technical sidebar reference. */
.article-sidebar{position:fixed;z-index:12;left:0;top:0;bottom:0;width:clamp(150px,11.3vw,190px);padding:27px 25px;background:#090d12;border-right:1px solid #2a3540;display:flex;flex-direction:column;color:#94a1ad}.side-logo{font-size:35px;padding:29px 5px 32px;border-bottom:1px solid var(--line)}.side-logo b{font-size:33px}.side-active{margin-top:42px;display:grid;grid-template-columns:1fr;gap:13px;font:11px var(--mono);text-transform:uppercase;letter-spacing:.1em}.side-active span{color:var(--blue)}.side-active b{font-weight:400;color:#e1e6eb}.side-active i{height:1px;width:100%;background:linear-gradient(90deg,var(--blue) 32%,var(--line) 32%);margin-top:12px}.side-location{margin-top:auto;font:9px/1.7 var(--mono);letter-spacing:.06em;padding-bottom:24px}.side-location small{display:block;margin-top:35px;color:#77838e;font:8px/1.8 var(--mono)}.article-main{margin-left:clamp(150px,11.3vw,190px);min-height:100vh;display:flex;flex-direction:column}.article-nav{height:86px;flex:none;padding:0 4.5vw 0 3vw;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#090d12}.article-nav nav{display:flex;align-items:center;gap:60px}.article-nav nav a,.article-nav .availability{font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#a8b2bc}.article-nav nav a.current{color:#f3f5f7;position:relative}.article-nav nav a.current:before{content:"";position:absolute;left:-18px;top:4px;width:7px;height:2px;background:var(--blue)}.article-nav .availability{margin:0}.article-nav .availability i{margin-left:8px;width:6px;height:6px}.article-content{padding:0 2.2vw;flex:1}.media-viewer{display:grid;grid-template-columns:minmax(0,1fr) minmax(235px,27%);min-height:385px;height:min(35vw,470px);border:1px solid #2c3946;border-top:0}.media-screen{position:relative;overflow:hidden;border-right:1px solid #35424e;background:#0a1018}.media-scene{position:absolute;inset:0;overflow:hidden;background-size:cover;background-position:center;transition:filter .4s}.media-scene:before{z-index:1}.media-scene .impact-frame{position:absolute;z-index:0;width:156%;max-width:none;height:auto;left:-17.5%;top:-19%;user-select:none;pointer-events:none}.media-scene[data-frame="2"]{filter:saturate(1.15) brightness(1.08)}.media-scene[data-frame="3"]{filter:hue-rotate(-12deg) brightness(1.12)}.media-scene[data-frame="4"]{filter:saturate(.85) contrast(1.1)}.media-scene[data-frame="5"]{filter:sepia(.1) saturate(1.25)}.media-scene[data-frame="6"]{filter:brightness(.88) contrast(1.12)}.scene-shade{position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(0deg,#050a10ac,transparent 14%),linear-gradient(90deg,#09111c1a,transparent 24%)}.screen-corner{position:absolute;z-index:3;right:18px;top:15px;font:8px var(--mono);letter-spacing:.1em;color:#e5edf5b0}.media-controls{position:absolute;z-index:4;left:25px;right:25px;bottom:13px;height:28px;display:flex;align-items:center;gap:14px}.media-controls button,.rail-arrows button{color:#d8e3ee;background:none;border:0;cursor:pointer}.play-preview{font-size:15px;padding:0 3px}.media-time{font:9px var(--mono);color:#d2dce5;white-space:nowrap}.progress-track{height:2px!important;flex:1;padding:0!important;background:#667582!important;position:relative}.progress-track i{position:absolute;left:0;top:0;height:2px;background:var(--blue);width:16%;transition:width .25s}.progress-track i:after{content:"";position:absolute;right:-3px;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--blue)}.media-fullscreen{color:#d2dce5;font-size:15px;cursor:pointer}.media-screen.expanded{position:fixed;z-index:30;inset:5vh 5vw 5vh calc(clamp(150px,11.3vw,190px) + 5vw);height:90vh;border:1px solid #35424e}.media-rail{display:flex;flex-direction:column;justify-content:space-between;padding:20px 18px 17px;background:#0a0f16}.thumb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.media-thumb{display:block;position:relative;padding:0;aspect-ratio:1.58;border:1px solid #34414e;background:#111923;overflow:hidden;cursor:pointer;transition:border-color .2s}.media-thumb.selected{border:1px solid var(--blue);box-shadow:0 0 14px #1685ff21}.media-thumb:focus-visible{outline:2px solid #7ebaff;outline-offset:2px}.thumb-image{position:absolute;inset:0;display:block;overflow:hidden;background-size:cover;background-position:center;filter:brightness(.76);transition:filter .2s,transform .35s}.media-thumb:hover .thumb-image,.media-thumb.selected .thumb-image{filter:brightness(1.08);transform:scale(1.04)}.thumb-image.fx-impact{background:radial-gradient(circle at 55% 50%,#fff2c0 0 3%,#ff842a 8%,#812116 18%,transparent 38%),linear-gradient(145deg,#6c7c88,#182536 62%,#080d13)}.thumb-image.fx-impact:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#141c28aa)}.thumb-image.fx-pulse{background:radial-gradient(ellipse at 50% 55%,#fff1bc 0 2%,#f99438 8%,#a82f22 20%,transparent 39%),linear-gradient(#34333d,#111723)}.thumb-image.fx-shield{background:radial-gradient(circle,#efffff,#259dfa 7%,#132959 29%,transparent 56%),linear-gradient(145deg,#17283a,#090e18)}.thumb-image.fx-ember{background:radial-gradient(ellipse at 48% 52%,#fff1bd 0 2%,#ff8931 7%,#be321b 18%,transparent 37%),linear-gradient(135deg,#35414b,#17100e)}.thumb-image.fx-ice{background:linear-gradient(110deg,transparent 42%,#bdffff 43%,transparent 46%),linear-gradient(72deg,transparent 53%,#76cfff 55%,transparent 58%),linear-gradient(#647481,#101a2b 64%)}.thumb-image.fx-void{background:radial-gradient(ellipse at center,#05050d 0 16%,#ad7dff 20%,#253778 35%,transparent 59%),linear-gradient(120deg,#203048,#090b16)}.thumb-image.fx-storm{background:linear-gradient(125deg,transparent 44%,#dcffff 45%,transparent 47%),radial-gradient(circle at 55% 52%,#edffff,#168bff 8%,transparent 30%),linear-gradient(140deg,#243b52,#090d19)}.thumb-image.fx-solar{background:radial-gradient(circle at center,#fffbd7 0 5%,#ff993e 12%,#8a291d 25%,transparent 48%),linear-gradient(130deg,#332d35,#0b111c)}.thumb-image.fx-spirit{background:radial-gradient(circle at center,#e4ffe5,#69ffca 7%,#1b6d92 19%,transparent 42%),linear-gradient(130deg,#253d45,#081018)}.thumb-image[class*="fx-"]:nth-child(odd){background-position:46% 50%}.rail-bottom{display:flex;align-items:center;justify-content:space-between;font:9px var(--mono);letter-spacing:.08em;color:#91a0ae}.frame-current{color:var(--blue);font-weight:400}.rail-arrows{display:flex;gap:13px}.rail-arrows button{font-size:22px;font-weight:300;color:#8eabc5;line-height:1}.article-details{min-height:320px;padding:36px 2vw 29px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(210px,.55fr) minmax(220px,.62fr);gap:3vw;align-items:center;border-top:1px solid #32404d;border-bottom:1px solid #27333f;position:relative}.details-primary .eyebrow{color:#5eaaff;margin-bottom:15px}.details-primary h1{font:800 clamp(55px,7.1vw,102px)/.83 var(--display);letter-spacing:-.02em;text-transform:uppercase;margin:0;color:#e4e9ee}.article-tags{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0 18px}.article-tags span{border:1px solid var(--blue);padding:5px 12px;color:#60b5ff;font:8px var(--mono);letter-spacing:.08em;text-transform:uppercase}.article-intro{max-width:610px;font:12px/1.75 var(--mono);color:#9eacb9;margin:0}.details-facts{height:100%;border-left:1px solid #34414d;border-right:1px solid #34414d;padding:12px 24px;display:flex;flex-direction:column;justify-content:center;gap:18px}.details-facts div span{display:block;font:8px var(--mono);letter-spacing:.09em;color:#419bf4;margin-bottom:5px}.details-facts div b{font:10px var(--mono);font-weight:400;color:#bac4cd}.view-details{margin-top:2px;display:flex;justify-content:space-between;border:1px solid #394a5a;padding:11px 13px;color:#aebbc7;font:8px var(--mono);letter-spacing:.1em}.view-details span{color:var(--blue);font-size:14px}.article-next{height:100%;min-height:175px;position:relative;display:flex;align-items:center;justify-content:space-between;padding:22px;background:linear-gradient(140deg,#123963d9,#0d1b2cbf),radial-gradient(ellipse at 76% 78%,#398dce,#111a25 70%);border:1px solid #3179b8;color:#d6e5f2;overflow:hidden}.article-next:after{content:"";position:absolute;inset:0;background-image:linear-gradient(155deg,transparent 50%,#9fd4ff19 51%,transparent 52%),linear-gradient(90deg,transparent,#0b182999);pointer-events:none}.article-next span{max-width:170px;font:10px/1.8 var(--mono);letter-spacing:.05em;position:relative;z-index:1;transition:transform .2s ease;transform-origin:left center}.article-next:hover span,.article-next:focus-visible span{transform:scale(1.12)}.article-next b{position:relative;z-index:1;font-size:24px;color:#65b4ff}.article-breakdown{padding:55px 2vw 65px;max-width:1000px}.article-breakdown .eyebrow{color:var(--blue)}.article-breakdown h2{font:700 clamp(40px,5vw,65px)/.9 var(--display);margin:0 0 18px}.article-breakdown h2 em{font-style:normal;color:var(--blue)}.article-breakdown>p:last-child{max-width:780px;font-size:13px;line-height:1.9;color:#9ba8b5}.article-footer{min-height:48px;border-top:1px solid var(--line);padding:13px 2.2vw;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#818d98}.article-footer a,.article-footer>span{font:8px var(--mono);letter-spacing:.08em}.article-footer a:first-child{color:#aeb8c1}.article-footer a:last-child{color:#8dbbf1}
@media(max-width:1050px){.article-sidebar{width:130px;padding:20px 18px}.article-main{margin-left:130px}.media-viewer{grid-template-columns:minmax(0,1fr) 230px;height:420px}.media-rail{padding:15px 12px}.article-details{grid-template-columns:1fr .55fr;gap:25px}.article-next{grid-column:1/-1;min-height:100px}.details-facts{border-right:0}.article-next span{max-width:none}}
@media(max-width:700px){.article-sidebar{display:none}.article-main{margin-left:0}.article-nav{height:66px;padding:0 6vw}.article-nav nav{gap:24px}.article-nav nav a,.article-nav .availability{font-size:8px}.article-nav nav a.current:before{left:-10px}.article-content{padding:0 4vw}.media-viewer{height:auto;min-height:0;grid-template-columns:1fr;border-top:1px solid #2c3946}.media-screen{aspect-ratio:1.75;border-right:0;border-bottom:1px solid #35424e}.media-scene .impact-frame{width:156%;left:-17.5%;top:-19%}.media-rail{padding:12px}.thumb-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.media-thumb{aspect-ratio:1.35}.rail-bottom{padding-top:12px}.article-details{padding:31px 1vw;grid-template-columns:1fr;gap:25px}.details-primary h1{font-size:clamp(58px,15vw,90px)}.details-facts{border:0;border-top:1px solid #34414d;padding:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:17px}.view-details{grid-column:1/-1}.article-next{grid-column:auto;min-height:100px}.article-breakdown{padding:42px 1vw}.article-footer{padding:14px 4vw;flex-wrap:wrap}.article-footer>span{display:none}}
@media(max-width:420px){.article-nav nav{gap:18px}.article-nav .availability{font-size:7px}.thumb-grid{gap:5px}.media-thumb{aspect-ratio:1.1}.media-controls{left:12px;right:12px;gap:8px}.media-time{font-size:8px}}

/* Native video playback uses the existing custom timeline and thumbnail rail. */
.project-video{display:none;position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;background:#05080c}
.media-screen.has-video .project-video{display:block}
.media-screen.has-video .media-scene,.media-screen.has-video .video-placeholder{display:none}
.video-placeholder{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:8px;padding:14px 18px;border:1px solid #ffffff37;background:#070d16b8;text-align:center;pointer-events:none}
.video-placeholder span{font:8px var(--mono);letter-spacing:.13em;color:var(--blue)}
.video-placeholder b{font:10px var(--mono);letter-spacing:.08em;color:#cad5df;font-weight:400}
.play-preview:disabled,.progress-track:disabled{opacity:.55;cursor:default}
.article-description{max-width:1020px;padding:44px 2vw 64px;color:#b3bec8;font-size:14px;line-height:1.95}
.article-description p{margin:0 0 20px}
.article-description .article-copyright-notice{margin-top:28px;padding-top:16px;border-top:1px solid #2c3946;color:#758390;font:9px/1.8 var(--mono)}
.article-description img,.article-description video{display:block;width:100%;height:auto;margin:30px 0;border:1px solid #2c3946}
.article-description video{max-height:680px;background:#05080c}
@media(max-width:700px){.article-description{padding:36px 1vw 48px;font-size:13px}}
.thumb-image{background-image:var(--thumb-source,none);background-size:var(--thumb-size,cover);background-position:var(--thumb-x,50%) var(--thumb-y,50%)}
.real-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(.76);transition:filter .2s,transform .35s}
.media-thumb:hover .real-thumb,.media-thumb.selected .real-thumb{filter:brightness(1.08);transform:scale(1.04)}
.credits-section{padding:22px 2vw 60px}
.credits-section h2{font:600 24px var(--display);letter-spacing:.05em;color:#e4e9ee;margin:0 0 15px;text-transform:uppercase}
.credits-section table{width:100%;border-collapse:collapse;table-layout:fixed}
.credits-section th,.credits-section td{text-align:left;padding:13px 15px;border-top:1px solid var(--line);font:10px var(--mono);overflow-wrap:anywhere}
.credits-section th{color:var(--blue);font-weight:400;letter-spacing:.08em;text-transform:uppercase}
.credits-section td{color:#aeb9c3}
.credits-section td a{color:#76baff;text-decoration:none}
.credits-section td a:hover{text-decoration:underline}
.credits-section .credits-empty{text-align:center;color:#72808c;padding:19px}
@media(max-width:700px){.credits-section{padding:18px 1vw 42px}.credits-section th,.credits-section td{padding:11px 7px;font-size:8px}}
.article-content{padding-top:clamp(14px,1.5vw,20px)}
@media(max-width:700px){.article-content{padding-top:12px}}
.media-viewer{border-top:1px solid #2c3946}
.media-viewer-no-rail{grid-template-columns:minmax(0,1fr)}.media-viewer-no-rail .media-rail{display:none}
.article-main{background-color:var(--bg);background-image:linear-gradient(rgba(9,13,18,.965),rgba(9,13,18,.965)),url('Media/Optimized/Patterns/Topographic_map_tex5.png.webp');background-repeat:repeat;background-size:auto,320px 320px}
.article-next:before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background-image:url('Media/Optimized/Patterns/Topographic_map_tex5.png.webp');background-repeat:repeat;background-size:220px 220px;mix-blend-mode:screen;opacity:0;transition:opacity .3s ease}
.article-next:hover:before,.article-next:focus-visible:before{opacity:.25}
.article-next.work-gallery-gate:after{background-image:none}
.work-gallery-gate:before{transition:clip-path 1.15s cubic-bezier(.16,1,.3,1),opacity .32s ease}
@media(prefers-reduced-motion:reduce){.work-gallery-gate:before{transition:none!important}}
.media-viewer{height:auto;min-height:0}
.media-screen{aspect-ratio:16/9}
video.project-video{object-fit:cover}
.article-details{background:rgba(9,13,18,.96)}
.media-rail{background-color:#0b1119;background-image:linear-gradient(rgba(9,13,18,.94),rgba(9,13,18,.94)),url('Media/Optimized/Patterns/Topographic_map_tex5.png.webp');background-repeat:repeat;background-size:auto,180px 180px}
.work-main{margin-left:0}
.work-nav{padding-left:4.4vw}
.work-nav-home{font-size:25px;line-height:.8;letter-spacing:-1px}
.work-nav-home b{font-size:23px}
@media(max-width:760px){.work-nav{padding-left:6vw}}
.work-page{background-color:var(--bg);background-image:repeating-linear-gradient(135deg,rgba(110,155,200,.045) 0 1px,transparent 1px 6px)}
.work-page .project-grid{background-color:rgba(9,13,18,.6)}
html{scrollbar-color:var(--blue) #0b1119}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#0b1119}
::-webkit-scrollbar-thumb{background:var(--blue);border:2px solid #0b1119;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#62a9ff}
.article-software{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;padding-top:16px}
.software-heading{grid-column:1/-1;color:#419bf4;font:8px var(--mono);letter-spacing:.09em;text-transform:uppercase;margin-bottom:2px}
.article-software a{display:flex;align-items:center;gap:5px;min-width:0;padding:4px 6px;border:1px solid #314256;border-radius:6px;background:#0b121b;color:#c8d3dd;transition:border-color .2s,background .2s,box-shadow .2s,transform .2s}
.article-software a:hover,.article-software a:focus-visible{border-color:var(--blue);background:#101b29;box-shadow:0 0 16px rgba(52,140,244,.28),inset 0 0 12px rgba(52,140,244,.08);transform:translateY(-2px)}
.software-icon{flex:0 0 16px;width:16px;height:16px;display:block;object-fit:contain;border-radius:2px}
.software-icon-fallback{display:grid;place-items:center;background:#282052;color:#d8c9ff;font:700 7px/1 var(--mono);letter-spacing:-.06em}
.thumb-image.fx-lightsaber{background:radial-gradient(ellipse at 52% 51%,#eaffff 0 2%,#50f4ff 4%,#12b8e9 7%,transparent 15%),linear-gradient(115deg,transparent 48%,#53f4ff 49%,#dcffff 50%,#41dcff 51%,transparent 53%),linear-gradient(145deg,#172a40,#07101d 65%,#03070d)}
.software-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:7.5px/1.2 var(--mono);color:inherit}
.side-techniques{margin-top:30px;display:grid;gap:14px;text-transform:uppercase}
.side-techniques-heading{color:#e1e6eb;font:10px/1.5 var(--mono);letter-spacing:.1em}
.side-techniques-list{display:grid;gap:13px;margin:0;padding:0;list-style:none}
.side-techniques-list li{position:relative;padding-left:15px;color:#9caab7;font:8px/1.5 var(--mono);letter-spacing:.04em;overflow-wrap:anywhere}
.side-techniques-list li:before{content:"//";position:absolute;left:0;top:0;color:var(--blue)}
@media(max-width:700px){.details-primary>.side-techniques{margin-top:24px;padding-top:18px;border-top:1px solid #2a3540}.details-primary>.side-techniques .side-techniques-heading{color:var(--blue)}.details-primary>.side-techniques .side-techniques-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}}
@media(max-width:700px){.article-software{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.article-software a{padding:4px 6px}}
.volume-toggle{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;padding:0;border:0;background:none;color:#d2dce5;cursor:pointer}
.volume-toggle svg{display:block;width:16px;height:16px}
.volume-toggle path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.volume-toggle:hover,.volume-toggle:focus-visible{color:var(--blue)}
.volume-toggle.is-muted .speaker-wave{opacity:.2}
.volume-slider{appearance:none;-webkit-appearance:none;flex:0 0 66px;width:66px;height:12px;margin:0;background:transparent;cursor:pointer}
.volume-slider::-webkit-slider-runnable-track{height:2px;border:0;background:linear-gradient(to right,var(--blue) 0 var(--volume-level,100%),#667582 var(--volume-level,100%) 100%)}
.volume-slider::-moz-range-track{height:2px;border:0;background:#667582}
.volume-slider::-moz-range-progress{height:2px;background:var(--blue)}
.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-5px;border:0;border-radius:50%;background:var(--blue)}
.volume-slider::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--blue)}
.volume-slider:focus-visible{outline:1px solid #7ebaff;outline-offset:4px}
@media(max-width:700px){.volume-slider{flex-basis:48px;width:48px}.media-controls{left:12px;right:12px;gap:8px}}
.media-controls{transition:opacity .25s ease,visibility 0s linear 0s}
.media-screen.controls-hidden .media-controls{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility 0s linear .25s}
.music-control{display:grid;grid-template-columns:22px 68px;grid-template-rows:8px 14px 8px;column-gap:6px;row-gap:1px;align-items:center;justify-items:start;flex:none;margin-left:0}
.music-caption{grid-column:1/-1;grid-row:1;font:6px var(--mono);letter-spacing:.07em;color:#81909d;line-height:1;white-space:nowrap}
.music-percent{grid-column:2;grid-row:3;justify-self:end;font:6px var(--mono);color:#aebbc7;line-height:1;white-space:nowrap}
.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:clamp(12px,1.7vw,24px);flex:none;margin-left:auto;white-space:nowrap}
.header-tools .music-control{margin-left:0}
.header-tools .availability{margin-left:0;white-space:nowrap}
.music-toggle{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;background:none;color:#c5d3df;cursor:pointer}
.music-toggle{grid-column:1;grid-row:2}
.music-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.music-toggle{color:var(--blue)}
.music-toggle:hover,.music-toggle:focus-visible{color:#8ec9ff}
.music-toggle.is-muted{color:#7e8994}
.music-mute-slash{opacity:0}
.music-toggle.is-muted .music-mute-slash{opacity:1}
.music-slider{appearance:none;-webkit-appearance:none;flex:0 0 68px;width:68px;height:12px;margin:0;background:transparent;cursor:pointer}
.music-slider{grid-column:2;grid-row:2}
.music-slider::-webkit-slider-runnable-track{height:2px;border:0;background:linear-gradient(to right,var(--blue) 0 var(--music-level,100%),#667582 var(--music-level,100%) 100%)}
.music-slider::-moz-range-track{height:2px;border:0;background:#667582}
.music-slider::-moz-range-progress{height:2px;background:var(--blue)}
.music-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-5px;border:0;border-radius:50%;background:var(--blue)}
.music-slider::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--blue)}
.music-slider:focus-visible{outline:1px solid #7ebaff;outline-offset:4px}
.availability{margin-left:0}
@media(max-width:760px){.music-control{grid-template-columns:22px 46px}.music-slider{flex-basis:46px;width:46px}.topbar{gap:18px}.work-nav{gap:18px}.work-nav nav{gap:24px}}
@media(max-width:480px){.header-tools{gap:8px}.music-control{grid-template-columns:22px 36px}.music-slider{flex-basis:36px;width:36px}.music-caption,.music-percent{font-size:5px}.header-tools .availability{font-size:7px}}
.publication-date{display:flex!important;align-items:baseline;gap:7px}.publication-date small{font:8px var(--mono);color:#bac4cd}.publication-date strong{display:flex;align-items:baseline;gap:2px;font:600 17px var(--display);letter-spacing:.02em;color:#e4e9ee}.publication-date strong i{font:700 22px var(--display);font-style:normal;color:var(--blue)}
.topo-pulse-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none;opacity:.42;mix-blend-mode:screen}.hero-art,.hero-index,.scroll-note{z-index:2}
.work-nav{justify-content:flex-start;gap:clamp(28px,5vw,64px)}.work-nav nav{flex:1 1 auto;min-width:0;gap:clamp(24px,3.8vw,48px)}.work-nav .header-tools{margin-left:auto}
@media(max-width:760px){.work-nav{gap:18px}.work-nav nav{gap:24px}}
@media(max-width:480px){.work-nav{gap:12px}.work-nav nav{gap:10px}.work-nav nav a{font-size:7px}}
.topbar nav a,.work-nav nav a,.article-nav nav a,.topbar .availability,.work-nav .availability,.article-nav .availability{position:relative;display:inline-block;transform-origin:center;transition:color .2s ease,transform .2s ease}
.topbar nav a::after,.work-nav nav a::after,.article-nav nav a::after,.topbar .availability::after,.work-nav .availability::after,.article-nav .availability::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left center;transition:transform .22s ease}
.topbar nav a:hover,.topbar nav a:focus-visible,.work-nav nav a:hover,.work-nav nav a:focus-visible,.article-nav nav a:hover,.article-nav nav a:focus-visible,.topbar .availability:hover,.topbar .availability:focus-visible,.work-nav .availability:hover,.work-nav .availability:focus-visible,.article-nav .availability:hover,.article-nav .availability:focus-visible{color:#dcecff;transform:scale(1.05)}
.topbar nav a:hover::after,.topbar nav a:focus-visible::after,.work-nav nav a:hover::after,.work-nav nav a:focus-visible::after,.article-nav nav a:hover::after,.article-nav nav a:focus-visible::after,.topbar .availability:hover::after,.topbar .availability:focus-visible::after,.work-nav .availability:hover::after,.work-nav .availability:focus-visible::after,.article-nav .availability:hover::after,.article-nav .availability:focus-visible::after{transform:scaleX(1)}
.topbar .wordmark,.work-nav-home{transition:transform .2s ease;transform-origin:left center}.topbar .wordmark:hover,.work-nav-home:hover{transform:scale(1.05)}
@media(prefers-reduced-motion:reduce){.topbar nav a,.work-nav nav a,.article-nav nav a,.topbar .availability,.work-nav .availability,.article-nav .availability,.topbar .wordmark,.work-nav-home,.topbar nav a::after,.work-nav nav a::after,.article-nav nav a::after,.topbar .availability::after,.work-nav .availability::after,.article-nav .availability::after{transition:none}}
.topbar,.work-nav,.article-nav{isolation:isolate}
.topo-header-pulse{z-index:0;opacity:.36;mix-blend-mode:screen}
.topbar>:not(.topo-header-pulse),.work-nav>:not(.topo-header-pulse),.article-nav>:not(.topo-header-pulse){position:relative;z-index:1}
.project-hud{position:absolute;z-index:3;inset:0;opacity:0;color:#d6e8f8;font:7px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;transition:opacity .24s ease}
.cover-gray-overlay,.cover-color-sweep{position:absolute;inset:0;z-index:1;visibility:hidden;opacity:0;pointer-events:none}
.cover-gray-overlay{background:inherit;filter:grayscale(1)}
.cover-color-sweep{inset:auto 0 0;height:33.333%;background:#348cf4d9;box-shadow:0 0 18px #348cf4aa,inset 0 1px #b9e4ff;z-index:1}
.project-card>a:hover .cover-gray-overlay,.project-card>a:focus-visible .cover-gray-overlay{visibility:visible;opacity:1;animation:cover-reveal-color .45s cubic-bezier(.165,.84,.44,1) both}
.project-card>a:hover .cover-color-sweep,.project-card>a:focus-visible .cover-color-sweep{visibility:visible;opacity:1;animation:cover-sweep-up .45s cubic-bezier(.165,.84,.44,1) both}
.project-card>a.is-intro-hover .cover-gray-overlay{visibility:visible;opacity:1;animation:cover-reveal-color .45s cubic-bezier(.165,.84,.44,1) both}
.project-card>a.is-intro-hover .cover-color-sweep{visibility:visible;opacity:1;animation:cover-sweep-up .45s cubic-bezier(.165,.84,.44,1) both}
@keyframes cover-reveal-color{from{clip-path:inset(0)}to{clip-path:inset(0 0 100% 0)}}
@keyframes cover-sweep-up{0%{transform:translateY(0);opacity:0}8%{opacity:1}82%{opacity:.92}100%{transform:translateY(-300%);opacity:0}}
.project-card>a:hover .project-hud,.project-card>a:focus-visible .project-hud{opacity:1}
.project-card>a.is-intro-hover .project-hud{opacity:1}
.hud-code,.hud-target,.hud-scale,.hud-star{opacity:0}
.project-card>a:hover .hud-code,.project-card>a:focus-visible .hud-code{animation:hud-signal .4s steps(1,end) both}
.project-card>a:hover .hud-target,.project-card>a:focus-visible .hud-target{animation:hud-signal-b .46s steps(1,end) .035s both}
.project-card>a:hover .hud-scale,.project-card>a:focus-visible .hud-scale{animation:hud-signal-c .36s steps(1,end) .08s both}
.project-card>a:hover .hud-star,.project-card>a:focus-visible .hud-star{animation:hud-signal-b .42s steps(1,end) .12s both}
.project-card>a.is-intro-hover .hud-code{animation:hud-signal .4s steps(1,end) both}
.project-card>a.is-intro-hover .hud-target{animation:hud-signal-b .46s steps(1,end) .035s both}
.project-card>a.is-intro-hover .hud-scale{animation:hud-signal-c .36s steps(1,end) .08s both}
.project-card>a.is-intro-hover .hud-star{animation:hud-signal-b .42s steps(1,end) .12s both}
.hud-code{position:absolute;top:10px;right:10px;display:grid;gap:3px;min-width:78px;padding:6px 8px;border:1px solid #348cf488;background:transparent;text-align:right}
.hud-code b,.hud-scale b{color:#69b7ff;font-weight:400}.hud-code i,.hud-scale i{font-style:normal;color:#69b7ff}
.hud-target{position:absolute;top:38%;left:11px;display:grid;justify-items:start;gap:5px;padding:5px 7px;border:1px solid #348cf488;background:transparent}
.hud-target b{font:18px/1 var(--mono);font-weight:400;color:var(--blue)}.hud-target i{font-size:6px;font-style:normal;color:#69b7ff}
.hud-scale{position:absolute;top:42%;right:10px;display:grid;justify-items:center;gap:4px;padding:6px 5px;border:1px solid #348cf488;background:transparent}
.hud-star{position:absolute;right:25%;bottom:29%;display:grid;place-items:center;width:23px;height:23px;border:1px solid #348cf488;background:transparent;color:var(--blue);font-size:15px;line-height:1}
.project-card:nth-child(3n + 2) .hud-target{top:23%;left:auto;right:12px}.project-card:nth-child(3n + 2) .hud-scale{top:48%;right:auto;left:12px}.project-card:nth-child(3n + 2) .hud-star{right:42%;bottom:37%}
.project-card:nth-child(3n) .hud-target{top:53%;left:12px}.project-card:nth-child(3n) .hud-scale{top:28%;right:12px}.project-card:nth-child(3n) .hud-star{right:30%;bottom:38%}
.hud-code,.hud-target,.hud-scale,.hud-star{border:0;box-shadow:none}
@keyframes hud-signal{0%,12%,34%,56%,78%,100%{opacity:0}4%,26%,48%,70%{opacity:1}8%,30%,52%,74%{opacity:.22}}
@keyframes hud-signal-b{0%,9%,28%,45%,66%,83%,100%{opacity:0}4%,22%,40%,60%,78%{opacity:1}7%,25%,43%,63%,81%{opacity:.2}}
@keyframes hud-signal-c{0%,15%,29%,52%,68%,100%{opacity:0}7%,24%,45%,62%{opacity:1}11%,27%,49%,66%{opacity:.28}}
@media(prefers-reduced-motion:reduce){.project-hud{transition:none}.project-card>a:hover .project-hud,.project-card>a:focus-visible .project-hud{opacity:1}.project-card>a:hover .hud-code,.project-card>a:hover .hud-target,.project-card>a:hover .hud-scale,.project-card>a:hover .hud-star,.project-card>a:focus-visible .hud-code,.project-card>a:focus-visible .hud-target,.project-card>a:focus-visible .hud-scale,.project-card>a:focus-visible .hud-star{animation:none;opacity:1}.cover-gray-overlay,.cover-color-sweep{display:none!important}}

.side-active{gap:13px}.side-section-controls{display:flex;align-items:center;justify-content:space-between;min-height:18px}.side-section-controls .side-section-number{margin-right:auto}.side-section-controls button{appearance:none;border:0;padding:0 2px;background:none;color:var(--blue);font:20px/1 var(--mono);cursor:pointer;transition:color .2s,opacity .2s}.side-section-controls button:disabled{color:#68737d;cursor:default}.side-section-controls button:not(:disabled):hover{color:#a5d4ff}.side-section-controls button:focus-visible{outline:1px solid var(--blue);outline-offset:3px}.side-active>i{position:relative;background:var(--line)}.side-active>i:before{content:'';position:absolute;left:calc(var(--section-index,0)*25%);top:0;width:25%;height:1px;background:var(--blue);transition:left .3s ease}.media-viewer,.article-details,.article-description,.credits-section{scroll-margin-top:18px}

.side-section-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.side-section-controls .side-section-prev{justify-self:start}.side-section-controls .side-section-number{grid-column:2;margin:0;text-align:center}.side-section-controls .side-section-next{grid-column:3;justify-self:end}.side-active>.side-section-label{display:block;white-space:nowrap;max-width:100%;font-size:clamp(6px,.66vw,8px);line-height:1.25;letter-spacing:.035em}.side-active>i{margin-top:12px;flex:none}

.side-index-heading{display:block;margin-top:32px;color:#7f8d99;font:9px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}.article-sidebar .side-active{margin-top:15px}.side-active>.side-section-label{font-size:clamp(8px,.8vw,10px);letter-spacing:.035em;line-height:1.25}.side-section-controls{min-height:20px}.side-section-controls button{font-size:22px}

.article-reveal{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition-delay:var(--article-reveal-delay,0s)}.article-reveal.is-revealed{opacity:1;transform:translateY(0)}.media-viewer.article-reveal,.article-details.article-reveal{clip-path:inset(0 100% 0 0);transition:opacity .72s cubic-bezier(.16,1,.3,1),transform .72s cubic-bezier(.16,1,.3,1),clip-path .88s cubic-bezier(.16,1,.3,1);position:relative}.media-viewer.article-reveal.is-revealed,.article-details.article-reveal.is-revealed{clip-path:inset(0)}.article-reveal-2{--article-reveal-delay:.08s}.article-reveal-3{--article-reveal-delay:.04s}.article-reveal-4{--article-reveal-delay:.08s}.media-viewer.article-reveal:after{content:'';position:absolute;z-index:6;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 40%,#b8e7ff24 50%,transparent 60%);transform:translateX(-110%)}.media-viewer.article-reveal.is-revealed:after{animation:article-reveal-scan .9s cubic-bezier(.2,.65,.3,1) .12s both}@keyframes article-reveal-scan{to{transform:translateX(110%)}}@media(prefers-reduced-motion:reduce){.article-reveal,.media-viewer.article-reveal,.article-details.article-reveal{opacity:1;transform:none;clip-path:none;transition:none}.media-viewer.article-reveal:after{display:none}}

.work-page .project-cover-galaxy-sword{background-image:url('Media/Optimized/Projects/Galaxy%20Sword%20FX/Square%20Cover/12.png.webp');background-size:cover;background-position:center}

/* Staggered Work-page arrival sequence */
.work-load-sequence .work-heading>.page-copyright,
.work-load-sequence .work-heading>.eyebrow,
.work-load-sequence .work-heading>h1,
.work-load-sequence .work-heading>.portfolio-note,
.work-load-sequence>.work-main main>.work.section>.work-toolbar .work-filter-group{
  animation:work-group-arrive .42s cubic-bezier(.16,1,.3,1) both;
}
.work-load-sequence .work-heading>.page-copyright{animation-delay:0s}
.work-load-sequence .work-heading>.eyebrow{animation-delay:.06s}
.work-load-sequence .work-heading>h1{animation-delay:.12s}
.work-load-sequence .work-heading>.portfolio-note{animation:none}
.work-load-sequence .portfolio-note-mark{display:inline-block;animation:work-note-spin .34s cubic-bezier(.16,1,.3,1) .2s both}
.work-load-sequence .portfolio-note-copy{display:inline-block;clip-path:inset(0 100% 0 0);animation:work-note-swipe .36s cubic-bezier(.16,1,.3,1) .29s both}
.work-load-sequence .filter-by-heading{animation:work-title-scan .38s cubic-bezier(.16,1,.3,1) 0s both}
.work-load-sequence .work-toolbar .work-filter-group:nth-child(1){animation-delay:.52s}
.work-load-sequence .work-toolbar .work-filter-group:nth-child(2){animation-delay:.64s}
.work-load-sequence .work-gallery-gate{animation:work-gate-scan .46s cubic-bezier(.16,1,.3,1) .12s both}
@keyframes work-group-arrive{from{opacity:0;transform:translateY(13px);filter:brightness(.55)}to{opacity:1;transform:translateY(0);filter:brightness(1)}}
@keyframes work-note-spin{from{opacity:0;transform:rotate(-180deg) scale(.45)}to{opacity:1;transform:rotate(0) scale(1)}}
@keyframes work-note-swipe{from{clip-path:inset(0 100% 0 0);transform:translateX(-7px)}to{clip-path:inset(0);transform:translateX(0)}}
@keyframes work-title-scan{from{opacity:0;transform:translateY(9px);clip-path:inset(0 100% 0 0);text-shadow:0 0 14px #348cf4}to{opacity:1;transform:translateY(0);clip-path:inset(0);text-shadow:0 0 0 transparent}}
@keyframes work-gate-scan{0%{opacity:.62;transform:translateY(9px);clip-path:inset(0 100% 0 0);box-shadow:inset 0 0 0 1px #69b7ff}55%{opacity:1;box-shadow:inset 0 0 20px #348cf422}100%{opacity:1;transform:translateY(0);clip-path:inset(0);box-shadow:none}}
@media(prefers-reduced-motion:reduce){.work-load-sequence .work-heading>*,.work-load-sequence .filter-by-heading,.work-load-sequence .work-toolbar .work-filter-group,.work-load-sequence .work-gallery-gate,.work-load-sequence .portfolio-note-mark,.work-load-sequence .portfolio-note-copy{animation:none;opacity:1;transform:none;clip-path:none;filter:none;text-shadow:none;box-shadow:none}}

.filter-by-heading{margin:14px 0 8px;font:8px var(--mono);letter-spacing:.1em;color:#778491;text-transform:uppercase}.work-toolbar{min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:1px;padding:4px 0 7px}.work-filter-group{display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;column-gap:16px;min-width:0}.filter-by-heading,.work-filter-group>.toolbar-label{font:8px var(--mono);letter-spacing:.1em;color:#778491;text-transform:uppercase}.work-filter-options{display:flex;align-items:center;gap:clamp(12px,1.7vw,22px);flex-wrap:wrap;min-width:0}.work-filter{padding:8px 0}.work-filter-group>.toolbar-label{white-space:nowrap}@media(max-width:760px){.filter-by-heading{margin-top:12px}.work-filter-group{grid-template-columns:78px minmax(0,1fr);column-gap:10px}.work-filter-options{gap:12px}.work-filter{font-size:7px;padding:7px 0}}@media(max-width:420px){.work-filter-group{grid-template-columns:1fr;gap:0}.work-filter-options{column-gap:11px;row-gap:2px}.work-filter-group>.toolbar-label{margin-top:6px}.filter-by-heading{margin-bottom:6px}}

/* Keep every About tile visible on compact and unusual viewport shapes. */
body.home-route .home-about-panel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;align-content:start;gap:clamp(6px,1vw,12px);overflow:visible;scrollbar-width:none}
body.home-route .home-about-panel::-webkit-scrollbar{display:none}
body.home-route .home-about-photo,body.home-route .home-about-card{width:min(100%,24vh);max-width:220px;flex:none;justify-self:center;margin-inline:auto}
@media(max-width:760px){
  body.home-route .home-main{grid-template-rows:minmax(270px,1fr) 38px auto;overflow-x:hidden;overflow-y:auto}
  body.home-route .home-projects{grid-template-rows:15px auto}
  /* Size rows from their content instead of percentage-width square tiles. */
  body.home-route .home-about-panel{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(180px,auto);align-items:stretch;gap:8px}
  body.home-route .home-about-photo,body.home-route .home-about-card{width:100%;max-width:none;min-width:0;min-height:180px;height:auto;aspect-ratio:auto;align-self:stretch;margin:0}
  body.home-route .home-about-photo img{position:absolute;inset:0}
  body.home-route .home-about-card{padding:16px 12px 28px}
  body.home-route .home-about-card h2{font-size:22px;line-height:1;margin:7px 0;overflow-wrap:anywhere}
  body.home-route .home-about-card p{font-size:9px;line-height:1.4;margin-top:8px}
  body.home-route .home-about-index,body.home-route .home-about-location{font-size:7px}
  body.home-route .home-about-stats>div{flex-wrap:wrap;gap:8px}
  body.home-route .home-about-stats span{font-size:6px;line-height:1.5}
  body.home-route .home-about-stats strong{font-size:24px;line-height:1}
}
@media(max-width:500px){
  body.home-route .home-about-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.home-route .home-about-location{display:block}
  body.home-route .home-about-hover-hint{font-size:6px;left:12px;bottom:9px}
}
@media(max-width:340px){body.home-route .home-about-panel{grid-template-columns:minmax(0,1fr)}}
/* Keep the homepage feature image in the layout when the shared mobile hero stacks. */
@media(max-width:650px){body.home-route .home-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center}body.home-route .home-hero .hero-art{height:auto;max-height:36vh;min-height:150px;aspect-ratio:.82;align-self:center}}
@media(max-width:500px){body.home-route .home-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-left:4vw;padding-right:4vw}body.home-route .home-hero .hero-art{aspect-ratio:.76;min-height:135px}}
.media-viewer.article-reveal{overflow:hidden}
@media(min-width:761px){body.home-route .home-main{grid-template-rows:minmax(0,1fr) 48px minmax(calc(min(24vh,220px) + 46px),28%)}}
/* Let the article footage use the full content width on portrait and compact screens. */
@media(max-width:850px){
  .media-viewer{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}
  .media-screen{aspect-ratio:16/9;border-right:0;border-bottom:1px solid #35424e}
  .media-rail{gap:12px;padding:12px}
  .thumb-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
  .media-thumb{aspect-ratio:1.35}
  .rail-bottom{padding-top:0}
}
@media(max-width:500px){
  .thumb-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .media-thumb{aspect-ratio:1.5}
}

/* Let the homepage grow when its content cannot fit in a shallow viewport. */
html:has(body.home-route){height:auto;min-height:100%;overflow-x:clip;overflow-y:auto}
body.home-route{height:auto;min-height:100vh;min-height:100dvh;overflow:visible;--home-gutter:max(5.8vw,calc((100% - 1240px)/2))}
body.home-route .home-main{flex:1 0 auto;overflow:visible}
body.home-route .home-hero .hero-copy{top:0;min-width:0}

@media(min-width:761px){
  body.home-route>.home-footer{padding-inline:var(--home-gutter)}
  body.home-route .home-main{grid-template-rows:minmax(min-content,1fr) 48px auto}
  body.home-route .home-hero{min-height:clamp(380px,50dvh,620px);padding:clamp(24px,3.5dvh,40px) var(--home-gutter);gap:clamp(24px,3vw,48px)}
  body.home-route .home-hero h1{font-size:clamp(42px,min(6.1vw,8.6dvh),80px)}
  body.home-route .home-hero .hero-copy .intro{margin-block:18px;line-height:1.65}
  body.home-route .home-projects{padding:12px var(--home-gutter) 20px;grid-template-rows:18px auto;gap:10px}
  body.home-route .home-about-panel{align-items:stretch;gap:12px}
  body.home-route .home-about-photo,
  body.home-route .home-about-card{width:100%;max-width:none;min-width:0;min-height:clamp(172px,22dvh,210px);height:auto;aspect-ratio:auto;align-self:stretch;margin:0}
  body.home-route .home-about-photo img{position:absolute;inset:0}
  body.home-route .home-about-card{padding:20px 14px 30px}
  body.home-route .home-about-card h2{font-size:clamp(20px,2vw,27px);line-height:1}
  body.home-route .home-about-card p{font-size:9px;line-height:1.5}
  body.home-route .home-about-index,
  body.home-route .home-about-location{font-size:7px}
  body.home-route .home-about-stats>div{flex-wrap:wrap;gap:6px 10px}
  body.home-route .home-about-stats span{font-size:6px;line-height:1.5}
  body.home-route .home-about-stats strong{font-size:clamp(22px,2vw,29px);line-height:1}
}
@media(max-width:760px){
  body.home-route .home-main{grid-template-rows:auto 38px auto;overflow:visible}
  body.home-route .home-hero{min-height:270px}
}

/* Reduced motion shows the finished entrance state without hiding page content. */
@media(prefers-reduced-motion:reduce){
  body.home-route .home-panel-content.is-entering .home-project-card{animation:none!important}
  body.home-route .home-hero .hero-copy,
  body.home-route .home-hero .hero-art,
  body.home-route .home-hero .hero-coordinates,
  body.home-route .home-hero .reticle,
  body.home-route .home-hero .hero-caption,
  body.home-route .home-hero .hero-index,
  body.home-route .home-tools,
  body.home-route .home-projects-heading,
  body.home-route .home-project-card,
  body.home-route .home-panel-content.is-entering,
  body.home-route>.home-footer{opacity:1;transform:none}
  body.home-route .home-hero .eyebrow,
  body.home-route .home-hero h1,
  body.home-route .home-hero h1 em,
  body.home-route .home-hero .intro{transform:none;clip-path:none}
  body.home-route .home-hero h1,
  body.home-route .home-hero h1 em{color:#f0f3f5}
  body.home-route .home-hero .intro{color:#aab4be}
  body.home-route .home-hero:before{opacity:.6}
  body.home-route .home-hero:after,
  body.home-route .home-hero .hero-art:before,
  body.home-route .hero-glitch-overlay{display:none}
  body.home-route .home-hero .hero-art:after{opacity:.3}
  body.home-route .home-tools{overflow-x:auto}
  body.home-route .home-tools-track{transform:none}
  body.home-route .home-tools-group[aria-hidden="true"]{display:none}
  body.home-route .home-about-photo:hover img,
  body.home-route .home-project-card:hover .home-project-image,
  .project-card>a:hover{transform:none}
  .work-page .project-grid.is-entering .project-card,
  .work-page .project-grid.is-collapsing .project-card{opacity:1;transform:none}
}
