:root{--ink:#20211e;--paper:#f5f3ec;--line:#d4d2c8;--accent:#ce634b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.site-header{height:84px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:25px;font-weight:900;letter-spacing:-1.7px}.brand img{display:block;width:130px;height:60px;object-fit:contain}.site-header nav{display:flex;gap:35px;font-size:13px;font-weight:700}.site-header nav a:hover,.arrow-link:hover{color:var(--accent)}.hero{display:grid;grid-template-columns:43% 57%;min-height:calc(100vh - 84px);max-height:850px}.hero-copy{padding:11vh 8% 6vh 12%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;display:flex;align-items:center;gap:9px}.dot{width:7px;height:7px;background:var(--accent);border-radius:50%;display:inline-block}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.05em;line-height:.95;margin:35px 0 27px}h1{font-size:clamp(64px,6.5vw,112px)}h2{font-size:clamp(52px,5vw,80px)}h1 em,h2 em{font-weight:400}.hero-copy p{font-size:17px;line-height:1.6;max-width:330px;margin:0 0 36px;color:#565851}.arrow-link{font-size:13px;font-weight:700;border-bottom:1px solid var(--ink);padding:0 0 9px;min-width:150px;display:flex;justify-content:space-between}.hero-visual{position:relative;min-height:500px;background:#d9dad4;overflow:hidden}.hero-visual img{width:100%;height:100%;position:absolute;object-fit:cover}.hero-visual:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.5));pointer-events:none}.hero-label{position:absolute;z-index:1;bottom:28px;left:5%;right:5%;display:flex;justify-content:space-between;color:white;font-size:9px;letter-spacing:.13em;font-weight:bold}.intro{padding:110px 5% 75px;display:flex;justify-content:space-between;align-items:end;gap:30px}.intro h2{margin-bottom:0}.intro p{max-width:300px;color:#666961;line-height:1.65;font-size:15px;margin:0 0 6px}.gallery-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 5% 20px;border-bottom:1px solid var(--line)}.filters{display:flex;gap:23px;flex-wrap:wrap}.filters button{border:0;background:none;padding:0 0 8px;color:#777a73;font:inherit;font-size:12px;cursor:pointer}.filters button.active{color:var(--ink);font-weight:bold;border-bottom:1px solid var(--ink)}.filters button span{font-size:9px;color:var(--accent);vertical-align:top}.gallery-hint{font-size:9px;letter-spacing:.13em;color:#777a73;white-space:nowrap}.gallery-hint span{color:var(--accent);padding-left:10px}.gallery{padding:30px 5% 110px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:52px 22px}.work-card{border:0;padding:0;background:none;text-align:left;cursor:pointer;color:inherit;min-width:0}.work-card[hidden]{display:none}.work-image{overflow:hidden;aspect-ratio:1.45;background:#e5e4df}.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.work-card:hover img{transform:scale(1.035)}.work-caption{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-top:13px}.work-caption strong{font-size:15px}.work-caption span{font-size:10px;letter-spacing:.1em;color:#74776f}.contact{background:#dfddd3;padding:100px 5%;display:flex;align-items:end;justify-content:space-between;gap:40px}.contact h2{margin-bottom:0}.contact-copy{padding-bottom:7px;min-width:260px}.contact-copy p{font-size:16px}.contact-note{display:inline-block;border-bottom:1px solid #888;font-size:12px;padding:12px 0;color:#65675f}footer{padding:30px 5%;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.12em}footer .brand{letter-spacing:-1.7px}.lightbox{border:0;padding:0;max-width:none;max-height:none;width:100%;height:100%;background:rgba(21,22,20,.96);color:white}.lightbox::backdrop{background:rgba(0,0,0,.8)}.lightbox-inner{height:100%;padding:60px 7% 45px;display:flex;flex-direction:column;justify-content:center;align-items:center}.lightbox img{max-width:100%;max-height:calc(100% - 45px);object-fit:contain}.lightbox-caption{display:flex;justify-content:space-between;width:100%;max-width:1100px;margin-top:16px;font-size:12px}.lightbox-number{font-size:10px;color:#bbb}.close{position:absolute;right:4%;top:18px;color:white;background:transparent;border:0;font-size:36px;line-height:1;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}@media(max-width:760px){.site-header{height:70px}.hero{display:flex;flex-direction:column;min-height:0;max-height:none}.hero-copy{padding:75px 6% 65px}.hero-visual{min-height:0;height:62vh;max-height:540px}.hero-label{font-size:8px}.intro{padding:80px 6% 45px;display:block}.intro p{margin-top:25px}.gallery-head{padding:0 6% 14px}.filters{gap:15px}.gallery-hint{display:none}.gallery{padding:25px 6% 75px;grid-template-columns:1fr;gap:35px}.contact{padding:70px 6%;display:block}.contact-copy{margin-top:35px}.contact h2{font-size:55px}footer{padding:25px 6%}footer>span{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.work-image{position:relative}.work-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:end;padding:26px;color:white;background:linear-gradient(transparent 35%,rgba(0,0,0,.78));opacity:0;transition:opacity .25s}.work-overlay strong{font-family:Georgia,serif;font-weight:400;font-size:27px}.work-overlay span{margin-top:8px;font-size:12px;line-height:1.5}.work-card:hover .work-overlay,.work-card:focus-visible .work-overlay{opacity:1}.contact-note{background:none;border:0;border-bottom:1px solid #888;cursor:not-allowed}.lightbox-description{color:#ccc;line-height:1.5;margin:7px 0}.lightbox-caption strong{font-size:15px}@media(hover:none){.work-overlay{opacity:1;background:linear-gradient(transparent 65%,rgba(0,0,0,.65))}.work-overlay span{display:none}}
/* Bold red, black and metallic palette drawn from the supplied brand artwork. */
:root{--ink:#f4f3ef;--paper:#151515;--line:#454545;--accent:#e63939}body{background:var(--paper)}.site-header{background:#f4f3ef;color:#171717;border-color:#d3d3d3}.site-header .brand img{width:140px}.hero-copy{background:#151515}.hero-copy p,.intro p{color:#c1c1c1}h1,h2{font-family:Arial,Helvetica,sans-serif;font-weight:900;letter-spacing:-.065em;line-height:.92}h1 em,h2 em{font-style:normal;color:var(--accent);font-weight:900}.intro p{color:#bebebe}.filters button{color:#aaa}.filters button.active{color:white;border-color:var(--accent)}.gallery-hint,.work-caption span{color:#aaa}.work-image{border-radius:3px}.work-overlay{inset:auto 7% 7%;padding:19px 23px;border:1px solid rgba(255,255,255,.8);border-radius:30px;background:#f5f4ef;color:#171717;box-shadow:0 14px 28px #0008,7px 7px 0 #c42424;transform:translateY(10px);transition:opacity .25s,transform .25s}.work-overlay strong{font-family:Arial,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.03em}.work-overlay span{font-size:12px;color:#454545}.work-card:hover .work-overlay,.work-card:focus-visible .work-overlay{opacity:1;transform:translateY(0)}.contact{background:#e12d2d;color:white}.contact-copy p{color:white}.contact-note{color:white;border-color:white;cursor:pointer}.contact-note:hover{color:#171717}footer{background:#111}footer .brand img{background:#f4f3ef;border-radius:3px;width:110px;height:50px}.lightbox{background:rgba(10,10,10,.97)}@media(hover:none){.work-overlay{opacity:1;transform:none;background:#f5f4ef}.work-overlay span{display:none}.work-overlay strong{font-size:15px}.work-overlay{padding:12px 17px;border-radius:24px;box-shadow:4px 4px 0 #c42424}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.lightbox-number{white-space:nowrap}
/* The opening cluster uses real selected project photos, each independently explorable. */
.hero-visual{background:#1c1c1c;overflow:visible;display:flex;flex-direction:column;justify-content:center;padding:5% 7% 4% 4%;min-height:0}
.hero-visual:after{display:none}.hero-cluster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:center}.hero-bubble{position:relative;border:0;padding:0;aspect-ratio:1/1;background:transparent;cursor:pointer;isolation:isolate;transition:transform .35s cubic-bezier(.2,.8,.2,1);z-index:1;min-width:0}.hero-bubble:hover,.hero-bubble:focus-visible{transform:scale(1.12);z-index:5}.bubble-photo{display:block;width:100%;height:100%;overflow:hidden;border-radius:43% 57% 53% 47% / 47% 42% 58% 53%;box-shadow:0 14px 34px #0008,0 0 0 2px #ffffff50;transition:box-shadow .35s}.hero-bubble:nth-child(2n) .bubble-photo{border-radius:58% 42% 44% 56% / 42% 60% 40% 58%}.hero-bubble:nth-child(3n) .bubble-photo{border-radius:45% 55% 42% 58% / 61% 43% 57% 39%}.hero-bubble:hover .bubble-photo,.hero-bubble:focus-visible .bubble-photo{box-shadow:0 22px 40px #000a,0 0 0 3px #e63939}.hero-visual .bubble-photo img{position:static;width:100%;height:100%;object-fit:cover}.bubble-info{position:absolute;left:0;right:0;bottom:-3%;padding:12px 13px;background:#f5f4ef;color:#181818;border-radius:19px;box-shadow:4px 5px 0 #b8292e;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;text-align:left;pointer-events:none}.bubble-info strong,.bubble-info span{display:block}.bubble-info strong{font-size:12px;line-height:1.2}.bubble-info span{font-size:10px;line-height:1.35;margin-top:4px}.hero-bubble:hover .bubble-info,.hero-bubble:focus-visible .bubble-info{opacity:1;transform:translateY(0)}.hero-cluster-hint{font-size:9px;letter-spacing:.14em;font-weight:700;text-align:center;color:#aaa;margin:32px 0 0}.hero-copy{padding-right:7%}
@media(max-width:760px){.hero-copy{padding:46px 6% 30px}.hero-copy h1{font-size:clamp(53px,12vw,75px);margin:25px 0 20px}.hero-copy p{font-size:15px;line-height:1.45;margin-bottom:20px}.hero-visual{height:auto;max-height:none;min-height:0;padding:14px 6% 35px}.hero-cluster{gap:10px}.hero-cluster-hint{margin-top:18px;font-size:8px}.bubble-info{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Constellation direction: polygonal project planets connected by fine light. */
.hero-visual{background-color:#080b12;background-image:radial-gradient(circle at 10% 16%,#fff9 0 1px,transparent 1.5px),radial-gradient(circle at 70% 12%,#fff9 0 1px,transparent 1.5px),radial-gradient(circle at 90% 44%,#f88a8a99 0 1px,transparent 1.7px),radial-gradient(circle at 24% 79%,#fff9 0 1px,transparent 1.7px),radial-gradient(circle at 72% 87%,#fff8 0 1px,transparent 1.5px),radial-gradient(ellipse at 55% 50%,#25242e 0,#0b0d16 58%,#080a0f 100%)}
.hero-cluster{position:relative;isolation:isolate;gap:14px 18px}.hero-cluster:before{content:"";position:absolute;z-index:-1;inset:-10% -4%;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23b8c1d0' stroke-opacity='.55' stroke-width='1'%3E%3Cpath d='M75 90 L290 55 L525 100 L510 305 L300 330 L80 290 Z M75 90 L300 330 L525 100 M290 55 L80 290 L510 305'/%3E%3C/g%3E%3Cg fill='%23fff' fill-opacity='.7'%3E%3Ccircle cx='75' cy='90' r='3'/%3E%3Ccircle cx='290' cy='55' r='3'/%3E%3Ccircle cx='525' cy='100' r='3'/%3E%3Ccircle cx='510' cy='305' r='3'/%3E%3Ccircle cx='300' cy='330' r='3'/%3E%3Ccircle cx='80' cy='290' r='3'/%3E%3C/g%3E%3C/svg%3E")}
.hero-bubble{--offset:0px;transform:translateY(var(--offset));filter:drop-shadow(0 10px 18px #000a)}.hero-bubble:nth-child(2){--offset:-15px}.hero-bubble:nth-child(4){--offset:13px}.hero-bubble:nth-child(6){--offset:13px}.hero-bubble:hover,.hero-bubble:focus-visible{transform:translateY(var(--offset)) scale(1.12)}
.bubble-photo,.hero-bubble:nth-child(2n) .bubble-photo,.hero-bubble:nth-child(3n) .bubble-photo{border-radius:0;clip-path:polygon(29% 0,71% 0,100% 29%,100% 71%,71% 100%,29% 100%,0 71%,0 29%);background:#aab2bf;padding:2px;box-shadow:none}.hero-visual .bubble-photo img{clip-path:polygon(29% 0,71% 0,100% 29%,100% 71%,71% 100%,29% 100%,0 71%,0 29%)}.hero-bubble:hover .bubble-photo,.hero-bubble:focus-visible .bubble-photo{background:#e63939;box-shadow:none}.hero-cluster-hint{color:#c5cbd8}
@media(max-width:760px){.hero-bubble:nth-child(2){--offset:-6px}.hero-bubble:nth-child(4),.hero-bubble:nth-child(6){--offset:6px}.hero-cluster{gap:10px 12px}.hero-visual{padding-top:24px}.hero-cluster-hint{margin-top:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Ten configured nodes fit in the opening constellation. */
.hero-cluster{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}.hero-bubble:nth-child(n){--offset:0px}.hero-bubble:nth-child(2),.hero-bubble:nth-child(6),.hero-bubble:nth-child(10){--offset:-7px}.bubble-badge{position:absolute;top:5%;left:50%;transform:translateX(-50%);z-index:2;background:#161719e8;color:#fff;border:1px solid #fff9;border-radius:12px;font-size:7px;letter-spacing:.06em;font-weight:800;padding:3px 5px;white-space:nowrap}.hero-visual{padding-top:3%;padding-bottom:3%}.hero-cluster-hint{margin-top:18px}.hero-cluster:before{inset:-4% -3%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 500' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23b8c1d0' stroke-opacity='.48' stroke-width='1'%3E%3Cpath d='M75 70 L225 55 L375 70 L525 55 L525 245 L375 255 L225 245 L75 255 L75 440 L225 425 L375 255 M225 55 L75 255 L225 425 M375 70 L225 245 L375 255 M525 55 L375 255'/%3E%3C/g%3E%3C/svg%3E")}
@media(max-width:760px){.hero-cluster{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.hero-visual{padding:18px 6% 30px}.hero-cluster-hint{margin-top:16px}.bubble-badge{font-size:6px;padding:2px 3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.lightbox-inner{overflow-y:auto}.lightbox-inner .lightbox-main{max-height:65vh;flex-shrink:0}.more-views{width:100%;max-width:1100px;margin-top:14px}.more-views[hidden]{display:none}.more-label{display:block;color:#aaa;font-size:9px;letter-spacing:.12em;margin-bottom:8px}.more-strip{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:6px}.view-choice{flex:0 0 72px;height:52px;padding:0;border:1px solid #777;background:#222;color:white;font-size:9px;font-weight:bold;cursor:pointer}.view-choice[aria-pressed=true]{border:2px solid #ef4545}.lightbox-inner .view-choice img{width:100%;height:100%;object-fit:cover}.view-choice:hover{border-color:white}
@media(max-width:760px){.lightbox-inner{padding:52px 7% 20px}.lightbox-inner .lightbox-main{max-height:55vh}.more-views{margin-top:10px}}
.lightbox-inner .view-choice img{max-height:none;display:block}
/* Expanded nodes layer the factual project label over a dimmed photo. */
.hero-bubble:hover .bubble-photo img,.hero-bubble:focus-visible .bubble-photo img{opacity:.36}.bubble-info{inset:10% 7%;padding:0;display:flex;flex-direction:column;justify-content:center;background:transparent;box-shadow:none;color:#fff;border-radius:0;text-shadow:none}.bubble-info strong,.bubble-info span{display:block;padding:6px 7px;border-radius:6px}.bubble-info strong{background:#c82b30;color:#fff;font-size:10px;line-height:1.15}.bubble-info span{background:rgba(7,9,14,.91);color:#fff;font-size:9px;line-height:1.25;margin-top:4px}.hero-bubble:hover .bubble-badge,.hero-bubble:focus-visible .bubble-badge{opacity:0}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.hero-bubble:hover,.hero-bubble:focus-visible{transform:translateY(var(--offset)) scale(1.35)}.bubble-info strong{font-size:11px}.bubble-info span{font-size:10px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Partner media is represented as placeholders pending supplied assets. */
.capabilities{padding:110px 5%;border-top:1px solid var(--line);background:#0b0d13}.capabilities-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:48px}.capabilities-heading h2{margin-bottom:0}.capabilities-heading p{max-width:310px;color:#c3c5cc;font-size:15px;line-height:1.6;margin:0 0 4px}.capabilities-media{display:grid;grid-template-columns:1fr 1fr;gap:20px}.capability-placeholder{border:1px solid #454b59;background:#131720}.capability-graphic{height:270px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 110%,#57343a,#252a36 46%,#141720 85%)}.graphic-photo span{position:absolute;border:1px solid #b5bfce55;transform:rotate(-24deg);width:46%;height:65%;left:30%;top:20%;border-radius:3px;background:linear-gradient(135deg,#56606d66,#12151dcc)}.graphic-photo span:nth-child(2){transform:rotate(-11deg);left:27%;top:19%}.graphic-photo span:nth-child(3){transform:rotate(3deg);left:24%;top:18%}.graphic-video{background:radial-gradient(ellipse at 50% 90%,#523039,#232836 50%,#131720 90%);display:grid;place-items:center}.play-icon{display:grid;place-items:center;width:72px;height:72px;border:1px solid #fff9;border-radius:50%;color:#fff;font-size:24px;padding-left:4px;box-shadow:0 0 35px #db343344}.capability-caption{padding:22px;display:flex;justify-content:space-between;align-items:end;gap:16px}.capability-caption span{font-size:9px;color:#ff8585;letter-spacing:.13em;font-weight:bold}.capability-caption h3{font-size:19px;letter-spacing:-.03em;margin:8px 0 0}.capability-caption p{font-size:11px;color:#abb1bb;text-align:right;line-height:1.4;margin:0}.site-header nav{gap:25px}@media(max-width:760px){.site-header nav{gap:15px;font-size:11px}.capabilities{padding:75px 6%}.capabilities-heading{display:block;margin-bottom:35px}.capabilities-heading p{margin-top:25px}.capabilities-media{grid-template-columns:1fr;gap:16px}.capability-graphic{height:200px}.capability-caption{padding:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.capabilities[hidden]{display:none}.capability-graphic>img,.capability-graphic>video{width:100%;height:100%;object-fit:cover;display:block}.play-icon::before{content:"";display:block;width:0;height:0;border-top:11px solid transparent;border-bottom:11px solid transparent;border-left:17px solid white}
.hero-actions{display:flex;gap:20px;flex-wrap:wrap}.hero-actions .arrow-link{min-width:140px}.capabilities-page{border-top:0;padding-top:100px}.capabilities-page h1{font-size:clamp(60px,6.5vw,100px);margin:35px 0 0}.capability-lists{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #454b59;border-bottom:1px solid #454b59;margin:70px 0;gap:25px;padding:30px 0}.cap-list-label,.section-kicker{font-size:10px;letter-spacing:.14em;font-weight:bold;color:#f4f3ef}.capability-lists ul{list-style:none;padding:0;margin:20px 0 0}.capability-lists li{font-size:18px;padding:8px 0;color:#d8d8dc}.section-kicker{display:flex;gap:9px;align-items:center;margin-bottom:22px}.section-kicker>span:last-child{margin-left:auto;font-size:10px;letter-spacing:0;color:#9aa1ad;font-weight:normal}.capabilities-page .capabilities-media{grid-template-columns:repeat(3,minmax(0,1fr))}.capabilities-page .capability-graphic{height:220px}.graphic-scale{background:radial-gradient(ellipse at 60% 70%,#4a2832,#1a2130 60%,#11151c)}.graphic-scale span{position:absolute;border:1px solid #b5bfce88;bottom:18%;width:16%;left:17%;height:25%;background:#f2f3f11a}.graphic-scale span:nth-child(2){height:44%;left:42%}.graphic-scale span:nth-child(3){height:65%;left:67%}.capability-note{font-size:11px;color:#9aa1ad;line-height:1.5;margin:24px 0}.cap-return{width:150px;margin-top:35px}@media(max-width:760px){.hero-actions{gap:18px}.hero-actions .arrow-link{min-width:130px}.capabilities-page{padding-top:65px}.capabilities-page h1{font-size:55px}.capability-lists{grid-template-columns:1fr;margin:45px 0;gap:35px}.capabilities-page .capabilities-media{grid-template-columns:1fr}.section-kicker{flex-wrap:wrap}.section-kicker>span:last-child{width:100%;margin-left:16px}.capabilities-page .capability-graphic{height:200px}}
/* The project constellation is stationary and deliberately asymmetric at rest. */
.hero-cluster{display:block;position:relative;height:500px}.hero-bubble{position:absolute;aspect-ratio:1;--offset:0px!important}.hero-bubble:nth-child(1){left:2%;top:8%;width:20%}.hero-bubble:nth-child(2){left:27%;top:0%;width:16%}.hero-bubble:nth-child(3){left:50%;top:8%;width:20%}.hero-bubble:nth-child(4){left:78%;top:2%;width:17%}.hero-bubble:nth-child(5){left:13%;top:37%;width:17%}.hero-bubble:nth-child(6){left:37%;top:32%;width:19%}.hero-bubble:nth-child(7){left:63%;top:37%;width:16%}.hero-bubble:nth-child(8){left:80%;top:55%;width:16%}.hero-bubble:nth-child(9){left:2%;top:68%;width:17%}.hero-bubble:nth-child(10){left:43%;top:69%;width:19%}.hero-bubble:hover,.hero-bubble:focus-visible{transform:scale(1.35)}
.capabilities-page .capabilities-media{display:flex;flex-wrap:wrap;gap:2%;align-items:flex-start}.capabilities-page .capability-placeholder:nth-child(1){width:34%;margin-top:3%}.capabilities-page .capability-placeholder:nth-child(2){width:30%;margin-top:0}.capabilities-page .capability-placeholder:nth-child(3){width:32%;margin-top:7%}
@media(max-width:760px){.hero-cluster{height:340px}.hero-bubble:nth-child(1){left:2%;top:9%;width:21%}.hero-bubble:nth-child(2){left:28%;top:0%;width:18%}.hero-bubble:nth-child(3){left:51%;top:9%;width:21%}.hero-bubble:nth-child(4){left:78%;top:2%;width:18%}.hero-bubble:nth-child(5){left:13%;top:38%;width:18%}.hero-bubble:nth-child(6){left:37%;top:31%;width:20%}.hero-bubble:nth-child(7){left:63%;top:38%;width:18%}.hero-bubble:nth-child(8){left:81%;top:56%;width:16%}.hero-bubble:nth-child(9){left:3%;top:68%;width:19%}.hero-bubble:nth-child(10){left:43%;top:68%;width:20%}.capabilities-page .capabilities-media{gap:5%;row-gap:15px}.capabilities-page .capability-placeholder:nth-child(1){width:46%;margin-top:4%}.capabilities-page .capability-placeholder:nth-child(2){width:46%;margin-top:0}.capabilities-page .capability-placeholder:nth-child(3){width:48%;margin:2% 0 0 18%}.capabilities-page .capability-graphic{height:140px}.capabilities-page .capability-caption{display:block;padding:13px}.capabilities-page .capability-caption h3{font-size:16px}.capabilities-page .capability-caption p{text-align:left;margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.capabilities-page .capability-placeholder{transition:transform .3s ease,box-shadow .3s ease;transform-origin:center}.capabilities-page .capability-placeholder:hover,.capabilities-page .capability-placeholder:focus-within{transform:scale(1.05);box-shadow:0 18px 45px #0009;position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.capabilities-page .capabilities-media{position:relative;isolation:isolate}.capabilities-page .capabilities-media:before{content:"";position:absolute;z-index:-1;inset:0;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' preserveAspectRatio='none'%3E%3Cpath d='M45 220 L280 70 L545 280 M45 220 L410 370 L545 280' fill='none' stroke='%23b8c1d0' stroke-opacity='.45'/%3E%3C/svg%3E")}.capabilities-page .capability-placeholder{background:transparent;border:0}.capabilities-page .capability-graphic{clip-path:polygon(15% 0,85% 0,100% 20%,100% 80%,85% 100%,15% 100%,0 80%,0 20%);outline:1px solid #aeb6c355}.capabilities-page .capability-placeholder:nth-child(1){width:32%;margin-top:8%}.capabilities-page .capability-placeholder:nth-child(2){width:28%;margin-top:0}.capabilities-page .capability-placeholder:nth-child(3){width:32%;margin-top:14%}
@media(max-width:760px){.capabilities-page .capability-placeholder:nth-child(1){width:46%;margin-top:8%}.capabilities-page .capability-placeholder:nth-child(2){width:46%;margin-top:0}.capabilities-page .capability-placeholder:nth-child(3){width:48%;margin:2% 0 0 18%}}
.header-cta{color:#bd2229!important;white-space:nowrap}.detail-cta{display:inline-block;color:#fff;font-size:11px;font-weight:bold;border-bottom:1px solid #e63939;padding-bottom:5px;margin-top:6px}.cap-actions{display:flex;gap:25px;flex-wrap:wrap}.hero-visual:after{display:block;z-index:0;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 24%,#fff9 0 1px,transparent 2px),radial-gradient(circle at 78% 20%,#fff8 0 1px,transparent 2px),radial-gradient(circle at 70% 72%,#fff8 0 1px,transparent 2px),radial-gradient(circle at 27% 88%,#f66a 0 1px,transparent 2px);animation:star-glow 8s ease-in-out infinite}.hero-cluster{z-index:1}.hero-cluster-hint{position:relative;z-index:1}@keyframes star-glow{0%,100%{opacity:.35}50%{opacity:.85}}@media(max-width:760px){.site-header .brand img{width:115px}.site-header nav{gap:9px;font-size:10px}.detail-cta{margin-top:8px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.capabilities-page .capability-lists{grid-template-columns:repeat(3,minmax(0,1fr))}.capabilities-page .capabilities-heading p{max-width:460px}@media(max-width:760px){.capabilities-page .capability-lists{grid-template-columns:1fr}}
.capabilities-intro{max-width:430px}.shop-info{margin-top:22px}.shop-info summary{display:inline-flex;gap:18px;align-items:center;cursor:pointer;list-style:none;font-size:11px;font-weight:bold;border:1px solid #7e8695;border-radius:30px;padding:10px 14px;color:#f4f3ef}.shop-info summary::-webkit-details-marker{display:none}.shop-info summary:hover,.shop-info summary:focus-visible{border-color:#e63939}.shop-info p{font-size:13px;line-height:1.5;margin:12px 0 0;color:#c3c5cc}.shop-info[open] summary span{transform:rotate(45deg)}@media(max-width:760px){.capabilities-intro{margin-top:25px}.capabilities-heading .capabilities-intro p{margin-top:0}.shop-info{margin-top:16px}.shop-info p{margin-top:12px!important}}
/* Project review: compact headline bar and full-width constellation canvas. */
.hero{display:flex;flex-direction:column;min-height:0;max-height:none}.hero-copy{width:100%;padding:14px 5%;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:20px}.hero-copy .eyebrow,.hero-copy>p{display:none}.hero-copy h1{font-size:30px;letter-spacing:-.055em;line-height:1;margin:0}.hero-copy h1 br{display:none}.hero-copy h1 em:before{content:' '}.hero-copy .hero-actions{gap:24px}.hero-copy .hero-actions .arrow-link{min-width:130px;margin:0}.hero-visual{width:100%;min-height:590px;max-height:none;height:auto;padding:25px 5% 20px}.hero-cluster{width:100%;max-width:1080px;height:520px;margin:0 auto}.hero-cluster-hint{margin:10px 0 0}
.hero-bubble:nth-child(1){left:3%;top:7%;width:15%}.hero-bubble:nth-child(2){left:25%;top:0%;width:12%}.hero-bubble:nth-child(3){left:47%;top:7%;width:15%}.hero-bubble:nth-child(4){left:80%;top:2%;width:13%}.hero-bubble:nth-child(5){left:13%;top:39%;width:13%}.hero-bubble:nth-child(6){left:34%;top:33%;width:15%}.hero-bubble:nth-child(7){left:61%;top:37%;width:12%}.hero-bubble:nth-child(8){left:81%;top:57%;width:12%}.hero-bubble:nth-child(9){left:2%;top:70%;width:12%}.hero-bubble:nth-child(10){left:47%;top:68%;width:15%}
@media(max-width:760px){.hero-copy{padding:13px 6%;gap:12px;flex-wrap:wrap}.hero-copy h1{font-size:25px}.hero-copy .hero-actions{gap:15px}.hero-copy .hero-actions .arrow-link{min-width:115px;font-size:11px}.hero-visual{min-height:500px;padding:15px 5% 22px}.hero-cluster{height:440px;min-height:0}.hero-bubble:nth-child(1){left:2%;top:7%;width:19%}.hero-bubble:nth-child(2){left:26%;top:0%;width:16%}.hero-bubble:nth-child(3){left:48%;top:7%;width:19%}.hero-bubble:nth-child(4){left:78%;top:2%;width:16%}.hero-bubble:nth-child(5){left:13%;top:38%;width:16%}.hero-bubble:nth-child(6){left:35%;top:32%;width:19%}.hero-bubble:nth-child(7){left:62%;top:37%;width:16%}.hero-bubble:nth-child(8){left:80%;top:57%;width:16%}.hero-bubble:nth-child(9){left:2%;top:68%;width:16%}.hero-bubble:nth-child(10){left:47%;top:68%;width:19%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.hero-copy h1 em:before{content:none}
/* Decorative space effects stay behind the project controls. */
.space-effects{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;color:#a4c0dc}.space-globe{position:absolute;width:230px;height:230px;right:12%;bottom:4%;opacity:.14;perspective:600px}.space-globe svg{display:block;width:100%;height:100%;animation:globe-turn 38s linear infinite}.comet{position:absolute;width:120px;height:1px;opacity:0;background:linear-gradient(90deg,transparent,#c9e3ff 85%,#fff);transform:rotate(-24deg);filter:drop-shadow(0 0 3px #b4d7ff);animation:comet-pass 32s ease-in-out infinite}.comet-one{left:6%;top:12%}.comet-two{right:25%;top:47%;animation-delay:16s}.hero-cluster{z-index:1}
@keyframes globe-turn{from{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}@keyframes comet-pass{0%,78%,100%{opacity:0;translate:0 0}82%{opacity:.45}88%{opacity:.45}94%{opacity:0;translate:210px -90px}}
.hero-bubble:nth-child(1){left:3%;top:7%;width:16%}.hero-bubble:nth-child(2){left:18%;top:0%;width:13%}.hero-bubble:nth-child(3){left:43%;top:7%;width:16%}.hero-bubble:nth-child(4){left:80%;top:2%;width:13%}.hero-bubble:nth-child(5){left:13%;top:39%;width:12%}.hero-bubble:nth-child(6){left:32%;top:33%;width:17%}.hero-bubble:nth-child(7){left:61%;top:37%;width:11%}.hero-bubble:nth-child(8){left:81%;top:57%;width:13%}.hero-bubble:nth-child(9){left:2%;top:70%;width:11%}.hero-bubble:nth-child(10){left:47%;top:68%;width:15%}
@media(max-width:760px){.space-globe{width:150px;height:150px;right:8%;bottom:5%}.comet{width:75px}.hero-bubble:nth-child(1){left:2%;top:7%;width:20%}.hero-bubble:nth-child(2){left:20%;top:0%;width:16%}.hero-bubble:nth-child(3){left:44%;top:7%;width:20%}.hero-bubble:nth-child(4){left:78%;top:2%;width:16%}.hero-bubble:nth-child(5){left:13%;top:38%;width:15%}.hero-bubble:nth-child(6){left:33%;top:32%;width:20%}.hero-bubble:nth-child(7){left:62%;top:37%;width:15%}.hero-bubble:nth-child(8){left:80%;top:57%;width:16%}.hero-bubble:nth-child(9){left:2%;top:68%;width:15%}.hero-bubble:nth-child(10){left:47%;top:68%;width:19%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.capabilities-page .capability-placeholder:nth-child(4){width:26%;margin:1% 0 0 8%}.capability-graphic>video{object-fit:contain;background:#090b10}@media(max-width:760px){.capabilities-page .capability-placeholder:nth-child(3){width:44%;margin:2% 0 0 6%}.capabilities-page .capability-placeholder:nth-child(4){width:44%;margin:0}}
.media-control{display:inline-block;background:none;border:0;border-bottom:1px solid #e63939;color:white;padding:0 0 5px;margin-top:10px;font:700 11px Arial,sans-serif;cursor:pointer}.media-control:focus-visible{outline:2px solid #e63939;outline-offset:4px}
/* Approximation of the requested red horizon globe; independent of the portal. */
.space-globe{width:min(145vw,1600px);height:auto;aspect-ratio:1;left:50%;right:auto;bottom:calc(260px - min(145vw,1600px));transform:translateX(-50%);opacity:.85;color:#e92e42;border-radius:50%;background:radial-gradient(circle at 50% 12%,rgba(198,20,39,.25),rgba(95,5,20,.18) 45%,rgba(20,4,12,.08) 70%);box-shadow:0 -6px 80px rgba(226,28,48,.24);perspective:none}.space-globe svg{animation:none}.space-globe svg circle,.space-globe svg ellipse,.space-globe svg path{fill:none;stroke:currentColor;stroke-width:.34}.space-globe svg .globe-outline{stroke-width:.6}.globe-longitudes{animation:globe-grid 48s ease-in-out infinite}.interactive-glow{position:absolute;inset:0;opacity:0;background:radial-gradient(circle 130px at var(--pointer-x,50%) var(--pointer-y,50%),rgba(180,205,255,.18),transparent 70%);transition:opacity .6s ease;pointer-events:none}.hero-visual.pointer-active .interactive-glow{opacity:1}@keyframes globe-grid{0%,100%{transform:translateX(-15px)}50%{transform:translateX(15px)}}
.comet{animation:comet-sweep 24s linear infinite;opacity:0}.comet-one{left:4%;top:18%;animation-delay:-5s}.comet-two{right:22%;top:37%;animation-delay:-13s}.comet-three{left:49%;top:9%;animation-delay:-20s}@keyframes comet-sweep{0%,100%{opacity:0;translate:0 0}4%,12%{opacity:.38}18%{opacity:0;translate:210px -90px}19%{opacity:0;translate:0 0}}
@media(max-width:760px){.space-globe{width:145vw;bottom:calc(155px - 145vw)}.interactive-glow{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.interactive-glow{display:none}}
.space-globe svg clipPath circle{fill:white;stroke:none}

/* A full-width travelling sky sits behind, never on top of, the project controls. */
.hero-visual{isolation:isolate;overflow:hidden;background:#070a10;padding-left:2.5%;padding-right:2.5%}
.hero-visual:after{display:none}
.space-effects{inset:0;z-index:0;background:radial-gradient(ellipse at 50% 95%,#34101b 0,transparent 45%),linear-gradient(#050810,#10121b 65%,#190b11);overflow:hidden}
.planet-horizon{position:absolute;inset:-8%;background:url('assets/planet-horizon-red.png') center bottom / cover no-repeat;opacity:.85;transform-origin:50% 90%;animation:planet-turn 160s ease-in-out infinite alternate}
.starfield{position:absolute;inset:-15%;pointer-events:none}
.starfield-far{opacity:.58;background-image:radial-gradient(1px 1px at 20px 37px,#eef6ff 95%,transparent),radial-gradient(1px 1px at 110px 98px,#c6d6ee 95%,transparent),radial-gradient(1px 1px at 180px 35px,#fff 95%,transparent),radial-gradient(1px 1px at 242px 155px,#f1bdc0 95%,transparent);background-size:280px 190px;animation:stars-far 100s linear infinite}
.starfield-near{opacity:.7;background-image:radial-gradient(1.5px 1.5px at 45px 70px,#fff 90%,transparent),radial-gradient(1px 1px at 180px 145px,#d6e6ff 90%,transparent),radial-gradient(1.5px 1.5px at 300px 20px,#f8d3d3 90%,transparent);background-size:370px 230px;animation:stars-near 65s linear infinite}
.hero-cluster{max-width:none;height:clamp(520px,53vw,690px)}
.hero-bubble{width:min(15%,190px);filter:drop-shadow(0 10px 18px #000c)}
.hero-bubble:nth-child(1){left:2%;top:7%;width:min(15%,190px)}
.hero-bubble:nth-child(2){left:21%;top:1%;width:min(12%,155px)}
.hero-bubble:nth-child(3){left:43%;top:9%;width:min(15%,190px)}
.hero-bubble:nth-child(4){left:80%;top:3%;width:min(12%,155px)}
.hero-bubble:nth-child(5){left:12%;top:39%;width:min(12%,155px)}
.hero-bubble:nth-child(6){left:32%;top:34%;width:min(16%,205px)}
.hero-bubble:nth-child(7){left:63%;top:38%;width:min(11%,145px)}
.hero-bubble:nth-child(8){left:81%;top:59%;width:min(12%,155px)}
.hero-bubble:nth-child(9){left:3%;top:72%;width:min(11%,145px)}
.hero-bubble:nth-child(10){left:48%;top:69%;width:min(14%,180px)}
.hero-cluster:before{opacity:.75}
.hero-cluster-hint{margin:10px 0 0;text-shadow:0 1px 4px #000}
.celestial,.asteroid{position:absolute;display:block;pointer-events:none}
.celestial{border-radius:50%;box-shadow:inset -8px -6px 12px #08090f,inset 3px 2px 7px #e3c4b455,0 0 18px #d64b3c22;opacity:.65}
.moon-one{width:38px;height:38px;right:27%;top:17%;background:radial-gradient(circle at 32% 29%,#b3a9a4,#665d5c 33%,#23232b 70%)}
.planet-small{width:60px;height:60px;left:68%;bottom:14%;background:radial-gradient(ellipse at 32% 25%,#bc7671,#743c42 36%,#241b28 76%);opacity:.5}
.asteroid{background:radial-gradient(circle at 28% 23%,#b4a7a2,#5d5556 42%,#201e25 78%);clip-path:polygon(24% 4%,65% 0,94% 25%,100% 62%,72% 93%,35% 100%,5% 73%,0 34%);box-shadow:inset -5px -4px 8px #111;opacity:.55}
.asteroid-one{width:22px;height:17px;left:5%;top:49%;transform:rotate(25deg)}
.asteroid-two{width:14px;height:11px;left:55%;top:3%;transform:rotate(-15deg)}
.asteroid-three{width:19px;height:15px;right:3%;bottom:17%;transform:rotate(45deg)}
@keyframes planet-turn{from{transform:scale(1.04) translateX(-1%) rotate(-.5deg)}to{transform:scale(1.08) translateX(1%) rotate(.5deg)}}
@keyframes stars-far{from{transform:translate3d(-12px,6px,0)}to{transform:translate3d(268px,196px,0)}}
@keyframes stars-near{from{transform:translate3d(-20px,-12px,0)}to{transform:translate3d(350px,218px,0)}}
@media(max-width:760px){
 .hero-visual{min-height:510px;padding:18px 3% 22px}
 .hero-cluster{height:455px}
 .hero-bubble:nth-child(1){left:1%;top:8%;width:20%}
 .hero-bubble:nth-child(2){left:22%;top:1%;width:16%}
 .hero-bubble:nth-child(3){left:45%;top:9%;width:20%}
 .hero-bubble:nth-child(4){left:79%;top:3%;width:16%}
 .hero-bubble:nth-child(5){left:12%;top:39%;width:16%}
 .hero-bubble:nth-child(6){left:33%;top:32%;width:20%}
 .hero-bubble:nth-child(7){left:64%;top:38%;width:15%}
 .hero-bubble:nth-child(8){left:80%;top:58%;width:16%}
 .hero-bubble:nth-child(9){left:2%;top:70%;width:16%}
 .hero-bubble:nth-child(10){left:47%;top:69%;width:19%}
 .moon-one{width:24px;height:24px;right:22%;top:19%}.planet-small{width:40px;height:40px;left:67%;bottom:17%}
}
@media(prefers-reduced-motion:reduce){.planet-horizon,.starfield,.comet{animation:none!important}.interactive-glow{display:none}}
/* Let the horizon read as a surface rather than putting stars in front of it. */
.starfield{mask-image:linear-gradient(#000 0%,#000 55%,transparent 88%)}
.hero-cluster:before{inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 650' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23c5d2e4' stroke-opacity='.48' stroke-width='1'%3E%3Cpath d='M95 120 L270 55 L505 130 L860 70 M550 515 L85 510 L180 300 Z M270 55 L180 300 L400 300 L505 130 M400 300 L550 515 M180 300 L85 510'/%3E%3C/g%3E%3C/svg%3E")}
/* A gentle wash keeps project photography distinct from the detailed surface. */
.planet-horizon{background-image:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.24)),url('assets/planet-horizon-red.png');animation-duration:60s}
@keyframes planet-turn{from{transform:scale(1.06) translateX(-3%) rotate(-.35deg)}to{transform:scale(1.06) translateX(3%) rotate(.35deg)}}
/* Extend the night sky into navigation while keeping links legible. */
.site-header{background:#090b10;color:#f6f7fa;border-bottom:1px solid #303643}
.site-header .brand img{filter:drop-shadow(0 1px 2px rgba(255,255,255,.35))}
.site-header nav a{color:#f6f7fa}
.site-header nav a:hover,.site-header nav a:focus-visible{color:#ffb0b0}
.site-header .header-cta{color:#ff8b8b!important}
.site-header .header-cta:hover,.site-header .header-cta:focus-visible{color:#ffc0c0!important}
.site-header nav a[aria-current=page]{text-decoration:underline;text-decoration-color:#ff8b8b;text-underline-offset:5px}

/* A spherical WebGL planet overlays the image only when its texture renders successfully. */
.globe-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.planet-horizon{animation:none}
.space-effects.has-webgl-globe .planet-horizon{opacity:0}

/* Larger near and distant stars drift at different speeds for depth in the sky. */
.starfield-far{opacity:.72;background-image:radial-gradient(circle 2px at 20px 37px,#fff 0 38%,#c2d9f799 60%,transparent 100%),radial-gradient(circle 2px at 110px 98px,#ecf5ff 0 35%,#a9c8ed88 65%,transparent 100%),radial-gradient(circle 2.2px at 180px 35px,#fff 0 36%,#bfd6f788 65%,transparent 100%),radial-gradient(circle 2px at 242px 155px,#ffe6e4 0 35%,#eba9ad88 65%,transparent 100%);animation:stars-far 70s linear infinite}
.starfield-near{opacity:.92;background-image:radial-gradient(circle 4px at 45px 70px,#fff 0 25%,#d5e6ffb3 35%,#9fc8f444 65%,transparent 100%),radial-gradient(circle 3px at 180px 145px,#fff 0 25%,#c4ddffad 40%,#87b5ef33 70%,transparent 100%),radial-gradient(circle 3.5px at 300px 20px,#fff4f1 0 28%,#f4c6c4a6 42%,#efa8ad33 70%,transparent 100%),radial-gradient(circle 2.6px at 320px 195px,#fff 0 30%,#c5dcffa3 45%,transparent 100%);animation:stars-near 42s linear infinite}
@media(prefers-reduced-motion:reduce){.starfield-far,.starfield-near{animation:none!important}}

/* The sky is behind the planet; other celestial decorations sit in front. */
.space-effects .starfield{z-index:0}
.space-effects .planet-horizon,.space-effects .globe-canvas{z-index:1}
.space-effects .celestial,.space-effects .asteroid,.space-effects .interactive-glow,.space-effects .comet{z-index:2}
/* Reveal the starfield through the empty sky in the static fallback artwork. */
.planet-horizon{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 30%,#000 48%);mask-image:linear-gradient(to bottom,transparent 0%,transparent 30%,#000 48%)}

/* The cutout keeps the sky transparent while the planet surface remains opaque. */
.planet-horizon{opacity:1;-webkit-mask-image:none;mask-image:none;background-image:url('assets/planet-horizon-red-cutout.png')}

/* Project motion is decorative; the still remains visible until playback starts. */
.bubble-photo{position:relative}
.bubble-photo .project-preview,.work-image .project-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.bubble-photo.preview-playing .project-preview,.work-image.preview-playing .project-preview{opacity:1}
.work-image .project-preview{transition:transform .5s}
.work-card:hover .project-preview{transform:scale(1.035)}
@media(prefers-reduced-motion:reduce){.project-preview{display:none!important}}

/* Nebula artwork remains behind stars, the opaque planet, and project controls. */
.space-effects::before{
 content:"";
 position:absolute;
 inset:0;
 z-index:0;
 pointer-events:none;
 background: url('assets/nebula-backdrop.png') center / 100% 100% no-repeat;
 opacity:.85;
}


/* Compact contact strip with a consistently readable white headline. */
.contact{padding:22px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.contact h2{font-size:clamp(25px,2.4vw,34px);line-height:1.02;margin:12px 0 0;color:#fff}
.contact h2 em{color:#fff}
.contact-copy{min-width:0;padding:0;margin:0}
.contact-copy p{font-size:14px;margin:0 0 4px}
.contact-note{padding:6px 0}
@media(max-width:760px){.contact{padding:20px 6%;display:flex;align-items:center;gap:18px}.contact h2{font-size:27px}.contact-copy{margin:0}.contact-copy p{font-size:12px}}

/* Two restrained overlaps add depth while keeping every project accessible. */
.hero-bubble{animation:none}
.hero-bubble:nth-child(2){left:calc(2% + min(15%, 190px) - 16px)}
.hero-bubble:nth-child(8){left:calc(63% + min(11%, 145px) - 16px);top:48%}
@media(max-width:760px){
 .hero-bubble:nth-child(2){left:calc(21% - 10px)}
 .hero-bubble:nth-child(8){left:calc(79% - 10px);top:48%}
}

/* Keep selected preview footage fully visible in the expanded project. */
.lightbox-video{width:100%;height:min(65vh,700px);object-fit:contain;background:#080a0f;border-radius:8px}
.lightbox-video[hidden],.lightbox-main[hidden]{display:none}
.footer-location{font-size:11px;line-height:1.6;text-align:center;letter-spacing:.04em}

/* Right-side project spacing and direct, responsive node connections. */
.hero-bubble:nth-child(7){left:70%}
.hero-bubble:nth-child(8){left:calc(70% + min(11%,145px) - 16px)}
.project-connections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;overflow:visible}
.project-connections line{stroke:#c5d2e4;stroke-opacity:.36;stroke-width:1}
@media(max-width:760px){.hero-bubble:nth-child(7){left:68%}.hero-bubble:nth-child(8){left:calc(83% - 10px)}}
/* Selected size variation; Shopify, Nigo and Temple retain their sizes. */
.hero-bubble:nth-child(4){width:min(18%,232.5px);left:auto;right:1%}
.hero-bubble:nth-child(5){width:min(15.6%,201.5px)}
.hero-bubble:nth-child(6){width:min(20.8%,266.5px)}
.hero-bubble:nth-child(7){width:min(14.3%,188.5px);left:70%}
.hero-bubble:nth-child(8){width:min(15.6%,201.5px);left:auto;right:0;top:48%}
.hero-bubble:nth-child(9){width:min(15.4%,203px)}
.hero-bubble:nth-child(10){width:min(18.2%,234px);top:65%}
@media(max-width:760px){
 .hero-bubble:nth-child(4){width:24%;right:0}
 .hero-bubble:nth-child(5){width:20.8%}
 .hero-bubble:nth-child(6){width:26%}
 .hero-bubble:nth-child(7){width:19.5%;left:68%;top:35%}
 .hero-bubble:nth-child(8){width:20.8%;left:auto;right:0;top:53%}
 .hero-bubble:nth-child(9){width:22.4%}
 .hero-bubble:nth-child(10){width:24.7%;top:69%}
}

/* The static fallback shares the low, edge-to-edge skimming horizon. */
.planet-horizon{inset:78% auto auto -40%;width:180%;height:124%;border-radius:50%;background:url('assets/planet-texture-red.png') center top / 100% 100% no-repeat;box-shadow:0 -2px 10px #ed253d,0 -8px 28px #b3133766;animation:surface-drift 100s linear infinite}
@keyframes surface-drift{from{background-position:50% 0}to{background-position:50% 100%}}

/* Six production selections, preserving the polygonal media treatment. */
.capabilities-page .capabilities-media{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}
.capabilities-page .capability-placeholder:nth-child(n){width:auto;margin:0;min-width:0}
.capabilities-page .capability-placeholder:nth-child(3n+2){margin-top:36px}
.capabilities-page .capability-caption{display:block}
.capabilities-page .capability-caption p{text-align:left;margin-top:10px}
@media(max-width:760px){.capabilities-page .capabilities-media{grid-template-columns:1fr;gap:28px}.capabilities-page .capability-placeholder:nth-child(n){margin:0}.capabilities-page .capability-graphic{height:230px}}
.capabilities-page .graphic-video>video{min-width:0;min-height:0;width:100%;height:100%;max-height:220px;object-fit:contain}
@media(max-width:760px){.capabilities-page .graphic-video>video{max-height:230px}}

/* Mobile-only: retain natural nebula proportions and remove the exterior halo. */
@media(max-width:760px){
 .space-effects::before{background-size:cover;background-position:12% center}
 .planet-horizon{box-shadow:none;border-top:1px solid #ff1420}
}
