:root{--ink:#07111d;--navy:#0b1928;--cyan:#35d6e7;--muted:#91a5b5;--line:rgba(255,255,255,.13);--paper:#f1f4f5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:#f7fbfc;font-family:Arial,Helvetica,sans-serif}.top{height:82px;padding:0 max(5vw,28px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:absolute;width:100%;z-index:4}.brand{display:flex;align-items:center;gap:13px;color:white;text-decoration:none;font-weight:800;font-size:17px;letter-spacing:.16em}.brand small{display:block;color:var(--muted);font-size:7px;letter-spacing:.28em;margin-top:4px}.mark{width:34px;height:34px;border:2px solid var(--cyan);transform:rotate(45deg);display:block}.top nav{display:flex;gap:28px;align-items:center}.top nav a{color:#c4d0d8;text-decoration:none;font-size:12px}.top nav .cta{border:1px solid rgba(53,214,231,.5);padding:11px 16px;color:var(--cyan)}.detail-hero{min-height:670px;padding:165px max(5vw,28px) 80px;position:relative;overflow:hidden;background:radial-gradient(circle at 80% 40%,rgba(31,125,158,.35),transparent 34%),linear-gradient(120deg,#07111d 55%,#10273a)}.detail-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(53,214,231,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(53,214,231,.09) 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(90deg,transparent,#000)}.kicker{color:var(--cyan);font-size:11px;font-weight:700;letter-spacing:.28em;position:relative}.kicker:before{content:"";display:inline-block;width:30px;height:1px;background:var(--cyan);vertical-align:middle;margin-right:11px}.detail-hero h1{font-size:clamp(48px,7vw,96px);line-height:.98;letter-spacing:-.05em;max-width:1050px;margin:24px 0;position:relative}.detail-hero h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--cyan)}.intro{font-size:18px;line-height:1.75;color:#b8c6cf;max-width:710px;position:relative}.hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:35px;position:relative}.hero-tags span{border:1px solid var(--line);padding:11px 15px;color:#c6d2da;font-size:11px;letter-spacing:.1em}.body{background:var(--paper);color:#0a1722;padding:100px max(5vw,28px)}.lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:start}.lead-grid h2,.systems h2{font-size:clamp(34px,4.5vw,62px);line-height:1.05;letter-spacing:-.04em;margin:15px 0}.lead-grid p{color:#526574;line-height:1.8}.eyebrow{font-size:10px;color:#087b87;letter-spacing:.24em;font-weight:700}.capabilities{border-top:1px solid #c8d3d9}.capabilities article{display:grid;grid-template-columns:60px 1fr;gap:18px;border-bottom:1px solid #c8d3d9;padding:22px 0}.capabilities span{color:#738896;font-size:11px}.capabilities h3{margin:0 0 8px;font-size:17px}.capabilities p{margin:0;font-size:13px}.systems{padding:95px max(5vw,28px);background:#0b1928}.system-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:42px;border-top:1px solid var(--line)}.system-grid div{min-height:150px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.system-grid strong{font-size:14px;display:block}.system-grid span{color:var(--muted);font-size:12px;line-height:1.6;display:block;margin-top:12px}.outcomes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.outcomes div{padding:45px;background:#07111d}.outcomes b{font-size:28px;color:var(--cyan);display:block}.outcomes span{color:var(--muted);font-size:12px}.contact{padding:90px max(5vw,28px);display:flex;justify-content:space-between;align-items:center;gap:35px;background:linear-gradient(120deg,#123047,#0a1723)}.contact h2{font-size:clamp(34px,4vw,58px);margin:0}.button{display:inline-flex;background:var(--cyan);color:#05121c;padding:17px 22px;text-decoration:none;font-size:13px;font-weight:700;gap:28px}.foot{padding:35px max(5vw,28px);display:flex;justify-content:space-between;color:#718492;font-size:11px;background:#050c13}@media(max-width:800px){.top nav a:not(.cta){display:none}.lead-grid{grid-template-columns:1fr}.system-grid{grid-template-columns:1fr 1fr}.outcomes{grid-template-columns:1fr}.contact{align-items:flex-start;flex-direction:column}.detail-hero{min-height:620px}.foot{flex-direction:column;gap:12px}}@media(max-width:520px){.system-grid{grid-template-columns:1fr}.detail-hero{padding-top:135px}.detail-hero h1{font-size:48px}.body,.systems{padding:70px 24px}}


/* References & Myllykoski commissioning case */
.ref-card-link{display:block;color:inherit;text-decoration:none;height:100%}.ref-open{position:absolute;right:20px;top:18px;color:#35d6e7;font-size:9px;letter-spacing:.18em;border:1px solid #35d6e766;padding:8px 10px;background:#07111dcc}.ref-card-link:hover .ref-open{background:#35d6e7;color:#07111d}.reference-hero{background:radial-gradient(circle at 72% 34%,#123b55,#07111d 35%)}.case-button{display:inline-flex;gap:18px;align-items:center;margin-top:26px;padding:15px 18px;border:1px solid #0a6670;color:#0a6670;text-decoration:none;font-weight:700;font-size:12px}.case-button:hover{background:#0a6670;color:white}.case-visual{min-height:390px;background:#07111d;position:relative;overflow:hidden}.case-visual.mini{min-height:360px}.dc-grid{position:absolute;inset:0;background:linear-gradient(90deg,#35d6e71f 1px,transparent 1px),linear-gradient(#35d6e71f 1px,transparent 1px),radial-gradient(circle at 50% 60%,#15435e,transparent 45%);background-size:36px 36px,36px 36px,auto;transform:perspective(600px) rotateX(57deg) scale(1.5);transform-origin:center bottom}.case-badge{position:absolute;left:44px;bottom:44px;border-left:2px solid #35d6e7;padding-left:18px;display:flex;flex-direction:column}.case-badge small{color:#35d6e7;letter-spacing:.2em}.case-badge strong{color:white;font-size:30px;margin:5px 0}.case-badge span{color:#93a9b7;font-size:10px;letter-spacing:.14em}.disclosure{padding:28px max(5vw,28px);background:#e7eef1;color:#536772;border-top:1px solid #c8d2d8;border-bottom:1px solid #c8d2d8}.disclosure p{max-width:1100px;margin:0 auto;font-size:12px;line-height:1.8}.case-hero{min-height:720px;background:#06101a;position:relative;overflow:hidden;padding:170px max(5vw,28px) 60px;display:flex;flex-direction:column;justify-content:space-between}.case-hero:after{content:"FIN04";position:absolute;right:-30px;top:115px;color:#ffffff08;font-size:230px;font-weight:900;letter-spacing:-.06em}.case-hero-grid{position:absolute;inset:0;background:linear-gradient(90deg,#35d6e70c 1px,transparent 1px),linear-gradient(#35d6e70c 1px,transparent 1px),radial-gradient(circle at 78% 40%,#123d58,transparent 30%);background-size:52px 52px,52px 52px,auto}.case-copy{position:relative;z-index:2;max-width:900px}.case-copy h1{font-size:clamp(58px,9vw,130px);line-height:.83;margin:20px 0 30px;letter-spacing:-.06em}.case-copy h1 em{color:#35d6e7;font-style:normal}.case-copy .intro{color:#b2c4cf;max-width:720px;font-size:20px;line-height:1.7}.case-facts{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff22;margin-top:60px}.case-facts div{padding:24px 0;border-right:1px solid #ffffff18}.case-facts div+div{padding-left:28px}.case-facts strong{display:block;color:white;font-size:18px;letter-spacing:.12em;text-transform:uppercase}.case-facts span{display:block;color:#8ea5b5;margin-top:8px;font-size:11px}.architecture-case{background:#07111d;padding:100px max(5vw,28px);color:white}.architecture-case h2{font-size:clamp(36px,4.5vw,64px);margin-bottom:55px}.flow{display:flex;align-items:stretch;border-top:1px solid #ffffff1f;border-bottom:1px solid #ffffff1f}.flow div{flex:1;min-height:120px;display:flex;flex-direction:column;justify-content:center;padding:18px}.flow div b{color:#35d6e7;font-size:12px;letter-spacing:.12em}.flow div small{color:#879eac;margin-top:9px}.flow i{align-self:center;color:#35d6e7;font-style:normal;opacity:.6}.project-context{padding:100px max(5vw,28px);background:#edf2f4;color:#0c1a25;display:grid;grid-template-columns:1.2fr .8fr;gap:10vw;align-items:center}.project-context h2{font-size:clamp(36px,4vw,58px);margin:15px 0}.project-context p{color:#5c6f7c;line-height:1.8}.context-metric{border-left:1px solid #9eb0b9;padding:30px 0 30px 40px;display:flex;flex-direction:column}.context-metric strong{font-size:64px;letter-spacing:-.05em}.context-metric span{font-size:18px;color:#087b87;font-weight:700}.context-metric small{margin-top:18px;color:#6f818d;line-height:1.6}.case-body{background:#f6f8f9}
@media(max-width:900px){.case-facts{grid-template-columns:1fr}.case-facts div{border-right:0;border-bottom:1px solid #ffffff18;padding-left:0!important}.flow{display:grid;grid-template-columns:1fr}.flow i{display:none}.flow div{min-height:82px;border-bottom:1px solid #ffffff18}.project-context{grid-template-columns:1fr}.context-metric{border-left:0;border-top:1px solid #9eb0b9;padding-left:0}.case-visual.mini{margin-top:30px}}
@media(max-width:560px){.case-hero{min-height:740px;padding-top:130px}.case-copy h1{font-size:54px}.case-copy .intro{font-size:16px}.case-facts{margin-top:34px}.case-badge{left:24px;bottom:24px}.case-badge strong{font-size:22px}}

.scope-note{margin-top:32px;border-top:1px solid #c8d3d9;border-bottom:1px solid #c8d3d9;display:grid;grid-template-columns:120px 1fr;gap:0}.scope-note b,.scope-note span{padding:11px 0;border-bottom:1px solid #d7e0e4;font-size:11px}.scope-note b{color:#087b87;letter-spacing:.12em}.scope-note span{color:#445a68}.scope-note b:nth-last-child(-n+2),.scope-note span:nth-last-child(-n+2){border-bottom:0}.site-gallery{padding:100px max(5vw,28px);background:#0a1723}.gallery-head{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}.gallery-head h2{font-size:clamp(36px,4.5vw,64px);margin:14px 0 0}.gallery-head>p{color:#8ea5b5;line-height:1.75;font-size:13px}.gallery-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:14px;margin-top:46px}.gallery-grid figure{margin:0}.photo-slot{min-height:330px;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;border:1px solid #ffffff1f;background:radial-gradient(circle at 70% 25%,#1b4c67,transparent 36%),linear-gradient(145deg,#102a3c,#07111d 72%)}.photo-slot:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#35d6e70b 1px,transparent 1px),linear-gradient(#35d6e70b 1px,transparent 1px);background-size:34px 34px}.photo-slot span,.photo-slot b,.photo-slot small{position:relative}.photo-slot span{position:absolute;top:20px;left:22px;color:#35d6e7;font-size:11px;letter-spacing:.16em}.photo-slot b{font-size:15px;letter-spacing:.12em}.photo-slot small{margin-top:8px;color:#7f97a6}.gallery-grid figcaption{color:#8299a8;font-size:11px;line-height:1.5;padding-top:12px}.gallery-grid figure:first-child .photo-slot{min-height:430px}.gallery-grid figure:not(:first-child) .photo-slot{min-height:430px}@media(max-width:900px){.gallery-head{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.gallery-grid figure .photo-slot{min-height:300px!important}.scope-note{grid-template-columns:100px 1fr}}

/* FIN04 project photography */
.case-hero-photo{background-image:linear-gradient(90deg,rgba(4,13,21,.96) 0%,rgba(4,13,21,.88) 38%,rgba(4,13,21,.38) 72%,rgba(4,13,21,.56) 100%),url('/assets/references/myllykoski-site-overview.jpg');background-size:cover;background-position:center 42%;}
.case-hero-photo .case-hero-grid{background:linear-gradient(90deg,#35d6e70a 1px,transparent 1px),linear-gradient(#35d6e70a 1px,transparent 1px);background-size:52px 52px;}
.gallery-grid-two{grid-template-columns:1.35fr 1fr;align-items:stretch;}
.gallery-photo{background:#07111d;border:1px solid #ffffff18;overflow:hidden;}
.gallery-image{display:block;position:relative;overflow:hidden;min-height:430px;background:#06101a;}
.gallery-image img{width:100%;height:430px;display:block;object-fit:cover;transition:transform .7s ease,filter .7s ease;}
.gallery-photo:first-child .gallery-image img{object-position:center center;}
.gallery-photo:nth-child(2) .gallery-image img{object-position:center center;}
.gallery-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(3,10,16,.55));pointer-events:none;}
.gallery-image:hover img{transform:scale(1.025);filter:brightness(1.05);}
.image-label{position:absolute;left:18px;top:18px;z-index:2;padding:8px 10px;background:rgba(5,17,28,.86);border:1px solid #35d6e777;color:#9eeaf1;font-size:9px;font-weight:800;letter-spacing:.16em;}
.gallery-photo figcaption{padding:16px 18px 20px!important;color:#8da4b3!important;}
.gallery-photo figcaption b{display:block;color:#dbe8ee;font-size:12px;margin-bottom:6px;letter-spacing:.03em;}
@media(max-width:900px){.gallery-grid-two{grid-template-columns:1fr}.gallery-image,.gallery-image img{min-height:280px;height:280px}.case-hero-photo{background-position:62% center}.case-hero-photo:before{content:"";position:absolute;inset:0;background:rgba(4,13,21,.18)}}

/* v6 layout hardening — prevent overlap at all viewport widths */
html,body{max-width:100%;overflow-x:hidden}
img,svg{max-width:100%}
.top,.case-hero,.body,.site-gallery,.architecture-case,.project-context,.contact,.foot{min-width:0}
.top>* , .case-copy,.case-facts>div,.lead-grid>div,.gallery-head>*,.gallery-grid>*,.flow>div,.project-context>*{min-width:0}
.brand span,.top nav a,.case-copy h1,.case-copy .intro,.capabilities h3,.capabilities p,.gallery-photo figcaption,.project-context p,.contact h2{overflow-wrap:anywhere}

/* Header */
.top{height:auto;min-height:82px;gap:24px}
.top nav{min-width:0;flex-wrap:wrap;justify-content:flex-end}

/* Hero: explicit document flow, no collision with facts */
.case-hero{min-height:0;padding-top:160px;padding-bottom:0;display:block}
.case-copy{padding-bottom:54px}
.case-copy h1{max-width:100%;margin-bottom:26px}
.case-copy .intro{max-width:760px}
.hero-tags{max-width:900px}
.case-facts{margin-top:0;width:100%}
.case-facts div{min-height:105px}
.case-hero:after{pointer-events:none;z-index:0}
.case-hero-grid{pointer-events:none}

/* Content grids */
.lead-grid{gap:clamp(48px,7vw,110px)}
.capabilities article>div{min-width:0}
.scope-note span{min-width:0;overflow-wrap:anywhere}

/* Gallery: fixed aspect logic rather than competing fixed heights */
.gallery-grid-two{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.gallery-photo{min-width:0}
.gallery-image{min-height:0;aspect-ratio:16/10}
.gallery-image img{width:100%;height:100%;min-height:0;object-fit:cover}
.gallery-photo figcaption{min-height:76px}
.image-label{max-width:calc(100% - 36px);white-space:normal;line-height:1.35}

/* Architecture flow */
.flow{min-width:0}
.flow div{min-width:0}
.flow i{flex:0 0 20px;text-align:center}

/* Context and CTA */
.context-metric strong{font-size:clamp(44px,6vw,64px)}
.contact>div{min-width:0}
.button{flex:0 0 auto}

@media(max-width:1000px){
  .case-copy h1{font-size:clamp(58px,10vw,96px)}
  .gallery-grid-two{grid-template-columns:1fr 1fr}
  .project-context{gap:50px}
}

@media(max-width:900px){
  .case-hero{padding-top:132px}
  .case-copy{padding-bottom:36px}
  .case-facts{grid-template-columns:1fr}
  .case-facts div{min-height:0;padding:20px 0!important}
  .gallery-grid-two{grid-template-columns:1fr}
  .gallery-image{aspect-ratio:16/9;height:auto;min-height:0}
  .gallery-image img{height:100%;min-height:0}
  .gallery-photo figcaption{min-height:0}
  .project-context{grid-template-columns:1fr;gap:36px}
  .contact{align-items:flex-start}
}

@media(max-width:700px){
  .top{padding:16px 20px;align-items:flex-start}
  .brand{font-size:14px;letter-spacing:.11em;min-width:0}
  .mark{width:29px;height:29px;flex:0 0 29px}
  .top nav{gap:8px}
  .top nav .cta{padding:9px 11px}
  .case-hero{padding-left:22px;padding-right:22px;padding-top:126px}
  .case-copy h1{font-size:clamp(46px,15vw,72px);line-height:.9;letter-spacing:-.055em}
  .hero-tags{gap:7px}
  .hero-tags span{padding:9px 10px;font-size:10px}
  .body,.site-gallery,.architecture-case,.project-context{padding-left:22px;padding-right:22px}
  .case-facts strong{font-size:16px}
  .scope-note{grid-template-columns:90px minmax(0,1fr)}
  .flow{display:block}
  .flow i{display:none}
  .flow div{min-height:78px;border-bottom:1px solid #ffffff18}
  .contact{padding-left:22px;padding-right:22px}
  .button{width:100%;justify-content:space-between}
}

@media(max-width:480px){
  .top{min-height:76px}
  .top nav a:not(.cta){display:none}
  .brand small{letter-spacing:.18em}
  .case-hero{padding-top:118px}
  .case-copy h1{font-size:44px}
  .case-copy .intro{font-size:15px;line-height:1.6}
  .case-hero:after{font-size:120px;right:-18px;top:100px}
  .gallery-image{aspect-ratio:4/3}
  .image-label{left:12px;top:12px;max-width:calc(100% - 24px);font-size:8px}
  .scope-note{grid-template-columns:1fr}
  .scope-note b{padding-bottom:3px;border-bottom:0}
  .scope-note span{padding-top:3px}
  .scope-note b:nth-last-child(-n+2),.scope-note span:nth-last-child(-n+2){border-bottom:0}
  .context-metric{padding-top:24px}
}
