#case{background:var(--ui-bg, var(--gm-bg));color:var(--ui-text, var(--gm-black))}#case .snap-section:not(.case-next){min-height:var(--vh-screen, 100vh)}.case-hero{position:relative;height:var(--vh-screen, 100vh);background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:flex-end;cursor:pointer}.case-hero.seated{cursor:default}.case-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,color-mix(in srgb,var(--gm-black) 60%,transparent) 0%,transparent 48%)}.case-hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--space-md, 16px);padding:var(--space-2xl, 48px);color:var(--ui-text-inverse, var(--gm-white));transform:translateY(var(--case-lift, 0px))}.case-hero.settling .case-hero-copy{transition:transform .9s var(--ease-out, ease-out)}.case-hero.seated .case-hero-copy{transform:translateY(0)}@media(prefers-reduced-motion:reduce){.case-hero.settling .case-hero-copy{transition:none}}.case-hero-copy h1{margin:0;font-family:var(--font-display);font-weight:var(--weight-light, 400);font-size:var(--type-hero);line-height:var(--leading-tight, 1.05)}.case-sub{margin:0;font-family:var(--font-ui);font-size:var(--type-md, 15px);letter-spacing:var(--tracking-wide, .05em);text-transform:uppercase;color:var(--ui-text-inverse-muted, var(--gm-light))}.case-sub.is-placeholder{font-style:italic;text-transform:none;letter-spacing:normal}.case-tags{display:flex;flex-wrap:wrap;gap:var(--space-2xs, 4px);list-style:none;margin:0;padding:0}.case-tags li{font-family:var(--font-mono);font-size:var(--type-xs, 11px);font-weight:var(--weight-bold, 700);letter-spacing:var(--tracking-wider, .1em);text-transform:uppercase;padding:var(--space-3xs, 2px) var(--space-sm, 12px);border:1px solid color-mix(in srgb,var(--gm-white) 40%,transparent);color:var(--ui-text-inverse, var(--gm-white))}.case-shot{position:relative;height:var(--vh-screen, 100vh);overflow:hidden;background-size:cover;background-position:center;background-repeat:no-repeat}.case-shot-index{position:absolute;left:var(--space-2xl, 48px);bottom:var(--space-2xl, 48px);font-family:var(--font-mono);font-size:var(--type-sm, 13px);letter-spacing:var(--tracking-widest, .15em);color:color-mix(in srgb,var(--gm-white) 80%,transparent);mix-blend-mode:difference}.case-gallery{display:grid;grid-template-columns:minmax(280px,34%) 1fr;height:var(--vh-screen, 100vh);background:var(--ui-bg, var(--gm-bg))}.cg-text{display:flex;flex-direction:column;justify-content:center;gap:var(--space-lg, 24px);padding:var(--space-2xl, 48px)}.cg-lead{margin:0;max-width:34ch;font-family:var(--font-display);font-weight:var(--weight-light, 400);font-size:clamp(22px,2.2vw,34px);line-height:1.2;color:var(--ui-text, var(--gm-black))}.cg-nav{display:flex;align-items:center;gap:var(--space-md, 16px);margin-top:var(--space-sm, 12px)}.cg-arrow{width:46px;height:46px;border-radius:999px;cursor:pointer;background:none;border:1px solid var(--ui-border, var(--gm-border));font-size:18px;color:var(--ui-text, var(--gm-black));display:flex;align-items:center;justify-content:center;transition:background var(--hover-ms, .32s),color var(--hover-ms, .32s),border-color var(--hover-ms, .32s)}.cg-arrow:hover{background:var(--ui-text, var(--gm-black));color:var(--ui-bg, var(--gm-bg));border-color:var(--ui-text, var(--gm-black))}.cg-arrow:disabled{opacity:.3;cursor:default;background:none;color:var(--ui-text, var(--gm-black));border-color:var(--ui-border, var(--gm-border))}.cg-count{font-family:var(--font-mono);font-size:var(--type-sm, 13px);letter-spacing:var(--tracking-wide, .05em);color:var(--ui-text-muted, var(--gm-mid))}.cg-count b{color:var(--ui-text, var(--gm-black));font-weight:400}.cg-count i{font-style:normal;margin:0 2px;opacity:.5}.cg-viewport{position:relative;overflow:hidden;height:var(--vh-screen, 100vh);background:var(--gm-black)}.cg-track{display:flex;height:100%;transform:translate(calc(var(--cg-i, 0) * -100%));transition:transform .62s cubic-bezier(.22,1,.36,1);cursor:grab}.cg-track.dragging{transition:none;cursor:grabbing}.cg-slide{flex:0 0 100%;height:100%;margin:0}.cg-slide img{width:100%;height:100%;object-fit:cover;display:block;user-select:none}.case-plans{display:flex;flex-direction:column;justify-content:center;gap:var(--space-2xl, 48px);height:var(--vh-screen, 100vh);padding:var(--space-3xl, 64px) var(--space-2xl, 48px);background:var(--gm-white, #fff);color:var(--gm-black, #27251F)}.plans-head{display:flex;flex-direction:column;gap:var(--space-sm, 12px)}.plans-head h2{margin:0;font-family:var(--font-display);font-weight:var(--weight-light, 400);font-size:var(--type-display, clamp(30px, 4vw, 56px));line-height:1.05}.plans-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xl, 48px);flex:1;max-height:62vh}.plan-frame{position:relative;margin:0;border:1px solid color-mix(in srgb,var(--gm-black) 18%,transparent);background:repeating-linear-gradient(0deg,transparent 0 39px,color-mix(in srgb,var(--gm-black) 5%,transparent) 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,color-mix(in srgb,var(--gm-black) 5%,transparent) 39px 40px)}.plan-frame figcaption{position:absolute;left:var(--space-md, 16px);bottom:var(--space-md, 16px);font-family:var(--font-mono);font-size:var(--type-xs, 11px);letter-spacing:var(--tracking-wide, .05em);text-transform:uppercase;color:color-mix(in srgb,var(--gm-black) 55%,transparent)}.case-story{display:flex;align-items:center;height:var(--vh-screen, 100vh);padding:var(--space-3xl, 64px) var(--space-2xl, 48px);background:var(--ui-bg, var(--gm-bg))}.story-beats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3xl, 64px);width:100%;max-width:1200px;margin:0 auto}.beat{display:flex;flex-direction:column;gap:var(--space-sm, 12px)}.beat-index{font-family:var(--font-mono);font-size:var(--type-sm, 13px);color:var(--ui-text-muted, var(--gm-mid));margin-bottom:var(--space-xs, 8px)}.beat p{margin:0;font-family:var(--font-body);font-size:var(--type-lg, 16px);line-height:var(--leading-relaxed, 1.65);color:var(--ui-text, var(--gm-black))}.case-eyebrow{font-family:var(--font-ui);font-size:var(--type-xs, 11px);letter-spacing:var(--tracking-widest, .15em);text-transform:uppercase;color:var(--ui-text-muted, var(--gm-mid))}.case-materials{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg, 24px);height:var(--vh-screen, 100vh);padding:var(--space-2xl, 48px);background:var(--ui-bg, var(--gm-bg));color:var(--ui-text, var(--gm-black))}.mat-eyebrow{align-self:flex-start}.mat-mosaic{width:min(80vw,calc((var(--vh-screen, 100vh) - 190px) * .75));aspect-ratio:3 / 4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:0}.mat-cell{position:relative;margin:0;min-height:0}.mat-img{overflow:hidden;display:flex;align-items:center;justify-content:center;background-color:color-mix(in srgb,var(--gm-black, #27251F) 5%,transparent);background-size:cover;background-position:center;background-repeat:no-repeat}.mat-img figcaption{font-family:var(--font-display);font-weight:var(--weight-light, 400);font-size:var(--type-md, 15px);letter-spacing:.02em;color:var(--gm-white, #fff);text-shadow:0 1px 10px color-mix(in srgb,var(--gm-black, #000) 45%,transparent)}.mat-spec{display:flex;flex-direction:column;justify-content:center;gap:var(--space-sm, 12px);padding:var(--space-md, 16px)}.mat-spec-label{font-family:var(--font-mono);font-size:var(--type-xs, 11px);letter-spacing:var(--tracking-widest, .15em);text-transform:uppercase;color:var(--ui-text-muted, var(--gm-mid))}.mat-spec ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.mat-spec li{font-family:var(--font-mono);font-size:var(--type-sm, 13px);line-height:1.5;color:var(--ui-text, var(--gm-black))}.case-info{display:flex;align-items:center;height:var(--vh-screen, 100vh);padding:var(--space-3xl, 64px) var(--space-2xl, 48px);background:var(--ui-bg, var(--gm-bg));color:var(--ui-text, var(--gm-black))}.info-main{display:flex;flex-direction:column;gap:var(--space-lg, 24px)}.info-data{max-width:64ch}.info-logo{width:120px;height:56px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ui-border, var(--gm-border));font-family:var(--font-mono);font-size:var(--type-xs, 11px);text-transform:uppercase;letter-spacing:var(--tracking-wide, .05em);color:var(--ui-text-muted, var(--gm-mid))}.info-name{margin:0;font-family:var(--font-display);font-weight:var(--weight-light, 400);font-size:var(--type-hero);line-height:1.02}.info-loc{margin:0;font-family:var(--font-ui);font-size:var(--type-md, 15px);letter-spacing:var(--tracking-wide, .05em);text-transform:uppercase;color:var(--ui-text-muted, var(--gm-mid))}.info-data{margin:var(--space-md, 16px) 0 0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg, 24px) var(--space-2xl, 48px)}.info-item{display:flex;flex-direction:column;gap:2px}.info-item dt{font-family:var(--font-mono);font-size:var(--type-xs, 11px);text-transform:uppercase;letter-spacing:var(--tracking-widest, .15em);color:var(--ui-text-muted, var(--gm-mid))}.info-item dd{margin:0;font-family:var(--font-body);font-size:var(--type-lg, 16px);color:var(--ui-text, var(--gm-black))}.info-map{position:relative;margin:0;height:62vh;background:radial-gradient(circle at center,color-mix(in srgb,var(--gm-black, #27251F) 5%,transparent) 0 1px,transparent 1px) 0 0 / 28px 28px,var(--gm-white, #fff);border:1px solid var(--ui-border, var(--gm-border));display:flex;align-items:center;justify-content:center}.map-pin{position:relative;width:12px;height:12px;border-radius:50%;background:var(--gm-black, #27251F)}.map-pin:after{content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid color-mix(in srgb,var(--gm-black, #27251F) 30%,transparent);animation:pinPulse 2.6s ease-out infinite}@keyframes pinPulse{0%{transform:scale(.5);opacity:.8}to{transform:scale(1.7);opacity:0}}@media(prefers-reduced-motion:reduce){.map-pin:after{animation:none}}.info-map figcaption{position:absolute;left:var(--space-md, 16px);bottom:var(--space-md, 16px);font-family:var(--font-mono);font-size:var(--type-xs, 11px);letter-spacing:var(--tracking-wide, .05em);text-transform:uppercase;color:var(--ui-text-muted, var(--gm-mid))}.case-next{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--space-2xs, 4px);height:calc(var(--vh-screen, 100vh) / 2);min-height:calc(var(--vh-screen, 100vh) / 2);background-size:cover;background-position:center;background-repeat:no-repeat;padding:var(--space-2xl, 48px);text-decoration:none;color:var(--ui-text-inverse, var(--gm-white))}.case-next:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--gm-black) 35%,transparent);transition:background var(--duration-base, .2s)}.case-next:hover:before{background:color-mix(in srgb,var(--gm-black) 50%,transparent)}.case-next-label{position:relative;z-index:1;font-family:var(--font-ui);font-size:var(--type-xs, 11px);letter-spacing:var(--tracking-widest, .15em);text-transform:uppercase;color:var(--ui-text-inverse-muted, var(--gm-light))}.case-next-name{position:relative;z-index:1;font-family:var(--font-display);font-weight:var(--weight-light, 400);font-size:var(--type-display, clamp(36px, 5vw, 66px))}@media(max-width:820px){.case-gallery{grid-template-columns:1fr;grid-template-rows:auto 1fr}.cg-viewport{height:auto}.plans-grid{grid-template-columns:1fr;max-height:none}.story-beats{grid-template-columns:1fr;gap:var(--space-xl, 32px)}.case-story{height:auto;min-height:var(--vh-screen, 100vh)}}@media(max-width:640px){.case-hero-copy,.cg-text,.case-plans,.case-story,.case-materials,.case-info,.case-next{padding-left:var(--gutter);padding-right:var(--gutter)}.case-plans,.case-story,.case-info{padding-top:var(--space-2xl, 48px);padding-bottom:var(--space-2xl, 48px)}.case-shot-index{left:var(--gutter);bottom:var(--gutter)}.info-map{height:26vh}.info-name{font-size:clamp(30px,9vw,48px)}.case-materials{align-items:stretch;gap:var(--space-md, 16px)}.mat-mosaic{width:100%;aspect-ratio:auto;grid-template-rows:repeat(4,auto) auto}.mat-img{aspect-ratio:1}.mat-spec{grid-area:5 / 1 / 6 / -1!important;padding:var(--space-md, 16px) 0 0;border-top:1px solid var(--ui-border, var(--gm-border))}.mat-spec ul{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xs, 4px) var(--space-md, 16px)}.cg-nav{margin-top:var(--space-xs, 8px)}}
