@view-transition{navigation:auto}.bigbore-transition{view-transition-name:project-bigbore}::view-transition-group(project-bigbore){animation-duration:.8s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{background:#171a18;color:#eeeee8;font-family:'Instrument Sans',sans-serif}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #019edb;outline-offset:6px}figure,h1,h2,p{margin:0}em{font-family:'Instrument Serif',serif;font-weight:400}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;top:-100px;left:20px;z-index:50;background:#fff;color:#111;padding:12px}.skip:focus{top:20px}
.gallery-header{height:104px;position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 4.8vw;background:linear-gradient(#171a18 30%,#171a1800)}.gallery-brand{display:flex;align-items:center;gap:12px}.gallery-brand img{filter:brightness(0) invert(1)}.gallery-header nav{display:flex;gap:16px;align-items:center;font-size:13px}.back,.talk{padding:15px 22px;border-radius:30px}.back{background:#eeeee8;color:#151717}.talk{background:#303532;display:flex;gap:40px}.talk span,.launch span,.finale-link span,.return-link span{display:inline-block;transition:transform .35s}a:hover>span:last-child{transform:translate(3px,-3px)}
.gallery-runway{position:relative}.gallery-stage{padding:130px 5vw 100px}.gallery-track{display:flex;flex-direction:column;gap:80px}.gallery-panel{position:relative;min-width:0;margin:0}.eyebrow{font-size:10px;letter-spacing:.08em;color:#8faaa0;line-height:1.6}.gallery-intro h1{font-weight:400;letter-spacing:-.055em;font-size:clamp(60px,6.2vw,110px);line-height:1;margin:24px 0}.gallery-intro h1>span{color:#019edb}.intro-statement{font-size:clamp(22px,2.2vw,37px);line-height:1.18;letter-spacing:-.03em;margin-bottom:34px}.intro-statement em{color:#b6c3bb}.intro-details{display:grid;grid-template-columns:1.8fr 1fr;gap:40px}.intro-details p{font-size:14px;line-height:1.7;color:#b9c2bc;max-width:420px}.intro-details p+p{margin-top:18px}.intro-details dl{margin:0}.intro-details dt{font-size:9px;color:#7d9f91;letter-spacing:.06em;margin-bottom:10px}.intro-details dd{font-size:12px;line-height:1.6;margin:0 0 22px}.launch{margin-top:28px;display:inline-flex;border-bottom:1px solid #80948a;gap:36px;padding:12px 0;font-size:13px}
.media-window{height:100%;position:relative;overflow:hidden;border-radius:8px;background:#22251e}.media-window>img{width:110%;height:100%;object-fit:cover;transform:translateX(var(--image-x,-5%)) scale(var(--image-scale,1));transition:scale .9s cubic-bezier(.22,1,.36,1);display:block}.media-window:hover>img{scale:1.025}.gallery-landscape .media-window{height:65vh;min-height:350px}.gallery-landscape>figcaption,.gallery-portrait>figcaption{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.06em;padding-top:17px;color:#a5b4ac}.gallery-landscape>figcaption>span:last-child{letter-spacing:0;font-size:12px}.image-kicker{position:absolute;bottom:25px;left:28px;font-size:10px;letter-spacing:.08em;color:#fff;text-shadow:0 2px 8px #000}.gallery-portrait .media-window{height:78vh;min-height:470px}.gallery-portrait .media-window:after{content:'';position:absolute;inset:0;background:linear-gradient(#0008,transparent 60%);pointer-events:none}.portrait-type{position:absolute;z-index:1;top:35px;left:32px;font-size:clamp(40px,4vw,78px);line-height:.95;letter-spacing:-.06em}.portrait-type em{color:#dedace}
h2{font-size:clamp(38px,3.7vw,70px);font-weight:400;letter-spacing:-.05em;line-height:1.06}.collection-title{display:flex;justify-content:space-between;align-items:start;gap:25px}.collection-pair{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:35px}.collection-pair figure{overflow:hidden;border-radius:8px;position:relative;height:420px;transform:translateY(var(--lift,0px))}.collection-pair figure:nth-child(2){margin-top:40px}.collection-pair img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.22,1,.36,1)}.collection-pair figure:hover img{transform:scale(1.04)}.collection-pair figcaption{position:absolute;bottom:0;left:0;right:0;padding:45px 20px 20px;background:linear-gradient(transparent,#0009);font-size:10px;letter-spacing:.05em}.credit{font-size:10px;line-height:1.6;color:#85958c;display:block;margin-top:24px}
.gallery-system{background:#122125;border:1px solid #49646a50;border-radius:8px;padding:40px;overflow:hidden}.gallery-system h2{margin-top:20px}.gallery-system>p{font-size:16px;line-height:1.65;max-width:650px;color:#aebfbc}.connection-stage{height:300px;position:relative;display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:8%;align-items:center;isolation:isolate}.connection-orbit{position:absolute;width:230px;height:230px;left:50%;top:50%;transform:translate(-50%,-50%) rotateX(60deg);border:1px solid #019edb45;border-radius:50%;z-index:-1}.connection-node{display:flex;flex-direction:column;gap:14px;position:relative;background:#182c30;padding:24px 16px;border:1px solid #607a7e55;border-radius:6px;text-align:center;box-shadow:0 15px 30px #0002;z-index:1}.connection-node small{font-size:8px;letter-spacing:.1em;color:#8da9a9}.connection-node strong{font-weight:400;font-size:clamp(20px,2.2vw,42px);letter-spacing:-.04em}.connection-node>span{position:absolute;right:-40%;top:40%;color:#019edb}.accounting>span{left:-40%;right:auto}.store{padding-block:40px;background:linear-gradient(135deg,#29424a,#17282d);border-color:#60838b}.store i{height:2px;background:#019edb;width:30%;align-self:center;box-shadow:0 0 14px #019edb80}.connection-lines{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible}.connection-lines path{fill:none;stroke:#426b76;stroke-width:1}.connection-lines .connection-energy{stroke:#46caf9;stroke-width:2;stroke-dasharray:15 245;stroke-dashoffset:var(--energy-offset,0);filter:drop-shadow(0 0 5px #019edb)}
.gallery-finale{background:#e6e9e3;color:#18231d;padding:55px;display:flex;flex-direction:column;align-items:start;justify-content:center;border-radius:8px}.gallery-finale .eyebrow{color:#657c70}.gallery-finale h2{font-size:clamp(55px,6vw,110px);margin:35px 0;line-height:1}.finale-link{font-size:16px;display:flex;justify-content:space-between;gap:60px;width:100%;border-bottom:1px solid #809285;padding-bottom:20px}.return-link{font-size:12px;margin-top:30px;display:flex;justify-content:space-between;width:100%}
.gallery-controls{position:fixed;inset:auto 0 0;height:76px;padding:0 4.8vw;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#171a18f5}.motion-toggle{border:0;background:none;font-size:10px;color:#99ada2;padding:12px 0;min-width:90px;text-align:left}.gallery-position{display:flex;gap:20px;align-items:center;font-size:10px;color:#9cb0a4}.progress-track{width:130px;height:1px;background:#506358}.progress-track i{display:block;width:100%;height:2px;background:#019edb;transform:scaleX(var(--progress,0));transform-origin:left}.counter{font-variant-numeric:tabular-nums}.counter b{color:#eeeee8;font-weight:400}.gallery-arrows{display:flex;align-items:center;gap:12px}.scroll-hint{font-size:9px;letter-spacing:.06em;color:#9cb0a4;margin-right:16px}.gallery-arrows button{width:38px;height:38px;border:1px solid #5b706350;border-radius:50%;background:none}.gallery-arrows button:hover{background:#34473b}.gallery-arrows button:disabled{opacity:.3;cursor:default}
html[data-gallery="horizontal"] .gallery-runway{height:var(--runway-height,100vh)}html[data-gallery="horizontal"] .gallery-stage{height:100svh;position:sticky;top:0;overflow:hidden;padding:0}html[data-gallery="horizontal"] .gallery-track{height:100%;padding:125px 5vw 105px;flex-direction:row;align-items:center;gap:7vw;width:max-content;transform:translate3d(var(--track-x,0px),0,0);will-change:transform}html[data-gallery="horizontal"] .gallery-panel{flex-shrink:0}html[data-gallery="horizontal"] .gallery-intro{width:48vw;max-width:850px}html[data-gallery="horizontal"] .gallery-landscape{width:76vw}html[data-gallery="horizontal"] .gallery-landscape .media-window{height:calc(100svh - 250px);min-height:300px;max-height:850px}html[data-gallery="horizontal"] .gallery-portrait{width:38vw}html[data-gallery="horizontal"] .gallery-portrait .media-window{height:calc(100svh - 195px);min-height:320px}html[data-gallery="horizontal"] .gallery-collection{width:72vw}html[data-gallery="horizontal"] .collection-pair figure{height:clamp(200px,42svh,650px)}html[data-gallery="horizontal"] .gallery-system{width:72vw;height:calc(100svh - 235px);min-height:430px;display:flex;flex-direction:column;justify-content:space-between}html[data-gallery="horizontal"] .connection-stage{height:auto;flex:1;min-height:180px}html[data-gallery="horizontal"] .gallery-finale{width:58vw;height:calc(100svh - 210px);min-height:450px}
@media(max-width:900px){.gallery-header{height:85px;padding:0 24px}.gallery-brand img:last-child{width:115px}.gallery-brand img:first-child{width:28px}.gallery-header nav{gap:7px}.back,.talk{padding:12px 15px}.talk{gap:18px}.gallery-stage{padding:125px 24px 130px}.gallery-intro{max-width:620px}.gallery-landscape .media-window{height:60vh}.gallery-portrait .media-window{height:70vh}.gallery-portrait{max-width:560px}.collection-title{display:block}.collection-title h2{margin-top:20px}.collection-pair figure{height:350px}.gallery-system{padding:30px}.connection-stage{gap:4%}.connection-node{padding:20px 10px}.connection-node>span{display:none}.gallery-finale{padding:40px}.gallery-position [data-panel-label]{display:none}.scroll-hint{display:none}.progress-track{width:80px}.gallery-controls{padding:0 24px}.gallery-position{gap:12px}.gallery-arrows{gap:7px}}
@media(max-width:480px){.talk{display:none}.intro-details{gap:25px;grid-template-columns:1.75fr 1fr}.intro-details p{font-size:13px}.intro-details dd{font-size:11px}.gallery-intro h1{font-size:70px}.gallery-landscape .media-window{min-height:380px}.gallery-landscape figcaption>span:last-child{display:none}.collection-pair{gap:12px}.collection-pair figure{height:300px}.collection-pair figcaption{font-size:8px;padding:30px 12px 14px}.gallery-system{padding:25px 20px}.connection-stage{height:220px;gap:9px}.connection-node{padding:18px 6px;gap:10px}.connection-node strong{font-size:18px}.connection-node small{font-size:6px}.connection-orbit{width:180px;height:180px}.gallery-finale{padding:35px 25px}.gallery-finale h2{font-size:64px}.progress-track{width:40px}.gallery-controls{gap:10px;padding-inline:20px}.motion-toggle{min-width:80px;font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}::view-transition-group(*){animation-duration:0s!important}}
html[data-gallery-paused="true"] .media-window img{transform:translateX(-5%)!important}html[data-gallery-paused="true"] .collection-pair figure{transform:none!important}html[data-gallery-paused="true"] .media-window img,html[data-gallery-paused="true"] .collection-pair img{transition:none!important;scale:1!important}

/* Project proof is kept distinct from client product photography. */
.connection-node[aria-pressed="true"]{border-color:#39c6f3;background:#24434c;box-shadow:0 0 32px #019edb22}
.connection-node{transition:background .25s,border-color .25s,transform .35s}
button.connection-node:hover{transform:translateY(-6px)}
.platform-extras{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.platform-extras button{border:1px solid #60838b66;border-radius:24px;padding:10px 16px;background:transparent;font-size:12px}
.platform-extras button[aria-pressed="true"]{background:#019edb;color:#06171d;border-color:#019edb}
[data-platform-copy]{min-height:54px}
.project-story{max-width:1440px;margin:0 auto;padding:140px 6vw 180px;scroll-margin-top:90px}
.project-story header{margin-bottom:90px}.project-story header h2{margin-top:24px}
.project-story section{display:grid;grid-template-columns:1fr 2fr;gap:70px;border-top:1px solid #53665b55;padding:48px 0}
.project-story h3{font-size:18px;font-weight:400;margin:0}.project-story p{font-size:clamp(17px,1.5vw,23px);line-height:1.6;color:#b8c5be;max-width:760px}.project-story p+p{margin-top:24px}
.project-story ol{margin:0;padding-left:22px}.project-story li{padding:0 0 30px 16px}.project-story li strong{font-weight:400;color:#eeeee8;font-size:21px}.project-story li p{font-size:17px;margin-top:10px}
.stack-list{display:grid;grid-template-columns:1fr 1fr;gap:35px}.stack-list>span{font-size:28px}.stack-list small{display:block;font-size:13px;color:#8ea99c;margin-top:10px}
html[data-reading-story="true"] .gallery-controls{visibility:hidden;pointer-events:none}
@media(max-width:900px){.project-story{padding:80px 24px 120px}.project-story section{grid-template-columns:1fr;gap:24px;padding:35px 0}.project-story header{margin-bottom:50px}.gallery-system{min-height:570px}}
html[data-gallery="horizontal"] .gallery-system{height:calc(100svh - 210px);min-height:510px;padding:28px 36px}
html[data-gallery="horizontal"] .gallery-system .connection-stage{min-height:150px}
html[data-gallery="horizontal"] .gallery-system .credit{margin-top:10px;font-size:9px}
html[data-gallery="horizontal"] .gallery-system [data-platform-copy]{font-size:14px;min-height:46px}

.stack-jump{display:flex;width:max-content;gap:32px;margin-top:16px;padding:8px 0;color:#67cced;font-size:13px;border-bottom:1px solid #67cced55}
#tech-stack{scroll-margin-top:115px}.tech-stack h3{font-size:clamp(36px,4vw,64px);letter-spacing:-.05em;margin-top:12px}.project-story .stack-intro{font-size:16px;margin-top:24px;color:#9bb0a4}
.technology-list{margin:0}.technology-list>div{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:23px 0;border-bottom:1px solid #53665b55}.technology-list>div:first-child{padding-top:0}.technology-list dt{font-size:12px;color:#8fa89b;padding-top:7px}.technology-list dd{margin:0;font-size:clamp(21px,2vw,30px);letter-spacing:-.025em}.technology-list dd span{display:block;font-size:13px;letter-spacing:0;color:#b5c2ba;margin-top:8px;line-height:1.5}
@media(max-width:600px){.technology-list>div{grid-template-columns:1fr;gap:10px}.technology-list dt{font-size:11px}.tech-stack{scroll-margin-top:100px}}
