/* Motion follows the live-performance rhythm: text first, imagery second. */
.motion-line{display:block;overflow:hidden;padding-bottom:.13em;margin-bottom:-.13em}
.motion-line>span{display:block;transform-origin:0 100%}
.hero h1>.motion-line{display:block}
.hero h1 .acid{color:var(--acid)}
.hero-shade{background:linear-gradient(90deg,#0b100dc2 0%,#0b100d28 65%,#0b100d18),linear-gradient(0deg,#101411e8 0%,transparent 48%,#15191350 100%)}
.button>span,.header-book>span:last-child,.text-link>span{transition:transform .45s cubic-bezier(.22,1,.36,1)}
.button:hover>span,.header-book:hover>span:last-child,.text-link:hover>span{transform:translate(3px,-3px)}

.menu-toggle span{transition:transform .4s,opacity .3s}
.menu-open .menu-toggle span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-open .menu-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}
.mobile-nav a{transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .65s;transform:translateX(35px);opacity:0}
.menu-open .mobile-nav a{transform:none;opacity:1}
.mobile-nav a:nth-child(2){transition-delay:40ms}.mobile-nav a:nth-child(3){transition-delay:80ms}.mobile-nav a:nth-child(4){transition-delay:120ms}.mobile-nav a:nth-child(5){transition-delay:160ms}.mobile-nav a:nth-child(6){transition-delay:200ms}

.session-banner,.about-hero{position:relative;isolation:isolate;overflow:hidden;background:#242824}
.session-banner{min-height:680px;display:flex;align-items:end;margin-bottom:110px}
.ambient-video,.session-shade,.about-hero-poster,.about-video-frame{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover}
.session-shade{z-index:-1;background:linear-gradient(90deg,#111711bb,transparent 85%),linear-gradient(0deg,#111711c9,transparent 80%)}
.session-content{width:100%;padding-top:100px;padding-bottom:65px}
.session-content h2{font-size:clamp(5rem,10vw,10rem)}
.session-actions{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-top:45px}
.ambient-toggle,.about-video-toggle{background:#17191875;border:1px solid #ffffff55;padding:12px 18px;font-size:12px;letter-spacing:.08em}
.about-hero{min-height:680px;display:flex;align-items:end;margin-bottom:100px}
.about-hero-content{width:100%;padding-top:150px;padding-bottom:65px}
.about-hero h1{font-size:clamp(3.8rem,7.8vw,8.5rem);max-width:1250px}
.about-hero-poster{object-position:center;filter:brightness(.78);transform:scale(1.02)}
.about-video-frame{overflow:hidden;opacity:0;transition:opacity 1.2s}
.video-playing .about-video-frame{opacity:1}
.about-video-frame iframe{position:absolute;top:50%;left:50%;width:100%;height:56.25vw;min-height:100%;min-width:1209px;transform:translate(-50%,-50%);border:0;pointer-events:none}
.about-hero .film-trigger{text-shadow:0 2px 10px #000}
@media(max-width:760px){

 .session-banner{min-height:530px;margin-bottom:75px}.session-content{padding-top:65px;padding-bottom:35px}
 .session-content h2{font-size:5.5rem}.session-actions{gap:15px;margin-top:30px;align-items:center}
 .session-actions .play-orbit{width:50px;height:50px;flex-shrink:0}.session-actions .film-trigger{gap:12px;font-size:12px}.session-actions .film-trigger small{font-size:10px;letter-spacing:.03em}
 .ambient-toggle,.about-video-toggle{font-size:10px;padding:10px;white-space:nowrap}
 .about-hero{min-height:620px;margin-bottom:70px}.about-hero-content{padding-top:90px;padding-bottom:35px}
 .about-hero h1{font-size:clamp(2.9rem,9vw,4.9rem)}.about-hero .eyebrow{font-size:10px;gap:10px}
 .about-video-frame iframe{min-width:1103px}.about-hero .session-actions{flex-wrap:wrap}
 .hero h1 .motion-line{padding-bottom:.17em;margin-bottom:-.17em}
}
@media(prefers-reduced-motion:reduce){
 .motion-line>span,.about-video-frame{transition:none!important;will-change:auto}
 .mobile-nav a{transform:none;opacity:1}
}

/* ───── Impact layer: workshop mixer, curtain, cursor, scroll-linked media ───── */
:root{--expo:cubic-bezier(.16,1,.3,1);--slam:cubic-bezier(.76,0,.24,1)}

/* Page curtain. Five shutters; direction, tone and style are set on <html> before first paint and rotate per click.
   Entry is pure CSS, so it always clears without scripting. */
.curtain{position:fixed;inset:0;z-index:200;pointer-events:none;display:flex;--c:var(--acid);--m:var(--bg);--x:0%;--y:-101%;--gap:0ms}
.curtain i{flex:1;margin:0 -1px -1px 0;background:var(--c);transform:translate(var(--x),var(--y));animation:curtain-out .95s var(--slam) both;animation-delay:calc(var(--i)*var(--gap))}
.curtain i:nth-child(1){--i:0}.curtain i:nth-child(2){--i:1}.curtain i:nth-child(3){--i:2}.curtain i:nth-child(4){--i:3}.curtain i:nth-child(5){--i:4}
.curtain span{position:absolute;inset:0;display:grid;place-items:center;color:var(--m);font:800 min(24vw,calc(165vw / var(--len,3)),21rem)/1 var(--display);letter-spacing:-.04em;white-space:nowrap;opacity:0;animation:curtain-mark-out .95s var(--slam) both}
[data-cd=down] .curtain{--y:101%}
[data-cd=left] .curtain,[data-cd=right] .curtain{flex-direction:column;--y:0%;--x:-101%}
[data-cd=right] .curtain{--x:101%}
[data-cd=down] .curtain i,[data-cd=right] .curtain i{animation-delay:calc((4 - var(--i))*var(--gap))}
[data-cs=bars] .curtain{--gap:65ms}
[data-ct=paper] .curtain{--c:var(--paper)}
[data-ct=black] .curtain{--c:#0b0d0c;--m:var(--acid)}
.leaving .curtain i{animation-name:curtain-in;animation-duration:.5s}
.leaving .curtain span{animation:curtain-mark-in .45s .2s var(--expo) both}
.leaving[data-cs=bars] .curtain{--gap:45ms}
@keyframes curtain-out{0%,24%{transform:none}100%{transform:translate(var(--x),var(--y))}}
@keyframes curtain-in{from{transform:translate(calc(var(--x)*-1),calc(var(--y)*-1))}to{transform:none}}
@keyframes curtain-mark-out{0%,14%{opacity:1;transform:none}32%,100%{opacity:0;transform:translate(calc(var(--x)*.12),calc(var(--y)*.12))}}
@keyframes curtain-mark-in{from{opacity:0;transform:translate(calc(var(--x)*-.12),calc(var(--y)*-.12))}to{opacity:1;transform:none}}

/* Hero */
.hero{overflow:clip}
.hero-video{will-change:transform}

@keyframes eq{from{transform:scaleY(.18)}to{transform:scaleY(1)}}

/* Workshop mixer */
.stage{position:relative;isolation:isolate;overflow:hidden;background:#0e100f;color:var(--ink);min-height:max(780px,100svh);display:flex;flex-direction:column}
.stage-bg,.stage-fx{position:absolute;inset:0}
.stage-bg{z-index:-2}
.stage-bg img{position:absolute;inset:0;opacity:0;filter:grayscale(.35) contrast(1.14) brightness(.74);will-change:clip-path,transform}
.stage-bg img.on{opacity:1}
.stage-fx{z-index:-1;pointer-events:none;background:linear-gradient(180deg,#0d0f0ef2 0%,#0d0f0e99 30%,#0d0f0e33 52%,#0d0f0ee0 86%,#0d0f0e 100%),repeating-linear-gradient(0deg,transparent 0 3px,#0000003d 3px 4px)}
.stage-fx:after{content:'';position:absolute;inset:-60px;opacity:.2;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.1 -.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.stage.live .stage-fx:after{animation:grain .7s steps(5) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-38px,22px)}40%{transform:translate(26px,-40px)}60%{transform:translate(-14px,-24px)}80%{transform:translate(40px,30px)}100%{transform:translate(0,0)}}
.stage-head{position:relative;z-index:2;width:100%;display:flex;justify-content:space-between;align-items:flex-end;gap:35px;padding-top:110px;pointer-events:none}
.stage-head a{pointer-events:auto}
.stage-head p{color:#c9ccc2;max-width:350px;margin-bottom:10px}
.stage-rows{position:absolute;inset:0;z-index:1;display:flex}
.stage-row{flex:1 1 0;min-width:0;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:0 clamp(14px,1.5vw,28px) 98px;border-left:1px solid #ffffff26;transition:flex-grow .85s var(--expo),background-color .5s;outline-offset:-6px}
.stage-row:first-child{border-left:0}
.stage-row:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#d4f34433,transparent 60%);opacity:0;transition:opacity .6s}
.stage-row.on{flex-grow:2.7}
.stage-row.on:before{opacity:1}

.stage-meter{display:block;height:2px;background:#ffffff2e;margin-bottom:18px;position:relative;overflow:hidden}
.stage-meter i{position:absolute;inset:0;background:var(--acid);transform:scaleX(0);transform-origin:0 50%}
.stage-row.on.held .stage-meter i{transform:scaleX(1);transition:transform .45s var(--expo)}
.stage-body{position:relative;display:block}
.stage-body small{display:block;font-size:11px;letter-spacing:.12em;color:#ffffffa6;margin-bottom:12px;white-space:nowrap;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .6s var(--expo)}
.stage-row.on small{opacity:1;transform:none}
.stage-row h3{font-size:clamp(1.45rem,1.95vw,2.5rem);line-height:.95;transform-origin:0 100%;transition:transform .85s var(--expo),margin-top .85s var(--expo),color .4s;white-space:nowrap}
.stage-row.on h3{transform:scale(1.55);margin-top:1.1em;color:var(--acid)}
.stage-row h3{min-height:1.9em;display:flex;align-items:flex-end}
.stage-more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .85s var(--expo),opacity .45s}
.stage-more>span{display:block;overflow:hidden;min-height:0}
.stage-row.on .stage-more{grid-template-rows:1fr;opacity:1;transition-delay:0s,.15s}
.stage-desc{display:block;width:clamp(250px,23vw,370px);padding-top:22px;font-size:15px;line-height:1.6;color:#dfe2d8}
.stage-more b{display:inline-flex;align-items:center;gap:16px;margin-top:20px;font-size:12px;letter-spacing:.1em;font-weight:700;color:var(--bg);background:var(--acid);padding:11px 16px;white-space:nowrap}
.stage-more b span{font-size:19px;line-height:1}

@media(max-width:900px){
 .stage{min-height:0;display:block}
 .stage-head{display:block;padding-top:75px;padding-bottom:40px}
 .stage-head-side{margin-top:25px}.stage-head p{font-size:16px}
 .stage-rows{position:relative;inset:auto;display:block}
 .stage-row{display:grid;grid-template-columns:54px 1fr;align-items:start;padding:20px 22px;border-left:0;border-top:1px solid #ffffff26;min-height:72px}
 .stage-row:before{background:linear-gradient(90deg,#d4f34438,transparent 75%)}
 .stage-meter{grid-column:1/-1;margin:-20px -22px 19px;background:transparent}

 .stage-row h3{font-size:2.1rem;white-space:normal;min-height:0;display:block}.stage-row h3 br{display:none}
 .stage-row.on h3{transform:none;margin-top:0}
 .stage-body small{display:none}
 .stage-desc{width:auto;padding-top:12px}
 .stage-more b{margin:16px 0 6px}

}

/* Floating WhatsApp: one acid block with a hard shadow, opens into a label. Visible without scripting; script tucks it away until the first scroll. */
.wa-float{position:fixed;right:clamp(14px,2vw,30px);bottom:clamp(14px,2vw,30px);z-index:40;display:flex;align-items:stretch;height:62px;background:var(--acid);color:var(--bg);box-shadow:0 0 0 2px var(--bg),7px 7px 0 0 #0b0d0c;transition:transform .7s var(--expo),opacity .4s,box-shadow .35s var(--expo),background .3s;isolation:isolate;overflow:hidden}
.wa-float:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateX(101%);transition:transform .55s var(--expo)}
.wa-float:hover:before,.wa-float:focus-visible:before{transform:none}
.wa-float:hover,.wa-float:focus-visible{transform:translate(-3px,-3px);box-shadow:0 0 0 2px var(--bg),10px 10px 0 0 #0b0d0c}
.wa-float:active{transform:translate(3px,3px);box-shadow:0 0 0 2px var(--bg),2px 2px 0 0 #0b0d0c}
.wa-float.tucked{transform:translateY(calc(100% + 50px));opacity:0;pointer-events:none}
.menu-open .wa-float,.modal-open .wa-float{transform:translateY(calc(100% + 50px));opacity:0;pointer-events:none}
.wa-icon{position:relative;flex:0 0 62px;display:grid;place-items:center}
.wa-icon svg{width:28px;height:28px;fill:currentColor;transition:transform .6s var(--expo)}
.wa-float:hover .wa-icon svg{transform:rotate(-8deg) scale(1.1)}
.wa-icon i{position:absolute;top:9px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--bg);animation:wa-blink 2.4s steps(1) infinite}
@keyframes wa-blink{0%,70%{opacity:1}71%,100%{opacity:.15}}
.wa-label{display:flex;flex-direction:column;justify-content:center;gap:3px;white-space:nowrap;max-width:0;opacity:0;padding:0;border-right:1px solid transparent;transition:max-width .7s var(--expo),opacity .35s,padding .7s var(--expo),border-color .4s}
.wa-float:hover .wa-label,.wa-float:focus-visible .wa-label,.wa-float.peek .wa-label{max-width:230px;opacity:1;padding:0 20px 0 22px;border-color:#17191840;transition-delay:0s,.12s,0s,0s}
.wa-label small{font-size:10px;font-weight:600;letter-spacing:.13em;line-height:1}
.wa-label b{font:700 1.65rem/1 var(--display);letter-spacing:.005em}
@media(max-width:760px){.wa-float{height:54px;box-shadow:0 0 0 2px var(--bg),5px 5px 0 0 #0b0d0c}.wa-icon{flex-basis:54px}.wa-icon svg{width:25px;height:25px}.wa-label b{font-size:1.4rem}.wa-float:hover .wa-label{max-width:0;opacity:0;padding:0}.wa-float.peek .wa-label{max-width:200px;opacity:1;padding:0 14px 0 16px}}

/* Cursor badge (fine pointers only; created by script) */
.cursor-badge{position:fixed;left:0;top:0;z-index:150;pointer-events:none;will-change:transform}
.cursor-badge span{display:grid;place-items:center;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;background:var(--acid);color:var(--bg);font:700 11px/1 var(--body);letter-spacing:.12em;transform:scale(0);transition:transform .45s var(--expo)}
.cursor-badge.show span{transform:scale(1)}
.cursor-badge.press span{transform:scale(.82)}

/* Scroll-linked media. --p and --py are written by script; defaults keep everything in place. */
.session-banner,.film-still{clip-path:inset(calc((1 - var(--p,1))*13%) calc((1 - var(--p,1))*8%))}
.session-banner .ambient-video,.film-still img,.film-still .ambient-video{scale:calc(1.28 - var(--p,1)*.28)}
.feature-photo,.wide-photo,.contact-person,.about-lead>div:first-child{overflow:hidden}
.feature-photo img,.wide-photo video,.contact-person img,.about-lead>div:first-child img{scale:1.16;translate:0 var(--py,0px);will-change:translate}
.session-content h2 .motion-line:nth-child(odd){translate:calc((1 - var(--p,1))*-9vw) 0}
.session-content h2 .motion-line:nth-child(even){translate:calc((1 - var(--p,1))*9vw) 0}
.motion-word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.motion-word>span{display:inline-block}

/* Stills that come alive in view */
.live-window{isolation:isolate;overflow:hidden;background:#242824}
.live-window .ambient-video,.film-still .ambient-video{z-index:0}
.live-window .ambient-video{object-position:center 45%}
.film-still{overflow:hidden}
.film-still .ambient-video{opacity:0;transition:opacity .9s}
.film-still .ambient-video.rolling{opacity:1}
.film-still:after{z-index:1}
.film-still .film-trigger{z-index:2}
.live-window .ambient-toggle,.film-still .ambient-toggle{position:absolute;right:25px;bottom:25px;z-index:3}
.live-window .inline-film{z-index:2;transition:background .3s,color .3s}
.live-window .inline-film:hover{background:var(--acid);color:var(--bg)}
.inline-film small{margin-left:12px;opacity:.7;letter-spacing:.1em}
@media(max-width:760px){.live-window .ambient-toggle,.film-still .ambient-toggle{right:12px;bottom:12px}.live-window .ambient-toggle{bottom:auto;top:12px}.inline-film small{display:none}}

/* Hover hits */
.button{position:relative;isolation:isolate;overflow:hidden}
.button:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateX(-101%);transition:transform .55s var(--expo)}
.button:hover:before{transform:none}
.button.acid-bg:hover{background:var(--acid)}

.header-book,.play-orbit{transition:translate .5s var(--expo),background .3s,color .3s,transform .3s}
.package-card{position:relative;isolation:isolate;transition:color .35s}
.package-card:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--acid);transform:scaleY(0);transform-origin:50% 100%;transition:transform .6s var(--expo)}
.package-card:hover:before{transform:none}
.package-card:not(.featured):hover{color:var(--bg)}
.package-card:not(.featured):hover p,.package-card:not(.featured):hover .package-info span{color:#4f583a}
.package-card:not(.featured):hover .package-info{border-color:#a9c434}
.package-card:not(.featured):hover .text-link:hover{color:var(--bg)}
.package-card.featured:before{background:var(--ink)}
.package-card h3{transition:transform .6s var(--expo);transform-origin:0 100%}
.package-card:hover h3{transform:translateX(6px) scale(1.04)}
.card-image:before{content:'';position:absolute;left:0;right:0;bottom:0;height:5px;z-index:1;background:var(--acid);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--expo)}
.workshop-card:hover .card-image:before{transform:none}
.workshop-card .card-image img{transition:transform 1.1s var(--expo),filter .7s}
.workshop-card:hover .card-image img{transform:scale(1.09)}
.workshop-card h3{transition:transform .6s var(--expo)}
.workshop-card:hover h3{transform:translateX(8px)}
.video-card>div:after{content:'';position:absolute;inset:0;border:0 solid var(--acid);transition:border-width .35s var(--expo)}
.video-card:hover>div:after{border-width:6px}
.video-card img{transition:transform 1.1s var(--expo),filter .6s;filter:saturate(.75) brightness(.85)}
.video-card:hover img{transform:scale(1.09);filter:none}
.video-play{transition:transform .5s var(--expo)}
.video-card:hover .video-play{transform:scale(1.45)}
.values article,.process article{transition:border-color .4s}
.values article:hover,.process article:hover{border-color:var(--acid)}
.values h3{transition:color .35s,transform .6s var(--expo)}
.values article:hover h3{color:var(--acid);transform:translateX(8px)}

/* Carousel: draggable, side slides step, progress on the beat */

/* Gallery: editorial grid, focus on hover, FLIP filtering (script) */
.gallery-grid{columns:auto;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(190px,21vw,340px);grid-auto-flow:dense;gap:14px}
.gallery-grid .gallery-item{grid-column:span 4;margin:0;break-inside:auto;height:100%;will-change:transform}
.gallery-grid .gallery-item img{height:100%}
.gallery-grid .tile-wide{grid-column:span 8;grid-row:span 2}
.gallery-grid .tile-tall{grid-row:span 2}

.gallery-item img{filter:saturate(.55) contrast(1.06) brightness(.86);transition:transform 1.2s var(--expo),filter .7s}
.gallery-item:hover img,.gallery-item:focus-visible img{filter:none}
.gallery-grid .gallery-item:hover img{transform:scale(1.07)}
.gallery-grid .gallery-item{transition:opacity .45s}
.gallery-grid:has(.gallery-item:hover) .gallery-item:not(:hover){opacity:.38}
.gallery-item:after{content:'';position:absolute;inset:0;border:0 solid var(--acid);transition:border-width .4s var(--expo);pointer-events:none}
.gallery-grid .gallery-item:hover:after{border-width:5px}
.photo-overlay{align-items:flex-end;gap:16px}
.photo-overlay>span{display:flex;flex-direction:column;gap:6px;min-width:0}
.photo-overlay small{font-size:14px;line-height:1.35;letter-spacing:0;color:var(--ink);max-width:34ch;opacity:0;transform:translateY(12px);transition:opacity .45s,transform .6s var(--expo)}
.gallery-item:hover .photo-overlay small,.gallery-item:focus-visible .photo-overlay small{opacity:1;transform:none}
.photo-overlay b{transition:transform .5s var(--expo),color .3s}
.gallery-item:hover .photo-overlay b{transform:translate(4px,-4px);color:var(--acid)}

/* Lightbox: full screen for photos, with a film strip */
dialog[open]{animation:dialog-in .4s var(--expo)}
dialog[open]::backdrop{animation:backdrop-in .4s}
dialog.closing{opacity:0;transition:opacity .22s}
@keyframes dialog-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
.media-strip{display:none}
dialog.photo-mode{width:100vw;max-width:none;height:100svh;max-height:none;margin:0;border:0;background:#0b0d0cf7;padding:64px clamp(16px,6vw,110px) 18px;overflow:hidden}
dialog.photo-mode[open]{display:flex;flex-direction:column}
.photo-mode .media-content{flex:1;min-height:0;position:relative}
.photo-mode .media-content img{position:absolute;inset:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;will-change:transform,opacity}
.photo-mode .media-controls{margin-top:18px;justify-content:flex-start}
.photo-mode .media-caption{text-align:left;order:-1;font-size:13px;color:#d5d8ce;display:flex;align-items:baseline;gap:14px}
.photo-mode .media-caption b{font:600 2.3rem/1 var(--display);color:var(--acid);font-variant-numeric:tabular-nums}
.photo-mode .media-caption i{font-style:normal;color:var(--muted)}
.photo-mode .media-prev,.photo-mode .media-next{position:absolute;top:calc(50% - 60px);width:56px;height:56px;border-radius:50%;background:#171918cc;border:1px solid #ffffff40;transition:background .3s,color .3s,transform .4s var(--expo)}
.photo-mode .media-prev{left:clamp(8px,2vw,34px)}.photo-mode .media-next{right:clamp(8px,2vw,34px)}
.photo-mode .media-prev:hover,.photo-mode .media-next:hover{background:var(--acid);color:var(--bg);transform:scale(1.08)}
.photo-mode .dialog-close{top:14px;right:clamp(12px,2vw,34px);width:48px;height:48px;border:1px solid #ffffff40;border-radius:50%;font-size:18px;transition:background .3s,color .3s,transform .5s var(--expo)}
.photo-mode .dialog-close:hover{background:var(--acid);color:var(--bg);transform:rotate(90deg)}
.photo-mode .media-strip{display:flex;gap:6px;margin-top:14px;overflow-x:auto;scrollbar-width:none;padding:3px}
.media-strip::-webkit-scrollbar{display:none}
.media-strip button{flex:0 0 auto;width:74px;height:50px;padding:0;border:0;background:#242824;opacity:.4;outline:2px solid transparent;outline-offset:1px;transition:opacity .3s,outline-color .3s,transform .4s var(--expo)}
.media-strip button:hover{opacity:.85;transform:translateY(-3px)}
.media-strip button.on{opacity:1;outline-color:var(--acid)}
@media(max-width:760px){
 .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:44vw;gap:8px}
 .gallery-grid .gallery-item{grid-column:span 1}
 .gallery-grid .tile-wide{grid-column:span 2;grid-row:span 1}

 .photo-overlay small{display:none}

 dialog.photo-mode{padding:64px 10px 12px}
 .photo-mode .media-prev,.photo-mode .media-next{position:static;width:46px;height:46px}
 .photo-mode .media-controls{justify-content:space-between}.photo-mode .media-caption{order:0;flex-direction:column;gap:2px;align-items:center;text-align:center;font-size:11px}
 .photo-mode .media-caption b{font-size:1.7rem}
 .media-strip button{width:58px;height:40px}
}

@media(prefers-reduced-motion:reduce){
 .curtain,.cursor-badge{display:none}
 .feature-photo img,.wide-photo video,.contact-person img,.about-lead>div:first-child img{scale:1;translate:none}
 .session-banner,.film-still{clip-path:none}
}

/* Google reviews: score, one lead quote, two review belts that run with the scroll. */
.reviews{padding:120px 0 0;border-top:1px solid var(--line);overflow:hidden}
.reviews-top{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,120px);align-items:end;padding-bottom:90px}
.reviews-score h2{margin-bottom:45px}
.score-block{display:inline-flex;align-items:center;gap:26px;padding:22px 30px 22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:gap .4s cubic-bezier(.16,1,.3,1)}
.score-block:hover{gap:40px}
.score-block strong{font:700 clamp(6rem,11vw,11.5rem)/.78 var(--display);color:var(--acid);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.score-block>span{display:grid;gap:6px}
.score-stars{color:var(--acid);font-size:18px;letter-spacing:6px}
.score-block b{font:600 30px/1 var(--display);letter-spacing:.02em}
.score-block small{font-size:12px;font-weight:600;letter-spacing:.11em;color:var(--muted);transition:color .25s}
.score-block:hover small{color:var(--acid)}
.reviews-lead{margin:0;border-left:3px solid var(--acid);padding:6px 0 6px clamp(24px,3vw,48px)}
.reviews-lead blockquote{font:600 clamp(2.6rem,5vw,5.4rem)/.95 var(--display);text-transform:uppercase;margin:0 0 30px}
.reviews-lead p{color:#c9ccc2;max-width:620px;margin:0 0 26px;font-size:16px;line-height:1.65}
.reviews-lead figcaption{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}
.reviews-lead figcaption b{font:600 26px/1 var(--display);letter-spacing:.03em}
.reviews-lead figcaption span{font-size:12px;font-weight:600;letter-spacing:.11em;color:var(--muted)}
.review-belt{--gap:0px;overflow:hidden;border-top:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.review-belt:last-of-type{border-bottom:1px solid var(--line)}
.review-track{display:flex;width:max-content;animation:belt 80s linear infinite}
.review-belt.reverse .review-track{animation-direction:reverse;animation-duration:92s}
.review-belt:hover .review-track,.review-belt:focus-within .review-track{animation-play-state:paused}
.review-set{display:flex}
.review-item{position:relative;margin:0;width:clamp(290px,27vw,430px);min-height:250px;padding:34px 36px 30px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:22px;transition:background .35s,color .35s}
.review-item::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.review-item:hover{background:#1f2220}
.review-item:hover::before{transform:scaleX(1)}

.review-item blockquote{margin:0;font-size:17px;line-height:1.55;color:#d9dbd2;flex:1}
.review-item figcaption{font:600 22px/1 var(--display);text-transform:uppercase;letter-spacing:.03em;display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.review-item figcaption small{font:600 11px/1 var(--body);letter-spacing:.11em;color:var(--muted)}
.reviews-foot{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:34px;padding-bottom:110px;font-size:12px;font-weight:600;letter-spacing:.11em;color:var(--muted)}
.reviews-foot .text-link{color:var(--ink);font-size:14px;letter-spacing:0;border-bottom:1px solid currentColor;margin:0}
.reviews-foot .text-link:hover{color:var(--acid)}
@keyframes belt{to{transform:translate3d(-50%,0,0)}}
@media(max-width:900px){
  .reviews{padding-top:75px}
  .reviews-top{grid-template-columns:1fr;gap:55px;padding-bottom:60px}
  .reviews-score h2{margin-bottom:32px}
  .score-block{gap:18px;padding-right:0}
  .reviews-lead blockquote{font-size:2.5rem}
  .review-item{width:285px;min-height:230px;padding:28px 26px 24px}
  .review-item blockquote{font-size:16px}
  .reviews-foot{flex-direction:column;align-items:flex-start;gap:14px;padding-bottom:75px}
}
@media(prefers-reduced-motion:reduce){
  .review-track{animation:none}
  .review-belt{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-mask-image:none;mask-image:none}
  .review-set[aria-hidden]{display:none}
  .review-item{scroll-snap-align:start}
}
.reviews-top>*{min-width:0}
.review-item figcaption{display:grid;justify-content:start;gap:9px}
.review-item figcaption small{order:-1}
@media(max-width:900px){.reviews-top{grid-template-columns:minmax(0,1fr)}.reviews-lead p{font-size:15px}}
/* Three-line hero title: scaled so "VAN EUROPA." fits and the film stays visible. */
.hero h1.hero-title-long{font-size:clamp(5.5rem,11.2vw,13rem)}
@media(max-width:760px){.hero h1.hero-title-long{font-size:clamp(56px,17.5vw,120px)}}

/* SEN in numbers: a scoreboard strip under the ticker. */
.stats{border-bottom:1px solid var(--line)}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{position:relative;display:flex;flex-direction:column;gap:14px;padding:46px clamp(20px,2.6vw,44px) 40px;border-left:1px solid var(--line);transition:background .35s}
.stat:last-child{border-right:1px solid var(--line)}
.stat::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.16,1,.3,1)}
.stat:hover{background:#1f2220}
.stat:hover::before{transform:scaleX(1)}

.stat-num{display:flex;align-items:baseline;gap:4px;margin-top:6px}
.stat-num strong{font:700 clamp(4.4rem,7.2vw,8rem)/.8 var(--display);color:var(--acid);letter-spacing:-.02em;font-variant-numeric:tabular-nums;transition:transform .45s cubic-bezier(.16,1,.3,1);transform-origin:left bottom}
.stat:hover .stat-num strong{transform:skewX(-8deg)}
.stat-num em{font:600 clamp(1.8rem,2.6vw,2.8rem)/1 var(--display);font-style:normal;color:var(--ink)}
.stat-label{font:600 clamp(1.3rem,1.7vw,1.75rem)/1.02 var(--display);text-transform:uppercase;letter-spacing:.02em}
.stat small{margin-top:auto;padding-top:10px;font-size:11px;font-weight:600;letter-spacing:.11em;color:var(--muted)}
@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-left:0;padding-right:0}
  .stat{padding:30px 22px 26px;border-left:0;border-top:1px solid var(--line)}
  .stat:nth-child(-n+2){border-top:0}
  .stat:nth-child(even){border-left:1px solid var(--line)}
  .stat:last-child{border-right:0}
  .stat-num strong{font-size:clamp(3.4rem,17vw,4.6rem)}
}
.stat small{overflow-wrap:anywhere}

.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:first-child{grid-column:1/-1;border-top:0}
  .stat:nth-child(-n+2){border-top:0}
  .stat:nth-child(2),.stat:nth-child(3){border-top:1px solid var(--line)}
  .stat:nth-child(even){border-left:0}
  .stat:nth-child(odd):not(:first-child){border-left:1px solid var(--line)}
}

/* Socials: patch-panel keys in the header, tiles in the mobile menu and footer. */
.header-social{display:flex;margin-left:auto;margin-right:18px;border:1px solid #ffffff30}
.social-key{position:relative;display:grid;place-items:center;width:44px;height:44px;color:var(--ink);overflow:hidden;isolation:isolate;transition:color .3s}
.social-key+.social-key{border-left:1px solid #ffffff30}
.social-key:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--acid);transform:translateY(101%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.social-key svg{width:18px;height:18px;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.social-key small{position:absolute;top:3px;right:4px;font-size:8px;font-weight:700;letter-spacing:.05em;color:#ffffff59;transition:color .3s}
.social-key:hover,.social-key:focus-visible{color:var(--bg)}
.social-key:hover:before,.social-key:focus-visible:before{transform:none}
.social-key:hover svg,.social-key:focus-visible svg{transform:scale(1.12) rotate(-6deg)}
.social-key:hover small,.social-key:focus-visible small{color:var(--bg)}
@media(max-width:1180px){.header-social{margin-right:12px}.social-key{width:38px;height:38px}.social-key svg{width:16px;height:16px}.social-key small{display:none}.desktop-nav{gap:20px}}
@media(max-width:760px){.header-social{display:none}}
.mobile-nav .menu-social{display:grid;grid-template-columns:repeat(4,1fr);margin-top:28px;border:1px solid var(--line)}
.mobile-nav .menu-social-tile{font:600 11px/1 var(--body);letter-spacing:.1em;display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 4px 14px;border-bottom:0;color:var(--ink)}
.mobile-nav .menu-social-tile+.menu-social-tile{border-left:1px solid var(--line)}
.mobile-nav .menu-social-tile svg{width:24px;height:24px;color:var(--acid)}
.mobile-nav .menu-social-tile span{margin:0;color:var(--muted)}
.mobile-nav .menu-social-tile:active{background:var(--acid);color:var(--bg)}

/* Missie & visie: two statements and a numbered pillar list. */
.mission{padding:120px 0 110px;border-top:1px solid var(--line)}
.mission-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,120px);align-items:end;margin-bottom:80px}
.mission-statements{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.mission-statements article{border-top:3px solid var(--acid);padding-top:22px}
.mission-statements span{display:block;font:600 30px/1 var(--display);letter-spacing:.03em;margin-bottom:16px}
.mission-statements p{margin:0;color:#c9ccc2;font-size:16px;line-height:1.65}
.pillars{list-style:none;margin:0;counter-reset:none}
.pillar{position:relative;display:grid;grid-template-columns:90px minmax(0,1.1fr) minmax(0,1fr) 120px;gap:30px;align-items:center;padding:30px 0;border-top:1px solid var(--line);isolation:isolate;transition:color .35s}
.pillar:last-child{border-bottom:1px solid var(--line)}
.pillar:before{content:'';position:absolute;inset:0 calc(-1 * clamp(22px,5.1vw,90px));z-index:-1;background:var(--acid);clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.76,0,.24,1)}
.pillar:hover{color:var(--bg)}
.pillar:hover:before{clip-path:inset(0 0 0 0)}

.pillar h3{margin:0;font:700 clamp(2.4rem,4.4vw,4.6rem)/.9 var(--display);text-transform:uppercase;transition:transform .55s cubic-bezier(.16,1,.3,1)}
.pillar p{margin:0;color:#c9ccc2;font-size:16px;line-height:1.6;transition:color .35s}
.pillar small{justify-self:end;font-size:11px;font-weight:600;letter-spacing:.11em;color:var(--muted);border:1px solid var(--line);padding:7px 10px;transition:color .35s,border-color .35s}
.pillar:hover p,.pillar:hover small{color:var(--bg)}
.pillar:hover small{border-color:var(--bg)}
@media(hover:hover){.pillar:hover h3{transform:translateX(14px)}}
@media(max-width:900px){
  .mission{padding:75px 0 70px}
  .mission-head{grid-template-columns:1fr;gap:45px;margin-bottom:50px}
  .mission-statements{grid-template-columns:1fr;gap:28px}
  .pillar{grid-template-columns:44px 1fr;gap:10px 14px;padding:24px 0;align-items:start}

  .pillar p,.pillar small{grid-column:2}
  .pillar small{justify-self:start}
  .pillar h3{font-size:2.3rem}
}
.desktop-nav a{white-space:nowrap}
@media(min-width:761px) and (max-width:980px){.header-book .book-desktop{display:none}.header-book .book-mobile{display:inline;font:700 12px/1.4 var(--body);letter-spacing:.04em}.header-book{gap:14px;padding:13px 15px}.desktop-nav{gap:16px}}
/* Stats, calmer (2026-09-23): four items, one colour, one line of text. */
.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{padding:56px clamp(20px,2.6vw,44px) 50px;gap:16px;border-left-color:#ffffff14}
.stat:last-child{border-right-color:#ffffff14}
.stat:before{height:2px}
.stat:hover{background:transparent}
.stat-num{font:700 clamp(4rem,6.4vw,7rem)/.8 var(--display);color:var(--acid);letter-spacing:-.02em;margin:0}
.stat-num strong{font:inherit;color:inherit;letter-spacing:inherit}
.stat:hover .stat-num strong{transform:none}
.stat-label{font:600 12px/1.4 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:first-child{grid-column:auto}
  .stat{padding:34px 22px 30px;border-top:1px solid #ffffff14;border-left:0}
  .stat:nth-child(-n+2){border-top:0}
  .stat:nth-child(even){border-left:1px solid #ffffff14}
  .stat:nth-child(odd):not(:first-child){border-left:0}
  .stat-num{font-size:clamp(3.2rem,15vw,4.4rem)}
  .stat-label{font-size:11px}
}
/* Pillars, calmer: no tags, titles on one line. */
.pillar{grid-template-columns:70px minmax(0,1.15fr) minmax(0,1fr)}
.pillar small{display:none}
.pillar h3{font-size:clamp(2rem,3.3vw,3.5rem);white-space:nowrap}
@media(max-width:900px){.pillar{grid-template-columns:44px 1fr}.pillar h3{white-space:normal;font-size:2.1rem}}
.play-orbit .ico{position:static;inset:auto;width:1em;height:1em;stroke:none;animation:none;margin-left:.12em}
/* iOS Safari: off-canvas menu and wide belts must never widen the page (kept the WhatsApp block half off-screen). */
html,body{overflow-x:hidden}
@supports(overflow:clip){html,body{overflow-x:clip}}
.mission,.stats,.reviews,.stage{overflow-x:clip}
.wa-float{right:max(14px,env(safe-area-inset-right));bottom:max(14px,calc(env(safe-area-inset-bottom) + 10px))}
@media(max-width:760px){.wa-float .wa-label{display:none}.wa-float{width:54px}}

/* Google review look: avatar initial, name, stars, Google mark. */
.g-review-head{display:flex;align-items:center;gap:12px}
.g-avatar{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#2a2d2a;color:var(--ink);font:600 16px/1 var(--body)}
.g-who{display:grid;gap:4px;min-width:0}
.g-who b{font:600 14px/1.2 var(--body);letter-spacing:0;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-stars{color:#fbbc04;font-size:13px;letter-spacing:2px;line-height:1;font-variant-emoji:text}
.g-mark{flex:none;width:20px;height:20px;margin-left:auto}
.review-item{gap:18px}

.review-item figcaption{display:block;font:600 11px/1 var(--body);letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.review-item:hover{background:#1f2220}
.reviews-lead figcaption{display:grid;gap:14px;max-width:620px}
.reviews-lead .g-review-head{max-width:360px}
.reviews-lead .g-who b{font-size:16px}
.g-source{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.g-source:hover{color:var(--acid)}
.reviews-lead figcaption .g-who b{font:600 16px/1.2 var(--body);letter-spacing:0;color:var(--ink)}
.reviews-lead figcaption .g-stars{color:#fbbc04;font-size:14px;letter-spacing:2px}
.reviews-lead figcaption .g-who{display:grid}
.reviews-lead figcaption .g-avatar{color:var(--ink)}

/* Official SEN logo (gold drum ring, 2026-09-24). */
.brand{align-self:center}
.brand-logo{display:block;height:78px;width:auto;filter:drop-shadow(0 2px 10px #0008);transition:transform .6s cubic-bezier(.16,1,.3,1)}
.brand:hover .brand-logo{transform:rotate(-4deg) scale(1.04)}
.footer .brand-logo{height:150px;filter:none}
@media(max-width:760px){.brand-logo{height:58px}.footer .brand-logo{height:110px}}
.ico-star{width:1em;height:1em;display:inline-block;vertical-align:-.1em;margin-right:.12em}
.score-stars,.g-stars{letter-spacing:0;white-space:nowrap}

/* Header v2 (2026-09-24): three balanced zones, centred menu, quieter socials. */
@media(min-width:761px){
  .site-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
  .site-header>.brand{justify-self:start}
  .desktop-nav{justify-self:center;gap:clamp(22px,2.6vw,42px);font:600 12px/1 var(--body);letter-spacing:.15em;text-transform:uppercase}
  .desktop-nav a{padding:12px 0}
  .desktop-nav a:after{bottom:2px;height:1px}
  .header-actions{justify-self:end;display:flex;align-items:center;gap:18px}
  .header-social{margin:0;border:0;gap:2px}
  .header-social .social-key{width:36px;height:36px;border:0;color:#f2f2e9cc}
  .header-social .social-key+.social-key{border-left:0}
  .header-social .social-key small{display:none}
  .header-social .social-key svg{width:17px;height:17px}
  .header-social:after{content:'';width:1px;height:26px;background:#ffffff2e;margin-left:12px;align-self:center}
  .header-book{padding:15px 20px}
}
@media(min-width:761px) and (max-width:1180px){.header-social{display:none}.desktop-nav{gap:22px;letter-spacing:.12em}}
@media(max-width:760px){.header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.header-actions .header-book{margin-left:0}}

/* Footer v2: four calm columns, one type scale, small social keys. */
.footer{padding-top:70px;padding-bottom:34px}
.footer-main{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:40px;padding:10px 0 64px}
.footer-brand{display:grid;gap:22px;align-content:start}
.footer-brand .brand{justify-self:start}
.footer .footer-brand .brand-logo{height:120px}
.footer-brand p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.footer-h{margin:0 0 8px;font:600 11px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--acid)}
.footer-col a,.footer-col span{font-size:15px;line-height:1.45;color:var(--ink)}
.footer-col span{color:var(--muted)}
.footer-col a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s,color .25s}
.footer-col a:hover{color:var(--acid);background-size:100% 1px}
.footer-keys{display:flex;border:1px solid var(--line)}
.footer-keys .social-key{width:44px;height:44px;color:var(--ink)}
.footer-keys .social-key+.social-key{border-left:1px solid var(--line)}
.footer-keys .social-key svg{width:18px;height:18px}
.footer-col .footer-handle{font-size:13px}
.footer-bottom{display:flex;align-items:center;gap:28px;padding-top:26px;border-top:1px solid var(--line);font-size:12px;letter-spacing:.02em;color:var(--muted)}
.footer-legal{display:flex;gap:22px}
.footer-legal a:hover{color:var(--acid)}
@media(max-width:1000px){.footer-main{grid-template-columns:1fr 1fr;gap:44px 30px}.footer-brand{grid-column:1/-1}}
@media(max-width:760px){.footer{padding-top:50px}.footer-main{gap:38px 20px;padding-bottom:44px}.footer .footer-brand .brand-logo{height:96px}.footer-col a,.footer-col span{font-size:14px}.footer-bottom{flex-wrap:wrap;gap:12px 20px}.studio-credit{width:auto;margin-left:0}}
@media(min-width:761px) and (max-width:1280px){.header-social{display:none}}
@media(max-width:760px){.footer-bottom .footer-legal,.footer-bottom .footer-legal a{display:flex}.footer-legal a{display:inline}}
.footer-bottom>span.footer-legal{display:flex}

/* Social strip under the navbar, every page, every width (client wants socials on top). */
.social-strip{position:absolute;top:100px;left:0;right:0;z-index:29;border-bottom:1px solid #ffffff1c;background:linear-gradient(#10131159,#1013110d)}
.inner-page .social-strip{position:relative;top:0;background:var(--bg);border-bottom-color:var(--line)}
.social-strip-inner{display:flex;justify-content:flex-end;align-items:center;gap:4px;height:42px;padding:0 4%}

.strip-key{display:grid;place-items:center;width:32px;height:32px;color:#f2f2e9d9;transition:color .25s,transform .35s cubic-bezier(.16,1,.3,1)}
.strip-key svg{width:16px;height:16px}
.strip-key:hover,.strip-key:focus-visible{color:var(--acid);transform:translateY(-2px)}
.home .hero-content{padding-top:185px}
@media(max-width:760px){
  .social-strip{top:80px}
  .social-strip-inner{height:38px;padding:0 22px}
  .home .hero-content{padding-top:150px}
}
.menu-open .social-strip{visibility:hidden}

/* Hero, cleaner (client 2026-09-28): no meta line, intro lines, film button, scroll or pause. */

.home .hero-content{padding-top:150px}
/* Socials on top: bigger icons, no label. */
.social-strip-inner{height:52px;gap:6px}
.strip-key{width:42px;height:42px}
.strip-key svg{width:22px;height:22px}
@media(max-width:760px){.social-strip-inner{height:46px;gap:2px;justify-content:center}.strip-key{width:44px;height:40px}.strip-key svg{width:21px;height:21px}.home .hero-content{padding-top:130px}}

/* WhatsApp chat popup (client: "echte WhatsApp popup"). */
.wa-pop{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:calc(max(14px,env(safe-area-inset-bottom)) + 80px);z-index:41;width:min(360px,calc(100vw - 28px));border-radius:16px;overflow:hidden;background:#efeae2;box-shadow:0 24px 60px -12px #000c,0 0 0 1px #0000001a;font-family:var(--body);transform-origin:100% 100%;animation:wa-pop-in .45s cubic-bezier(.16,1,.3,1)}
.wa-pop[hidden]{display:none}
@keyframes wa-pop-in{from{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:none}}
.wa-pop-head{display:flex;align-items:center;gap:12px;padding:14px 12px 14px 16px;background:#008069;color:#fff}
.wa-pop-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#171918;flex:none}
.wa-pop-who{display:grid;gap:3px;min-width:0}
.wa-pop-who b{font-size:15px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-pop-who small{font-size:12.5px;opacity:.85}
.wa-pop-close{margin-left:auto;flex:none;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:#fff;font-size:16px;cursor:pointer}
.wa-pop-close:hover{background:#ffffff26}
.wa-pop-body{position:relative;min-height:150px;padding:22px 16px 18px;background:#efeae2 radial-gradient(#d9d2c5 1px,transparent 1.4px) 0 0/18px 18px}
.wa-bubble{position:relative;max-width:88%;background:#fff;color:#111b21;border-radius:0 10px 10px 10px;padding:8px 10px 20px;box-shadow:0 1px .5px #0b141a21;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s}
.wa-bubble:before{content:'';position:absolute;left:-8px;top:0;border:8px solid transparent;border-top-color:#fff;border-right-color:#fff;border-width:0 8px 10px 0}
.wa-bubble b{display:block;font-size:13px;color:#008069;margin-bottom:3px}
.wa-bubble p{margin:0;font-size:14.2px;line-height:1.45}
.wa-bubble time{position:absolute;right:10px;bottom:5px;font-size:11px;color:#667781}
.wa-typing{display:inline-flex;gap:4px;padding:12px 14px;background:#fff;border-radius:0 10px 10px 10px;box-shadow:0 1px .5px #0b141a21}
.wa-typing i{width:7px;height:7px;border-radius:50%;background:#8696a0;animation:wa-dot 1s infinite}
.wa-typing i:nth-child(2){animation-delay:.15s}.wa-typing i:nth-child(3){animation-delay:.3s}
@keyframes wa-dot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.wa-pop.typed .wa-typing{display:none}
.wa-pop.typed .wa-bubble{opacity:1;transform:none}
.wa-pop:not(.typed) .wa-bubble{position:absolute;visibility:hidden}
.wa-pop-cta{display:flex;align-items:center;justify-content:center;gap:10px;margin:0;padding:15px;background:#25d366;color:#fff;font-size:15px;font-weight:600;letter-spacing:.01em;transition:background .25s}
.wa-pop-cta:hover{background:#1ebe5b}
.wa-pop-cta svg{width:22px;height:22px}
.wa-open .wa-float .wa-label{max-width:0;opacity:0;padding:0}
@media(prefers-reduced-motion:reduce){.wa-pop{animation:none}.wa-typing{display:none}.wa-bubble{opacity:1;transform:none;position:relative;visibility:visible}}
@media(max-width:760px){.wa-pop{bottom:calc(max(14px,env(safe-area-inset-bottom)) + 72px)}}
.wa-pop .wa-bubble p{color:#111b21}

/* Home FAQ (client 2026-09-28). */
.home-faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,6vw,120px);align-items:start;border-top:1px solid var(--line)}
.home-faq-head{position:sticky;top:40px;display:grid;gap:26px;justify-items:start}
.home-faq-head h2{margin:0}
.home-faq-list{max-width:none}
.home-faq-list summary{font:600 clamp(1.35rem,1.9vw,1.75rem)/1.15 var(--display);text-transform:uppercase;letter-spacing:.01em;padding:26px 0;align-items:center}
.home-faq-list summary:hover{color:var(--acid)}
.home-faq-list summary span{display:grid;place-items:center;width:40px;height:40px;flex:none;border:1px solid var(--line);font-size:18px;transition:transform .35s cubic-bezier(.16,1,.3,1),background .25s,color .25s}
.home-faq-list details[open] summary span{background:var(--acid);color:var(--bg);border-color:var(--acid)}
.home-faq-list details>p{color:#c9ccc2;font-size:16px;line-height:1.7;max-width:640px;margin:0}
@media(max-width:900px){.home-faq{grid-template-columns:1fr;gap:36px}.home-faq-head{position:static}.home-faq-list summary{font-size:1.3rem}}
.page-heading.heading-long h1{font-size:clamp(3.4rem,6.6vw,7.4rem);line-height:.92}
@media(max-width:760px){.page-heading.heading-long h1{font-size:clamp(2.6rem,11vw,4rem)}}
.process article{grid-template-columns:1fr}
.home-faq-list details[open] summary span{transform:none}
.home-faq-list details[open] summary span svg{transform:rotate(45deg)}
.home-faq-list summary span svg{transition:transform .35s cubic-bezier(.16,1,.3,1)}

/* Workshops page cards, like the home page: dark, cinematic photos, clear titles (client 2026-09-28). */
.workshop-section{background:var(--bg);color:var(--ink);border-top:1px solid var(--line)}
.workshop-section p{color:#c9ccc2}
.workshop-section .text-link{color:var(--ink)}
.workshop-section .text-link:hover{color:var(--acid)}
.workshop-section .workshop-grid{gap:34px}
.workshop-section .card-image{height:auto;aspect-ratio:4/5;background:#242824}
.workshop-section .card-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.05) brightness(.82)}
.workshop-section .card-image:after{inset:40% 0 0;background:linear-gradient(transparent,#171918e6)}
.workshop-section .workshop-card:hover .card-image img{filter:saturate(1.05) brightness(.95)}
.workshop-section .workshop-card h3{font-size:clamp(2.4rem,3.2vw,3.4rem);line-height:.95;margin:26px 0 14px}
.workshop-section .workshop-card:hover h3{color:var(--acid)}
.workshop-section .workshop-card>p{font-size:16px;line-height:1.65;max-width:440px}
@media(max-width:760px){.workshop-section .card-image{aspect-ratio:4/3}.workshop-section .workshop-card h3{font-size:2.4rem}}
/* Galerij: photos without text (client 2026-09-28). */
.photo-overlay{justify-content:flex-end}
dialog .media-caption,dialog.photo-mode .media-caption{display:none}
/* Over SEN, cleaner (client 2026-09-28). */
.about-kicker{margin:0 0 18px;font:600 clamp(1.2rem,1.6vw,1.5rem)/1.2 var(--body);color:var(--ink)}
.about-video-toggle{display:none!important}
.mission-pillars{padding-top:60px}
.pillar{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
@media(max-width:900px){.pillar{grid-template-columns:1fr}.pillar p{grid-column:1}}

/* Google review details in our style: tinted initials, check, date, "Geplaatst op Google". */
.g-avatar[data-tone="0"]{background:#5e35b1}.g-avatar[data-tone="1"]{background:#00897b}.g-avatar[data-tone="2"]{background:#d81b60}.g-avatar[data-tone="3"]{background:#3949ab}.g-avatar[data-tone="4"]{background:#e65100}.g-avatar[data-tone="5"]{background:#2e7d32}.g-avatar[data-tone="6"]{background:#6d4c41}
.g-avatar{color:#fff}
.g-who b{display:inline-flex;align-items:center;gap:6px}
.g-check{width:14px;height:14px;flex:none}
.g-stars{display:inline-flex;align-items:center;gap:1px}
.g-stars time{margin-left:9px;font:500 12px/1 var(--body);letter-spacing:0;color:var(--muted);text-transform:none}
.review-item figcaption.g-posted{display:flex;align-items:center;gap:8px;font:500 12px/1 var(--body);letter-spacing:.02em;text-transform:none;color:var(--muted)}
.g-posted .g-mark{width:16px;height:16px;margin:0}
.g-posted b{color:var(--ink);font-weight:600}
.g-photo{object-fit:cover;background:#2a2d2a}

/* Mobile polish (client: "not mobile friendly", 2026-09-28). */
/* The curtain must disappear completely after entry: iOS Safari tints its bars from fixed elements at the screen edges. */
.curtain{animation:curtain-gone 0s 1.6s forwards}
@keyframes curtain-gone{to{visibility:hidden}}
.leaving .curtain{animation:none;visibility:visible}
@media(prefers-reduced-motion:reduce){.curtain{visibility:hidden}}
@media(max-width:900px){
  /* Workshops list: single column now that the channel numbers are gone. */
  .stage-row{grid-template-columns:minmax(0,1fr);padding:22px}
  .stage-body,.stage-more,.stage-desc{min-width:0}
  .stage-desc{display:block;font-size:15px;line-height:1.6}
  .stage-more b{white-space:nowrap}
  /* Review cards: name, date and Google mark never collide. */
  .g-review-head{align-items:flex-start}
  .g-who{min-width:0;flex:1}
  .g-stars{flex-wrap:wrap;row-gap:4px}
  .g-stars time{margin-left:6px}
  .g-review-head .g-mark{margin-left:6px;margin-top:2px}
  /* Readable small text and comfortable tap targets. */
  .stat-label,.footer-h,.ambient-toggle,.session-actions small{font-size:12px}
  .footer-col a{display:inline-flex;align-items:center;min-height:40px;padding:0}
  .footer-col{gap:2px}
  .footer-legal a,.footer-bottom a{display:inline-flex;align-items:center;min-height:40px}
  .contact-direct{min-height:44px;display:flex;align-items:center}
  .newsletter-consent{min-height:40px;align-items:center}
  .newsletter-consent input,.field input[type=checkbox]{width:20px;height:20px}
  /* Footer never wider than the screen. */
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-main>*{min-width:0}
  .footer-col a{overflow-wrap:anywhere}
}
@media(max-width:760px){
  .footer{padding-bottom:96px}
  .home-faq{padding-bottom:40px}
  .footer .newsletter{padding-top:0}
}
@media(max-width:760px){.film-trigger small{font-size:12px}}
@media(max-width:760px){.page-heading.heading-long h1 br{display:none}.page-heading.heading-long h1 em{display:block}}
/* iOS Safari tints its bars from the page edges: keep everything behind the page dark. */
html{background:#171918}
body{background:#171918}
/* Footer social keys: always square, icon dead centre, no link underline. */
.footer-col .footer-keys .social-key{display:grid;place-items:center;width:46px;height:46px;min-height:0;padding:0;background:none;overflow:hidden}
.footer-keys{display:inline-flex}
.footer-keys .social-key svg{width:19px;height:19px;display:block;margin:0}
.footer-keys .social-key:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--acid);transform:translateY(101%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.footer-keys .social-key:hover{color:var(--bg)}
.footer-keys .social-key:hover:before{transform:none}
.footer-col .footer-handle{margin-top:10px}

/* QA fixes (Codex review 2026-09-28). */
/* F2: pause control for the review rows. */
.reviews.paused .review-track{animation-play-state:paused!important}
.reviews-pause{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;min-height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);font:600 12px/1 var(--body);letter-spacing:.11em;text-transform:uppercase;cursor:pointer;transition:border-color .25s,color .25s}
.reviews-pause:hover,.reviews-pause:focus-visible{border-color:var(--acid);color:var(--acid)}
.reviews-pause .ico{font-size:14px}
.reviews-foot{flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){.reviews-pause{display:none}}
/* F3: readable "Start chat" (dark on WhatsApp green, 8.9:1). */
.wa-pop-cta,.wa-pop-cta:hover,.wa-pop-cta:focus-visible{color:#0b141a}
.wa-pop-cta:focus-visible{outline:3px solid #0b141a;outline-offset:-6px}
.g-photo{color:transparent;font-size:0;overflow:hidden}

/* Site-wide motion switch ("Beweging uit"): same result as the OS reduced-motion setting. */
.motion-off .curtain{display:none}
.motion-off .reviews-pause{display:none}
.motion-off *,.motion-off *::before,.motion-off *::after{scroll-behavior:auto!important}
.motion-switch{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;min-height:40px}
.motion-switch:hover,.motion-switch:focus-visible{color:var(--acid)}
.motion-switch .ico{font-size:13px}
.motion-switch[aria-pressed="true"] .ico{opacity:.5}
button.skip.motion-switch-skip{left:auto;right:20px;font:700 13px/1 var(--body);min-height:44px;padding:12px 16px;color:#111}

/* Static review list: used when motion is off (OS setting or "Beweging uit") and when the visitor pauses the rows.
   The rows stop moving, the duplicate set disappears and each row becomes a scrollable, focusable strip. */
.motion-off .review-track,.reviews.paused .review-track{animation:none!important;transform:none}
.motion-off .review-belt,.reviews.paused .review-belt{overflow-x:auto;scroll-snap-type:x proximity;-webkit-mask-image:none;mask-image:none;scrollbar-width:thin}
.motion-off .review-set[aria-hidden],.reviews.paused .review-set[aria-hidden]{display:none}
.motion-off .review-item,.reviews.paused .review-item{scroll-snap-align:start}
@media(prefers-reduced-motion:reduce){.review-belt{scrollbar-width:thin}}
.review-belt:focus-visible{outline:2px solid var(--acid);outline-offset:-2px}
.g-stars .g-when{margin-left:9px;font:500 12px/1 var(--body);letter-spacing:0;color:var(--muted);text-transform:none}
@media(max-width:900px){.g-stars .g-when{margin-left:6px}}

/* TikTok clips: five portrait cards, play with sound in the dialog. */
.clips{border-top:1px solid var(--line)}
.clip-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.clip-card{position:relative;padding:0;border:0;background:#242824;aspect-ratio:9/16;overflow:hidden;cursor:pointer;color:var(--ink)}
.clip-card img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9) brightness(.82);transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter .5s}
.clip-card:hover img,.clip-card:focus-visible img{transform:scale(1.06);filter:saturate(1.05) brightness(1)}
.clip-card:before{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;z-index:1;background:var(--acid);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.clip-card:hover:before,.clip-card:focus-visible:before{transform:none}
.clip-play{position:absolute;inset:0;margin:auto;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:var(--acid);color:var(--bg);font-size:20px;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.clip-play .ico{margin-left:.12em}
.clip-card:hover .clip-play{transform:scale(1.12)}
.media-content video{max-width:100%;width:auto;margin-inline:auto;display:block}
@media(max-width:900px){
  .clip-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-inline:calc(-1 * clamp(22px,5.1vw,90px));padding-inline:clamp(22px,5.1vw,90px);scrollbar-width:none}
  .clip-row::-webkit-scrollbar{display:none}
  .clip-card{flex:0 0 62%;scroll-snap-align:center}
  .clip-play{width:50px;height:50px}
}

/* WhatsApp button like the WhatsApp logo (client 2026-10-01): round, WhatsApp green, white symbol. */
.wa-float{width:62px;height:62px;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 6px 18px -4px #0009;overflow:hidden}
.wa-float:before,.wa-float .wa-label,.wa-icon i{display:none}
.wa-float:hover,.wa-float:focus-visible{transform:scale(1.07);box-shadow:0 10px 24px -6px #000b;background:#22c35e}
.wa-float:active{transform:scale(.97);box-shadow:0 4px 12px -4px #0009}
.wa-float:focus-visible{outline:3px solid #fff;outline-offset:3px}
.wa-icon{flex:1 1 auto;width:100%}
.wa-icon svg{width:32px;height:32px}
.wa-float:hover .wa-icon svg{transform:none}
@media(max-width:760px){.wa-float{width:56px;height:56px}.wa-icon svg{width:29px;height:29px}}

/* Galerij per evenement (client 2026-10-01). */
.event-nav{display:flex;flex-wrap:wrap;gap:10px;margin:-20px auto 44px}
.event-nav a{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid var(--line);font:600 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);transition:border-color .25s,color .25s,background .25s}
.event-nav a:hover,.event-nav a:focus-visible{border-color:var(--acid);color:var(--acid)}
.event{padding-top:90px;scroll-margin-top:20px}
.event-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:26px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.event-head h2{margin:0;font-size:clamp(2.6rem,5vw,5rem)}
.event-count{font:600 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.event-grid{columns:3;column-gap:14px}
.event-grid .ev-item{display:block;width:100%;break-inside:avoid;margin:0 0 14px;padding:0;border:0;background:#242824;position:relative;overflow:hidden;cursor:zoom-in}
.event-grid .ev-item img{display:block;width:100%;height:auto;transition:transform 1s cubic-bezier(.16,1,.3,1),filter .5s;filter:saturate(.95)}
.event-grid .ev-item:hover img,.event-grid .ev-item:focus-visible img{transform:scale(1.04);filter:saturate(1.08)}
.event-grid .ev-item:before{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;z-index:1;background:var(--acid);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.event-grid .ev-item:hover:before,.event-grid .ev-item:focus-visible:before{transform:none}
.event-grid .ev-film{cursor:pointer}
.event-grid .ev-film img{aspect-ratio:9/16;object-fit:cover}
.gallery-section{scroll-margin-top:20px}
@media(max-width:760px){.event-nav{margin:-10px auto 30px;gap:8px}.event-nav a{padding:0 14px;letter-spacing:.08em}.event{padding-top:64px}.event-head{flex-direction:column;align-items:flex-start;gap:10px}.event-grid{columns:2;column-gap:10px}.event-grid .ev-item{margin-bottom:10px}}
/* Holi Phagwa logo as section heading; SEN group picture on Over SEN. */
.event-head h2.event-logo{line-height:0}
.event-logo img{display:block;width:clamp(220px,28vw,380px);height:auto}
.about-lead>div.about-lead-group{height:auto;display:grid;place-items:center}
.about-lead-group img{width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 24px 40px #0008)}
@media(max-width:760px){.event-logo img{width:240px}}
/* Hero title "Muziek die je niet alleen hoort, maar voelt!" (client 2026-10-05): longest line must fit. */
.hero h1.hero-title-feel{font-size:clamp(4rem,8.4vw,10rem)}
@media(max-width:760px){.hero h1.hero-title-feel{font-size:clamp(40px,11.6vw,84px)}}

/* No arrows anywhere (client 2026-10-05). */
.header-book{gap:0;justify-content:center}
.button,.text-link{gap:0}
.newsletter-input .newsletter-submit{width:auto;padding:0 22px;font:700 13px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.photo-overlay b:empty,.stage-more b:empty{display:none}
/* Holi heading: logo with the event name next to it. */
.event-head h2.event-logo{display:flex;align-items:center;gap:clamp(16px,2.4vw,32px);line-height:1}
.event-logo img{width:clamp(150px,16vw,240px)}
.event-logo-text{font-size:clamp(2.2rem,4.4vw,4.6rem);line-height:.95}
@media(max-width:760px){.event-head h2.event-logo{flex-direction:column;align-items:flex-start;gap:12px}.event-logo img{width:170px}.event-logo-text{font-size:2.3rem}}
.about-lead p strong{color:var(--ink);font-weight:700}
.about-signoff{font:600 clamp(1.4rem,2vw,1.9rem)/1.15 var(--display);text-transform:uppercase;color:var(--acid);margin-top:8px}

/* Over SEN: Holi Phagwa Special Parade (client 2026-10-05). */
.about-holi{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(36px,6vw,110px);align-items:start;border-top:1px solid var(--line)}
.about-holi-logo{width:clamp(150px,14vw,210px);height:auto;display:block;margin-bottom:18px}
.about-holi-text h2{margin:0 0 28px}
.about-holi-text p{color:#c9ccc2;font-size:16px;line-height:1.7;margin:0 0 18px;max-width:640px}
.about-holi-media{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:sticky;top:30px}
.about-holi-media>*{aspect-ratio:9/16;width:100%;object-fit:cover;display:block}
.about-holi-film{position:relative;padding:0;border:0;background:#242824;overflow:hidden;cursor:pointer}
.about-holi-film img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.about-holi-film:hover img{transform:scale(1.05)}
@media(max-width:900px){.about-holi{grid-template-columns:1fr}.about-holi-media{position:static}}
