:root {
      --serif:'Cormorant Garamond',Georgia,serif;
      --body:'EB Garamond',Georgia,serif;
      --sans:'Jost',sans-serif;
      /* Dusty Blue & White */
      --ivory:#ffffff; --cream:#eef3f7;
      --accent:#4a7a96; --gold:#4a7a96;
      --sage:#6a8a9e; --stone:#5a7a8e; --ink:#2c3e50;
      --border:rgba(74,122,150,.18);
    }
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;font-size:18px}
    body{background:var(--ivory);color:var(--ink);font-family:var(--body);line-height:1.7;overflow-x:hidden}
    body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:1000;opacity:.45}

    /* Language visibility */
    .e,.i,.s{display:none}
    html[data-lang=en] .e,html[data-lang=it] .i,html[data-lang=es] .s{display:block}
    .iban-val > .e,.iban-val > .i,.iban-val > .s{display:none}
    html[data-lang=en] .iban-val > .e,html[data-lang=it] .iban-val > .i,html[data-lang=es] .iban-val > .s{display:inline}

    /* Landing — Postcard */
    #landing{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:#ffffff}
    #landing.gone{display:none}

    #card-wrap{perspective:1200px;width:min(520px,92vw);height:min(360px,65vh);position:relative;z-index:1}
    #card{width:100%;height:100%;position:relative;transform-style:preserve-3d;animation:flipin 1.2s cubic-bezier(.4,0,.2,1) .5s both}
    @keyframes flipin{from{transform:rotateY(180deg) scale(.85);opacity:0}to{transform:rotateY(0deg) scale(1);opacity:1}}

    .face{position:absolute;inset:0;backface-visibility:hidden;border-radius:3px;box-shadow:0 12px 50px rgba(0,0,0,.18),0 3px 10px rgba(0,0,0,.1)}
    .front{background:#f7f2eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:2.5rem;border:1px solid rgba(0,0,0,.06)}
    .front::before{content:'';position:absolute;inset:12px;border:1px solid rgba(150,120,80,.2);pointer-events:none}

    .stamp-area{position:absolute;top:18px;right:18px;width:70px;height:85px;border:1.5px solid rgba(150,120,80,.35);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
    .stamp-inner{width:54px;height:54px;border:1px solid rgba(150,120,80,.2);display:flex;align-items:center;justify-content:center;overflow:hidden}
    .stamp-svg{width:48px;height:48px}
    .stamp-label{font-family:var(--sans);font-size:.38rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(100,80,50,.5)}

    .postmark{position:absolute;top:22px;right:98px;width:65px;height:65px;border:2px solid rgba(150,80,60,.3);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-18deg)}
    .pm-text{font-family:var(--sans);font-size:.38rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(150,80,60,.4);text-align:center;line-height:1.4}

    .front-names{font-family:var(--serif);font-size:clamp(2.2rem,8vw,3.6rem);font-weight:300;font-style:italic;color:#2d2218;line-height:1;text-align:center}
    .front-amp{color:#4a7a96}
    .front-rule{width:50px;height:1px;background:rgba(150,120,80,.35);margin:1.3rem auto}
    .front-date{font-family:var(--sans);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:#4a7a96}
    .front-place{font-family:var(--serif);font-size:1rem;font-style:italic;color:#4a7a96;margin-top:.35rem}

    .front-btns{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:1.2rem;animation:postfade 1s ease 1.5s both}
    .front-btn{padding:.45rem 1rem;border:1px solid rgba(150,120,80,.4);border-radius:2px;font-family:var(--sans);font-size:.44rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(80,60,40,.7);background:transparent;cursor:pointer;transition:background .25s,border-color .25s,color .25s;-webkit-appearance:none;touch-action:manipulation}
    .front-btn:hover{background:rgba(150,120,80,.1);border-color:rgba(150,120,80,.8);color:rgba(60,40,20,.9)}
    @keyframes postfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

    .back-face{background:#f7f2eb;transform:rotateY(180deg);display:grid;grid-template-columns:1fr 1px 1fr;padding:1.8rem;gap:0;border:1px solid rgba(0,0,0,.06)}
    .back-divider{background:rgba(150,120,80,.2);margin:0 1.2rem}
    .back-left{display:flex;flex-direction:column;gap:.7rem;padding-right:.5rem}
    .back-address{margin-top:auto;border-top:1px solid rgba(150,120,80,.15);padding-top:.8rem}
    .addr-label{font-family:var(--sans);font-size:.42rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(100,80,50,.4);margin-bottom:.4rem}
    .addr-name{font-family:'Dancing Script',cursive;font-size:1.1rem;color:#2d2218}
    .addr-line{font-family:var(--sans);font-size:.5rem;color:rgba(80,60,40,.55);line-height:1.6}
    .back-right{padding-left:1rem;display:flex;flex-direction:column;gap:1rem}
    .handwriting{font-family:'Dancing Script',cursive;color:#2d2218;line-height:1.7}
    .hw-lg{font-size:1.3rem}
    .hw-sm{font-size:1rem;color:rgba(45,34,24,.7)}

    .lang-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:auto}
    .back-btn{flex:1;text-align:center;padding:.45rem .6rem;border:1px solid rgba(150,120,80,.4);border-radius:2px;font-family:var(--sans);font-size:.42rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(80,60,40,.7);background:transparent;cursor:pointer;transition:background .25s,border-color .25s;-webkit-appearance:none;touch-action:manipulation}
    .back-btn:hover{background:rgba(150,120,80,.1);border-color:rgba(150,120,80,.7)}

    #flip-btn{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%);font-family:var(--sans);font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(80,60,40,.45);background:none;border:none;cursor:pointer;z-index:2;animation:postfade 1s ease 1.8s both}
    #flip-btn:hover{color:rgba(80,60,40,.8)}

    /* Main site */
    #site{display:none}
    #site.on{display:block}

    /* Nav */
    nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1rem 2.5rem;background:rgba(238,243,247,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
    .nl{display:flex;gap:2rem;align-items:center}
    .nl a{font-family:var(--sans);font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);text-decoration:none;transition:color .2s;-webkit-tap-highlight-color:transparent}
    .nl a:hover{color:var(--accent)}
    .nlg{position:relative}
    .nlg-toggle{font-family:var(--sans);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:none;border:1px solid transparent;border-radius:2px;padding:.55rem .7rem;cursor:pointer;transition:all .2s;-webkit-appearance:none;touch-action:manipulation;min-height:44px;display:inline-flex;align-items:center;gap:.2rem}
    .nlg-toggle:hover{color:var(--accent);border-color:var(--border)}
    .nlg-menu{display:none;position:absolute;top:100%;right:0;margin-top:.3rem;background:rgba(238,243,247,.98);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:2px;flex-direction:column;min-width:100%;z-index:101;box-shadow:0 4px 12px rgba(0,0,0,.08)}
    .nlg-menu.open{display:flex}
    .nlb{font-family:var(--sans);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:none;border:none;border-radius:0;padding:.55rem .9rem;cursor:pointer;transition:all .2s;-webkit-appearance:none;touch-action:manipulation;min-height:44px;display:flex;align-items:center;justify-content:center}
    .nlb:hover{background:rgba(74,122,150,.08);color:var(--accent)}
    .nlb.on{color:var(--accent);font-weight:600}

    /* Hero */
    #hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8rem 2rem 5rem;animation:fadeUp .9s .15s ease both}
    @keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
    .himg{width:260px;max-width:70vw;height:170px;margin:0 auto 2.5rem;border:1px dashed var(--border);border-radius:4px;background:var(--cream);display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--border)}
    .ey{font-family:var(--sans);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
    .hn{font-family:var(--serif);font-size:clamp(3.8rem,9vw,7rem);font-weight:300;line-height:1.0}
    .hn em{font-style:italic;color:var(--accent)}
    .hd{margin-top:1.4rem;font-family:var(--sans);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--stone)}
    .hp{margin-top:.4rem;font-family:var(--serif);font-size:1.1rem;font-style:italic;color:var(--sage)}
    .sh{margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:.35rem;font-family:var(--sans);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);animation:bob 2.5s ease-in-out infinite}
    @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

    /* Sections */
    .sw{max-width:900px;margin:0 auto;padding:6rem 2rem;opacity:0;transform:translateY(26px);transition:opacity .65s,transform .65s;scroll-margin-top:70px}
    .sw.vis{opacity:1;transform:none}
    .stag{font-family:var(--sans);font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem}
    h2{font-family:var(--serif);font-size:clamp(2rem,5vw,3.2rem);font-weight:300;line-height:1.15;color:var(--ink);margin-bottom:1.6rem}
    h2 em{font-style:italic;color:var(--accent)}
    .rule{width:48px;height:1px;background:var(--gold);margin:1.6rem 0}
    .lead{color:var(--stone);max-width:540px;margin-bottom:1.5rem}

    /* Timeline */
    .tl{position:relative;margin-top:3rem;padding-left:2rem}
    .tl::before{content:'';position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--border)}
    .tli{position:relative;padding:0 0 4rem 2.5rem;display:grid;grid-template-columns:200px 1fr;gap:2.5rem;align-items:start}
    .tli:last-child{padding-bottom:0}
    .dot{position:absolute;left:-5px;top:8px;width:11px;height:11px;border-radius:50%;background:var(--gold);border:2px solid var(--ivory)}
    .tlimg{width:100%;height:160px;border:1px dashed var(--border);border-radius:3px;background:var(--cream);display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--border)}
    .tlimg-real{border:none !important;background:transparent !important;padding:0;overflow:hidden}
    .tlimg-real img{width:100%;height:160px;object-fit:contain;display:none}
    html[data-lang=en] .tlimg-real .e,
    html[data-lang=it] .tlimg-real .i,
    html[data-lang=es] .tlimg-real .s{display:block}
    .tlb{padding-top:.2rem}
    .tlt{font-family:var(--sans);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem}
    .tltl{font-family:var(--serif);font-size:1.85rem;font-weight:300;line-height:1.15;margin-bottom:.6rem}
    .tlv{font-family:var(--sans);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:.8rem}
    .tlv a{color:var(--accent);text-decoration:none}
    .tlv a:hover{text-decoration:underline}
    .tld{font-size:.96rem;color:var(--stone);max-width:420px}
    .dress{margin-top:2.5rem;padding:1.4rem 1.6rem;border:1px solid var(--border);border-radius:2px;background:var(--cream);font-size:.9rem;color:var(--stone)}
    .dress strong{color:var(--ink);font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:.5rem}
    .dress-btns{display:flex;gap:.8rem;margin-top:1.2rem;flex-wrap:wrap}
    .dress-btn{display:inline-block;font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;padding:.6rem 1.4rem;border:1px solid var(--accent);border-radius:2px;background:transparent;color:var(--accent);cursor:pointer;text-decoration:none;transition:background .2s,color .2s;-webkit-appearance:none;touch-action:manipulation}
    .dress-btn:hover{background:var(--accent);color:#fff}
    .dress-desc{font-size:.88rem;color:var(--stone);margin-bottom:1rem}
    .dress-gallery{display:none;margin-top:1.2rem;overflow:hidden;transition:all .3s ease}
    .dress-gallery.open{display:block}
    .dress-gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem}
    .dress-img-wrap{aspect-ratio:3/4;overflow:hidden;border-radius:2px}
    .dress-img{width:100%;height:100%;object-fit:cover}

    /* Area */
    .ai{color:var(--stone);margin-bottom:3rem}
    .tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
    .tb{font-family:var(--sans);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:.45rem 1rem;border:1px solid var(--border);border-radius:20px;background:transparent;cursor:pointer;color:var(--stone);transition:all .2s;-webkit-appearance:none;touch-action:manipulation}
    .tb:hover{border-color:var(--gold);color:var(--gold)}
    .tb.on{background:var(--accent);border-color:var(--accent);color:white}
    .tp{display:none;animation:fi .35s ease}
    .tp.on{display:block}
    @keyframes fi{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
    .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem}
    .card{background:var(--cream);border:1px solid var(--border);border-radius:2px;padding:1.5rem 1.4rem}
    .cl{font-family:var(--sans);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem}
    .card h3{font-family:var(--serif);font-size:1.2rem;font-weight:400;margin-bottom:.5rem;line-height:1.2}
    .card h3 a{color:inherit;text-decoration:none}
    .card p{font-size:.88rem;color:var(--stone);line-height:1.65}
    .cn{font-size:.8rem;margin-top:.6rem;font-style:italic;color:var(--stone)}
    .tipbox{background:var(--ivory);border:1px solid var(--border);border-radius:2px;padding:1.4rem 1.6rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.2rem}
    .tip{font-size:.9rem;color:var(--stone);line-height:1.6}
    .tip strong{color:var(--ink);font-weight:500;display:block;margin-bottom:.15rem}

    /* RSVP */
    #rsvp{background:var(--cream);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:6rem 2rem;opacity:0;transform:translateY(26px);transition:opacity .65s,transform .65s}
    #rsvp.vis{opacity:1;transform:none}
    .ri{max-width:620px;margin:0 auto}
    .fr{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
    .fr.full{grid-template-columns:1fr}
    .fi{display:flex;flex-direction:column;gap:.3rem}
    label{font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}
    input,select,textarea{background:var(--ivory);border:1px solid var(--border);border-radius:2px;padding:.7rem .95rem;font-family:var(--body);font-size:.95rem;color:var(--ink);outline:none;transition:border-color .2s;width:100%}
    input:focus,select:focus,textarea:focus{border-color:var(--gold)}
    textarea{resize:vertical;min-height:88px}
    .rg{display:flex;gap:1.5rem;margin-top:.15rem;flex-wrap:wrap}
    .rg label{font-family:var(--body);font-size:.95rem;text-transform:none;letter-spacing:0;color:var(--ink);display:flex;align-items:center;gap:.4rem;cursor:pointer}
    input[type=radio]{width:auto;cursor:pointer}
  .radio-group{display:flex;flex-direction:column;gap:.6rem;margin-top:.3rem}
  .radio-label{display:flex;align-items:center;gap:.6rem;cursor:pointer}
  .radio-label input[type=radio]{flex-shrink:0;margin:0}
  .radio-label span{font-size:.85rem}
  .conditional{transition:opacity .2s}
  .conditional.inactive{opacity:.3;pointer-events:none}
    .sub{margin-top:1.8rem;padding:.9rem 3rem;background:var(--accent);color:white;font-family:var(--sans);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;border:none;border-radius:2px;cursor:pointer;transition:background .22s,transform .15s;-webkit-appearance:none;touch-action:manipulation}
    .sub:hover{background:#9e5030;transform:translateY(-1px)}
    .fnote{margin-top:.9rem;font-size:.82rem;color:var(--stone);font-style:italic}
    .fnote a{color:var(--accent);text-decoration:none}
    .ok{display:none;text-align:center;padding:3rem 1rem;font-family:var(--serif);font-size:1.6rem;font-weight:300;font-style:italic;color:var(--accent)}
    .ok > span > span{display:block;margin-top:.6rem;font-family:var(--sans);font-size:.75rem;letter-spacing:.1em;font-style:normal;color:var(--stone)}

    /* Footer */
    footer{text-align:center;padding:3rem 2rem;font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);border-top:1px solid var(--border)}
    .back{background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:.5rem;display:inline-block;-webkit-appearance:none}

    /* ═══════════════════════════════
   MOBILE — comprehensive overrides
   ═══════════════════════════════ */
@media(max-width:700px){

  /* Nav */
  nav{padding:.75rem 1rem}
  .nl{gap:1.2rem}
  .nl a{font-size:.6rem;letter-spacing:.1em}
  .nlg-toggle{font-size:.55rem;padding:.3rem .6rem;min-height:36px}
  .nlb{font-size:.55rem;padding:.4rem .7rem;min-height:36px}

  /* Landing — Postcard mobile */
  #card-wrap{height:auto;aspect-ratio:520/360}
  .stamp-area{width:13.5%;height:auto;aspect-ratio:70/85;top:3%;right:3%}
  .stamp-inner{width:75%;height:auto;aspect-ratio:1}
  .stamp-area svg{width:100%;height:auto}
  .stamp-label{font-size:clamp(.18rem,1.2vw,.38rem)}
  .postmark{width:12.5%;height:auto;aspect-ratio:1;top:5%;right:17%;border-width:1.5px}
  .pm-text{font-size:clamp(.18rem,1.1vw,.38rem)}
  .front-names{font-size:clamp(2rem,10vw,3rem)}
  .front{padding:1.5rem 1.2rem}
  .front::before{inset:8px}
  .front-rule{margin:.8rem auto}
  .front-date{font-size:.48rem}
  .front-place{font-size:.85rem;margin-top:.2rem}
  .front-btns{flex-direction:row;justify-content:center;gap:.35rem;margin-top:.8rem}
  .front-btn{padding:.3rem .6rem;font-size:.38rem;letter-spacing:.1em}
  .back-face{grid-template-columns:1fr;padding:1.4rem}
  .back-divider,.back-left{display:none}
  .back-right{padding-left:0}

  /* Hero */
  #hero{padding:6rem 1.4rem 4rem}
  .hn{font-size:clamp(3rem,14vw,5rem)}
  .hd{font-size:.64rem;letter-spacing:.2em}
  .sh{display:none}

  /* Sections */
  .sw{padding:4rem 1.4rem}
  h2{font-size:clamp(1.8rem,7vw,2.6rem)}

  /* Timeline — story cards (all languages) mobile */
  .tst-item{grid-template-columns:56px 1fr;gap:.9rem}
  .tst-num{width:56px;height:56px}
  .tst-n{font-size:1.4rem}
  .tst-img img{max-height:120px}
  .tst-title{font-size:1.4rem}
  .tst-desc{font-size:.88rem}

  /* Dress code */
  .dress{padding:1.1rem 1.2rem;font-size:.88rem}
  .dress-gallery-grid{grid-template-columns:repeat(3,1fr)}
  .dress-btns{flex-direction:column;align-items:stretch}
  .dress-btn{text-align:center}

  /* Area tabs */
  .tabs{gap:.4rem}
  .tb{font-size:.58rem;padding:.38rem .75rem}
  .cards{grid-template-columns:1fr}
  .tipbox{grid-template-columns:1fr}

  /* RSVP form */
  #rsvp{padding:4rem 1.4rem}
  .fr{grid-template-columns:1fr}
  .sub{width:100%;padding:.85rem}

  /* Lista nozze */
  .regalo-inner{padding:4rem 1.4rem}
  .iban-box{padding:1.2rem 1rem}
  .iban-row{flex-direction:column;gap:.15rem;margin-bottom:.7rem}
  .iban-val{font-size:.75rem;word-break:break-all}

  /* Footer */
  footer{padding:2rem 1.4rem;font-size:.58rem}

  /* ── Extra mobile fixes ── */
  /* Prevent iOS font size adjustment */
  html { -webkit-text-size-adjust: 100%; }
  /* Inputs: prevent zoom on focus (need 16px) */
  input[type=text],input[type=email],input[type=tel],select,textarea {
    font-size: 1rem !important;
  }
  /* Nav links min tap target */
  .nl a { min-height: 44px; display:inline-flex; align-items:center; touch-action:manipulation; }
  /* On small screens allow nav scroll */
  .nl { gap: 1.2rem; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .nl::-webkit-scrollbar { display:none; }
  .nl a { font-size:.6rem; white-space:nowrap; flex-shrink:0; }
  /* Submit button full width */
  .sub { width:100%; padding:.9rem 1rem; }
  /* Area cards single col */
  .cards { grid-template-columns: 1fr; }
  /* Tabs wrap tightly */
  .tabs { gap:.35rem; }
  .tb { padding:.5rem .8rem; font-size:.58rem; min-height:40px; }
  /* RSVP form */
  .fr { grid-template-columns: 1fr; }
  /* Images not too huge on mobile */
  .tst-img img { max-height:200px; }
  /* Lista nozze */
  .iban-box { padding:1.1rem; }
  .iban-row { flex-direction:column; gap:.1rem; margin-bottom:.6rem; }
  .iban-val { font-size:.75rem; }
}

/* Extra small phones */
@media(max-width:380px){
  .hn{font-size:2.8rem}
  .ln{font-size:3rem}
  nav{padding:.65rem .9rem}
  .nl{gap:.8rem}
}
  
    /* ════════════════════════════════════════
       TIMELINE LAYOUTS — per language
       ════════════════════════════════════════ */

    /* ── Story cards with big numbers (all languages) ── */
    .tl-story { position:relative; }
    .tst-item {
      display:grid; grid-template-columns:80px 1fr;
      gap:1.5rem; margin-bottom:3.5rem; align-items:start;
      position:relative;
    }
    .tst-item::before {
      content:''; position:absolute;
      left:39px; top:80px; width:2px;
      height:calc(100% + 3.5rem - 80px);
      background:repeating-linear-gradient(
        to bottom,
        var(--gold) 0, var(--gold) 6px,
        transparent 6px, transparent 12px
      );
    }
    .tst-item:last-child::before { display:none; }
    .tst-num {
      width:80px; height:80px; border-radius:50%;
      background:var(--cream); border:1.5px solid var(--gold);
      display:flex; flex-direction:column;
      align-items:center; justify-content:center; flex-shrink:0;
      position:relative; z-index:2;
    }
    .tst-n { font-family:var(--serif); font-size:2rem; font-weight:300; color:var(--accent); line-height:1; }
    .tst-hr { font-family:var(--sans); font-size:.5rem; letter-spacing:.12em; color:var(--stone); margin-top:.1rem; }
    .tst-content { padding-top:.5rem; }
    .tst-img {
      margin-bottom:1rem;
      text-align:center;
    }
    .tst-img img {
      max-height:150px; object-fit:contain;
      filter:drop-shadow(2px 5px 10px rgba(0,0,0,.10));
    }
    .tst-title { font-family:var(--serif); font-size:1.7rem; font-weight:300; color:var(--ink); margin-bottom:.3rem; line-height:1.15; }
    .tst-venue { font-family:var(--sans); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-bottom:.5rem; }
    .tst-venue a { color:var(--accent); text-decoration:none; }
    .tst-desc { font-size:.9rem; color:var(--stone); line-height:1.65; }

    /* split layout: text left, image right */
    .tst-content-split {
      display:flex; align-items:center; gap:1.5rem;
    }
    .tst-text { flex:1; min-width:0; }
    .tst-side-img {
      flex:0 0 auto; display:flex; align-items:center; justify-content:center;
    }
    .tst-side-img img {
      max-height:180px; object-fit:contain;
      filter:drop-shadow(2px 5px 10px rgba(0,0,0,.10));
      opacity:.55;
    }
    .tst-side-img img[src="Location1.png"] { opacity:.8; max-height:170px; }
    .tst-side-img img[src="ceremony.png"] { opacity:.8; }

    @media(max-width:650px) {
      .tst-item { grid-template-columns:60px 1fr; gap:1rem; }
      .tst-num { width:60px; height:60px; }
      .tst-n { font-size:1.5rem; }
      .tst-content-split { flex-direction:column; }
      .tst-side-img img { max-height:140px; }
    }

    /* ── Lista Nozze section ── */
    #regalo { background:var(--bg2,var(--cream)); border-top:1px solid var(--border); }
    .regalo-inner { max-width:620px; margin:0 auto; padding:5rem 2rem; }
    .regalo-note { font-size:.95rem; color:var(--stone); max-width:480px; margin-bottom:2rem; line-height:1.7; }
    .iban-box {
      background:var(--ivory); border:1px solid var(--border);
      border-radius:3px; padding:1.6rem 1.8rem; margin-top:1.8rem;
      position:relative;
    }
    .iban-label { font-family:var(--sans); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:.7rem; display:block; }
    .iban-row { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; margin-bottom:.45rem; }
    .iban-key { font-family:var(--sans); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); flex-shrink:0; }
    .iban-val { font-family:var(--sans); font-size:.75rem; color:var(--ink); letter-spacing:.08em; word-break:break-all; font-variant-numeric:lining-nums tabular-nums; }
    .regalo-img { text-align:center; margin-top:2.5rem; }
    .regalo-img img { max-height:240px; object-fit:contain; opacity:.55; }