:root{--ice:#e8edf1;--paper:#f7f5ef;--ink:#344047;--muted:#748087;--gold:#b5a183;--line:rgba(73,86,93,.18);--out:cubic-bezier(.22,.74,.18,1);--soft:cubic-bezier(.33,1,.68,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ice)}body{margin:0;color:var(--ink);background:var(--ice);font-family:"Montserrat",sans-serif;overflow-x:hidden}body.is-locked{overflow:hidden}button,input{font:inherit}img{display:block;width:100%}a{color:inherit}
.page-light{position:fixed;inset:0;z-index:-3;overflow:hidden;pointer-events:none;background:linear-gradient(180deg,#dfe7ec,#f1f0eb 35%,#e4e9eb 68%,#d5dee3)}.page-light span{position:absolute;width:90vmax;aspect-ratio:1;left:50%;top:18vh;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.98),rgba(250,248,238,.62) 28%,rgba(221,232,239,.12) 58%,transparent 72%);transform:translate3d(-50%,0,0) scale(.7);opacity:.55;will-change:transform,opacity}
.paper-noise{position:fixed;inset:0;z-index:40;pointer-events:none;opacity:.13;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E")}
.progress{position:fixed;z-index:35;right:14px;top:50%;width:1px;height:22vh;background:rgba(52,64,71,.14);transform:translateY(-50%)}.progress i{display:block;width:100%;height:100%;background:var(--ink);transform:scaleY(0);transform-origin:top}
.mini-nav{position:fixed;z-index:30;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:max(18px,env(safe-area-inset-top)) 20px 12px;mix-blend-mode:multiply;pointer-events:none}.mini-nav a{pointer-events:auto;text-decoration:none;font:italic 500 1.05rem "Cormorant Garamond",serif}.mini-nav span{font-size:.54rem;letter-spacing:.18em}
.micro-label{margin:0 0 12px;color:var(--muted);font-size:.58rem;letter-spacing:.22em;text-transform:uppercase}.opening,.scene{position:relative;min-height:100svh;overflow:clip}.opening{display:grid;grid-template-rows:auto 1fr auto;place-items:center;padding:max(70px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom))}
.opening__copy{text-align:center;z-index:5;transition:opacity 700ms var(--soft),transform 700ms var(--soft),filter 700ms var(--soft)}.opening h1{display:flex;align-items:baseline;justify-content:center;gap:clamp(9px,4vw,25px);margin:0;font:400 clamp(2.25rem,10vw,5.5rem)/1 "Italiana",serif}.opening h1 i{color:var(--gold);font:italic 300 .7em "Cormorant Garamond",serif}.opening__date{margin:9px 0 0;color:var(--muted);font:italic 400 .78rem "Cormorant Garamond",serif;letter-spacing:.08em}
.opening__stage{position:relative;width:min(89vw,500px);aspect-ratio:1.34;align-self:center;perspective:1400px;transform:translateY(-2vh)}.opening-glow{position:absolute;inset:-40%;border-radius:50%;opacity:.15;background:radial-gradient(circle,#fff,transparent 62%);transform:scale(.65);transition:opacity 1600ms var(--soft),transform 1600ms var(--soft)}
.envelope{position:absolute;inset:0;transform-style:preserve-3d;filter:drop-shadow(0 28px 27px rgba(64,75,82,.18));transition:transform 1300ms var(--out),filter 1300ms var(--out)}.envelope__back,.envelope__inner,.flap{position:absolute;inset:0}.envelope__back{background:linear-gradient(140deg,rgba(255,255,255,.82),transparent 38%),var(--paper);box-shadow:inset 0 0 0 1px rgba(80,91,96,.09)}.envelope__inner{background:linear-gradient(155deg,#bfcbd2,#edf1f2 60%);clip-path:polygon(0 0,50% 56%,100% 0)}
.flap--top{z-index:8;clip-path:polygon(0 0,100% 0,50% 65%);transform-origin:top;background:radial-gradient(circle at 50% 18%,#fff,transparent 46%),linear-gradient(155deg,#fbfaf5,#dce3e6);backface-visibility:hidden;transition:transform 1000ms var(--out),filter 900ms var(--out)}.flap--left{z-index:5;clip-path:polygon(0 0,59% 51%,0 100%);background:linear-gradient(110deg,#f8f7f1,#d9e0e3)}.flap--right{z-index:5;clip-path:polygon(100% 0,41% 51%,100% 100%);background:linear-gradient(250deg,#f8f7f1,#d9e0e3)}.flap--bottom{z-index:6;clip-path:polygon(0 100%,50% 37%,100% 100%);background:linear-gradient(12deg,#faf9f4 18%,#dce3e5)}
.seal{position:absolute;z-index:10;left:50%;top:48%;display:grid;place-items:center;width:62px;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);color:#748188;background:radial-gradient(circle at 34% 25%,#fdfdfb,#d5dde0 65%,#c6d0d4);box-shadow:0 6px 14px rgba(47,60,68,.17),inset 0 0 0 5px rgba(255,255,255,.25);font:italic 500 1rem "Cormorant Garamond",serif;transition:opacity 300ms var(--soft),transform 500ms var(--soft)}.seal b{color:var(--gold);margin:0 1px}
.letter{position:absolute;z-index:3;left:8%;right:8%;bottom:3%;height:148%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(238,241,240,.92));box-shadow:0 14px 35px rgba(49,61,68,.16),inset 0 0 0 1px rgba(73,86,93,.1);transform:translateY(60%) scale(.96);transform-origin:bottom;transition:transform 1200ms var(--out)}.letter:before{content:"";position:absolute;inset:12px;border:1px solid rgba(151,138,112,.37)}.letter>*{z-index:1}.letter p{margin:0;font:italic 300 1.35rem "Cormorant Garamond",serif}.letter strong{font:400 clamp(2.2rem,11vw,4.1rem) "Italiana",serif;text-transform:uppercase;letter-spacing:.08em}.letter small{margin-top:15px;font-size:.55rem;letter-spacing:.2em}.letter>span{width:36%;height:1px;margin:18px 0;background:var(--line)}
.open-trigger{position:absolute;z-index:15;bottom:max(24px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;min-height:46px;padding:0 20px 0 22px;border:1px solid rgba(69,81,87,.2);border-radius:100px;color:var(--ink);background:rgba(255,255,255,.38);backdrop-filter:blur(12px);cursor:pointer;text-transform:uppercase;letter-spacing:.15em;font-size:.58rem;transition:transform 180ms var(--soft),opacity 400ms var(--soft),background 180ms var(--soft)}.open-trigger:hover{background:rgba(255,255,255,.67)}.open-trigger:active,.rsvp-button:active{transform:scale(.97)}.open-trigger svg{width:16px;fill:none;stroke:currentColor;stroke-width:1.3}.scroll-cue{position:absolute;z-index:15;bottom:max(18px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:9px;border:0;color:var(--muted);background:transparent;opacity:0;pointer-events:none;cursor:pointer;text-transform:uppercase;letter-spacing:.2em;font-size:.5rem;transition:opacity 500ms var(--soft)}.scroll-cue i{width:1px;height:30px;background:linear-gradient(var(--ink),transparent)}
.opening.is-open .opening__copy{opacity:.3;transform:translateY(-8px);filter:blur(2px)}.opening.is-open .opening-glow{opacity:.85;transform:scale(1)}.opening.is-open .flap--top{transform:rotateX(-178deg);filter:brightness(.93)}.opening.is-open .seal{opacity:0;transform:translate(-50%,-50%) scale(.92)}.opening.is-open .letter{transform:translateY(-27%) scale(1);z-index:7}.opening.is-open .envelope{transform:translateY(9vh) scale(.86);filter:drop-shadow(0 18px 20px rgba(64,75,82,.12))}.opening.is-ready .open-trigger{opacity:0;pointer-events:none}.opening.is-ready .scroll-cue{opacity:1;pointer-events:auto}
.scene{display:grid;align-items:center;padding:clamp(90px,13vh,160px) clamp(22px,7vw,110px)}.scene__inner{width:min(100%,900px);margin:auto;text-align:center}.scene h2{margin:0;font:400 clamp(2.6rem,9vw,6.6rem)/.96 "Italiana",serif;letter-spacing:-.035em}.scene h2 em{color:var(--gold);font-family:"Cormorant Garamond",serif;font-weight:300}.scene p{line-height:1.8}
.reveal{opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity 720ms var(--soft) var(--delay,0ms),transform 720ms var(--soft) var(--delay,0ms),filter 720ms var(--soft) var(--delay,0ms)}.reveal.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}.reveal-image{overflow:hidden;clip-path:inset(12% 8% round 48% 48%/11% 11%);opacity:.3;filter:blur(8px);transition:clip-path 1200ms var(--out),opacity 850ms var(--soft),filter 850ms var(--soft)}.reveal-image.is-visible{clip-path:inset(0 round 48% 48%/8% 8%);opacity:1;filter:blur(0)}
.announcement{min-height:125svh}.announcement__card{position:relative;padding:clamp(60px,10vw,110px) 15px}.display-lines{display:flex;flex-direction:column;gap:7px}.display-lines span{display:block}.accent{color:var(--gold);font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:300}.date-lockup{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(12px,4vw,35px);width:min(100%,520px);margin:45px auto 25px;padding:20px 0;border-block:1px solid var(--line)}.date-lockup strong{font:400 clamp(3rem,14vw,6rem) "Italiana",serif}.date-lockup span{font-size:.58rem;line-height:1.7;letter-spacing:.15em;text-transform:uppercase}.whisper{max-width:480px;margin:auto;color:var(--muted);font:italic 400 1rem "Cormorant Garamond",serif}
.orb,.paper-arc,.paper-disc,.story__veil{position:absolute;pointer-events:none;will-change:transform}.orb{width:45vw;max-width:520px;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.78),rgba(193,208,217,.18) 50%,transparent 70%);box-shadow:inset 0 0 60px rgba(255,255,255,.45)}.orb--one{left:-24vw;top:20%}.orb--two{right:-28vw;bottom:3%}.paper-arc{width:28vw;max-width:360px;aspect-ratio:1;right:-14vw;bottom:8%;border-radius:50%;border:clamp(12px,3vw,42px) solid rgba(248,247,242,.62);box-shadow:0 22px 38px rgba(69,81,87,.07)}
.story{grid-template-columns:1.05fr .95fr;gap:clamp(35px,8vw,120px);min-height:125svh}.story__visual{position:relative;height:min(78vh,850px);box-shadow:0 32px 70px rgba(52,64,71,.15)}.story__visual img{height:100%;object-fit:cover}.story__veil{right:-15%;top:-8%;width:55%;height:118%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.72),transparent);filter:blur(3px);opacity:.7}.story__visual b{position:absolute;bottom:14px;right:18px;color:white;font-size:.65rem;letter-spacing:.18em}.story__copy{max-width:560px}.story__copy h2{margin-bottom:28px}.story__copy>p:not(.micro-label){max-width:490px;color:var(--muted);font:400 1.05rem/1.85 "Cormorant Garamond",serif}.signature{margin-top:32px;font:italic 300 2rem "Cormorant Garamond",serif;color:var(--gold)}
.reveal-scene{grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,120px);min-height:125svh}.reveal-scene__copy{justify-self:end;max-width:560px;text-align:right}.reveal-scene__copy>p:last-child{color:var(--muted);font:italic 400 1rem "Cormorant Garamond",serif}.scratch-card{justify-self:start;width:min(82vw,430px);padding:18px 18px 25px;background:linear-gradient(145deg,rgba(255,255,255,.87),rgba(236,240,240,.82));box-shadow:0 32px 65px rgba(52,64,71,.16);transform:rotate(2deg) translateY(18px)}.scratch-card.is-visible{transform:rotate(2deg)}.scratch-card__frame{position:relative;aspect-ratio:1;overflow:hidden;border-radius:50%;box-shadow:0 0 0 1px var(--line),0 12px 25px rgba(52,64,71,.13)}.scratch-card__frame img,.scratch-card__frame canvas,.scratch-hint{position:absolute;inset:0;width:100%;height:100%}.scratch-card__frame img{object-fit:cover}.scratch-card__frame canvas{touch-action:none;cursor:crosshair}.scratch-hint{display:grid;place-content:center;text-align:center;pointer-events:none;transition:opacity 280ms var(--soft)}.scratch-hint span{color:#7b878c;font:italic 400 2.1rem "Cormorant Garamond",serif}.scratch-hint small{font-size:.48rem;letter-spacing:.2em;text-transform:uppercase}.scratch-card>p{text-align:center;font:italic 400 .9rem "Cormorant Garamond",serif;color:var(--muted)}
.venue{grid-template-columns:1.1fr .9fr;gap:clamp(35px,8vw,110px);min-height:135svh}.venue__visual,.rings{position:relative;height:min(85vh,940px);margin:0;box-shadow:0 35px 75px rgba(45,57,64,.18)}.venue__visual img,.rings img{height:100%;object-fit:cover}.venue__visual>span{position:absolute;inset:0;background:linear-gradient(180deg,rgba(207,222,233,.16),transparent 40%,rgba(25,35,43,.2));mix-blend-mode:screen}.venue__visual figcaption,.rings figcaption{position:absolute;left:18px;bottom:16px;color:white;font-size:.48rem;letter-spacing:.18em;text-transform:uppercase}.venue__copy{max-width:480px}.venue__city{margin:20px 0;padding:13px 0;border-block:1px solid var(--line);text-transform:uppercase;letter-spacing:.15em;font-size:.62rem}.venue__copy>p:not(.micro-label):not(.venue__city),.details__copy>p:not(.micro-label){color:var(--muted);font:400 1rem/1.8 "Cormorant Garamond",serif}.text-link{display:inline-flex;gap:10px;margin-top:15px;padding-bottom:5px;border-bottom:1px solid;text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:.56rem}
.programme{min-height:125svh;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,8vw,130px)}.programme__head{justify-self:end;max-width:520px;text-align:right}.timeline{position:relative;width:min(100%,520px);margin:0;padding:0;list-style:none}.timeline:before{content:"";position:absolute;left:69px;top:10px;bottom:10px;width:1px;background:linear-gradient(transparent,var(--line) 8%,var(--line) 92%,transparent)}.timeline li{display:grid;grid-template-columns:55px 1fr;gap:36px;padding:24px 0}.timeline time{color:var(--gold);font:italic 400 1rem "Cormorant Garamond",serif}.timeline span{display:flex;flex-direction:column}.timeline b{font:400 1.35rem "Italiana",serif}.timeline small{margin-top:5px;color:var(--muted);font:italic 400 .86rem "Cormorant Garamond",serif}.paper-disc{width:30vw;max-width:390px;aspect-ratio:1;border-radius:50%;background:linear-gradient(140deg,rgba(255,255,255,.72),rgba(214,224,229,.3));box-shadow:0 22px 45px rgba(52,64,71,.09),inset 0 0 0 1px rgba(255,255,255,.75)}.disc--left{left:-20vw;top:4%}.disc--right{right:-22vw;bottom:0}
.details{min-height:125svh;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,8vw,120px)}.details__copy{justify-self:end;max-width:520px}.palette{display:flex;gap:12px;margin-top:26px}.palette i{width:34px;aspect-ratio:1;border-radius:50%;background:var(--c);box-shadow:0 0 0 1px rgba(52,64,71,.1),0 8px 14px rgba(52,64,71,.07)}.rings{height:min(75vh,820px)}
.finale{min-height:115svh;place-items:center;padding-bottom:35px}.final-light{position:absolute;width:100vmax;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(240,238,226,.52) 30%,transparent 68%);opacity:.7}.final-card{position:relative;z-index:2;width:min(91vw,590px);padding:clamp(55px,9vw,100px) 25px;text-align:center;background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(232,238,240,.48));box-shadow:0 35px 80px rgba(52,64,71,.13),inset 0 0 0 1px rgba(255,255,255,.72);backdrop-filter:blur(14px)}.final-card:before{content:"";position:absolute;inset:13px;border:1px solid var(--line)}.deadline{margin:0 0 22px;color:var(--gold);font:400 .72rem "Italiana",serif;letter-spacing:.18em}.final-card h2{font-size:clamp(3.1rem,13vw,7rem)}.final-card>p:not(.micro-label):not(.deadline){color:var(--muted);font:italic 400 1rem "Cormorant Garamond",serif}.rsvp-button{position:relative;z-index:2;display:inline-flex;align-items:center;gap:35px;min-height:50px;margin-top:20px;padding:0 18px 0 24px;border:1px solid rgba(52,64,71,.28);border-radius:100px;color:var(--paper);background:var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.13em;font-size:.55rem;transition:transform 180ms var(--soft),background 180ms var(--soft)}.final-monogram{margin-top:40px;color:#8b969b;font:italic 400 1.5rem "Cormorant Garamond",serif}.final-monogram span{color:var(--gold)}.finale footer{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;display:flex;justify-content:space-between;color:var(--muted);text-transform:uppercase;letter-spacing:.16em;font-size:.47rem}
.rsvp-dialog{width:min(92vw,520px);padding:0;border:0;color:var(--ink);background:linear-gradient(145deg,#f8f7f1,#e4eaec);box-shadow:0 35px 90px rgba(37,49,56,.3)}.rsvp-dialog::backdrop{background:rgba(48,59,65,.38);backdrop-filter:blur(8px)}.rsvp-dialog[open]{animation:dialog-in 420ms var(--soft) both}@keyframes dialog-in{from{opacity:0;transform:translateY(12px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}.rsvp-dialog form{display:flex;flex-direction:column;gap:18px;padding:60px clamp(24px,7vw,55px) 45px}.rsvp-dialog h2{margin:0;font:400 2.7rem/.95 "Italiana",serif}.rsvp-dialog h2 em{color:var(--gold);font-family:"Cormorant Garamond",serif}.rsvp-dialog label,.rsvp-dialog legend{font-size:.58rem;letter-spacing:.13em;text-transform:uppercase}.rsvp-dialog input[name=name]{width:100%;margin-top:8px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;outline:none}.rsvp-dialog fieldset{display:flex;flex-direction:column;gap:12px;margin:0;padding:16px 0 0;border:0}.rsvp-dialog fieldset label{text-transform:none}.dialog-close{position:absolute;right:14px;top:10px;border:0;background:transparent;cursor:pointer;font:300 1.7rem "Cormorant Garamond",serif}.dialog-submit{min-height:48px;border:0;color:var(--paper);background:var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.16em;font-size:.56rem}.form-note{margin:0;color:var(--muted);font-size:.54rem;text-align:center}.toast{position:fixed;z-index:60;left:50%;bottom:22px;width:min(calc(100% - 40px),450px);padding:14px 18px;border-radius:100px;color:var(--paper);background:rgba(52,64,71,.88);text-align:center;font-size:.63rem;opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity 300ms var(--soft),transform 300ms var(--soft)}.toast.is-visible{opacity:1;transform:translate(-50%,0)}
/* Cinematic motion system */
.opening{--flap-p:0;--letter-p:0;--light-p:0;--settle-p:0;--copy-p:0;isolation:isolate}
.opening__cinema{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.opening__cinema:before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 190deg at 50% 55%,transparent,rgba(187,219,239,.2),rgba(255,255,255,.7),transparent 32%);opacity:calc(.12 + var(--light-p)*.72);transform:rotate(calc(var(--light-p)*12deg)) scale(calc(.75 + var(--light-p)*.35));filter:blur(34px);will-change:transform,opacity}.opening__cinema i{position:absolute;width:4px;aspect-ratio:1;border-radius:50%;background:white;box-shadow:0 0 14px 3px rgba(194,226,249,.55);opacity:calc(var(--light-p)*.72);animation:float-mote 5s linear infinite}.opening__cinema i:nth-child(1){left:23%;top:42%;animation-delay:-1.7s}.opening__cinema i:nth-child(2){left:72%;top:31%;animation-delay:-3.2s}.opening__cinema i:nth-child(3){left:61%;top:69%;animation-delay:-.4s}@keyframes float-mote{0%{transform:translate3d(0,20px,0) scale(.7)}50%{opacity:.85}100%{transform:translate3d(8px,-45px,0) scale(1.2);opacity:0}}
.opening__copy{opacity:calc(1 - var(--copy-p)*.7);transform:translateY(calc(var(--copy-p)*-10px));filter:blur(calc(var(--copy-p)*2.4px));will-change:transform,opacity,filter}
.opening__stage{touch-action:none;user-select:none;cursor:grab}.opening__stage.is-dragging{cursor:grabbing}
.opening-glow{inset:-54%;opacity:calc(.12 + var(--light-p)*.83);background:radial-gradient(circle,rgba(255,255,255,.98),rgba(207,230,247,.62) 20%,rgba(157,201,233,.24) 43%,transparent 68%);transform:scale(calc(.58 + var(--light-p)*.55));filter:blur(calc(16px - var(--light-p)*7px));transition:none;will-change:transform,opacity,filter}
.opening-beam{position:absolute;z-index:1;left:11%;right:11%;top:-14%;height:95%;opacity:calc(var(--light-p)*.8);background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(193,226,249,.35) 42%,transparent 83%);clip-path:polygon(41% 0,59% 0,100% 100%,0 100%);transform:scaleY(calc(.15 + var(--light-p)*.85));transform-origin:bottom;filter:blur(14px);mix-blend-mode:screen;pointer-events:none}
.envelope{transform:translateY(calc(var(--settle-p)*9vh)) scale(calc(1 - var(--settle-p)*.14));filter:drop-shadow(0 calc(28px - var(--settle-p)*10px) calc(27px - var(--settle-p)*7px) rgba(64,75,82,calc(.18 - var(--settle-p)*.06)));transition:none;will-change:transform,filter}.envelope__light{position:absolute;z-index:4;inset:-22% 5% 22%;opacity:calc(var(--light-p)*.95);background:radial-gradient(ellipse at 50% 75%,rgba(255,255,255,.98),rgba(186,220,244,.64) 28%,transparent 69%);filter:blur(13px);mix-blend-mode:screen;pointer-events:none}
.flap--top{transform:rotateX(calc(var(--flap-p)*-178deg));filter:brightness(calc(1 - var(--flap-p)*.07));transition:none;will-change:transform,filter}.seal{opacity:calc(1 - var(--flap-p)*1.15);transform:translate(-50%,-50%) scale(calc(1 - var(--flap-p)*.08));transition:none}.letter{transform:translateY(calc(60% - var(--letter-p)*87%)) scale(calc(.96 + var(--letter-p)*.04));box-shadow:0 14px 35px rgba(49,61,68,.16),0 0 calc(var(--light-p)*48px) rgba(195,226,248,.72),inset 0 0 0 1px rgba(73,86,93,.1);transition:none;will-change:transform,box-shadow}.letter-shine{position:absolute!important;z-index:0!important;inset:0;background:linear-gradient(112deg,transparent 25%,rgba(255,255,255,.88) 48%,transparent 67%);transform:translateX(calc(-130% + var(--letter-p)*210%));opacity:calc(var(--letter-p)*.7);mix-blend-mode:screen;will-change:transform,opacity}
.open-trigger{min-height:48px;background:rgba(255,255,255,.42);box-shadow:0 12px 34px rgba(75,98,114,.12),inset 0 0 0 1px rgba(255,255,255,.62);backdrop-filter:blur(15px);overflow:hidden;font-size:.55rem}.open-trigger svg{animation:cta-rise 1.8s var(--out) infinite}.open-trigger__pulse{position:absolute;inset:-2px;border-radius:inherit;border:1px solid rgba(255,255,255,.95);animation:cta-pulse 2.2s var(--soft) infinite;pointer-events:none}.scroll-cue i{height:34px;transform-origin:top;animation:cue-line 1.8s var(--soft) infinite}@keyframes cta-rise{0%,100%{transform:translateY(2px)}50%{transform:translateY(-3px)}}@keyframes cta-pulse{0%{transform:scale(.94);opacity:0}35%{opacity:.66}100%{transform:scale(1.14);opacity:0}}@keyframes cue-line{0%{transform:scaleY(.15);opacity:0}35%{opacity:1}100%{transform:scaleY(1);opacity:0}}
.scene{--scene-p:0;--scene-focus:0;isolation:isolate}.scene:after{content:"";position:absolute;z-index:-1;left:-20%;right:-20%;top:24%;height:38%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.42),rgba(196,217,230,.18),transparent);transform:translate3d(calc((var(--scene-p) - .5)*12%),calc((.5 - var(--scene-p))*42%),0) rotate(-5deg);opacity:calc(.07 + var(--scene-focus)*.24);filter:blur(24px);pointer-events:none;will-change:transform,opacity}.announcement{min-height:150svh}.announcement__card{position:sticky;top:15vh}.story,.reveal-scene,.venue,.programme,.details{min-height:150svh}.finale{min-height:130svh}
.reveal{transform:translateY(28px);filter:blur(8px);clip-path:inset(0 0 22% 0);transition:opacity 760ms var(--soft) var(--delay,0ms),transform 860ms var(--soft) var(--delay,0ms),filter 760ms var(--soft) var(--delay,0ms),clip-path 900ms var(--out) var(--delay,0ms)}.reveal.is-visible{clip-path:inset(0);filter:blur(0)}.reveal-image{transform:translateY(26px) scale(.975);transition:clip-path 1250ms var(--out),opacity 900ms var(--soft),filter 900ms var(--soft),transform 1250ms var(--out)}.reveal-image.is-visible{transform:none}.motion-photo{transform:scale(1.1) translate3d(0,3%,0);transform-origin:center;will-change:transform,filter}.story__visual,.venue__visual,.rings{overflow:hidden}.story__veil{mix-blend-mode:screen;opacity:calc(.2 + var(--scene-focus)*.65)}
@media(min-width:761px){.story__visual,.venue__visual,.rings{position:sticky;top:10vh}.scratch-card{position:sticky;top:24vh}.timeline{position:sticky;top:24vh}}
@media(max-width:760px){.scene{padding-inline:24px}.story,.reveal-scene,.venue,.programme,.details{grid-template-columns:1fr}.story__visual,.venue__visual,.rings{height:68vh;order:2}.story__copy,.venue__copy{order:1}.reveal-scene__copy,.programme__head{justify-self:auto;text-align:left}.scratch-card{justify-self:center}.orb{width:70vw}.paper-arc{width:55vw}.details__copy{justify-self:auto}.story,.reveal-scene,.venue,.programme,.details{gap:55px}.announcement{min-height:135svh}.announcement__card{top:12vh}.opening__stage{width:min(91vw,500px)}.opening__copy{margin-top:2vh}.open-trigger{bottom:max(20px,env(safe-area-inset-bottom))}}
@media(max-height:670px){.opening__copy{transform:scale(.9);transform-origin:top}.opening__stage{width:min(72vw,390px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,.reveal-image{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}.parallax{transform:none!important}}
