/* One visual language, from the artist to the dancefloor to the collection. */
.world-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.8s;pointer-events:none}
.world-canvas.is-ready{opacity:var(--world-opacity,.3)}
.cosmic-atmosphere:before{opacity:.09;animation:none}
.cosmic-atmosphere:after{background:linear-gradient(90deg,#08080d88,transparent 75%),linear-gradient(0deg,#08080d55,transparent 80%)}
main>section{perspective:1400px;position:relative}
main>.section>.section-head,main>.section>.reveal,main>.section>.past-editions-grid,main>.section>.feed-moments-grid,main>.section>.visuals-grid,main>.section>.memories-grid,main>.section>.event-film-grid{translate:0 var(--chapter-shift,0px);scale:var(--chapter-scale,1);rotate:y var(--chapter-angle,0deg);transform-origin:50% 40%;transition:translate .4s ease-out,scale .4s ease-out,rotate .4s ease-out}
.chapter-nav{position:fixed;bottom:20px;right:4.2%;display:flex;align-items:center;gap:18px;z-index:5;color:#eee7ef;max-width:min(410px,80vw);font-size:.65rem;letter-spacing:.1em}
.chapter-menu{position:relative}
.chapter-menu summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer;padding:9px 15px;border:1px solid #b6a6b829;border-radius:30px;background:#0b0910d9;backdrop-filter:blur(14px)}
.chapter-menu summary::-webkit-details-marker{display:none}
.chapter-count{color:#c6b3d6;font-size:.6rem;white-space:nowrap}.chapter-name{font-size:.6rem;white-space:nowrap;max-width:230px;overflow:hidden;text-overflow:ellipsis}
.chapter-links{position:absolute;bottom:52px;left:0;min-width:270px;max-height:60svh;overflow:auto;padding:12px;background:#100d16f5;border:1px solid #d7c5ee33;border-radius:7px;box-shadow:0 20px 80px #0009}
.chapter-links a{display:block;padding:10px 14px;letter-spacing:.06em;line-height:1.5;border-radius:4px}.chapter-links a span{color:#9e8aad;margin-right:12px}.chapter-links a[aria-current]{background:#d7c5ee13}.chapter-links a:hover{background:#d7c5ee13;animation:none}
.chapter-next{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;border:1px solid #b6a6b829;background:#0b0910d9;font-size:1rem;backdrop-filter:blur(14px)}
.cinema-scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:4px;color:#eee1ec;font-size:.55rem;letter-spacing:.18em;text-shadow:0 2px 8px #000}
.cinema-scroll-cue>span:last-child{font-size:1rem;animation:scrollInvitation 3s ease-in-out infinite}
.cinematic-intro{position:fixed;inset:0;z-index:110;background:#08080d;display:grid;place-items:center;animation:introDissolve 2.1s ease both;overflow:hidden}
.intro-word{position:relative;font:500 clamp(2.2rem,6vw,5.5rem)/1 var(--head);letter-spacing:.22em;text-align:center;color:#f4ece4;animation:introWord 1.9s cubic-bezier(.22,.65,.2,1) both;text-shadow:0 0 35px #e4bbdf55}
.intro-word small{display:block;font:400 .6rem/1.5 var(--body);letter-spacing:.25em;margin-top:24px;color:#cfc1d6}
.intro-aperture{position:absolute;left:50%;top:50%;width:1px;height:1px;border-radius:50%;background:radial-gradient(ellipse,#f5eedc 0%,#dac4ee70 22%,#e8d3ea10 70%,transparent 80%);box-shadow:0 0 30px #eedceb80;animation:introHorizon 2.1s cubic-bezier(.22,.65,.2,1) both}
.intro-skip{position:absolute;right:5%;bottom:6%;font-size:.75rem;color:#d9c7df;z-index:3;border-bottom:1px solid #d9c7df44;padding:10px 0}
.cinema-opening .chapter-nav{opacity:0}
@keyframes introWord{0%{opacity:0;transform:scale(.88);filter:blur(5px)}30%,55%{opacity:1;transform:scale(1);filter:blur(0)}100%{opacity:0;transform:scale(1.2);filter:blur(5px)}}
@keyframes introHorizon{0%,25%{transform:translate(-50%,-50%) scale(0);opacity:0}48%{width:95vw;height:2px;transform:translate(-50%,-50%);opacity:1}70%{width:95vw;height:12vh;transform:translate(-50%,-50%);opacity:.6}100%{width:200vw;height:200vh;transform:translate(-50%,-50%);opacity:0}}
@keyframes introDissolve{0%,66%{opacity:1}100%{opacity:0}}
@keyframes scrollInvitation{0%,100%{translate:0 0}50%{translate:0 6px}}
.past-editions-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.past-edition{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:24px;align-items:center;padding:20px;border:1px solid #d7c5ee26;border-radius:5px;background:#0d0a11a8}
.edition-art{position:relative;display:block;padding:0;overflow:hidden;width:100%;height:clamp(320px,55svh,480px);background:#08080d;border:1px solid #d7c5ee20;border-radius:4px}
.edition-art img{width:100%;height:100%;object-fit:contain}.edition-art>span{position:absolute;left:0;right:0;bottom:0;padding:10px;background:#08080dcc;font-size:.7rem}
.edition-details .eyebrow{font-size:.65rem;margin-bottom:16px}.edition-details h3{font-size:clamp(1.7rem,2.5vw,2.5rem);margin-bottom:18px}.edition-details p{font-size:.85rem;line-height:1.5;margin-bottom:14px}.edition-details .edition-date{font-size:.6rem;letter-spacing:.08em;color:#c6b3d6}.edition-details .text-link{font-size:.75rem}
.feed-moments-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:820px;width:100%;margin-inline:auto}
.feed-moment{padding:0;display:flex;flex-direction:column;text-align:left;border:1px solid #d7c5ee26;border-radius:5px;overflow:hidden;background:#0d0a11}
.feed-moment img{width:100%;height:clamp(280px,57svh,510px);object-fit:contain}.feed-moment>span{padding:16px 20px;display:flex;justify-content:space-between;font-size:.85rem}.feed-source{margin-top:24px;align-self:center}
.visual-intro{max-width:760px;margin-bottom:24px;font-size:.9rem;line-height:1.6}
.visuals-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.visual-card{padding:0;text-align:left;border:1px solid #c4dfe430;border-radius:5px;overflow:hidden;background:#0d1012}
.visual-frame{display:block;position:relative;height:clamp(210px,38svh,380px);background:#08080d}
.visual-frame img{width:100%;height:100%;object-fit:contain}
.visual-play{position:absolute;top:16px;left:16px;width:34px;height:34px;border:1px solid #ffffff60;border-radius:50%;display:grid;place-items:center;font-size:.7rem;background:#08080d66;backdrop-filter:blur(6px)}
.visual-duration{position:absolute;right:14px;bottom:14px;font-size:.65rem;background:#08080da6;padding:3px 8px;border-radius:3px}
.visual-copy{display:flex;flex-direction:column;gap:12px;padding:20px}.visual-copy .eyebrow{font-size:.6rem;margin:0;line-height:1.5}.visual-copy strong{font:500 1.4rem/1.1 var(--head);letter-spacing:-.04em}.visual-copy>span:last-child{font-size:.7rem;color:#aaaeb2}
.gig-visuals-section .gallery-note{font-size:.75rem;line-height:1.5;margin-top:20px}
.project-card.db-portrait{grid-template-rows:380px auto;min-height:550px}.project-card.db-portrait>img{height:380px;object-position:center 38%}
.creative-services-section .booking-intro{width:100%;max-width:1000px;margin-inline:auto}.creative-services-section .rate-card{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}.creative-services-section .rate-card li{padding:16px 0;align-content:start}.creative-services-section .rate-card li small{line-height:1.5}
.creative-enquiry-section .enquiry-panel,.creative-enquiry-section .section-head{max-width:640px;width:100%;margin-inline:auto}
@media(min-width:701px){.creative-enquiry-section form{grid-template-columns:1fr 1fr;gap:14px 20px}.creative-enquiry-section form>.field-row,.creative-enquiry-section .form-submit,.creative-enquiry-section .form-note,.creative-enquiry-section form>.text-link{grid-column:1/-1}.creative-enquiry-section form>label.scope-field,.creative-enquiry-section form>details{grid-column:1}.creative-enquiry-section form>.message-field{grid-column:2;grid-row:2/span 2}.creative-enquiry-section form:has(>.scope-field[hidden])>.message-field{grid-column:1/-1;grid-row:auto}}
@media(max-width:1000px){.past-edition{grid-template-columns:1fr;gap:14px}.edition-art{height:37svh;min-height:230px}.edition-details h3{font-size:1.75rem;margin-bottom:12px}.edition-details .eyebrow{margin-bottom:10px}.visuals-grid{gap:12px}.visual-copy{padding:16px}.visual-copy strong{font-size:1.2rem}}
@media(max-width:700px){
 .chapter-nav{display:none}.cinema-scroll-cue{bottom:80px;font-size:.5rem}.cinema-scroll-cue>span:last-child{font-size:.8rem}
 .artist-entry .dimension-copy{bottom:18%}.artist-entry .dimension-actions{gap:18px}.artist-entry .dimension-actions .text-link{font-size:.75rem}
 .intro-word{font-size:clamp(1.6rem,8vw,2.8rem);letter-spacing:.15em}
 .past-editions-grid,.feed-moments-grid,.visuals-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:100%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
 .past-edition,.feed-moment,.visual-card{min-width:0;scroll-snap-align:start}.past-edition{display:grid;grid-template-columns:1fr;padding:16px;gap:18px}.edition-art{height:42svh;min-height:260px}.edition-details h3{font-size:1.7rem}.edition-details p{margin-bottom:12px}.edition-details .eyebrow{font-size:.6rem}
 .feed-moment img{height:49svh;max-height:460px}.feed-source{font-size:.75rem;line-height:1.6}
 .gig-visuals-section .section-head{gap:18px;margin-bottom:22px}.gig-visuals-section .section-head h2{font-size:2.1rem}.gig-visuals-section .section-head .button{font-size:.75rem;padding:10px 18px}.visual-intro{font-size:.82rem;margin-bottom:22px}.visual-frame{height:35svh;min-height:240px}.visual-copy{padding:18px}.visual-copy strong{font-size:1.5rem}.visual-copy .eyebrow{font-size:.62rem}.visual-copy>span:last-child{font-size:.75rem}.gig-visuals-section .gallery-note{margin-top:12px;font-size:.7rem}.gig-visuals-section .mobile-gallery-hint{margin-top:5px}
 .project-card.db-portrait{grid-template-rows:440px auto;min-height:610px}.project-card.db-portrait>img{height:440px}
 .creative-services-section .booking-intro h2{font-size:2.4rem}.creative-services-section .rate-card{gap:10px 20px}.creative-services-section .rate-card li{display:flex;flex-direction:column;padding:12px 0;gap:8px}.creative-services-section .rate-card li>span{font-size:.9rem}.creative-services-section .rate-card li strong{font-size:.72rem}.creative-services-section .rate-card li small{font-size:.72rem}.creative-services-section .rate-note{font-size:.7rem}.creative-enquiry-section .enquiry-panel{padding:20px 16px}.creative-enquiry-section form{gap:14px}.creative-enquiry-section form>.field-row{grid-template-columns:1fr 1fr;gap:12px}
}
body[data-motion=off] main>.section>*{translate:none!important;scale:none!important;rotate:none!important}
@media(prefers-reduced-motion:reduce){.cinematic-intro{display:none}.world-canvas{transition:none}main>.section>*{translate:none!important;scale:none!important;rotate:none!important}}

body[data-motion=off] .reveal{filter:none!important;clip-path:none!important}

/* Selected work becomes a filmstrip, so one chapter stays on screen. */
body[data-page=triptuner] #work{padding-top:42px;padding-bottom:58px}
body[data-page=triptuner] #work .section-head{margin-bottom:24px}
body[data-page=triptuner] .portfolio-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 36px)/3);gap:18px;height:clamp(330px,51svh,470px);overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
body[data-page=triptuner] .portfolio-grid .project-card{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0;min-width:0;scroll-snap-align:start}
body[data-page=triptuner] .portfolio-grid .project-card.wide{grid-column:auto}
body[data-page=triptuner] .portfolio-grid .project-card>img{grid-row:1;position:relative;inset:auto;width:100%;height:100%;object-fit:cover;filter:none}
body[data-page=triptuner] .portfolio-grid .db-portrait>img{object-fit:contain;background:#08080d}
body[data-page=triptuner] .portfolio-grid .project-info{grid-row:2;position:relative;inset:auto;padding:18px 20px;background:#0d1012;display:flex;flex-direction:column;justify-content:start}
body[data-page=triptuner] .portfolio-grid .project-info .eyebrow{font-size:.6rem;margin-bottom:8px;line-height:1.5}
body[data-page=triptuner] .portfolio-grid .project-info strong{font-size:1.55rem;margin-bottom:8px}
body[data-page=triptuner] .portfolio-grid .project-subtitle{font-size:.8rem;margin-bottom:8px}
body[data-page=triptuner] .portfolio-grid .project-info>span:last-child{font-size:.75rem}
body[data-page=triptuner] .portfolio-grid .type-film{grid-template-rows:minmax(0,1fr) auto}
body[data-page=triptuner] .portfolio-grid .film-card-symbol{top:8%;font-size:3.5rem}
.work-gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:12px 0 16px;color:var(--muted);font-size:.7rem}
.work-gallery-controls>div{display:flex;gap:10px}.work-gallery-controls button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;font-size:1rem}
body[data-page=triptuner] #work .gallery-note{margin-top:0;font-size:.75rem;line-height:1.6}
body[data-page=triptuner] main>.trip-hero{height:calc(100svh - var(--header-height,94px));min-height:0;display:flex;flex-direction:column;gap:14px;padding-top:18px;padding-bottom:18px}
.trip-hero .hero-meta{flex:none}.trip-hero .trip-word{margin:0;font-size:clamp(3rem,8vw,8rem);line-height:1.05;flex:none}
.trip-hero .trip-scene{height:auto;min-height:0;flex:1}
.trip-hero .trip-scene-copy{height:100%;padding:24px 6% 60px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.trip-hero .trip-scene-copy h2{font-size:clamp(2.6rem,4vw,4.5rem);line-height:1.05;margin-bottom:20px}
.trip-hero .trip-bottom{bottom:18px;font-size:.65rem}
@media(min-width:701px){
 body[data-page=triptuner] #work{padding-top:32px;padding-bottom:44px}
 body[data-page=triptuner] .portfolio-grid{height:clamp(330px,46svh,460px)}
 body[data-page=triptuner] .gig-visuals-section{padding-top:38px;padding-bottom:50px}
 .gig-visuals-section .visual-frame{height:clamp(210px,36svh,370px)}
 .creative-services-section,.creative-enquiry-section{padding-top:32px!important;padding-bottom:40px!important}
}
@media(max-width:700px){
 body[data-page=triptuner] main>.trip-hero{padding-bottom:86px;gap:14px;padding-top:16px}
 .trip-hero .trip-word{font-size:12.7vw}.trip-hero .trip-scene-copy{padding:26px 7% 66px}.trip-hero .trip-scene-copy h2{font-size:clamp(2.4rem,11vw,3.8rem)}
 .trip-hero .trip-scene-copy .eyebrow{font-size:.6rem;max-width:250px}.trip-hero .hero-actions{gap:10px}.trip-hero .hero-actions .button{font-size:.75rem;padding:11px 18px}
 body[data-page=triptuner] #work{padding-top:38px;padding-bottom:90px}
 body[data-page=triptuner] #work .section-head{gap:14px;margin-bottom:22px}
 body[data-page=triptuner] #work .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;white-space:nowrap;gap:8px;margin-bottom:22px;padding:3px 0}
 body[data-page=triptuner] #work .filters button{flex:none;padding:8px 16px;font-size:.75rem}
 body[data-page=triptuner] .portfolio-grid{grid-auto-columns:100%;height:clamp(350px,46svh,440px);gap:16px}
 body[data-page=triptuner] .portfolio-grid .project-info{padding:18px 20px}.work-gallery-controls{margin:10px 0 14px;gap:12px}.work-gallery-controls>span{max-width:220px;font-size:.65rem}
 body[data-page=triptuner] #work .gallery-note{font-size:.67rem}
 body[data-page=triptuner] .gig-visuals-section{padding-top:38px;padding-bottom:86px}
 .gig-visuals-section .section-head{margin-bottom:16px;gap:12px}.gig-visuals-section .section-head h2{font-size:1.95rem}.gig-visuals-section .section-head .eyebrow{font-size:.6rem;margin-bottom:12px}
 .gig-visuals-section .section-head .button{padding:8px 15px;font-size:.7rem}
 .gig-visuals-section .visual-intro{font-size:.76rem;line-height:1.5;margin-bottom:18px}
 .gig-visuals-section .visual-frame{height:30svh;min-height:220px}
 .gig-visuals-section .visual-copy{padding:15px 18px;gap:10px}
 .gig-visuals-section .gallery-note{font-size:.65rem;line-height:1.5;margin-top:8px}
 .creative-services-section{padding-top:32px!important;padding-bottom:70px!important}.creative-services-section .rate-card{gap:8px 20px}.creative-services-section .rate-card li{padding:10px 0}.creative-services-section .rate-heading{margin-bottom:12px}
 .creative-enquiry-section{padding-top:30px!important;padding-bottom:80px!important}.creative-enquiry-section .section-head{margin-bottom:24px}
}

.portfolio-grid{padding-top:8px}

.sound-toggle{display:inline-flex;align-items:center;gap:5px;color:var(--muted);padding:8px 6px;white-space:nowrap;font-size:.6875rem;line-height:1.2;border-radius:4px}
.sound-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.sound-toggle .sound-muted{display:none}body[data-sound=off] .sound-toggle .sound-waves{display:none}body[data-sound=off] .sound-toggle .sound-muted{display:block}
.sound-toggle:hover,.sound-toggle:focus-visible{color:var(--text)}.interaction-audio{display:none}
@media(max-width:700px){.sound-toggle{padding:8px 4px}.sound-toggle .sound-label{display:none}}

@media(min-width:701px){
 body[data-page=clover] #about{padding-top:32px;padding-bottom:40px}
 body[data-page=clover] #about .profile-portrait{height:320px;margin-top:24px;margin-bottom:22px}
 body[data-page=clover] #worlds .world-card{min-height:380px}
}
@media(max-width:700px){
 body[data-page=clover] #worlds .world-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:100%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
 body[data-page=clover] #worlds .world-card{min-width:0;min-height:430px;scroll-snap-align:start}
}
