/* SWISS INVITATION — FOUNDATION + OPENING. All page rules are scoped. */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700&family=Noto+Sans+Arabic:wght@400;500;600;700&display=swap');
#sw-invitation {
  --sw-teal:#00c9ba; --sw-yellow:#f7df00; --sw-deep:#00685f;
  --sw-ink:#183d3b; --sw-muted:#58726e; --sw-paper:#f4faf8;
  --sw-line:rgba(0,104,95,.16); --sw-bg:none; --sw-dot-mark:none;
  width:100%; position:relative; isolation:isolate; overflow:clip;
  margin:0; color:var(--sw-ink); background:var(--sw-paper);
  font-family:"Manrope", "Avenir Next", Avenir, Arial, sans-serif;
  font-size:16px; line-height:1.65; text-align:left; color-scheme:light;
  -webkit-text-size-adjust:100%;
}
#sw-invitation *, #sw-invitation *::before, #sw-invitation *::after {box-sizing:border-box}
#sw-invitation [hidden] {display:none!important}
#sw-invitation :is(h1,h2,h3,p,figure) {margin:0}
#sw-invitation :is(button,input,textarea,select) {font:inherit;letter-spacing:normal}
#sw-invitation button {cursor:pointer; -webkit-tap-highlight-color:transparent}
#sw-invitation :is(button,a,input,textarea,summary):focus-visible {outline:3px solid var(--sw-deep);outline-offset:5px}
#sw-invitation button:disabled {cursor:default}
#sw-invitation a {color:inherit;text-decoration:none}
#sw-invitation img {display:block;max-width:100%;height:auto}
#sw-invitation svg {display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
#sw-invitation .sw-shell {width:min(1120px,calc(100% - 64px));margin-inline:auto}
#sw-invitation .sw-kicker {font-size:10px;line-height:1.5;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--sw-deep)}
#sw-invitation .sw-dot {display:inline-block;width:.34em;height:.246em;margin-left:.07em;vertical-align:-.015em;background:var(--sw-dot-mark) center/contain no-repeat}
#sw-invitation .sw-hero {position:relative;background:#edf7f5}
#sw-invitation .sw-hero-viewport {position:relative;min-height:100svh;overflow:hidden;background:#edf7f5}
#sw-invitation .sw-scroll-ready .sw-hero-viewport {position:sticky;top:var(--sw-pin-top,0px);height:var(--sw-scene-height);min-height:0}
#sw-invitation.sw-scroll-enabled .sw-main {z-index:3;margin-top:calc(-1 * var(--sw-overlap,0px))}
#sw-invitation .sw-hero-viewport::before {content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(248,252,251,.88),rgba(244,250,248,.28)),var(--sw-bg);background-size:cover;background-position:center,center 52%;opacity:.95;pointer-events:none}
#sw-invitation .sw-topbar {position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding-block:24px;gap:20px}
#sw-invitation .sw-topbar-logo {width:105px;height:77px;object-fit:contain}
#sw-invitation .sw-topbar-right {display:flex;align-items:center;gap:24px}
#sw-invitation .sw-top-date {font-size:11px;font-weight:600;letter-spacing:.14em}
#sw-invitation .sw-music {position:relative;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--sw-line);border-radius:50%;color:var(--sw-deep);background:rgba(255,255,255,.7)}
#sw-invitation .sw-music svg {width:19px;height:19px}
#sw-invitation .sw-music[aria-pressed="false"]::after {content:"";position:absolute;width:25px;height:1.5px;background:currentColor;transform:rotate(-45deg);box-shadow:0 0 0 2px #f4faf8}
#sw-invitation .sw-stage {position:relative;z-index:2;width:min(1120px,100%);min-height:600px;height:calc(100svh - 125px);max-height:850px;margin:auto}
#sw-invitation .sw-closed-copy {position:absolute;top:4%;left:16px;right:16px;text-align:center;transition:opacity .3s,transform .5s}
#sw-invitation .sw-closed-copy h1 {margin-top:14px;font-size:clamp(26px,3vw,38px);font-weight:400;letter-spacing:-.045em;line-height:1.18}
#sw-invitation .sw-envelope {position:absolute;width:min(540px,calc(100% - 48px));aspect-ratio:1.65;top:50%;left:50%;transform:translate(-50%,-34%);isolation:isolate;transition:top 1.35s cubic-bezier(.22,.75,.17,1)}
#sw-invitation .sw-envelope::after {content:"";position:absolute;left:8%;right:8%;height:60px;bottom:-45px;border-radius:50%;background:radial-gradient(ellipse,rgba(15,98,85,.19),transparent 70%);z-index:-1}
#sw-invitation .sw-env-back {position:absolute;inset:0;background:linear-gradient(135deg,#fafdfb,#dcefe9);border:1px solid #cfdfd9;border-radius:4px;box-shadow:0 24px 65px rgba(22,90,77,.12);z-index:1}
#sw-invitation .sw-env-lining {position:absolute;inset:1px;z-index:2;border-radius:3px;background:linear-gradient(130deg,#00c9ba,#02988e);opacity:0;transition:opacity .4s}
#sw-invitation .sw-env-pocket {position:absolute;inset:0;z-index:5;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);background:linear-gradient(145deg,#fefefb 2%,#f2f8f4 45%,#dcebe4 100%);border-radius:0 0 4px 4px}
#sw-invitation .sw-env-pocket::before {content:"";position:absolute;inset:0;clip-path:polygon(0 0,50% 53%,0 100%);background:linear-gradient(126deg,rgba(255,255,255,.8),rgba(52,104,86,.06))}
#sw-invitation .sw-env-pocket::after {content:"";position:absolute;inset:0;clip-path:polygon(100% 0,50% 53%,100% 100%);background:linear-gradient(235deg,rgba(255,255,255,.6),rgba(52,104,86,.085))}
#sw-invitation .sw-env-flap {position:absolute;left:0;top:0;width:100%;height:55%;z-index:6;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(150deg,#fdfefb,#e7f0e9);transform-origin:50% 0;transition:transform .65s cubic-bezier(.4,0,.2,1),background .3s}
#sw-invitation .sw-env-label {position:absolute;z-index:7;left:15%;right:15%;bottom:11%;text-align:center;font-size:9px;letter-spacing:.26em;color:#77998e;pointer-events:none}
#sw-invitation .sw-seal {position:absolute;z-index:8;top:53%;left:50%;width:clamp(90px,20vw,112px);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #00a699;border-radius:50%;padding:16px;background:radial-gradient(circle at 30% 22%,#1ddbcc,#00bcad 55%,#019d90);box-shadow:0 9px 18px rgba(0,102,85,.23),inset 0 0 0 4px rgba(255,255,255,.4),inset 0 0 0 6px rgba(0,130,117,.3);transition:opacity .28s,scale .28s}
#sw-invitation .sw-seal::after {content:"";position:absolute;inset:-9px;border:1px solid rgba(0,153,135,.25);border-radius:50%;animation:sw-breathe 3s ease-in-out infinite}
#sw-invitation .sw-seal img {width:100%;height:100%;object-fit:contain}
@media (hover:hover) and (pointer:fine) {#sw-invitation .sw-seal:hover {scale:1.04}}
#sw-invitation .sw-open-label {position:absolute;top:calc(50% + min(23vw,230px));left:10px;right:10px;text-align:center;color:var(--sw-deep);font-size:11px;font-weight:600;letter-spacing:.16em;transition:opacity .25s}
#sw-invitation .sw-open-label::before {content:"";display:block;width:1px;height:24px;background:var(--sw-line);margin:0 auto 14px}
#sw-invitation .sw-opening .sw-env-lining {opacity:1}
#sw-invitation .sw-opening .sw-seal {opacity:0;scale:.7;pointer-events:none}
#sw-invitation .sw-opening .sw-env-flap {transform:scaleY(-1);background:#00b9ab;z-index:2}
#sw-invitation .sw-rising .sw-envelope {top:64%}
#sw-invitation .sw-opening .sw-closed-copy {opacity:0;transform:translateY(-12px)}
#sw-invitation .sw-opening .sw-open-label {opacity:0;pointer-events:none}
#sw-invitation .sw-vanishing .sw-envelope {opacity:0;transform:translate(-50%,-15%) scale(.95);transition:opacity .45s,transform .65s}
#sw-invitation .sw-welcome {position:absolute;left:0;top:0;z-index:3;transform-origin:0 0;display:grid;grid-template-columns:1.45fr 1fr;width:min(960px,calc(100% - 32px));margin:0;min-height:460px;background:#fff;border:1px solid rgba(0,104,95,.13);box-shadow:0 28px 80px rgba(23,96,78,.13);overflow:hidden;border-radius:3px}
#sw-invitation .sw-welcome-copy {position:relative;z-index:2;padding:42px 0 34px 48px;display:flex;flex-direction:column;align-items:flex-start}
#sw-invitation .sw-welcome-logo {width:100px;margin-bottom:28px}
#sw-invitation .sw-welcome h2 {font-size:clamp(42px,5.5vw,69px);line-height:1.02;letter-spacing:-.065em;font-weight:400;margin:16px 0 20px}
#sw-invitation .sw-welcome-intro {max-width:320px;color:var(--sw-muted);font-size:14px;line-height:1.7}
#sw-invitation .sw-welcome-date {display:flex;align-items:center;gap:10px;margin-top:25px;padding-top:20px;border-top:1px solid var(--sw-line);font-size:12px;font-weight:600;flex-wrap:wrap}
#sw-invitation .sw-welcome-date span:last-child {font-weight:400;color:var(--sw-muted)}
#sw-invitation .sw-welcome-art {position:relative;align-self:stretch;background-image:var(--sw-bg);background-size:cover;background-position:center 55%;min-width:0}
#sw-invitation .sw-welcome-art::before {content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff,transparent 45%)}
#sw-invitation .sw-welcome-art::after {content:"11 / 11";position:absolute;bottom:38px;right:30px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.32em;color:var(--sw-deep)}
#sw-invitation .sw-discover {position:relative;display:flex;align-items:center;justify-content:center;gap:10px;margin:28px auto 0;padding:10px 18px;background:none;border:0;color:var(--sw-deep);font-size:11px;letter-spacing:.1em}
#sw-invitation .sw-discover svg {width:18px;animation:sw-nudge 2s ease-in-out infinite}
@keyframes sw-breathe {0%,100%{opacity:.5;transform:scale(.98)}50%{opacity:1;transform:scale(1.08)}}
@keyframes sw-nudge {0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}

/* One physical card is scaled uniformly, then its exit follows native scrolling. */
#sw-invitation .sw-reading-controls {position:absolute;left:0;right:0;z-index:4;display:flex;justify-content:center;align-items:center;margin:0;padding:8px 20px}
#sw-invitation .sw-reading-controls button {display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 0;color:var(--sw-deep);border:0;border-bottom:1px solid var(--sw-line);background:transparent;font-size:11px}
#sw-invitation .sw-reading-controls svg {width:16px;height:16px}
#sw-invitation .sw-digital-grid {position:absolute;inset:0;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(0,169,151,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(0,169,151,.12) 1px,transparent 1px);background-size:68px 68px;mask-image:linear-gradient(90deg,#000,transparent 38%,transparent 62%,#000)}
#sw-invitation .sw-robot-ambient {position:absolute;right:-70px;bottom:50px;width:min(48vw,600px);opacity:.23;pointer-events:none;transform:rotate(-5deg)}
#sw-invitation .sw-robot-feature {width:min(390px,100%);margin-top:38px;pointer-events:none;opacity:.9}
#sw-invitation .sw-robot-scene {width:100%;height:auto;display:block;overflow:visible;fill:none;stroke:none}
#sw-invitation .sw-robot-scan {animation:sw-scan 4s ease-in-out infinite;transform-origin:center;opacity:.3}
#sw-invitation .sw-circuit-flow {stroke-dasharray:8 24;animation:sw-data-flow 6s linear infinite}
#sw-invitation .sw-orbit-node {animation:sw-breathe 4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes sw-scan {0%,100%{transform:translateY(0);opacity:.15}50%{transform:translateY(62px);opacity:.6}}
@keyframes sw-data-flow {to{stroke-dashoffset:-128}}
@media(max-width:799px){
 #sw-invitation .sw-rising .sw-envelope {top:57%}
 #sw-invitation .sw-robot-ambient {width:85vw;right:-45vw;bottom:80px;opacity:.2}
 #sw-invitation .sw-robot-feature {width:min(340px,100%);margin:25px auto 0}

}
/* Entry guard is active only until the close-up has finished. Pinch zoom remains available. */
html.sw-entry-locked {overflow:hidden!important;overscroll-behavior:none}
html.sw-entry-locked body {position:fixed!important;inset:0!important;width:100%!important;height:100%!important;overflow:hidden!important}
html.sw-entry-locked #sw-invitation :is(.sw-main,.sw-footer) {visibility:hidden}
#sw-invitation .sw-language {display:flex;direction:ltr;padding:3px;border:1px solid var(--sw-line);border-radius:999px;background:rgba(255,255,255,.75)}
#sw-invitation .sw-language button {min-width:38px;min-height:36px;border:0;border-radius:999px;padding:5px 8px;background:transparent;color:var(--sw-deep);font:600 11px/1.3 Arial,sans-serif}
#sw-invitation .sw-language button[aria-pressed="true"] {background:#00c9ba;color:#183d3b}
#sw-invitation .sw-language button:disabled {opacity:.6}
#sw-invitation .sw-topbar-right {gap:12px}
@media(max-width:480px) {#sw-invitation .sw-top-date {display:none}}
html.sw-entry-locked #sw-invitation .sw-stage {min-height:0!important;height:calc(100svh - 125px);max-height:none}
@media(max-width:799px) {html.sw-entry-locked #sw-invitation .sw-stage {height:calc(100svh - 100px)}}
@media(max-height:560px) {
 #sw-invitation .sw-topbar {padding-block:8px}
 #sw-invitation .sw-topbar-logo {height:46px;width:64px}
 html.sw-entry-locked #sw-invitation .sw-stage {height:calc(100svh - 62px)}
 html.sw-entry-locked #sw-invitation .sw-envelope {width:min(400px,calc((100svh - 225px)*1.65));top:55%}
 html.sw-entry-locked #sw-invitation .sw-open-label {top:auto;bottom:10px}
 html.sw-entry-locked #sw-invitation .sw-open-label::before {display:none}
 html.sw-entry-locked #sw-invitation .sw-closed-copy {top:0}
 html.sw-entry-locked #sw-invitation .sw-closed-copy h1 {font-size:24px;margin-top:5px}
}
/* Explicit square dimensions keep the seal circular in Safari. */
#sw-invitation .sw-seal {
  --seal-size: clamp(90px, 20vw, 112px);

  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;

  width: var(--seal-size);
  height: var(--seal-size);
  min-width: var(--seal-size);
  max-width: var(--seal-size);
  min-height: var(--seal-size);
  max-height: var(--seal-size);

  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  line-height: 1;
}

#sw-invitation .sw-seal img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
}