/* Personal narrative and project imagery. */
.work-scroll.is-pinned{height:calc(var(--project-count,6) * 100svh)}
.philosophy{background:#233657;color:#f4f1e9;padding-bottom:100px}
.philosophy .section-label{color:#b6c3db}
.geks-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:9%;align-items:end;margin:65px 0 32px}
.geks-intro h2{font-size:clamp(35px,4.8vw,76px);line-height:1.14;letter-spacing:-.045em;word-break:keep-all}
.geks-intro>p{font-size:17px;max-width:330px;color:#d1d9e8;word-break:keep-all}
.geks-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #526584;margin-bottom:40px}
.geks-tabs>button{padding:0 12px 25px;text-align:left;position:relative;color:#91a0bd;transition:color .3s;min-width:0}
.geks-tabs>button+button{border-left:1px solid #526584}
.geks-tabs strong{display:block;font-size:clamp(95px,21vw,320px);font-weight:570;line-height:1.1;letter-spacing:-.09em;transition:transform .5s var(--ease);transform-origin:bottom left}
.geks-tabs>button:hover strong{transform:translateY(-8px)}
.geks-tabs>button[aria-selected=true]{color:#b8cbff}
.geks-tabs>button[aria-selected=true]:after{content:'';height:4px;background:currentColor;position:absolute;bottom:-1px;left:12px;right:12px}
.geks-tabs>button>span{display:flex;justify-content:space-between;align-items:baseline;font-size:clamp(13px,1.4vw,22px);gap:8px}
.geks-tabs small{font-size:11px;letter-spacing:.05em}
.geks-panel:not([hidden]){display:grid;grid-template-columns:1.15fr 1fr;gap:9%;align-items:center;animation:geks-enter .45s var(--ease)}
.geks-panel[hidden]{display:none}
.geks-panel figure{min-width:0}
.geks-panel .photo-open{width:100%;padding:0;background:#1b2c48}
.geks-panel img{width:100%;height:440px;object-fit:contain}
.geks-panel figcaption{font-size:10px;letter-spacing:.04em;color:#b6c3db;margin-top:12px}
.geks-value>span{font-size:11px;letter-spacing:.12em;color:#b8cbff}
.geks-value h3{font-size:clamp(30px,3vw,48px);line-height:1.25;letter-spacing:-.04em;word-break:keep-all;margin:24px 0}
.geks-value p{font-size:19px;line-height:1.8;max-width:430px;color:#d1d9e8;word-break:keep-all}
.geks-next{display:block;text-align:left;margin-top:28px;padding:16px 0 0;border-top:1px solid #526584;width:100%;color:#b8cbff}
.geks-next>span{font-size:14px}.geks-next>small{display:block;font-size:12px;color:#b6c3db;margin-top:7px;word-break:keep-all}
.photo-interlude{display:grid;grid-template-columns:1.7fr 1fr;gap:3vw;align-items:center;padding:70px var(--gutter);background:#dddace}
.photo-interlude figure:last-child{padding:45px 0 0 30px}
.photo-interlude img{width:100%;max-height:590px;object-fit:contain}
.photo-interlude .photo-open{padding:0;width:100%}
.photo-interlude figcaption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.04em;margin-top:15px}
@keyframes geks-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.geks-intro{grid-template-columns:1fr;gap:22px}.geks-intro>p{max-width:500px}.geks-panel:not([hidden]){gap:5%}.geks-panel img{height:330px}.geks-value p{font-size:16px}.photo-interlude{padding-top:45px;padding-bottom:45px}.photo-interlude figure:last-child{padding-left:0}}
@media(max-width:560px){.philosophy{padding-top:50px;padding-bottom:55px}.philosophy .section-label{font-size:8px}.philosophy .section-label>span:last-child{max-width:130px;text-align:right}.geks-intro{margin-top:38px}.geks-intro h2{font-size:36px}.geks-intro>p{font-size:14px}.geks-tabs{margin-bottom:28px}.geks-tabs>button{padding:0 6px 15px}.geks-tabs strong{font-size:23vw}.geks-tabs>button>span{display:block;font-size:11px}.geks-tabs small{display:block;font-size:9px;margin-top:5px}.geks-panel:not([hidden]){grid-template-columns:1fr;gap:25px}.geks-panel img{height:310px}.geks-value h3{font-size:30px;margin:12px 0}.geks-value p{font-size:16px}.geks-value{min-height:180px}.photo-interlude{grid-template-columns:1fr;gap:30px}.photo-interlude figure:last-child{padding:0;width:65%;margin-left:auto}.photo-interlude figcaption{font-size:8px}}
@media(prefers-reduced-motion:reduce){.geks-panel:not([hidden]){animation:none}.geks-tabs strong{transition:none}.geks-tabs>button:hover strong{transform:none}}
@media print{.philosophy{background:#fff;color:#191b19}.geks-tabs{display:none}.geks-panel[hidden],.geks-panel:not([hidden]){display:grid;break-inside:avoid;margin-top:25px}.geks-panel img{height:230px}}

.has-scroll-motion .geks-scroll{height:500svh;margin:0 calc(-1 * var(--gutter));position:relative}
.has-scroll-motion .geks-stage{position:sticky;top:var(--header);height:calc(100svh - var(--header));padding:18px var(--gutter) 14px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:20px;background:#233657;overflow:hidden}
.has-scroll-motion .geks-tabs{margin:0;border-bottom-color:#526584}
.has-scroll-motion .geks-tabs>button{padding:0 12px 12px}
.has-scroll-motion .geks-tabs strong{font-size:clamp(70px,15svh,158px);line-height:.95;letter-spacing:-.06em;margin-bottom:10px;transform:translateY(5px) scale(.92);opacity:.55;transition:color .6s,transform .8s var(--ease),opacity .5s}
.has-scroll-motion .geks-tabs>button[aria-selected=true] strong{transform:translateY(0) scale(1);opacity:1}
.has-scroll-motion .geks-tabs>button[aria-selected=true]:after{transform:scaleX(var(--value-progress,0));transform-origin:left;transition:none}
.has-scroll-motion .geks-tabs>button>span{font-size:13px}
.has-scroll-motion .geks-panels{position:relative;min-height:0}
.has-scroll-motion .geks-panel,.has-scroll-motion .geks-panel[hidden]{position:absolute;inset:0;display:grid;grid-template-columns:1.15fr 1fr;gap:7%;align-items:center;animation:none;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s,visibility 0s .6s}
.has-scroll-motion .geks-panel.is-current{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s,visibility 0s}
.has-scroll-motion .geks-panel figure{height:100%;min-height:0;display:flex;flex-direction:column}
.has-scroll-motion .geks-panel .photo-open{flex:1;min-height:0;overflow:hidden;clip-path:inset(0 100% 0 0);transition:clip-path .8s cubic-bezier(.22,.7,.2,1)}
.has-scroll-motion .geks-panel.is-current .photo-open{clip-path:inset(0)}
.has-scroll-motion .geks-panel img{width:100%;height:100%;object-fit:contain;transform:translateY(var(--geks-drift,0px)) scale(1.035)}
.has-scroll-motion .geks-panel figcaption{margin-top:8px;font-size:9px}
.has-scroll-motion .geks-value{min-height:0}
.has-scroll-motion .geks-value>*{opacity:0;transform:translateY(24px);transition:opacity .5s,transform .65s var(--ease)}
.has-scroll-motion .is-current .geks-value>*{opacity:1;transform:translateY(0)}
.has-scroll-motion .is-current .geks-value h3{transition-delay:.08s}
.has-scroll-motion .is-current .geks-value p{transition-delay:.15s}
.has-scroll-motion .is-current .geks-next{transition-delay:.2s}
.has-scroll-motion .geks-value h3{font-size:clamp(26px,3vw,44px);margin:14px 0}
.has-scroll-motion .geks-value p{font-size:clamp(14px,1.25vw,18px);line-height:1.8}
.has-scroll-motion .geks-next{margin-top:18px;padding-top:12px}
@media(max-width:850px){
 .has-scroll-motion .geks-stage{padding-top:14px;gap:16px;grid-template-rows:auto minmax(0,1fr)}
 .has-scroll-motion .geks-tabs strong{font-size:clamp(56px,10svh,100px)}
 .has-scroll-motion .geks-tabs>button>span{font-size:11px}
 .has-scroll-motion .geks-panel,.has-scroll-motion .geks-panel[hidden]{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:18px;align-items:stretch}
 .has-scroll-motion .geks-value h3{font-size:26px;line-height:1.2;margin:9px 0 10px}
 .has-scroll-motion .geks-value p{font-size:15px;line-height:1.65;max-width:none}
 .has-scroll-motion .geks-value>span{font-size:9px}
 .has-scroll-motion .geks-next{margin-top:12px;padding-top:10px;display:flex;justify-content:space-between;gap:15px;align-items:baseline}
 .has-scroll-motion .geks-next>span{font-size:11px;white-space:nowrap}
 .has-scroll-motion .geks-next>small{font-size:9px;max-width:150px;margin-top:0;text-align:right}
 .has-scroll-motion .geks-tabs>button{padding:0 6px 10px}
 .has-scroll-motion .geks-tabs small{display:none}
 .has-scroll-motion .geks-panel .photo-open{min-height:0}
}

@media print{.has-scroll-motion .geks-scroll{height:auto;margin:0}.has-scroll-motion .geks-stage{position:static;height:auto;display:block;padding:0;overflow:visible}.has-scroll-motion .geks-panels{position:static}.has-scroll-motion .geks-panel,.has-scroll-motion .geks-panel[hidden]{position:static;opacity:1;visibility:visible;display:grid}.has-scroll-motion .geks-panel .photo-open{clip-path:none}.has-scroll-motion .geks-value>*{opacity:1;transform:none}.has-scroll-motion .geks-panel img{height:230px;transform:none}}

.geks-closing{font-size:clamp(24px,3vw,46px);line-height:1.6;letter-spacing:-.035em;word-break:keep-all;max-width:1000px;margin:65px 0 0;border-top:1px solid #526584;padding-top:50px;color:#d1d9e8}
/* Fictional studio visualization; no source product captures are published. */
.studio-concept{width:100%;max-width:1200px;box-shadow:0 18px 55px #23365720;background:#f8f6f2}
.studio-concept img{width:100%;height:auto;max-height:65svh;object-fit:contain}
.studio-concept .photo-open{display:block;width:100%;padding:0}
.case-main-visual:has(.studio-concept){min-height:0}
.case-main-visual .studio-concept img{max-height:none}
@media(max-width:560px){.geks-closing{font-size:23px;line-height:1.65;margin-top:35px;padding-top:30px}}
