/* LOE – loeclub.nl. Layout: cinematic, dark. Full-bleed photo triptych hero with oversized type over it; a huge running word band; "een dag met LOE" as three timed scenes; packed/unpacked toggle; colour swatches that repaint the band; big waitlist close. One dark look on purpose, like the reference reels. */
:root{
  --night:#0F1512;      /* deep green-black ground */
  --night-2:#161E1A;
  --paper:#EEEBE3;      /* off-white text */
  --mute:#9EA39A;
  --line:rgba(238,235,227,.14);
  --olive:#5C6140;
  --olive-soft:#8A8F63;
  --sand:#E7E2D5;
  --sans:"Inter Tight",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --w:1240px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--night);color:var(--paper);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--night)}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--olive-soft);outline-offset:3px}
.wrap{max-width:var(--w);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.035em;text-wrap:balance}
p{margin:0}
.it{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.small{font-size:13px;color:var(--mute);letter-spacing:.02em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;background:var(--paper);color:var(--night);font:600 15px/1 var(--sans);text-decoration:none;border:1px solid var(--paper);cursor:pointer;transition:background .2s,color .2s}
.btn:hover{background:transparent;color:var(--paper)}
.btn.ghost{background:transparent;color:var(--paper);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--paper)}

/* header */
.hdr{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);z-index:50;transition:background .3s,backdrop-filter .3s}
.hdr.solid{background:rgba(15,21,18,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hdr .wrap{display:flex;justify-content:space-between;align-items:center;min-height:68px;gap:16px}
.hdr img{height:18px;width:auto;filter:invert(1) brightness(1.05)}
.hdr nav{display:flex;gap:26px;font-size:14px;color:var(--mute)}
.hdr nav a{text-decoration:none}
.hdr nav a:hover{color:var(--paper)}
@media (max-width:760px){.hdr nav{display:none}}

/* hero */
.hero{position:relative;height:clamp(640px,100svh,900px);overflow:hidden;isolation:isolate}
.tri{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;z-index:-2}
.tri div{overflow:hidden}
.tri img{width:100%;height:100%;object-fit:cover;animation:drift 22s ease-in-out infinite alternate;transform-origin:50% 60%}
.tri div:nth-child(2) img{animation-delay:-7s}
.tri div:nth-child(3) img{animation-delay:-14s}
@keyframes drift{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,21,18,.55) 0%,rgba(15,21,18,.08) 30%,rgba(15,21,18,.25) 55%,rgba(15,21,18,.94) 100%)}
.grain{position:absolute;inset:-50%;z-index:-1;opacity:.07;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}50%{transform:translate(-4%,3%)}100%{transform:translate(3%,-2%)}}
.hero .wrap{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-block:0 clamp(28px,5vw,56px)}
.hero h1{font-size:clamp(54px,10.5vw,168px);line-height:.86;letter-spacing:-.055em;max-width:12ch}
.hero h1 .it{font-size:1.04em}
.hero .row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-top:clamp(20px,3vw,32px)}
.hero .row p{max-width:40ch;color:#D8D6CF;font-size:clamp(16px,1.4vw,19px)}
.hero .cta{display:flex;gap:10px;flex-wrap:wrap}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.chip{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:rgba(15,21,18,.35);backdrop-filter:blur(6px)}
@media (max-width:760px){.tri{grid-template-columns:1fr}.tri div:nth-child(n+2){display:none}}
@media (prefers-reduced-motion:no-preference){
  .hero h1,.hero .row,.chips{animation:up 1.1s cubic-bezier(.2,.7,.2,1) both}
  .chips{animation-delay:.15s}.hero .row{animation-delay:.35s}
}
@keyframes up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

/* word band */
.band{border-block:1px solid var(--line);overflow:hidden;padding-block:clamp(18px,3vw,30px);background:var(--night)}
.band .track{display:flex;width:max-content;animation:run 40s linear infinite}
.band span{font-size:clamp(46px,8vw,120px);font-weight:600;letter-spacing:-.045em;white-space:nowrap;padding-right:.5em;color:transparent;-webkit-text-stroke:1px rgba(238,235,227,.55)}
.band span.f{color:var(--paper);-webkit-text-stroke:0}
.band span.s{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--olive-soft);-webkit-text-stroke:0}
@keyframes run{to{transform:translateX(-50%)}}

