:root{--navy:#25209c;--ink:#25209c;--paper:#faf8f4;--white:#fff;--grey:#43415b;--line:rgba(37,32,156,.19);--shadow:0 15px 30px rgba(29,25,102,.15)}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:Montserrat,sans-serif;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.48;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,black,transparent 90%);z-index:-1}a{color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}.paper-section{position:relative}.section-pad{padding:130px max(6vw,30px)}.site-header{position:absolute;inset:0 0 auto;z-index:10;padding:24px max(4vw,24px);display:flex;align-items:center;justify-content:space-between}.site-logo{height:64px;width:auto;display:block;background:none;border:none;box-shadow:none}.main-nav{display:flex;gap:23px;align-items:center}.main-nav a{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;text-decoration:none;white-space:nowrap}.main-nav a:hover,.header-note:hover{opacity:.6}.header-note{font-family:Caveat,cursive;font-size:20px;text-decoration:none}.header-note span{font-family:Arial;font-size:14px}.menu-button{display:none;border:0;background:transparent;width:38px;padding:8px;cursor:pointer}.menu-button span{display:block;height:2px;background:var(--ink);margin:5px 0}.hero{min-height:440px;padding:95px max(7vw,28px) 50px;background:var(--paper)}.hero-grid{max-width:1220px;margin:auto;display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:center;min-height:280px}.hero-image{display:block;width:100%;height:auto;max-width:100%;min-height:340px;object-fit:contain}.polaroid{background:var(--white);padding:10px 10px 36px;box-shadow:var(--shadow);margin:0}.polaroid figcaption{font:600 22px Caveat,cursive;padding:7px 4px 0;color:var(--ink)}.tape{position:absolute;background:rgba(37,32,156,.85);height:31px;width:105px;z-index:5;opacity:.85}.hero-copy{position:relative;padding-left:20px}.eyebrow,.section-kicker{font:500 10px "DM Mono",monospace;letter-spacing:.1em;text-transform:uppercase}.hero-copy h1{margin:10px 0 17px;display:flex;flex-direction:column;line-height:.8}.hero-copy h1 em{font:600 clamp(80px,10vw,148px) Caveat,cursive;letter-spacing:-8px;transform:rotate(-5deg);margin-left:-8px}.hero-copy h1 span{font:17px "DM Serif Display",serif;letter-spacing:.45em;margin:17px 0 8px 5px}.hero-copy h1 strong{font:clamp(52px,8vw,110px) "DM Serif Display",serif;letter-spacing:-.065em}.hero-intro{font:500 13px/1.75 Montserrat,sans-serif;max-width:290px;color:var(--grey);margin:0 0 20px}.scribble-link{font:700 25px Caveat,cursive;text-decoration:none;border-bottom:1px solid var(--ink)}.scribble-link b{font:16px Montserrat,sans-serif;margin-left:10px}.hero-arrow{position:absolute;width:125px;left:140px;bottom:-44px;fill:none;stroke:var(--ink);stroke-width:1.4px}.hero-doodle{position:absolute;font:700 48px Caveat,cursive;z-index:3}.doodle-one{left:4%;top:23%;transform:rotate(-20deg)}.doodle-two{right:9%;top:24%;font-size:54px}.doodle-three{right:4%;bottom:24%;transform:rotate(12deg)}.ribbon{position:absolute;width:100%;height:120px;bottom:0;left:0;fill:none;overflow:visible;animation:wave-flow 12s ease-in-out infinite}.ribbon path{stroke:var(--navy);stroke-width:34px;stroke-linecap:round;opacity:.93;stroke-dasharray:8 2;animation:ribbon 12s linear infinite}.ribbon .ribbon-thin{stroke:var(--paper);stroke-width:2px;stroke-dasharray:2 8;animation:none}.torn-edge{position:absolute;bottom:-18px;z-index:3;width:100%;height:30px;background:var(--paper);clip-path:polygon(0 46%,3% 59%,6% 38%,9% 62%,13% 41%,17% 57%,21% 35%,26% 60%,30% 43%,34% 59%,38% 37%,43% 61%,49% 42%,52% 58%,56% 36%,61% 59%,65% 39%,70% 60%,75% 40%,80% 59%,85% 38%,90% 62%,95% 41%,100% 55%,100% 100%,0 100%)}@keyframes ribbon{to{stroke-dashoffset:-250px}}@keyframes wave-flow{0%,100%{transform:translateX(-8px)}50%{transform:translateX(8px)}}.about{padding-top:150px}.about-layout{max-width:1130px;margin:20px auto 0;display:grid;grid-template-columns:.8fr 1.25fr .8fr;gap:35px;align-items:center}.about-title{position:relative}.about-title p{font:600 25px Caveat,cursive;margin:0 0 -8px}.about-title h2,.section-heading h2,.contact h2{font:clamp(48px,5vw,72px)/.88 "DM Serif Display",serif;letter-spacing:-.05em;margin:0}.about-title h2 i,.section-heading h2 i,.contact h2 i{font-family:Caveat,cursive;font-weight:700;letter-spacing:-4px}.star-sticker{display:block;margin:25px 0 0 60px;font:44px Caveat,cursive;transform:rotate(20deg)}.letter-card{position:relative;background:#fffefa;padding:43px 42px 35px;box-shadow:var(--shadow);transform:rotate(-2deg);font:15px/1.85 "DM Serif Display",serif;color:var(--grey)}.letter-card:after{content:"";position:absolute;inset:8px;border:1px solid var(--line);pointer-events:none}.letter-card p,.signature{position:relative;z-index:1}.signature{display:block;font:600 27px/1 Caveat,cursive;color:var(--ink);margin-top:20px}.paperclip{position:absolute;right:25px;top:-29px;font:72px serif;transform:rotate(-21deg);z-index:3}.about-photo{transform:rotate(7deg)}.journey{position:absolute;border:2px dashed var(--navy);opacity:.7;border-left:0;border-bottom:0;border-radius:50%;width:270px;height:490px;left:-115px;top:125px}.dance{background:var(--navy);color:var(--paper);overflow:hidden}.dance:before{content:"✦  ♡  ✦";position:absolute;right:4%;top:30px;font:40px Caveat,cursive;letter-spacing:24px;opacity:.8}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;max-width:1120px;margin:0 auto 65px}.section-heading h2{margin-top:14px}.section-heading p{max-width:290px;font-size:13px;line-height:1.75;margin:0;color:inherit}.class-notes{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.class-note{min-height:270px;padding:25px;background:var(--paper);color:var(--ink);box-shadow:8px 10px 0 rgba(255,255,255,.22);display:flex;flex-direction:column;align-items:start;transition:transform .3s}.class-note:hover{transform:translateY(-10px) rotate(2deg)}.note-1{transform:rotate(-2deg)}.note-2{transform:translateY(18px) rotate(1.5deg)}.note-3{transform:rotate(-1deg)}.class-note span{font:11px "DM Mono",monospace}.class-note h3{font:43px/.84 "DM Serif Display",serif;letter-spacing:-.06em;margin:30px 0 12px}.class-note p{font:600 22px Caveat,cursive;margin:0}.class-note a{font:700 11px Montserrat,sans-serif;text-transform:uppercase;margin-top:auto;text-decoration:none;border-bottom:1px solid}.performances{overflow:hidden}.hand-label{font:22px Caveat,cursive}.reels-wrap{display:grid;gap:24px;transform:rotate(-2deg);width:110%;margin-left:-5%;contain:layout paint style}.reels{display:flex;gap:19px;width:max-content;animation:slide-left 40s linear infinite}.row-two{animation-name:slide-right;animation-duration:47s}.reel{width:220px;height:340px;position:relative;border:8px solid white;box-shadow:var(--shadow);overflow:hidden;flex:none;transition:transform .25s;cursor:pointer;contain:layout paint style;will-change:transform;transform:translateZ(0)}.reel video{display:block !important;width:100% !important;height:100% !important;object-fit:contain !important;object-position:center !important;background:#0d0a2e}.reel:hover{transform:translateY(-13px) rotate(3deg)}.reel:after{content:none}@keyframes slide-left{to{transform:translateX(-50%)}}@keyframes slide-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}.gallery-board{max-width:1060px;margin:auto;display:grid;grid-template-columns:1fr 1.16fr .9fr 1.05fr;grid-auto-rows:170px;gap:26px}.gallery-item{padding:9px 9px 30px;background:#fff;box-shadow:var(--shadow);position:relative;transform:rotate(var(--r));transition:transform .3s}.gallery-item:hover{transform:translateY(-10px) rotate(0)}.gallery-item:first-child{grid-row:span 2}.gallery-item:nth-child(2){grid-row:span 1}.gallery-item:nth-child(3){grid-row:span 2}.gallery-item:nth-child(5){grid-row:span 2}.gallery-item:nth-child(6){grid-row:span 1}.gallery-item img{height:100%}.gallery-item span{font:600 18px Caveat,cursive;position:absolute;left:12px;bottom:5px}.contact{padding-bottom:110px}.contact-card{max-width:1100px;margin:auto;background:#fffefa;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:70px;position:relative}.tape-contact{top:-13px;left:43%;transform:rotate(-3deg);width:150px}.contact-copy p{font-size:13px;line-height:1.7;max-width:270px;color:var(--grey)}.contact-copy>a{font:700 20px Caveat,cursive}.social-links{display:flex;gap:14px;margin-top:40px}.social-links a{font:500 10px "DM Mono",monospace;text-transform:uppercase;text-decoration:none;border-bottom:1px solid}.social-links a{position:relative;padding:4px 2px}.social-pop-icon{position:absolute;top:0;left:50%;font-size:26px;opacity:0;pointer-events:none;transform:translate(-50%,-10px) rotate(0deg) scale(.7);filter:blur(2px);transition:opacity .2s ease,transform .2s ease,filter .2s ease}.social-links a:hover .social-pop-icon{opacity:1;transform:translate(-50%,-38px) rotate(var(--pop-rot,-6deg)) scale(1);filter:blur(0)}.social-links a:nth-child(1) .social-pop-icon{--pop-rot:-8deg}.social-links a:nth-child(2) .social-pop-icon{--pop-rot:5deg}.social-links a:nth-child(3) .social-pop-icon{--pop-rot:-4deg}.social-links a:not(:hover){opacity:1}#socialLinks:has(a:hover) a:not(:hover){opacity:.5}form{display:grid;gap:16px}form label{font:600 10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.06em}input,textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid var(--ink);padding:10px 0 7px;font:13px Montserrat,sans-serif;color:var(--ink);outline:none;resize:vertical}input::placeholder,textarea::placeholder{color:rgba(37,32,156,.48)}form button{justify-self:start;border:0;background:var(--navy);color:white;padding:16px 24px;margin-top:8px;font:700 11px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.form-message{margin:0;font:600 18px Caveat,cursive}.site-footer{border-top:1px solid var(--line);padding:50px max(6vw,30px) 30px;background:var(--paper)}.footer-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;max-width:1220px;margin:0 auto}.footer-logo{height:56px;width:auto}.footer-nav{display:flex;gap:20px;flex-wrap:wrap}.footer-nav a{font:600 10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;color:var(--ink)}.footer-nav a:hover{opacity:.6}.footer-tagline{max-width:1220px;margin:36px auto 0;font:700 clamp(24px,3.4vw,40px)/1.1 "DM Serif Display",serif;color:var(--ink)}.footer-bottom{display:flex;justify-content:space-between;max-width:1220px;margin:28px auto 0;padding-top:20px;border-top:1px solid var(--line);font:500 10px "DM Mono",monospace;text-transform:uppercase;color:var(--grey)}@media(max-width:560px){.footer-top{flex-direction:column;align-items:flex-start}.footer-nav{gap:14px}.footer-tagline{margin-top:26px}.footer-bottom{flex-direction:column;gap:8px}}.cursor-sparkles{position:fixed;z-index:100;pointer-events:none}.sparkle{position:fixed;font:18px Caveat,cursive;color:var(--navy);animation:sparkle .7s ease-out forwards}@keyframes sparkle{to{transform:translateY(-17px) rotate(90deg);opacity:0}}.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
/* =========================================================
   PREMIUM TESTIMONIAL MARQUEE — REAL WEDDING REVIEWS
   ========================================================= */
.testimonials{padding:130px max(6vw,30px);overflow:hidden;background:#F9F7F4}
.testimonials-head{max-width:1120px;margin:0 auto 64px;text-align:center}
.testimonials-head .section-kicker{display:block;margin-bottom:18px}
.testimonials-head h2{font:500 clamp(44px,6vw,72px)/.95 "Cormorant Garamond",serif;letter-spacing:-.02em;margin:0;color:var(--ink)}
.testimonials-head h2 i{font-family:Caveat,cursive;font-weight:700;letter-spacing:-2px}
.testimonials-sub{max-width:460px;margin:22px auto 0;font:15px/1.7 "Inter",sans-serif;color:var(--grey)}
.testimonials-marquee{position:relative;width:100%;overflow:hidden;cursor:grab;padding:30px 0;touch-action:pan-y}
.testimonials-marquee.is-dragging{cursor:grabbing}
.testimonial-track{display:flex;gap:24px;width:max-content;padding:0;margin:0;list-style:none;will-change:transform;user-select:none}
.testimonial-track.is-draggable .testimonial-card{cursor:grab}
.testimonial-track.is-dragging .testimonial-card{cursor:grabbing}
.testimonial-card{position:relative;flex:none;width:clamp(320px,84vw,360px);animation:testimonial-float 5.5s ease-in-out infinite;will-change:transform}
.testimonial-card-inner{position:relative;padding:30px 28px 26px;background:var(--tint,#fff);border-radius:20px;box-shadow:0 18px 40px rgba(29,25,102,.10);transition:transform .45s cubic-bezier(.2,.8,.3,1),box-shadow .45s cubic-bezier(.2,.8,.3,1)}
.testimonial-card:hover .testimonial-card-inner{transform:scale(1.045) translateY(-4px);box-shadow:0 26px 52px rgba(29,25,102,.16)}
.testimonial-accent{position:absolute;top:0;left:22px;right:22px;height:4px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--navy),rgba(37,32,156,.35))}
.testimonial-quote{position:absolute;top:16px;right:22px;font:600 74px/1 "Cormorant Garamond",serif;color:rgba(37,32,156,.16);pointer-events:none}
.testimonial-text{position:relative;margin:8px 0 22px;font:15.5px/1.7 "Inter",sans-serif;color:#2b2a40}
.testimonial-heart{display:inline-block}
.testimonial-meta{display:flex;align-items:center;gap:12px;border-top:1px solid rgba(37,32,156,.12);padding-top:16px}
.testimonial-avatar{width:42px;height:42px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,var(--navy),#534AB7);color:#fff;font:600 13px "Inter",sans-serif;letter-spacing:.02em;box-shadow:0 6px 14px rgba(37,32,156,.28)}
.testimonial-badge{display:inline-flex;align-items:center;gap:7px;font:500 11px "Inter",sans-serif;letter-spacing:.04em;color:rgba(37,32,156,.85);background:rgba(37,32,156,.08);padding:6px 12px;border-radius:999px}
.badge-dot{width:6px;height:6px;border-radius:50%;background:#2fbf71;box-shadow:0 0 0 2px rgba(47,191,113,.25)}
@keyframes testimonial-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media(max-width:850px){.testimonials{padding:110px 24px}.testimonials-head{margin-bottom:48px}}
@media(max-width:560px){.testimonials{padding:90px 18px}.testimonial-card{width:320px}.testimonial-card-inner{padding:26px 22px 22px}.testimonial-text{font-size:15px}.testimonials-sub{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* =========================================================
   INTRO LOADER — Hand-Drawn Paper Scrapbook Aesthetic
   ========================================================= */
body.loader-locked {
  overflow: hidden !important;
}

#introLoader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.75s cubic-bezier(0.25, 1, 0.5, 1), transform 0.75s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: opacity, transform;
}

#introLoader.exiting {
  opacity: 0;
  transform: translateY(-25px);
  pointer-events: none;
}

.loader-ambient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.loader-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 520px;
  height: 520px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(37, 32, 156, 0.14) 0%, rgba(37, 32, 156, 0.04) 40%, rgba(250, 248, 244, 0) 70%);
  filter: blur(40px);
  pointer-events: none;
  opacity: 0;
  animation: loaderFadeIn 1.2s ease forwards;
}

.loader-grid {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, var(--line, rgba(37,32,156,0.19)) 1px, transparent 1px);
  background-size: 28px 28px;
  opacity: 0.4;
  pointer-events: none;
}

.loader-doodles {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.loader-doodle {
  position: absolute;
  font-family: "Caveat", cursive;
  color: var(--navy);
  opacity: 0;
  animation: doodleFloat var(--dur, 4.5s) ease-in-out infinite alternate;
  will-change: transform, opacity;
}

.loader-doodle.d1 { top: 18%; left: 14%; --rot: -15deg; font-size: 38px; --dur: 4.2s; animation-delay: 0.1s; }
.loader-doodle.d2 { top: 22%; right: 16%; --rot: 18deg; font-size: 42px; --dur: 5.1s; animation-delay: 0.3s; }
.loader-doodle.d3 { bottom: 20%; left: 18%; --rot: -10deg; font-size: 36px; --dur: 4.6s; animation-delay: 0.2s; }
.loader-doodle.d4 { bottom: 24%; right: 14%; --rot: 22deg; font-size: 40px; --dur: 5.4s; animation-delay: 0.4s; }
.loader-doodle.d5 { top: 48%; left: 8%; --rot: -25deg; font-size: 32px; --dur: 3.9s; animation-delay: 0.15s; }

.loader-sparkles {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.loader-sparkle-dot {
  position: absolute;
  border-radius: 50%;
  background: var(--navy, #25209c);
  opacity: 0;
  animation: sparkleFloat var(--sdur, 4.5s) ease-in-out infinite;
  will-change: transform, opacity;
}

.loader-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 18px;
  padding: 20px;
}

.loader-logo {
  width: 150px;
  max-width: 36vmin;
  height: auto;
  opacity: 0;
  transform: scale(0.82);
  transition: opacity 0.85s ease, transform 0.85s cubic-bezier(0.18, 0.89, 0.32, 1.15);
  will-change: transform, opacity;
}

.loader-logo.in {
  opacity: 1;
  transform: scale(1);
}

.loader-logo.breathe {
  animation: logoBreathing 2.2s ease-in-out infinite;
}

.loader-logo.swell {
  animation: logoSwell 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.loader-tagline {
  font-family: "DM Serif Display", serif;
  font-style: italic;
  font-size: 20px;
  letter-spacing: 0.12em;
  color: var(--navy);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.85s ease, transform 0.85s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform, opacity;
}

.loader-tagline.in {
  opacity: 1;
  transform: translateY(0);
}

@keyframes loaderFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes doodleFloat {
  0% { opacity: 0.55; transform: translate(0, 0) rotate(var(--rot, 0deg)); }
  50% { opacity: 0.85; transform: translate(6px, -12px) rotate(calc(var(--rot, 0deg) + 6deg)); }
  100% { opacity: 0.6; transform: translate(-4px, -20px) rotate(calc(var(--rot, 0deg) - 4deg)); }
}

@keyframes sparkleFloat {
  0% { opacity: 0.3; transform: translate(0, 0) scale(0.7); }
  25% { opacity: 0.7; transform: translate(12px, -18px) scale(1.1); }
  50% { opacity: 0.5; transform: translate(-8px, -32px) scale(0.9); }
  75% { opacity: 0.75; transform: translate(6px, -14px) scale(1.15); }
  100% { opacity: 0.3; transform: translate(0, 0) scale(0.7); }
}

@keyframes logoBreathing {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}

@keyframes logoSwell {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1.02); }
}

@media (max-width: 768px) {
  .loader-logo { width: 130px; }
  .loader-tagline { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .loader-doodle, .loader-sparkle-dot, .loader-glow {
    animation: none !important;
    opacity: 0.25 !important;
  }
  .loader-logo {
    transition: opacity 0.3s ease !important;
    transform: none !important;
  }
  .loader-logo.breathe, .loader-logo.swell {
    animation: none !important;
    transform: none !important;
  }
  .loader-tagline {
    transition: opacity 0.3s ease !important;
    transform: none !important;
  }
  #introLoader {
    transition: opacity 0.3s ease !important;
    transform: none !important;
  }
}
.scatter{min-height:640px;position:relative;overflow:hidden}
.scatter .section-heading{flex-wrap:wrap}
.scatter-quote{font:italic 20px/1.5 "DM Serif Display",serif;color:var(--ink);max-width:340px;margin:0}
.scatter-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;z-index:0;padding:0 40px;pointer-events:none;cursor:default;user-select:none}
.scatter-message p{margin:0;font:clamp(16px,1.8vw,22px)/1.4 "DM Serif Display",serif;color:var(--ink);opacity:1}
.scatter-message p em{font-family:Caveat,cursive;font-style:normal;font-weight:700}
.scatter-message-sign{margin-top:6px !important;font:600 16px Caveat,cursive !important;opacity:.75 !important}
@media(max-width:850px){.scatter-message p{font-size:20px}.scatter-message-sign{font-size:15px}}
@media(max-width:560px){.scatter-message{padding:0 20px;gap:8px}.scatter-message p{font-size:17px}}
.scatter-board{position:relative;width:100%;height:560px;max-width:1200px;margin:auto;perspective:1400px;cursor:default;user-select:none}
.scatter-card{position:absolute;width:190px;padding:10px 10px 34px;background:#fffefa;box-shadow:var(--shadow);transform:rotate(var(--r));cursor:grab;touch-action:none;user-select:none;transform-style:preserve-3d;transition:transform .3s ease;z-index:10}
.scatter-card:active{cursor:grabbing}
.scatter-card img{width:100%;height:210px;object-fit:cover;pointer-events:none}
.scatter-card figcaption{font:600 18px Caveat,cursive;padding:8px 4px 0;color:var(--ink);text-align:center}
@media(max-width:850px){.scatter-board{height:auto;min-height:900px}.scatter-card{width:150px}.scatter-card img{height:170px}}
@media(max-width:560px){.scatter{min-height:auto}.scatter-quote{max-width:none;margin-top:16px}.scatter-board{min-height:1100px}}
.focus-grid{overflow:hidden}
.focus-wrap{width:110%;margin-left:-5%;transform:rotate(-1deg)}
.focus-row{display:flex;gap:20px;width:max-content;animation:slide-left 38s linear infinite}
.focus-row.js-paused{animation-play-state:paused}
.focus-card{position:relative;width:220px;height:280px;flex:none;border-radius:6px;overflow:hidden;box-shadow:var(--shadow);contain:layout paint style;will-change:transform}
.focus-card img{width:100%;height:100%;object-fit:cover;display:block}
.focus-card:after{content:attr(data-label);position:absolute;bottom:0;left:0;right:0;padding:22px 12px 10px;background:linear-gradient(transparent,rgba(37,32,156,.75));font:600 17px Caveat,cursive;color:#fff;opacity:0;transition:opacity .25s ease .05s}
.focus-card.card-active:after{opacity:1;transition:opacity .2s ease}
@media(max-width:850px){.focus-card{width:170px;height:220px}}
.path-stage{position:relative;width:100vw;margin-left:calc(-50vw + 50%);height:260px;cursor:default;user-select:none}.path-guide{position:absolute;inset:0;width:100%;height:100%;cursor:default;pointer-events:none;user-select:none}.path-items{position:absolute;inset:0}.path-item{position:absolute;top:0;left:0;width:74px;height:74px;border-radius:50%;overflow:hidden;border:4px solid #fff;box-shadow:var(--shadow);cursor:grab;touch-action:none;offset-path:path('M0 200C160 60 320 260 480 160C640 60 800 260 960 160C1120 60 1280 260 1440 160C1600 60 1760 200 1920 130');offset-rotate:0deg;will-change:offset-distance}.path-item:active{cursor:grabbing}.path-item img{width:100%;height:100%;object-fit:cover;pointer-events:none}@media(max-width:850px){.path-stage{height:200px}.path-item{width:58px;height:58px}}@media(max-width:560px){.path-stage{height:170px}.path-item{width:46px;height:46px}}

.team,.path-marquee{overflow:hidden}.team-wrap{overflow:hidden;width:110%;margin-left:-5%;transform:rotate(-1deg);padding:34px 0 50px}
.team-row{display:flex;gap:34px;width:max-content;animation:slide-left 42s linear infinite}
.team-card{width:230px;flex:none;position:relative}
.team-card:nth-child(even){margin-top:24px}
.team-card:nth-child(3n){margin-top:-8px}
.team-card-photo{position:relative;background:#fffefa;padding:14px 14px 0;border-radius:14px;box-shadow:var(--shadow)}
.team-card-photo-inner{width:100%;height:240px;display:flex;align-items:center;justify-content:center;background:#f1efe8;border-radius:8px;overflow:hidden}
.team-card-photo-inner img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.team-card-tape{position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(-3deg);width:70px;height:24px;border-radius:3px;z-index:2}
.team-card-tape.tape-solid{background:rgba(37,32,156,.75)}
.team-card-tape.tape-ghost{background:rgba(37,32,156,.14);border:1px solid rgba(37,32,156,.35)}
.team-card-doodle{position:absolute;top:-16px;right:-6px;font:26px Caveat,cursive;transform:rotate(12deg);z-index:3;pointer-events:none;color:var(--ink)}
.team-card-info{background:#fffefa;padding:14px 14px 20px;border-radius:0 0 14px 14px;box-shadow:var(--shadow);margin-top:-1px;text-align:center}
.team-card-name{display:block;font:600 26px Caveat,cursive;color:var(--ink)}
.team-card-tagline{display:block;margin-top:2px;font:italic 13px "DM Serif Display",serif;color:var(--grey)}
.team-wrap:hover .team-row{animation-play-state:paused}
@media(max-width:850px){.team-card{width:180px}.team-card-photo-inner{height:190px}.team-card:nth-child(even),.team-card:nth-child(3n){margin-top:0}}
@media(max-width:560px){.team-card{width:150px}.team-card-photo-inner{height:160px}.team-card-name{font-size:21px}}

.music-toggle{position:fixed;left:24px;bottom:24px;z-index:150;width:52px;height:52px;border-radius:50%;background:var(--navy);border:none;box-shadow:var(--shadow);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}
.music-toggle:hover{transform:scale(1.08)}
.music-toggle:active{transform:scale(.95)}
.music-icon{font:20px "DM Serif Display",serif;color:#fff;position:absolute;transition:opacity .2s ease,transform .2s ease}
.music-icon-off{opacity:0;transform:scale(.6)}
.music-toggle.muted .music-icon-on{opacity:0;transform:scale(.6)}
.music-toggle.muted .music-icon-off{opacity:1;transform:scale(1)}
.music-toggle:not(.muted) .music-icon-on{opacity:1;transform:scale(1)}
@media(max-width:560px){.music-toggle{left:16px;bottom:16px;width:44px;height:44px}.music-icon{font-size:17px}}
.music-float-emoji{position:fixed;left:24px;bottom:60px;font-size:20px;pointer-events:none;z-index:149;animation:float-up 2.6s ease-out forwards}
@keyframes float-up{0%{opacity:0;transform:translate(0,0) scale(.6) rotate(0deg)}15%{opacity:1;transform:translate(var(--drift-start),-20px) scale(1) rotate(var(--rot-start))}100%{opacity:0;transform:translate(var(--drift-end),-160px) scale(.8) rotate(var(--rot-end))}}
@media(max-width:560px){.music-float-emoji{left:16px;bottom:50px;font-size:16px}}

/* =========================================================
   RESPONSIVE AUDIT & FIXES
   Desktop defaults apply above 850px; tablet 560–850px;
   mobile below 560px. Layout/sizing/spacing/touch only.
   ========================================================= */
@media(max-width:850px){
  .menu-button{display:block;width:44px;height:44px;padding:8px;margin-left:auto;position:relative;z-index:60;border:0;background:transparent;cursor:pointer}
  .header-note{margin-left:16px}
  .main-nav{position:fixed;top:0;right:0;bottom:0;width:min(320px,84vw);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:var(--paper);box-shadow:-14px 0 34px rgba(29,25,102,.2);padding:96px 28px 40px;transform:translateX(102%);transition:transform .35s ease;z-index:50;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .main-nav.open{transform:translateX(0)}
  .main-nav a{font-size:13px;min-height:44px;display:flex;align-items:center;padding:0 2px;border-bottom:1px solid var(--line);white-space:normal}
  .hero{padding:110px 28px 56px}
  .hero-grid{grid-template-columns:1fr;gap:16px}
  .hero-copy{padding-left:0}
  .hero-arrow{display:none}
  .hero-image{min-height:0;max-height:340px}
  .section-heading{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:44px}
  .section-heading p{max-width:100%}
  .about-layout{grid-template-columns:1fr;gap:34px}
  .about-photo{max-width:400px;width:100%;margin:0 auto}
  .reel{width:190px;height:300px}
  .reel:after{pointer-events:none}
.gallery-board{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:20px}
  .gallery-item{grid-row:span 1 !important}
  .contact-card{grid-template-columns:1fr;gap:44px;padding:50px}
  .tape-contact{left:38%}
  .scatter-card:nth-child(3){left:56% !important}
  .scatter-card:nth-child(4){left:68% !important}
  .scatter-card:nth-child(7){left:62% !important}
  .path-item{offset-path:path('M0 150 C60 40 120 190 180 135 C240 70 300 190 360 135 C420 70 470 150 520 105')}
}
@media(max-width:560px){
  .section-pad{padding:90px 20px}
  .header-note{display:none}
  .main-nav{width:84vw;padding:92px 22px 36px}
  .hero{min-height:560px;padding:100px 20px 90px}
  .hero-copy{margin-bottom:40px;z-index:1}
  .hero-copy h1 em{font-size:clamp(60px,17vw,80px);letter-spacing:-5px;margin-left:-4px}
  .hero-copy h1 strong{font-size:clamp(42px,13vw,56px)}
  .hero-copy h1 span{text-align:center;align-self:center}
  .hero-image{min-height:340px;max-height:62vh;position:relative;z-index:1}
  .hero-intro{max-width:100%}
  .ribbon{z-index:0}
  .about{padding-top:110px}
  .about-title h2,.section-heading h2,.contact h2{font-size:clamp(38px,10vw,52px)}
  .letter-card{padding:30px 20px 26px;font-size:13px;transform:rotate(-1deg)}
  .paperclip{right:12px;top:-22px;font-size:50px}
  .signature{font-size:24px}
  .journey{display:none}
  .class-notes{grid-template-columns:1fr;gap:24px}
  .class-note{min-height:0;padding:22px 20px}
  .class-note h3{font-size:36px}
  .note-2{transform:translateY(0) rotate(1.5deg)}
  .reel{width:150px;height:235px;border-width:6px}
  .reel:after{font-size:14px;padding:18px 8px 8px}
.gallery-board{grid-template-columns:1fr;grid-auto-rows:200px}
  .contact-card{padding:40px 18px;gap:34px}
  .tape-contact{left:30%}
  .contact-copy p{max-width:100%}
  input,textarea{font-size:16px;padding:12px 0 8px}
  form button{width:100%;justify-self:stretch;min-height:50px}
  .social-links{flex-wrap:wrap;gap:16px}
  .social-links a{min-height:44px;display:inline-flex;align-items:center}
  .scatter-board{min-height:1150px}
  .scatter-card{width:130px;padding:8px 8px 26px}
  .scatter-card img{height:140px}
  .scatter-card figcaption{font-size:15px}
  .scatter-card:nth-child(3){left:40% !important}
  .scatter-card:nth-child(4){left:52% !important}
  .scatter-card:nth-child(7){left:46% !important}
  .footer-nav{gap:10px 18px}
  .footer-nav a{min-height:44px;display:inline-flex;align-items:center}
  .path-item{offset-path:path('M0 120 C35 35 70 150 105 105 C140 55 175 150 210 105 C245 55 270 120 280 85')}
}

@property --hover{syntax:'<number>';inherits:false;initial-value:0.4}
@property --pos{syntax:'<number>';inherits:false;initial-value:0}

.sparkle-cta{display:flex;align-items:center;justify-content:center;padding:60px 20px;overflow:hidden}
.sparkle-button{--font-size:clamp(32px,6vw,80px);--color:#25209c;--shadow:#534AB7;--glare:rgba(255,255,255,.85);--hover:0.4;--pos:0;position:relative;display:inline-flex;align-items:center;justify-content:center;padding:24px 32px;text-decoration:none;cursor:pointer;transition:--hover .4s cubic-bezier(.2,.8,.3,1)}
.sparkle-button span{display:inline-block;font:800 var(--font-size) "DM Serif Display",serif;color:transparent;text-shadow:calc(var(--hover) * (var(--font-size) * -0.02)) calc(var(--hover) * (var(--font-size) * 0.02)) var(--shadow),calc(var(--hover) * (var(--font-size) * -0.04)) calc(var(--hover) * (var(--font-size) * 0.04)) var(--shadow),calc(var(--hover) * (var(--font-size) * -0.06)) calc(var(--hover) * (var(--font-size) * 0.06)) var(--shadow),calc(var(--hover) * (var(--font-size) * -0.08)) calc(var(--hover) * (var(--font-size) * 0.08)) var(--shadow),calc(var(--hover) * (var(--font-size) * -0.10)) calc(var(--hover) * (var(--font-size) * 0.10)) var(--shadow);transform:translate(calc(var(--hover) * (var(--font-size) * 0.10)),calc(var(--hover) * (var(--font-size) * -0.10)))}
.sparkle-button span:last-of-type{position:absolute;inset:0;padding:24px 32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(108deg,transparent 0 55%,var(--glare) 55% 60%,transparent 60% 70%,var(--glare) 70% 85%,transparent 85%) calc(var(--pos) * -200%) 0% / 200% 100%,var(--color);-webkit-background-clip:text;background-clip:text;color:transparent;z-index:2;text-shadow:none}
.sparkle-button:hover{--hover:1;--pos:1;transition:--hover .4s cubic-bezier(.2,.8,.3,1),--pos 1s linear}
.sparkle-button svg.sparkle{position:absolute;z-index:3;width:calc(var(--font-size) * 0.5);aspect-ratio:1;pointer-events:none;transform:translate(-50%,-50%) scale(0);opacity:0;transition:transform .5s ease,opacity .5s ease}
.sparkle-button svg.sparkle path{fill:var(--glare)}
.sparkle-button:hover svg.sparkle{opacity:1;transform:translate(-50%,-50%) scale(1)}
.sparkle-button svg.sparkle:nth-of-type(1){top:20%;left:0%;transition-delay:.05s}
.sparkle-button svg.sparkle:nth-of-type(2){top:80%;left:15%;transition-delay:.15s}
.sparkle-button svg.sparkle:nth-of-type(3){top:40%;left:45%;transition-delay:.25s}
.sparkle-button svg.sparkle:nth-of-type(4){top:60%;left:75%;transition-delay:.35s}
.sparkle-button svg.sparkle:nth-of-type(5){top:30%;left:100%;transition-delay:.45s}
@media(max-width:850px){.sparkle-cta{padding:40px 16px}}
@media(max-width:560px){.sparkle-cta{padding:30px 12px}.sparkle-button span{font-size:clamp(22px,7vw,36px)}}

.reveal-word{display:inline-block;white-space:nowrap}
.reveal-char{display:inline-block;opacity:0;transform:scale(1.45);filter:blur(20px);transition:opacity .3s ease-out,transform .3s ease-out,filter .3s ease-out;will-change:transform,opacity,filter}
.reveal-text.revealed .reveal-char{opacity:1;transform:scale(1);filter:blur(0)}

.name-gate{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(13,10,46,.85);padding:20px}
.name-gate.open{display:flex}
.name-gate-card{background:#fffefa;padding:44px 38px;border-radius:14px;box-shadow:var(--shadow);text-align:center;max-width:340px;width:100%}
.name-gate-title{font:600 26px Caveat,cursive;color:var(--ink);margin:0 0 18px}
.name-gate-input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;font:14px Montserrat,sans-serif;color:var(--ink);outline:none;margin-bottom:16px;box-sizing:border-box}
.name-gate-input:focus{border-color:var(--navy)}
.name-gate-submit{width:100%;border:0;background:var(--navy);color:#fff;padding:13px;border-radius:8px;font:700 12px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}

.custom-cursor{position:fixed;top:0;left:0;z-index:250;pointer-events:none;display:none}
.custom-cursor.active{display:block}
.custom-cursor-arrow{position:absolute;top:0;left:0;transform:translate(-2px,-2px)}
.custom-cursor-label{position:absolute;top:0;left:0;background:var(--navy);color:#fff;padding:5px 12px;border-radius:999px;font:600 12px Montserrat,sans-serif;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.15);opacity:0;transition:opacity .15s ease}
.custom-cursor.active .custom-cursor-label{opacity:1}

@media(pointer:coarse){.custom-cursor{display:none !important}.name-gate-card{max-width:300px}}
@media(max-width:560px){.name-gate-card{padding:34px 26px}.name-gate-title{font-size:22px}}

.stats-strip{position:relative;background:var(--navy);overflow:hidden;padding:70px max(6vw,30px)}
.stats-dots{position:absolute;top:14px;left:0;width:100%;font:16px Caveat,cursive;color:rgba(250,248,244,.28);white-space:nowrap;letter-spacing:.3em;text-align:center;pointer-events:none}
.stats-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;position:relative}
.stat-item{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.stat-number{font:700 clamp(40px,6vw,64px) "DM Serif Display",serif;color:var(--paper);line-height:1}
.stat-label{font:11px "DM Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:rgba(250,248,244,.75)}
@media(max-width:850px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:40px 20px}.stats-strip{padding:55px max(6vw,24px)}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr;gap:34px}.stat-number{font-size:44px}.stats-strip{padding:45px 20px}}
/* Force standard text representation for arrow icons across mobile iOS/Android */
.arrow-text {
  font-family: Montserrat, "DM Mono", Arial, sans-serif !important;
  font-variant-emoji: text;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  line-height: 1;
}
