:root{--space:#030713;--cream:#f2e6c9;--amber:#f28c28;--star-white:#f8fbff}html{background:var(--space)}.portfolio-site{min-width:0;min-height:100dvh;color:var(--cream);background:var(--space);font-family:Courier New,Courier,monospace;overflow-x:clip}.portfolio-site *{box-sizing:border-box}.portfolio-site a{color:inherit;text-decoration:none}.portfolio-site :focus-visible{outline:2px solid var(--amber);outline-offset:4px}.solar-landing{--star-x:0;--star-y:0;isolation:isolate;width:100%;height:100dvh;color:var(--cream);background:radial-gradient(circle at 50% 48%,#0a1730 0,#040a19 35%,var(--space) 76%);position:relative;overflow:hidden}.solar-landing,.solar-landing *{overscroll-behavior:none}.star-field,.star-field i{pointer-events:none;position:absolute;inset:-24px}.star-field{z-index:-1;overflow:hidden}.star-field i{will-change:transform}.star-field span{left:var(--star-left);top:var(--star-top);width:var(--star-size);height:var(--star-size);background:rgba(255,255,255,var(--star-opacity));box-shadow:0 0 var(--star-glow) #ffffffb3;border-radius:50%;position:absolute}.star-field [data-star-layer=far]{animation:150s ease-in-out infinite alternate star-drift-far}.star-field [data-star-layer=middle]{animation:105s ease-in-out infinite alternate star-drift-middle}.star-field [data-star-layer=near]{animation:76s ease-in-out infinite alternate star-drift-near}.star-field [data-star-bucket=bright]{filter:brightness(1.08)}.solar-identity{z-index:12;top:max(clamp(18px,3.5vh,38px),calc(env(safe-area-inset-top) + 12px));left:max(clamp(18px,3.5vw,48px),calc(env(safe-area-inset-left) + 12px));max-width:calc(100% - max(36px,calc(env(safe-area-inset-left) + env(safe-area-inset-right) + 24px)));pointer-events:none;position:absolute}.solar-identity h1,.solar-identity p{margin:0}.solar-identity h1{color:#fff5d3;letter-spacing:.16em;font-size:clamp(.78rem,1.15vw,1rem)}.solar-identity p{color:#9aa9c2;letter-spacing:.15em;margin-top:7px;font-size:clamp(.5rem,.68vw,.62rem)}.solar-stage{z-index:2;touch-action:manipulation;width:min(84vw,1180px);min-width:0;height:min(68vh,700px);min-height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.solar-interaction-zone{pointer-events:none;height:clamp(220px,36vh,300px);position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.solar-canvas-mount,.solar-webgl-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.solar-webgl-canvas{outline:0;display:block}.solar-scene-fallback .solar-canvas-mount:after{aspect-ratio:1;content:"";background:radial-gradient(circle at 34% 30%,#fff0a1 0,#ffad35 24%,#ef681e 63%,#8f2e12 100%);border-radius:50%;width:clamp(96px,11vw,154px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #ffae3580,0 0 70px #ef681e40,inset -16px -10px 22px #6717096b}.planet-controls{z-index:8;pointer-events:none;position:absolute;inset:0}.solar-planet-control{--planet-target-size:48px;width:var(--planet-target-size);height:var(--planet-target-size);color:#fff;pointer-events:auto;cursor:pointer;will-change:transform;background:0 0;border:0;border-radius:50%;padding:0;position:absolute;top:0;left:0}.solar-planet-control.is-future{cursor:not-allowed;filter:saturate(.7)}.planet-control-halo{width:calc(var(--planet-body-size) * .9);height:calc(var(--planet-body-size) * .9);box-sizing:border-box;opacity:0;transform-origin:50%;pointer-events:none;border:1px solid #0000;border-radius:50%;transition:opacity .14s,box-shadow .14s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.solar-planet-control:hover .planet-control-halo,.solar-planet-control:focus-visible .planet-control-halo,.solar-planet-control.is-highlighted .planet-control-halo{opacity:1;border-color:#fff;box-shadow:0 0 0 1px #030713db,0 0 9px #ffffff94}.solar-planet-control:focus-visible{outline:none}.planet-state-icon{color:#b8c1d0;letter-spacing:.09em;opacity:0;white-space:nowrap;pointer-events:none;background:#030713db;border:1px solid #ffffff47;border-radius:999px;padding:3px 5px;font-size:.43rem;font-weight:900;line-height:1;transition:opacity .16s,transform .16s;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%)translateY(-3px)}.solar-selection-mode .planet-state-icon{opacity:.82;transform:translate(-50%)translateY(0)}.solar-selection-mode .is-available .planet-state-icon{color:#ffd47a;border-color:#ffc65c99}.fallback-planet{width:var(--planet-body-size);aspect-ratio:1;pointer-events:none;border-radius:50%;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset -7px -5px 10px #0000009e,inset 4px 3px 7px #ffffff38,0 0 10px #ffffff1f}.solar-scene-fallback .fallback-planet{display:block}.solar-scene-fallback .solar-planet-control[data-planet=Mercury] .fallback-planet{background:radial-gradient(circle at 35% 30%,#b9b5aa,#696b68 42%,#323331 78%)}.solar-scene-fallback .solar-planet-control[data-planet=Venus] .fallback-planet{background:repeating-linear-gradient(8deg,#e6c776 0 4px,#b58a4e 5px 8px,#f0dda3 9px 12px)}.solar-scene-fallback .solar-planet-control[data-planet=Earth] .fallback-planet{background:radial-gradient(at 32% 35%,#5da36a 0 17%,#0000 19%),radial-gradient(at 70% 61%,#4b8a58 0 18%,#0000 20%),#2879b9}.solar-scene-fallback .solar-planet-control[data-planet=Mars] .fallback-planet{background:radial-gradient(circle at 33% 28%,#d98254,#a94f2e 48%,#5e281d)}.solar-scene-fallback .solar-planet-control[data-planet=Jupiter] .fallback-planet{background:repeating-linear-gradient(0deg,#e6c89f 0 6px,#a9694b 7px 10px,#d7a875 11px 17px)}.solar-scene-fallback .solar-planet-control[data-planet=Saturn] .fallback-planet{background:repeating-linear-gradient(0deg,#ead699 0 5px,#b99a5a 6px 8px)}.solar-scene-fallback .solar-planet-control[data-planet=Saturn] .fallback-planet i{border:3px solid #dec689c7;border-radius:50%;position:absolute;inset:38% -46%;transform:rotate(-14deg)}.solar-scene-fallback .solar-planet-control[data-planet=Uranus] .fallback-planet{background:radial-gradient(circle at 35% 30%,#b8e5df,#62b3b9 52%,#347f89)}.solar-scene-fallback .solar-planet-control[data-planet=Neptune] .fallback-planet{background:repeating-linear-gradient(0deg,#386bd0 0 7px,#1f4ba6 8px 13px,#102a70 14px 17px)}.fallback-orbits{place-items:center;display:none;position:absolute;inset:0}.solar-scene-fallback .fallback-orbits{display:grid}.fallback-orbits i{--fallback-size:calc(14% + var(--fallback-orbit) * 9.2%);width:var(--fallback-size);aspect-ratio:1.72;border:1px solid #bcccea26;border-radius:50%;position:absolute;transform:rotate(-7deg)}.solar-scene-fallback .solar-planet-control{transform:translate(-50%,-50%)}.solar-scene-fallback .solar-planet-control:first-child{top:39%;left:57%}.solar-scene-fallback .solar-planet-control:nth-child(2){top:47%;left:37%}.solar-scene-fallback .solar-planet-control:nth-child(3){top:65%;left:53%}.solar-scene-fallback .solar-planet-control:nth-child(4){top:34%;left:67%}.solar-scene-fallback .solar-planet-control:nth-child(5){top:60%;left:26%}.solar-scene-fallback .solar-planet-control:nth-child(6){top:68%;left:72%}.solar-scene-fallback .solar-planet-control:nth-child(7){top:29%;left:31%}.solar-scene-fallback .solar-planet-control:nth-child(8){top:48%;left:82%}.solar-scene-fallback.solar-selection-mode .fallback-orbits{opacity:.12}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(n){top:50%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:first-child{left:18%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(2){left:27%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(3){left:36%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(4){left:45%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(5){left:55%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(6){left:64%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(7){left:73%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(8){left:82%}.solar-project-label{z-index:10;color:#f6f8fc;text-align:center;opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#030713d4 16% 84%,#0000);justify-items:center;gap:5px;width:min(590px,90%);padding:10px 14px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:1%;left:50%;transform:translate(-50%,8px)}.solar-selection-mode .solar-project-label{opacity:1;pointer-events:auto;transform:translate(-50%)}.solar-project-label strong{color:#ffd177;letter-spacing:.18em;font-size:.58rem}.solar-project-label span{font-size:clamp(.62rem,1vw,.78rem);line-height:1.35}.solar-project-label small{color:#aeb8ca;font-size:.5rem}.solar-contact{z-index:12;gap:18px;display:flex;position:absolute;bottom:clamp(18px,3.5vh,38px);right:clamp(18px,3.5vw,48px)}.solar-contact a,.solar-contact button{color:inherit;letter-spacing:.12em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ffb746a6;padding:0 0 4px;font:700 .6rem Courier New,Courier,monospace}.solar-contact a:hover,.solar-contact button:hover{color:#ffc566}.solar-email-dialog-backdrop{z-index:80;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#01040cc7;place-items:center;display:grid;position:fixed;inset:0}.solar-email-dialog{width:min(520px,100%);color:var(--cream);background:linear-gradient(145deg,#0b1730,#030713 68%);border:1px solid #ffbe56e6;padding:clamp(28px,6vw,48px);position:relative;box-shadow:10px 10px #f28c28d9,0 24px 80px #00000085}.solar-email-dialog h2{color:#fff5d3;letter-spacing:-.04em;margin:0;font-size:clamp(1.55rem,5vw,2.4rem)}.solar-email-address{overflow-wrap:anywhere;border:0;border-bottom:1px solid var(--amber);color:#ffca72;cursor:pointer;background:0 0;width:fit-content;max-width:100%;margin-top:18px;padding:0;font:900 clamp(.82rem,2.8vw,1.05rem)/1.6 Courier New,Courier,monospace;display:block}.solar-email-address:hover{color:#ffe0a6}.solar-email-dialog-close{color:#d7dce6;letter-spacing:.1em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ffb746a6;padding:6px 0;font:700 .55rem/1 Courier New,Courier,monospace;position:absolute;top:14px;right:14px}.solar-email-dialog-close:hover{color:#ffc566}.solar-email-copy-status{opacity:0;min-height:1.2rem;margin:14px 0 0;font-size:.72rem;font-weight:700;line-height:1.6;transition:opacity .3s,transform .3s;transform:translateY(5px);color:#f7f2df!important}.solar-email-copy-status[data-state=copied],.solar-email-copy-status[data-state=failed]{opacity:1;transform:translateY(0)}.solar-email-copy-status span{color:#70d59b;font-size:1rem}.solar-loader{z-index:100;color:#f6f1df;background:#030713;place-content:center;justify-items:center;padding:24px;animation:1.55s both loader-fade;display:grid;position:fixed;inset:0}.solar-loader-mark{aspect-ratio:1;color:#ffb244;border:1px solid #ffae42c2;border-radius:50%;place-items:center;width:88px;font-family:Arial,Helvetica,sans-serif;font-size:2rem;font-weight:900;display:grid;box-shadow:0 0 30px #ff7e1f2e}.solar-loader-copy{text-align:left;gap:5px;width:min(520px,88vw);margin:22px 0 13px;display:grid}.solar-loader-copy p,.solar-loader-copy span,.solar-loader-copy code{letter-spacing:.1em;margin:0;font-size:clamp(.48rem,1.1vw,.62rem);line-height:1.45}.solar-loader-copy p{color:#ffbd5d;font-weight:900}.solar-loader-copy span{color:#d6dce7}.solar-loader-copy code{overflow-wrap:anywhere;color:#748198}.solar-loader>i{transform-origin:0;background:linear-gradient(90deg,#ffac42 0 100%) no-repeat;border:1px solid #ffffff52;width:min(520px,88vw);height:4px;animation:1.28s steps(9,end) both loader-bar}.portfolio-header{border-bottom:1px solid var(--cream);background:var(--space);justify-content:space-between;align-items:center;min-height:64px;padding:12px clamp(18px,4vw,54px);display:flex}.portfolio-menu{z-index:20;position:relative}.portfolio-menu-button{border:1px solid var(--amber);width:40px;height:40px;color:var(--amber);background:var(--space);cursor:pointer;place-items:center;display:grid}.portfolio-menu-panel{border:1px solid var(--amber);width:min(320px,100vw - 36px);color:var(--cream);background:var(--space);box-shadow:7px 7px 0 var(--amber);padding:10px;display:grid;position:absolute;top:calc(100% + 10px);left:0}.portfolio-menu-panel a{border-top:1px dotted var(--cream);align-items:center;gap:10px;min-height:46px;padding:0 10px;font-size:.75rem;display:flex}.portfolio-menu-panel a:hover{color:var(--space);background:var(--amber)}.portfolio-menu-label{color:var(--amber);letter-spacing:.14em;margin:0;padding:6px 10px 12px;font-size:.58rem}.portfolio-name-link{letter-spacing:.16em;text-transform:uppercase;font-size:.7rem;font-weight:900;color:var(--amber)!important}.portfolio-footer{border-top:1px solid var(--cream);background:var(--space);padding:18px clamp(18px,4vw,54px)}.portfolio-colophon{color:var(--cream);opacity:.65;margin:0;font-size:.58rem}.portfolio-kicker{color:var(--amber);letter-spacing:.15em;text-transform:uppercase;margin:0 0 18px;font-size:.62rem;font-weight:900}.case-study-page{--mercury-hot:#ff9b2f;--mercury-rust:#873b22;--mercury-stone:#8f8c83;isolation:isolate;background:radial-gradient(circle at 78% 13%,#7e76672b,transparent 23rem),radial-gradient(circle at 18% 48%,#ff7e2312,transparent 28rem),var(--space);min-height:100dvh;position:relative;overflow:hidden}.case-study-page:before{z-index:-1;content:"";pointer-events:none;opacity:.52;background-image:radial-gradient(circle at 12% 18%,#ffffffeb 0 .7px,#0000 1.2px),radial-gradient(circle at 77% 61%,#e2eaf7c7 0 .6px,#0000 1.05px),radial-gradient(circle at 42% 84%,#ffffffad 0 .8px,#0000 1.35px),radial-gradient(circle at 91% 29%,#ffffffb8 0 .55px,#0000 1px);background-size:173px 149px,241px 211px,317px 281px,389px 347px;position:absolute;inset:0}.case-study-hero{isolation:isolate;border-inline:1px solid var(--mercury-stone);background:linear-gradient(135deg,#8f8c830f,#0000 48%);max-width:1080px;margin:auto;padding:clamp(52px,8vw,110px) clamp(20px,5vw,74px) clamp(45px,7vw,85px);position:relative;overflow:hidden}.case-study-hero>*{z-index:1;position:relative}.case-study-hero:after{z-index:0;aspect-ratio:1;content:"";opacity:.58;filter:saturate(.5)contrast(1.14);background:radial-gradient(circle at 24% 20%,#2d29256b 0 2.8%,#e0d5bf4d 3.2% 4.2%,#0000 4.8%),radial-gradient(circle at 63% 24%,#2c282461 0 4.5%,#dacfbb42 5% 6.2%,#0000 6.8%),radial-gradient(circle at 43% 47%,#28242166 0 5.5%,#e1d5bc40 6% 7.4%,#0000 8%),radial-gradient(circle at 76% 61%,#26232066 0 3.7%,#d5c9b53d 4.2% 5.3%,#0000 5.9%),radial-gradient(circle at 29% 76%,#2e2a2661 0 4.1%,#e5d8be3d 4.6% 5.8%,#0000 6.4%),radial-gradient(circle at 57% 79%,#25221f52 0 2.4%,#cfc3b038 2.9% 3.9%,#0000 4.5%),radial-gradient(circle at 81% 38%,#2a262357 0 1.8%,#dccfb933 2.3% 3.1%,#0000 3.6%),radial-gradient(at 38% 35%,#f2e2c529 0 15%,#0000 31%),radial-gradient(at 66% 57%,#352f2a29 0 18%,#0000 38%),radial-gradient(circle at 30% 26%,#c7baa2 0,#9d907e 30%,#74695d 57%,#443b35 78%,#211d1b 100%);border-radius:50%;width:clamp(150px,24vw,270px);position:absolute;top:12%;right:-2%;box-shadow:inset -46px -31px 62px #0a0908d6,inset 16px 11px 25px #ffeac91f,0 0 64px #ff88291a}.case-study-breadcrumb{border-bottom:1px solid var(--amber);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:clamp(45px,7vw,80px);padding-bottom:5px;font-size:.68rem;font-weight:800;display:inline-flex;color:var(--amber)!important}.case-study-hero h1{max-width:900px;color:var(--mercury-hot);letter-spacing:-.1em;text-shadow:6px 6px 0 var(--mercury-rust),0 0 34px #ff84262b;margin:0;font-size:clamp(3.6rem,11vw,9.5rem);line-height:.82}.portfolio-button{border:1px solid var(--cream);background:var(--amber);letter-spacing:.06em;text-transform:uppercase;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:.68rem;font-weight:900;display:inline-flex;color:var(--space)!important}.portfolio-button:hover{box-shadow:5px 5px 0 var(--cream);transform:translate(-2px,-2px)}.case-study-evidence{border-inline:1px solid var(--mercury-stone);max-width:1080px;margin:0 auto;padding:0 clamp(20px,5vw,74px) clamp(70px,9vw,120px)}.case-study-evidence figcaption{color:var(--cream);opacity:.72;margin-top:18px;font-size:.62rem;line-height:1.5}.case-study-demo-embed{border:1px solid var(--cream);background:var(--cream);box-shadow:12px 12px 0 var(--amber);overflow:hidden}.case-study-demo-toolbar{min-height:58px;color:var(--cream);background:var(--space);justify-content:space-between;align-items:center;gap:14px;padding:10px 14px;display:flex}.case-study-demo-toolbar>div{gap:3px;display:grid}.case-study-demo-toolbar strong{color:var(--amber);letter-spacing:.08em;font-size:.72rem}.case-study-demo-toolbar span{opacity:.72;font-size:.56rem}.case-study-demo-toolbar a{border:1px solid var(--amber);min-height:38px;color:var(--amber);align-items:center;gap:7px;padding:0 11px;font-size:.6rem;font-weight:800;display:inline-flex}.case-study-demo-embed iframe,.case-study-demo-start{border:0;width:100%;height:clamp(440px,61vw,670px)}.case-study-demo-embed iframe{background:var(--cream);display:block}.case-study-demo-start{color:var(--space);background:var(--cream);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:12px;font:900 clamp(1rem,2.5vw,1.75rem)/1 Courier New,monospace;display:flex}.case-study-demo-start span{font-size:.62rem;font-weight:400}.case-study-story{border-top:1px solid var(--mercury-hot);color:var(--cream);background:linear-gradient(#443e3624,#030713f0 22%);padding:clamp(76px,10vw,140px) clamp(20px,5vw,74px)}.case-study-story>div{max-width:820px;margin:auto}.case-study-story h2{color:var(--amber);letter-spacing:-.07em;text-transform:uppercase;margin:0 0 42px;font-size:clamp(2rem,5vw,4.2rem);line-height:.95}.case-study-story p:not(.portfolio-kicker){margin:0 0 26px;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.03rem,1.6vw,1.2rem);line-height:1.85}.case-study-story .portfolio-button{margin-top:20px}@keyframes star-drift-far{0%{transform:translate3d(calc(var(--star-x) * -2px - 3px),calc(var(--star-y) * -2px - 2px),0)}to{transform:translate3d(calc(var(--star-x) * -2px + 3px),calc(var(--star-y) * -2px + 2px),0)}}@keyframes star-drift-middle{0%{transform:translate3d(calc(var(--star-x) * -5px + 4px),calc(var(--star-y) * -5px - 3px),0)}to{transform:translate3d(calc(var(--star-x) * -5px - 4px),calc(var(--star-y) * -5px + 3px),0)}}@keyframes star-drift-near{0%{transform:translate3d(calc(var(--star-x) * -9px - 1px),calc(var(--star-y) * -9px + 1px),0)}to{transform:translate3d(calc(var(--star-x) * -9px + 1px),calc(var(--star-y) * -9px - 1px),0)}}@keyframes loader-bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes loader-fade{0%,86%{opacity:1}to{opacity:0}}@media (max-width:900px){.solar-stage{width:calc(100% - 24px);height:66vh}}@media (max-width:640px){.solar-identity{top:14px;left:16px}.solar-identity p{margin-top:4px}.solar-stage{width:calc(100% - 12px);height:min(62vh,540px);top:46%}.solar-interaction-zone{height:min(52vh,420px)}.solar-project-label{width:96%;padding-inline:8px;bottom:-4px}.planet-state-icon{font-size:.37rem;top:calc(100% + 3px)}.solar-contact{gap:13px;bottom:18px;right:16px}.solar-loader-copy{width:92vw}.solar-scene-fallback.solar-selection-mode .solar-planet-control:first-child,.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(5){left:20%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(2),.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(6){left:40%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(3),.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(7){left:60%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(4),.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(8){left:80%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(-n+4){top:41%}.solar-scene-fallback.solar-selection-mode .solar-planet-control:nth-child(n+5){top:59%}.case-study-hero,.case-study-evidence{border-inline:0}.case-study-hero h1{font-size:clamp(3.7rem,21vw,6.5rem)}.case-study-demo-toolbar{flex-direction:column;align-items:stretch}.case-study-demo-toolbar a{justify-content:center}.case-study-demo-embed iframe,.case-study-demo-start{height:560px}.portfolio-button{width:100%}}@media (prefers-reduced-motion:reduce){.portfolio-site *,.portfolio-site :before,.portfolio-site :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.star-field i{transform:none!important}.solar-loader{opacity:1}}