section{padding-block:clamp(72px,11vw,150px)}
.lead-h{font-size:clamp(36px,5.6vw,84px);line-height:.95;max-width:16ch}

/* day */
.day-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,64px)}
.day-head p{max-width:38ch;color:var(--mute)}
.scenes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,22px)}
@media (max-width:820px){.scenes{grid-template-columns:1fr}}
.scene{position:relative;overflow:hidden;border-radius:18px;aspect-ratio:3/4;background:var(--night-2)}
.scene img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.scene:hover img{transform:scale(1.05)}
.scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,21,18,0) 45%,rgba(15,21,18,.88))}
.scene .cap{position:absolute;left:20px;right:20px;bottom:20px;z-index:1;display:flex;flex-direction:column;gap:6px}
.scene time{font-family:var(--serif);font-style:italic;font-size:clamp(34px,3.6vw,52px);line-height:1;color:var(--paper)}
.scene h3{font-size:20px;letter-spacing:-.02em}
.scene p{font-size:15px;color:#CFCDC6}

/* packed toggle */
.pack{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:center}
@media (max-width:820px){.pack{grid-template-columns:1fr}}
.pack .txt{display:flex;flex-direction:column;gap:20px;min-width:0}
.pack .txt p{color:var(--mute);max-width:40ch}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px;align-self:flex-start}
.seg button{font:600 14px/1 var(--sans);color:var(--mute);background:none;border:0;border-radius:999px;padding:11px 18px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--paper);color:var(--night)}
.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.list li{display:flex;justify-content:space-between;gap:16px;padding-block:13px;border-bottom:1px solid var(--line);font-size:16px}
.list li span:last-child{color:var(--mute);font-size:14px}
.frame{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:#5f5e5a;max-width:100%}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .7s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.frame img.in{object-position:50% 40%}
.frame img[aria-hidden="true"]{opacity:0;transform:scale(1.04)}

/* detail */
.detail{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:end}
@media (max-width:820px){.detail{grid-template-columns:1fr}}
.detail figure{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:4/5;max-width:100%}
.detail figure img{width:100%;height:100%;object-fit:cover}
.detail .txt{display:flex;flex-direction:column;gap:22px;padding-bottom:8px}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.specs div{background:var(--night);padding:16px 16px 18px;display:flex;flex-direction:column;gap:4px}
.specs b{font-size:22px;letter-spacing:-.02em;font-weight:600}
.specs span{font-size:13px;color:var(--mute)}

/* colours */
.colours{transition:background .8s ease}
.col-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center}
@media (max-width:820px){.col-grid{grid-template-columns:1fr}}
.col-img{position:relative;aspect-ratio:3/4;max-width:520px;width:100%;justify-self:center}
.col-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:normal;transition:opacity .45s ease}
.col-stage{border-radius:22px;background:#D6D4D0;padding:4%;transition:background .8s ease}
.swatches{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.sw{width:44px;height:44px;border-radius:50%;border:1px solid rgba(238,235,227,.3);cursor:pointer;padding:0;transition:transform .2s}
.sw:hover{transform:scale(1.08)}
.sw[aria-pressed="true"]{box-shadow:0 0 0 3px var(--night),0 0 0 5px var(--paper)}
.colname{font-family:var(--serif);font-style:italic;font-size:clamp(48px,7vw,104px);line-height:.9;color:var(--paper)}

/* close */
.close{position:relative;overflow:hidden;text-align:left}
.close .big{font-size:clamp(60px,13vw,210px);line-height:.85;letter-spacing:-.06em;font-weight:600}
.close .big .it{color:var(--olive-soft)}
.sign{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(28px,4vw,44px);max-width:560px}
.sign input{flex:1 1 240px;min-width:0;min-height:54px;border-radius:999px;border:1px solid var(--line);background:rgba(238,235,227,.06);color:var(--paper);padding:0 22px;font:400 16px var(--sans)}
.sign input::placeholder{color:#8C918A}
.note{font-size:14px;color:var(--mute);margin-top:14px}
.ok{margin-top:24px;font-size:20px}
.err{color:#E7B3A0;font-size:14px;margin-top:10px}
footer{border-top:1px solid var(--line);padding-block:34px 44px}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--mute);font-size:14px}
footer img{height:16px;filter:invert(1) brightness(1.05);opacity:.9}

.reveal{transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.js .reveal.pre{opacity:.001;transform:translateY(30px)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal.pre{opacity:1;transform:none}}

/* --- v2: design-feedback toegepast --- */
.hdr nav a{padding-block:12px}
.hdr .logo{display:inline-flex;align-items:center;min-height:44px}
.hdr .btn{min-height:44px;padding:0 20px;font-size:14px}
.seg button{min-height:44px;padding:0 20px}
.mini{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.mini label{flex-basis:100%}
.mini input{flex:1 1 200px;min-width:0;min-height:50px;border-radius:999px;border:1px solid var(--line);background:rgba(238,235,227,.06);color:var(--paper);padding:0 20px;font:400 16px var(--sans)}
.mini input::placeholder{color:#8C918A}
.mini .err,.mini .note{flex-basis:100%;margin-top:0}
.faq{max-width:820px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding-block:20px;font-size:19px;font-weight:500;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--olive-soft);font-size:24px;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details p{padding-bottom:22px;color:var(--mute);max-width:60ch}
.faq-sec{padding-top:0}

/* --- v3: productgerichte hero --- */
.hero{height:auto;min-height:0}
.hero::after{background:linear-gradient(90deg,rgba(15,21,18,.94) 0%,rgba(15,21,18,.82) 45%,rgba(15,21,18,.55) 100%),linear-gradient(180deg,rgba(15,21,18,.4),rgba(15,21,18,.9))}
.hero .wrap.hgrid{height:auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(110px,13vw,150px) clamp(48px,6vw,80px)}
@media (max-width:860px){.hero .wrap.hgrid{grid-template-columns:1fr}}
.htxt{display:flex;flex-direction:column;min-width:0}
.hero h1{font-size:clamp(50px,8vw,124px);max-width:11ch}
.sub{max-width:44ch;color:#D8D6CF;font-size:clamp(16px,1.4vw,19px);margin-top:clamp(18px,2.4vw,26px)}
.facts{list-style:none;margin:clamp(22px,3vw,30px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden;max-width:560px;background:var(--line);gap:1px}
.facts li{background:rgba(15,21,18,.7);padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.facts b{font-size:20px;letter-spacing:-.02em}
.facts span{font-size:12px;color:var(--mute)}
@media (max-width:480px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hero .cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:clamp(22px,3vw,30px)}
.prod{margin:0;border-radius:22px;background:#ECECE9;color:#141414;padding:18px 18px 16px;display:flex;flex-direction:column;gap:12px;max-width:520px;width:100%;justify-self:end;transition:background .6s ease;box-shadow:0 30px 80px rgba(0,0,0,.45)}
@media (max-width:860px){.prod{justify-self:start}}
.pimg{position:relative;aspect-ratio:1/1;width:100%;max-width:100%}
.pimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:opacity .4s ease}
.prod figcaption{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;border-top:1px solid rgba(20,20,20,.12);padding-top:12px}
.prod figcaption .small{color:#5d5f58;display:block}
.prod figcaption b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:30px;line-height:1.1}
.price{font-size:26px;font-weight:600;letter-spacing:-.02em}
.hsw{display:flex;gap:8px;flex-wrap:wrap}
.hsw button{width:30px;height:30px;border-radius:50%;border:1px solid rgba(20,20,20,.2);cursor:pointer;padding:0}
.hsw button[aria-pressed="true"]{box-shadow:0 0 0 2px #ECECE9,0 0 0 4px #141414}
@media (prefers-reduced-motion:no-preference){.prod{animation:up 1.1s .25s cubic-bezier(.2,.7,.2,1) both}.sub,.facts,.hero .cta{animation:up 1.1s .35s cubic-bezier(.2,.7,.2,1) both}}
@media (max-width:860px){.hero .wrap.hgrid{gap:0}.htxt{display:contents}.hero .chips{order:1}.hero h1{order:2}.prod{order:3;margin-top:22px;max-width:420px}.sub{order:4}.facts{order:5}.hero .cta{order:6}}

/* --- v4: kleurensectie is de opener --- */
.colours.top{padding-block:clamp(104px,12vw,150px) clamp(56px,8vw,110px)}
.csub{color:#D8D6CF;max-width:40ch;margin:18px 0 0;font-size:clamp(16px,1.4vw,19px)}
.cprice{display:flex;align-items:baseline;gap:12px;margin:18px 0 14px}
.cprice b{font-size:28px;letter-spacing:-.02em}
.cprice span{font-size:14px;color:var(--mute)}
.ccta{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}

/* --- v6: één lettertype, wachtlijstvoordeel --- */
.it{font-family:var(--sans);font-style:normal;font-weight:inherit;letter-spacing:inherit;color:var(--olive-soft)}
.colname{font-family:var(--sans);font-style:normal;font-weight:600;letter-spacing:-.045em;font-size:clamp(44px,6.4vw,92px)}
.band span.s{font-family:var(--sans);font-style:normal;font-weight:600;letter-spacing:-.045em}
.scene time{font-family:var(--sans);font-style:normal;font-weight:600;letter-spacing:-.03em;font-size:clamp(28px,3vw,40px)}
.close .big{line-height:.92}
.close-sub{color:var(--mute);max-width:44ch;margin-top:clamp(22px,3vw,32px);font-size:clamp(16px,1.4vw,19px)}
.close-sub b{color:var(--paper);font-weight:600}
.perk{margin-top:26px;border:1px solid var(--line);border-radius:18px;padding:18px;background:rgba(238,235,227,.04);max-width:520px}
.perk-t{font-size:15px;color:#D8D6CF;margin-bottom:12px}
.perk-t b{color:var(--paper);font-weight:600}
.perk .mini{margin-top:0}
.perk .ok{margin-top:0}
footer a.ig{text-decoration:none}
footer a.ig:hover{color:var(--paper);text-decoration:underline}
@media (max-width:820px){.colours.top .col-grid{gap:0}.colours.top .col-grid>div:first-child{display:contents}
.colours.top .col-grid>div>.small{order:1}.colours.top .colname{order:2}.colours.top .csub{order:3}.colours.top .cprice{order:4}
.colours.top .col-stage{order:5;margin-bottom:16px}.colours.top .swatches{order:6}.colours.top .perk{order:7}}

/* --- live site --- */
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
[hidden]{display:none!important}
img{height:auto}
.scene img,.frame img,.detail figure img,.col-img img{height:100%}
.hdr img,footer img{width:auto}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.note a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.note a:hover{color:var(--paper)}
.btn[disabled]{opacity:.6;cursor:default}
footer .flogo{display:inline-flex;align-items:center}
/* tekstpagina's */
.doc{padding-block:clamp(110px,13vw,160px) clamp(64px,9vw,120px)}
.doc .wrap{max-width:760px}
.doc h1{font-size:clamp(38px,6vw,72px);line-height:.98;margin-bottom:14px}
.doc h2{font-size:22px;letter-spacing:-.02em;margin:38px 0 10px}
.doc p,.doc li{color:#CFCDC6;max-width:64ch}
.doc p+p{margin-top:12px}
.doc ul{margin:10px 0 0;padding-left:20px;display:grid;gap:6px}
.doc a{text-underline-offset:3px}
.doc .small{display:block;margin-bottom:26px}
.doc .back{margin-top:44px}

