:root { --ink:#173d33; --leather:#af512a; --deep-leather:#7b321e; --cream:#fff2db; --paper:#fff9ec; --gold:#e7b13e; --sand:#efcf91; --red:#ca4435; --blue:#285fa6; --green:#438d5e; --line:#dda76a; --copy:#685640; --ease:cubic-bezier(.23,1,.32,1); }
      * { box-sizing:border-box; }
      html { scroll-behavior:smooth; }
      body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",Arial,sans-serif; overflow-x:hidden; }
      a { color:inherit; text-decoration:none; }
      button, input, select, textarea { font:inherit; }
      button { cursor:pointer; }
      img, video { display:block; max-width:100%; }
      .serif { font-family:"Cormorant Garamond",Georgia,serif; }
      .container { width:min(1180px,calc(100% - 40px)); margin:auto; }
      .eyebrow { font-size:.66rem; font-weight:700; letter-spacing:.25em; text-transform:uppercase; }
      .cowrie { position:relative; display:inline-block; width:1.45rem; height:.88rem; vertical-align:middle; border:1px solid #d7c49e; border-radius:999px; background:linear-gradient(135deg,#fffef7,#e7d9bc); box-shadow:inset 0 -2px 3px rgba(91,49,27,.14),0 1px 2px rgba(91,49,27,.18); }
      .cowrie::after { content:""; position:absolute; top:50%; left:.18rem; right:.18rem; height:2px; border-radius:99px; background:#8d4b2d; transform:translateY(-50%); box-shadow:0 2px 0 rgba(255,255,255,.8); }
      .bead-band { height:30px; background-color:var(--leather); background-image:radial-gradient(circle at 8px 50%,#fff9ec 0 4px,transparent 4.8px),radial-gradient(circle at 20px 50%,var(--gold) 0 4px,transparent 4.8px),radial-gradient(circle at 32px 50%,var(--blue) 0 4px,transparent 4.8px),radial-gradient(circle at 44px 50%,var(--red) 0 4px,transparent 4.8px),radial-gradient(circle at 56px 50%,var(--green) 0 4px,transparent 4.8px),radial-gradient(circle at 68px 50%,#fff9ec 0 4px,transparent 4.8px),linear-gradient(90deg,#903a20,#d46a33 45%,#903a20); background-size:76px 100%,76px 100%,76px 100%,76px 100%,76px 100%,76px 100%,100% 100%; }
      .nordic-band { height:34px; background-color:#173d33; background-image:linear-gradient(45deg,transparent 46%,#e7b13e 47% 53%,transparent 54%),linear-gradient(-45deg,transparent 46%,#e7b13e 47% 53%,transparent 54%),linear-gradient(45deg,transparent 46%,#fff2db 47% 53%,transparent 54%),linear-gradient(-45deg,transparent 46%,#fff2db 47% 53%,transparent 54%),linear-gradient(90deg,#102b23,#235244,#102b23); background-position:0 0,0 0,17px 0,17px 0,0 0; background-size:34px 34px,34px 34px,34px 34px,34px 34px,100% 100%; }
      .nordic-knot { width:37px; height:21px; position:relative; display:inline-block; background:linear-gradient(45deg,transparent 46%,currentColor 47% 53%,transparent 54%),linear-gradient(-45deg,transparent 46%,currentColor 47% 53%,transparent 54%); background-size:19px 19px; background-position:0 1px,0 1px; opacity:.96; }
      .section-title { font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(3rem,6vw,5rem); line-height:.86; margin:10px 0 0; letter-spacing:-.04em; }
      .title-rule { display:flex; align-items:center; gap:9px; margin-top:24px; }
      .title-rule::before,.title-rule::after { content:""; display:block; width:45px; height:1px; background:var(--gold); }
      .btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:14px 21px; border:0; border-radius:999px; font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; transition:transform .16s var(--ease),background .16s var(--ease); }
      .btn:active { transform:scale(.97); }
      .btn.gold { background:var(--gold); color:var(--ink); }
      .btn.gold:hover { background:#f3ca69; }
      .btn.outline { border:1px solid rgba(255,249,236,.55); color:var(--cream); background:rgba(15,36,28,.13); }
      .btn.dark { color:var(--cream); background:var(--ink); }
      .btn.leather { color:var(--cream); background:var(--leather); }
      .btn.dark:hover { background:#255042; }
      .intro { position:fixed; inset:0; z-index:99; color:var(--cream); background:#371b10; cursor:pointer; animation:introIn .65s var(--ease) both; }
      .intro.is-open { opacity:0; pointer-events:none; transition:opacity .45s var(--ease); }
      .intro img,.intro video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
      .intro video { opacity:0; transition:opacity .25s linear; }
      .intro.playing video { opacity:1; }
      .intro::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(25,8,2,.12),transparent 50%,rgba(25,8,2,.62)); pointer-events:none; }
      .intro-copy { position:relative; z-index:2; height:100%; display:grid; place-items:end center; text-align:center; padding:0 20px 52px; transition:opacity .25s linear; }
      .intro.playing .intro-copy { opacity:0; }
      .intro-prompt { display:grid; gap:5px; justify-items:center; padding:13px 26px; border:1px solid rgba(255,249,236,.62); border-radius:99px; background:rgba(72,27,12,.27); backdrop-filter:blur(3px); animation:breathe 1.9s ease-in-out infinite; }
      .intro-prompt strong { font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; }
      .intro-prompt small { color:#f3cf80; font-size:.65rem; letter-spacing:.11em; }
      header { position:absolute; inset:0 0 auto; z-index:10; color:var(--cream); }
      .topbar { display:flex; align-items:center; justify-content:space-between; padding:22px 0; }
      .mark { font-size:1.6rem; letter-spacing:.07em; }
      nav { display:flex; align-items:center; gap:28px; font-size:.64rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
      nav a:hover { color:var(--gold); }
      .menu { display:none; border:1px solid rgba(255,249,236,.5); color:var(--cream); background:transparent; border-radius:50%; width:42px; height:42px; }
      .hero { min-height:840px; position:relative; isolation:isolate; background:var(--ink); color:var(--cream); overflow:hidden; }
      .hero-photo { position:absolute; inset:0 0 0 auto; width:60%; object-fit:cover; }
      .hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,var(--ink) 0%,rgba(23,61,51,.9) 43%,rgba(23,61,51,.08) 85%); }
      .garland { position:absolute; top:130px; right:7vw; z-index:2; display:flex; align-items:center; gap:6px; filter:drop-shadow(0 7px 11px rgba(31,12,4,.3)); }
      .dot { width:10px; height:10px; border-radius:50%; border:1px solid rgba(255,255,255,.55); box-shadow:inset 1px 1px 2px rgba(255,255,255,.55),0 1px 2px rgba(50,17,5,.35); }
      .b-blue { background:var(--blue); }.b-red{background:var(--red)}.b-green{background:var(--green)}.b-gold{background:var(--gold)}.b-cream{background:#fff9ec}
      .hero-inner { min-height:800px; position:relative; z-index:2; display:flex; align-items:center; padding:110px 0 70px; }
      .hero-copy { max-width:600px; }
      .hero h1 { margin:20px 0 0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(5rem,11vw,9rem); line-height:.7; letter-spacing:-.07em; }
      .hero h1 span { display:inline-block; margin:0 .08em; color:var(--gold); font-size:.42em; letter-spacing:0; vertical-align:middle; transform:translateY(-.08em); }
      .hero-text { max-width:470px; margin:30px 0; color:rgba(255,249,236,.87); font-size:1.08rem; line-height:1.7; }
      .hero-details { display:flex; flex-wrap:wrap; gap:12px 18px; max-width:640px; margin:24px 0 32px; font-size:.83rem; font-weight:600; }
      .hero-details span { display:flex; align-items:center; gap:8px; }
      .hero-details i { color:var(--gold); font-style:normal; }
      .hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
      .hero .bead-band { position:absolute; z-index:3; inset:auto 0 0; }
      .countdown { background:var(--ink); color:var(--cream); padding:15px 0 57px; text-align:center; }
      .countdown-label { margin:0 0 12px; font-size:.63rem; letter-spacing:.22em; font-weight:700; color:var(--sand); text-transform:uppercase; }
      .time-grid { display:grid; grid-template-columns:repeat(4,1fr); max-width:720px; margin:auto; border-block:1px solid rgba(255,249,236,.22); }
      .time-grid div { padding:15px 5px; border-right:1px solid rgba(255,249,236,.22); }.time-grid div:last-child{border-right:0}
      .time-grid b { display:block; font:500 clamp(2.1rem,5vw,4rem)/1 "Cormorant Garamond",Georgia,serif; }.time-grid small{font-size:.58rem; color:var(--sand); letter-spacing:.2em; font-weight:700; text-transform:uppercase; }
      section.content { position:relative; padding:110px 0; }
      .celebration { overflow:hidden; }.celebration .corner-beads{position:absolute;width:180px;height:180px;top:80px;left:-90px;transform:rotate(45deg);opacity:.65;background:#e7b13e;background-image:radial-gradient(circle at 7px 7px,#285fa6 0 3px,transparent 3.6px),radial-gradient(circle at 20px 20px,#ca4435 0 3px,transparent 3.6px),radial-gradient(circle at 7px 20px,#438d5e 0 3px,transparent 3.6px),radial-gradient(circle at 20px 7px,#fff9ec 0 3px,transparent 3.6px);background-size:28px 28px;}
      .split { display:grid; grid-template-columns:.82fr 1.18fr; gap:90px; align-items:center; }
      .framed-photo { position:relative; }.framed-photo::before{content:"";position:absolute;inset:-20px auto auto -20px;width:100%;height:100%;border:1px solid var(--leather)}.framed-photo img{position:relative;width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:0 24px 60px rgba(68,41,17,.18)}
      .copy { color:var(--copy); line-height:1.8; }.schedule{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:35px}.schedule article{border:1px solid #e4c694;border-radius:15px;background:var(--paper);padding:20px}.schedule time{display:block;color:var(--leather);font:500 2rem/1 "Cormorant Garamond",Georgia,serif}.schedule h3{margin:13px 0 4px;font-size:.9rem}.schedule p{margin:0;color:var(--copy);font-size:.79rem;line-height:1.45}
      .gallery { background:var(--paper); text-align:center; }.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:205px;gap:15px;margin-top:60px;text-align:left}.gallery-grid img{width:100%;height:100%;object-fit:cover}.gallery-grid figure{margin:0;overflow:hidden;background:var(--sand)}.gallery-grid figure:nth-child(1),.gallery-grid figure:nth-child(5){grid-row:span 2}.gallery-grid figure:nth-child(1){grid-column:span 1}.gallery-grid img{transition:transform .5s var(--ease)}.gallery-grid figure:hover img{transform:scale(1.05)}
      .dress { background:var(--leather); color:var(--cream); overflow:hidden; }.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end}.dress .section-title{color:var(--cream)}.dress .copy{color:rgba(255,249,236,.86)}.heritage-note{display:flex;align-items:center;gap:10px;max-width:470px;margin:22px 0 0;color:#f6d889;font-size:.78rem;line-height:1.5}.heritage-note .nordic-knot{color:#f6d889;flex:0 0 auto}.attire-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attire-card{min-height:190px;padding:27px;border:1px solid rgba(255,249,236,.4);border-radius:60px 0 0 0;display:flex;flex-direction:column;justify-content:space-between}.attire-card:last-child{border-radius:0 0 60px 0;background:var(--gold);color:var(--ink);border:0}.attire-card b{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase}.attire-card span{font-size:2rem}
      .venue { background:var(--cream); }.venue-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:60px;align-items:center}.detail{display:grid;grid-template-columns:25px 1fr;gap:12px;margin:20px 0;color:var(--copy)}.detail strong{display:block;color:var(--ink);margin-bottom:3px}.pin{color:var(--leather);font-size:1.2rem}.directions{border-top:1px solid #e2c798;margin-top:35px;padding-top:25px}.directions p{font-size:.9rem;line-height:1.75;color:var(--copy)}.map{position:relative;overflow:hidden;border:8px solid var(--paper);border-radius:30px;box-shadow:0 24px 60px rgba(68,41,17,.15);height:450px}.map iframe{width:100%;height:100%;border:0}.map-label{position:absolute;left:18px;bottom:18px;padding:11px 14px;border-radius:12px;background:rgba(255,249,236,.96);font-size:.78rem;box-shadow:0 5px 20px rgba(48,27,10,.15)}.map-label b{display:block;color:var(--ink)}
      .cards { background:var(--sand); padding:75px 0; }.cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-card{padding:38px;border-radius:28px;background:var(--paper)}.info-card.dark{background:var(--ink);color:var(--cream)}.info-card h2{font:500 3rem/.9 "Cormorant Garamond",Georgia,serif;margin:12px 0}.info-card p{color:var(--copy);line-height:1.7}.info-card.dark p{color:rgba(255,249,236,.86)}.text-link{display:inline-flex;gap:8px;margin-top:18px;font-weight:700;text-decoration:underline 2px var(--gold);text-underline-offset:5px}
      .rsvp { background:var(--ink); color:var(--cream); text-align:center; }.rsvp .section-title{color:var(--cream)}.rsvp-sub{color:rgba(255,249,236,.76);line-height:1.7}.rsvp-form{max-width:760px;margin:48px auto 0;padding:35px;display:grid;grid-template-columns:1fr 1fr;gap:20px;text-align:left;color:var(--ink);background:var(--paper);border-radius:30px;box-shadow:0 25px 60px rgba(8,22,16,.25)}.rsvp-form label{display:grid;gap:8px;font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--leather)}.rsvp-form label.full{grid-column:1/-1}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{border:0;border-bottom:1px solid #d9b778;background:transparent;padding:11px 0;color:var(--ink);outline:0;letter-spacing:normal;text-transform:none}.rsvp-form textarea{border:1px solid #e4c694;border-radius:13px;padding:12px;resize:vertical;min-height:105px}.attendance{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance button{border:1px solid #e3c28c;border-radius:13px;padding:14px;background:transparent;color:var(--ink);font-weight:600}.attendance button.active{background:#faebc8;border-color:var(--leather)}.form-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.form-note{color:var(--copy);font-size:.76rem;line-height:1.5}.rsvp-status{grid-column:1/-1;display:none;padding:14px;border-radius:12px;font-size:.85rem}.rsvp-status.show{display:block}.rsvp-status.success{background:#e3f0df;color:#235b3e}.rsvp-status.error{background:#f7dcd6;color:#973823}
      .form-embed{max-width:760px;margin:42px auto 0;overflow:hidden;border:8px solid rgba(255,249,236,.18);border-radius:28px;background:#fff;box-shadow:0 25px 60px rgba(8,22,16,.25)}.form-embed iframe{display:block;width:100%;height:1280px;border:0;background:#fff;overflow:hidden}
      footer{background:#102b23;color:var(--cream);padding:48px 20px;text-align:center}footer .footer-name{font:500 2.6rem/.9 "Cormorant Garamond",Georgia,serif}footer p{margin:17px 0 0;color:rgba(255,249,236,.65);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase}.site-credit{margin-top:11px;font-size:.67rem;letter-spacing:.05em;text-transform:none}.site-credit a{color:var(--gold);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
      @keyframes introIn{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}@keyframes breathe{0%,100%{transform:translateY(0);opacity:.85}50%{transform:translateY(5px);opacity:1}}
      @media(max-width:760px){.container{width:min(100% - 32px,1180px)}nav{display:none;position:absolute;top:75px;right:0;padding:20px;flex-direction:column;align-items:flex-start;background:var(--ink);border:1px solid rgba(255,249,236,.2);border-radius:15px}nav.open{display:flex}.menu{display:block}.hero{min-height:790px}.hero-photo{width:100%;opacity:.5}.hero-shade{background:linear-gradient(90deg,rgba(23,61,51,.95),rgba(23,61,51,.58))}.garland{display:none}.hero-inner{min-height:750px;padding-top:120px}.hero h1{font-size:5.8rem}.hero-text{font-size:1rem}.split,.venue-grid,.dress-grid{grid-template-columns:1fr;gap:48px}.framed-photo{max-width:390px;margin:auto}.schedule{grid-template-columns:1fr}.gallery-grid{grid-auto-rows:150px;gap:8px;margin-top:40px}.gallery-grid figure:nth-child(1),.gallery-grid figure:nth-child(5){grid-row:span 2}.attire-cards{max-width:450px}.map{height:300px}.cards-grid{grid-template-columns:1fr}.info-card{padding:30px}.rsvp-form{grid-template-columns:1fr;padding:25px}.attendance{grid-template-columns:1fr}.form-bottom{align-items:flex-start;flex-direction:column}.intro-copy{padding-bottom:33px}.intro-prompt{padding:12px 20px}.intro-prompt strong{font-size:.62rem}.intro-prompt small{font-size:.57rem}section.content{padding:80px 0}.bead-band{height:24px}}
      @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro,.intro-prompt{animation:none}.gallery-grid img{transition:none}}
