:root {
    --wine: #8f1845;
    --berry: #b62d60;
    --rose: #e96d99;
    --blush: #fff2f6;
    --paper: #fffaf8;
    --cream: #f8efe8;
    --ink: #2f2027;
    --muted: #765e69;
    --line: rgba(101, 57, 75, .14);
    --white: #fff;
    --shadow: 0 24px 80px rgba(74, 24, 45, .13);
    --radius: 30px;
    --serif: Georgia, "Times New Roman", serif;
    --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--sans);
    overflow-x: clip;
}
body.is-locked { overflow: hidden; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }

.ambient { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.orb { position: absolute; width: 420px; height: 420px; border-radius: 50%; filter: blur(35px); opacity: .18; }
.orb-one { background: #ffc0d6; top: 8%; left: -220px; }
.orb-two { background: #e1b8ff; top: 46%; right: -260px; }
.orb-three { background: #ffd9aa; bottom: -220px; left: 35%; }
#floating-hearts { position: absolute; inset: 0; }
.floating-heart {
    position: absolute; bottom: -35px; color: rgba(182, 45, 96, .16); font-family: var(--serif);
    animation: heartFloat linear forwards; user-select: none;
}
@keyframes heartFloat {
    0% { transform: translate3d(0, 0, 0) rotate(0); opacity: 0; }
    10% { opacity: 1; }
    100% { transform: translate3d(var(--drift), -115vh, 0) rotate(50deg); opacity: 0; }
}
.noscript { position: fixed; inset: 16px 16px auto; z-index: 999; padding: 14px; border-radius: 14px; background: #fff; color: #8f1845; text-align: center; box-shadow: var(--shadow); }

/* Lock */
.lock-screen { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; overflow: auto; }
.lock-photo { position: absolute; inset: 0; background: url('../photos/nasza-historia-06.webp') 50% 45% / cover no-repeat; animation: slowZoom 18s ease-in-out infinite alternate; }
@keyframes slowZoom { to { transform: scale(1.08); } }
.lock-overlay { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(30, 9, 20, .86), rgba(72, 17, 43, .62) 60%, rgba(35, 12, 24, .76)); backdrop-filter: blur(2px); }
.glass-card {
    position: relative; width: min(520px, 100%); padding: 52px 52px 38px; border: 1px solid rgba(255,255,255,.28);
    border-radius: 34px; color: #fff; text-align: center; background: rgba(64, 22, 41, .48); box-shadow: 0 30px 100px rgba(0,0,0,.32);
    backdrop-filter: blur(22px); animation: cardIn .8s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes cardIn { from { transform: translateY(30px) scale(.97); opacity: 0; } }
.lock-seal { width: 78px; height: 78px; margin: -90px auto 25px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(145deg,#f99abd,#9d204f); box-shadow: 0 14px 38px rgba(76, 8, 36, .4), inset 0 0 0 6px rgba(255,255,255,.17); transform: rotate(-7deg); }
.lock-seal span { font-size: 32px; }
.eyebrow { margin: 0 0 15px; color: var(--berry); font-size: 12px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow.light { color: #ffd6e4; }
.lock-card h1 { margin: 0; font: 500 clamp(35px, 6vw, 54px)/1.04 var(--serif); letter-spacing: -.035em; }
.lock-copy { margin: 18px auto 28px; max-width: 370px; color: rgba(255,255,255,.8); line-height: 1.65; }
.unlock-form { text-align: left; }
.unlock-form > label { display: block; margin: 0 0 9px; font-size: 13px; font-weight: 700; }
.date-input-wrap { position: relative; }
.date-input-wrap span { position: absolute; left: 18px; top: 50%; transform: translateY(-54%); font-size: 23px; color: #c93e70; }
.date-input-wrap input { width: 100%; padding: 17px 18px 17px 54px; border: 1px solid rgba(255,255,255,.45); border-radius: 15px; outline: 0; color: var(--ink); background: rgba(255,255,255,.94); font-size: 19px; font-weight: 700; letter-spacing: .13em; transition: .25s; }
.date-input-wrap input:focus { border-color: #ff9cbc; box-shadow: 0 0 0 4px rgba(255,140,179,.2); }
.field-hint { margin: 8px 3px 18px; color: rgba(255,255,255,.67); font-size: 12px; }
.form-error { min-height: 20px; margin: 8px 2px; color: #ffd6df; font-size: 13px; font-weight: 650; line-height: 1.45; }
.form-error.centered { color: #b11f50; text-align: center; }
.primary-button, .secondary-button, .yes-button {
    min-height: 54px; border: 0; border-radius: 999px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 11px;
    padding: 0 25px; font-size: 14px; font-weight: 800; transition: transform .25s, box-shadow .25s, opacity .25s;
}
.primary-button { color: #fff; background: linear-gradient(135deg, var(--berry), var(--rose)); box-shadow: 0 14px 32px rgba(159, 30, 78, .28); }
.primary-button:hover, .yes-button:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(159,30,78,.35); }
.primary-button:disabled { opacity: .6; cursor: wait; transform: none; }
.primary-button.wide { width: 100%; }
.primary-button svg, .secondary-button svg, .text-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.private-note { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 25px 0 0; color: rgba(255,255,255,.58); font-size: 11px; }
.shake { animation: shake .45s; }
@keyframes shake { 20%, 60% { transform: translateX(-8px); } 40%, 80% { transform: translateX(8px); } }

/* Story */
main { position: relative; animation: revealPage .9s ease both; }
@keyframes revealPage { from { opacity: 0; } }
.story-nav { height: 78px; width: min(1340px, calc(100% - 50px)); margin: auto; display: flex; align-items: center; justify-content: space-between; }
.brand { display: flex; align-items: center; gap: 13px; color: var(--ink); text-decoration: none; font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.brand-mark { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font: 700 15px var(--serif); }
.brand-mark span { color: var(--rose); font-size: 10px; }
.anniversary-pill { padding: 10px 17px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 12px; font-weight: 700; background: rgba(255,255,255,.7); }
.anniversary-pill span { color: var(--berry); margin-right: 6px; }

.hero-section { width: min(1340px, calc(100% - 50px)); min-height: calc(100vh - 78px); margin: auto; padding: 40px 0 100px; display: grid; grid-template-columns: minmax(0, .95fr) minmax(420px, .82fr); align-items: center; gap: clamp(45px, 8vw, 130px); }
.hero-photo-wrap { position: relative; width: min(570px, 92%); justify-self: center; }
.hero-photo-wrap::before { content:""; position:absolute; inset: -22px 34px 22px -22px; z-index: -1; border-radius: 46% 46% 10px 10px; background: #f3dfe6; transform: rotate(-3deg); }
.hero-photo-wrap::after { content:""; position:absolute; width: 76%; height: 45%; right: -24%; bottom: -12%; z-index: -2; border-radius: 50%; background: radial-gradient(ellipse,rgba(222,87,139,.24),transparent 68%); }
.hero-photo-wrap img { width: 100%; aspect-ratio: .79; object-fit: cover; object-position: center; border-radius: 48% 48% 12px 12px; box-shadow: var(--shadow); }
.photo-sticker { position: absolute; padding: 15px 20px; border-radius: 18px; color: var(--ink); background: rgba(255,255,255,.93); box-shadow: 0 16px 40px rgba(52,25,37,.16); font: italic 16px/1.25 var(--serif); transform: rotate(-6deg); }
.photo-sticker strong { color: var(--berry); font-size: 24px; }
.sticker-one { left: -45px; bottom: 75px; }
.sticker-two { top: 60px; right: -58px; transform: rotate(7deg); }
.hand-heart { position: absolute; color: var(--rose); font: 46px var(--serif); }
.heart-a { top: 11%; left: -8%; transform: rotate(-15deg); }
.heart-b { bottom: 7%; right: -10%; transform: rotate(14deg); }
.hero-copy { max-width: 610px; }
.hero-copy h1, .section-heading h2, .invitation-card h2, .planner-header h2, .success-card h2 { margin: 0; font: 500 clamp(48px, 5.4vw, 86px)/.99 var(--serif); letter-spacing: -.045em; }
h1 em, h2 em { color: var(--berry); font-weight: 500; }
.hero-copy .lead { max-width: 560px; margin: 27px 0; color: var(--muted); font-size: 18px; line-height: 1.75; }
.signature { margin: 30px 0; font: italic 19px var(--serif); }
.signature span { color: var(--berry); margin-left: 8px; }
.text-button { border: 0; padding: 10px 0; display: flex; align-items: center; gap: 12px; color: var(--berry); background: transparent; cursor: pointer; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.text-button svg { transition: transform .2s; }
.text-button:hover svg { transform: translateY(4px); }

.thanks-section { padding: 130px max(25px, calc((100vw - 1240px)/2)); background: #f6ebe6; }
.section-heading { max-width: 850px; margin-bottom: 55px; }
.section-heading h2 { font-size: clamp(42px, 4.7vw, 70px); }
.section-heading.center { margin: 0 auto 60px; text-align: center; }
.thanks-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.thanks-card { min-height: 330px; padding: 28px; border: 1px solid rgba(81,45,60,.1); border-radius: 22px; display: flex; flex-direction: column; background: rgba(255,255,255,.68); transition: transform .35s, box-shadow .35s; }
.thanks-card:hover { transform: translateY(-9px) rotate(-.5deg); box-shadow: var(--shadow); }
.thanks-card.accent { color: #fff; background: linear-gradient(145deg,#bd3d6a,#e87ba0); }
.thanks-card.dark { color: #fff; background: #38242d; }
.card-number { font: italic 15px var(--serif); opacity: .55; }
.card-icon { margin: 42px 0 25px; color: var(--berry); font-size: 36px; }
.accent .card-icon, .dark .card-icon { color: #fff; }
.thanks-card h3 { margin: auto 0 10px; font: 500 27px var(--serif); }
.thanks-card p { margin: 0; opacity: .72; font-size: 14px; line-height: 1.65; }

.memories-section { padding: 130px max(25px, calc((100vw - 1240px)/2)); }
.photo-wall { display: grid; grid-template-columns: repeat(12,1fr); grid-auto-rows: 155px; gap: 16px; }
.memory { position: relative; grid-column: span 4; grid-row: span 2; margin: 0; overflow: hidden; border-radius: 20px; background: #e8dde1; }
.memory-tall { grid-column: span 5; grid-row: span 3; }
.memory-wide { grid-column: span 7; grid-row: span 3; }
.memory img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.memory:hover img { transform: scale(1.06); }
.memory::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(24,9,16,.72)); }
.memory figcaption { position: absolute; z-index:1; left: 22px; right: 22px; bottom: 18px; color:#fff; font: italic 16px var(--serif); transform: translateY(8px); opacity: .88; transition:.3s; }
.memory:hover figcaption { transform: translateY(0); opacity: 1; }

.letter-section { min-height: 780px; display: grid; grid-template-columns: 1fr 1fr; background: #34242b; }
.letter-photo { min-height: 670px; padding: 48px; }
.letter-photo img { width:100%; height:100%; object-fit:cover; object-position:center; border-radius: 3px 48% 3px 3px; filter: saturate(.85); }
.love-letter { align-self:center; max-width:650px; padding: 90px clamp(40px,7vw,110px); color:#fff; }
.quote-mark { display:block; height:70px; color:#d96e98; font: 110px/1 var(--serif); }
.love-letter h2 { margin: 0 0 30px; font:500 clamp(36px,4vw,58px)/1.08 var(--serif); letter-spacing:-.035em; }
.love-letter p:not(.eyebrow) { color:rgba(255,255,255,.67); line-height:1.8; }
.letter-sign { margin-top:35px; font:italic 19px var(--serif); }
.letter-sign strong { display:block; margin-top:8px; font-size:25px; }
.letter-sign span { color:#f07ca6; }

.invitation-section { position:relative; min-height:740px; padding:120px 25px; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 20% 20%,#d85f8b,transparent 33%),radial-gradient(circle at 85% 70%,#6a1238,transparent 36%),linear-gradient(140deg,#a92757,#82133f); color:#fff; }
.invitation-section::before { content:""; position:absolute; width:600px; height:600px; border:1px solid rgba(255,255,255,.12); border-radius:50%; }
.invitation-section::after { content:""; position:absolute; width:780px; height:780px; border:1px solid rgba(255,255,255,.06); border-radius:50%; }
.invitation-card { position:relative; z-index:1; max-width:900px; text-align:center; }
.invitation-card h2 { font-size:clamp(48px,6.4vw,88px); }
.invitation-card h2 em { color:#ffd0e1; }
.invitation-card > p:not(.eyebrow):not(.no-message) { margin:25px 0 34px; color:rgba(255,255,255,.72); font-size:18px; }
.decision-zone { position:relative; width:min(560px,100%); height:112px; margin:auto; display:flex; align-items:center; justify-content:center; gap:18px; }
.yes-button { z-index:2; min-height:62px; padding:0 32px; color:var(--wine); background:#fff; box-shadow:0 18px 48px rgba(44,7,23,.25); font-size:16px; }
.yes-button span { color:#e04d82; }
.no-button { min-width:92px; min-height:48px; border:1px solid rgba(255,255,255,.4); border-radius:999px; color:rgba(255,255,255,.75); background:rgba(255,255,255,.08); cursor:pointer; transition:left .22s ease, top .22s ease, transform .22s, opacity .2s; }
.no-button.is-running { position:absolute; }
.no-message { height:20px; margin:5px 0 0; color:rgba(255,255,255,.58); font:italic 14px var(--serif); opacity:0; transition:.2s; }
.no-message.is-visible { opacity:1; }
.sparkle { position:absolute; font-size:30px; opacity:.55; animation:sparkle 2.2s ease-in-out infinite; }
.s-one{left:12%;top:24%}.s-two{right:16%;bottom:27%;animation-delay:.7s}.s-three{right:28%;top:18%;font-size:60px;animation-delay:1.1s}
@keyframes sparkle{50%{transform:scale(1.5) rotate(45deg);opacity:1}}

/* Planner */
.planner-section { padding: 110px 25px; background: #f7eeea; }
.planner-shell { width:min(980px,100%); margin:auto; padding:48px; border:1px solid var(--line); border-radius:32px; background:rgba(255,255,255,.9); box-shadow:var(--shadow); }
.planner-header { display:flex; justify-content:space-between; gap:25px; align-items:flex-end; }
.planner-header h2 { font-size:clamp(38px,5vw,62px); }
.progress-copy { flex:0 0 auto; color:var(--muted); font:italic 18px var(--serif); }
.progress-copy strong { color:var(--berry); font-size:30px; }
.progress-track { height:5px; margin:32px 0 42px; overflow:hidden; border-radius:5px; background:#eadde2; }
.progress-track span { display:block; width:25%; height:100%; border-radius:5px; background:linear-gradient(90deg,var(--berry),var(--rose)); transition:width .45s ease; }
.form-step { border:0; padding:0; margin:0; display:none; animation:stepIn .45s ease both; }
.form-step.is-active { display:block; }
@keyframes stepIn { from{opacity:0;transform:translateX(18px)} }
.form-step legend { padding:0; font:500 35px var(--serif); }
.step-intro { margin:8px 0 28px; color:var(--muted); line-height:1.55; }
.choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.choice-card { position:relative; min-height:130px; padding:17px; border:1px solid var(--line); border-radius:18px; display:flex; align-items:center; gap:16px; cursor:pointer; background:#fff; transition:.25s; }
.choice-card:hover, .food-card:hover { border-color:rgba(182,45,96,.45); transform:translateY(-3px); box-shadow:0 12px 30px rgba(83,30,50,.08); }
.choice-card input, .food-card input, .pill-choices input { position:absolute; opacity:0; pointer-events:none; }
.choice-visual { width:72px; height:92px; flex:0 0 auto; border-radius:14px; display:grid; place-items:center; font-size:26px; background:#f1dfe5; }
.visual-elegant{background:linear-gradient(145deg,#4c2536,#a53d65);color:#fff}.visual-cozy{background:#f0dfc8}.visual-adventure{background:#dce8e3}.visual-surprise{background:#eedbef}
.choice-card strong { display:block; margin-bottom:7px; font:500 21px var(--serif); }
.choice-card small { color:var(--muted); line-height:1.45; }
.choice-card i, .food-card i { position:absolute; top:12px; right:12px; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; opacity:0; color:#fff; background:var(--berry); font-style:normal; font-size:12px; transition:.2s; }
.choice-card:has(input:checked), .food-card:has(input:checked) { border-color:var(--berry); box-shadow:0 0 0 2px rgba(182,45,96,.12); background:#fff9fb; }
.choice-card:has(input:checked) i, .food-card:has(input:checked) i { opacity:1; }
.cuisine-grid { grid-template-columns:repeat(3,1fr); }
.food-card { position:relative; min-height:145px; padding:20px; border:1px solid var(--line); border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; background:#fff; text-align:center; transition:.25s; }
.food-card > span { margin-bottom:11px; font-size:38px; filter:drop-shadow(0 5px 7px rgba(71,36,49,.1)); }
.food-card strong { font:500 20px var(--serif); }
.food-card small { margin-top:4px; color:var(--muted); }
.input-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.input-field { position:relative; display:block; margin-top:22px; }
.input-field.full { grid-column:1/-1; }
.input-field > span { display:block; margin:0 0 9px; font-size:13px; font-weight:750; }
.input-field > span small { color:var(--muted); font-weight:500; }
.input-field input, .input-field textarea { width:100%; border:1px solid var(--line); border-radius:14px; outline:0; padding:15px 16px; color:var(--ink); background:#fff; transition:.22s; }
.input-field textarea { min-height:120px; resize:vertical; line-height:1.55; }
.input-field input:focus, .input-field textarea:focus { border-color:var(--berry); box-shadow:0 0 0 4px rgba(182,45,96,.09); }
.input-field input.is-invalid { border-color:#c02654; box-shadow:0 0 0 4px rgba(192,38,84,.08); }
.mini-section { margin-top:28px; }
.mini-section h3 { margin:0 0 13px; font:500 22px var(--serif); }
.pill-choices { display:flex; flex-wrap:wrap; gap:10px; }
.pill-choices label { position:relative; cursor:pointer; }
.pill-choices span { min-height:45px; padding:0 17px; border:1px solid var(--line); border-radius:999px; display:flex; align-items:center; background:#fff; font-size:13px; font-weight:700; transition:.2s; }
.pill-choices label:hover span { border-color:rgba(182,45,96,.45); }
.pill-choices label:has(input:checked) span { border-color:var(--berry); color:var(--berry); background:#fff2f7; box-shadow:0 0 0 2px rgba(182,45,96,.08); }
.dessert-choices { margin-top:26px; }
.note-field { margin-top:30px; }
.char-count { position:absolute; right:12px; bottom:10px; color:var(--muted); font-size:11px; }
.order-preview { margin-top:28px; padding:22px; border-radius:18px; background:#f8eeee; }
.order-preview h3 { margin:0 0 15px; font:500 23px var(--serif); }
.preview-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.preview-item { padding:10px 12px; border-radius:10px; background:rgba(255,255,255,.68); }
.preview-item small { display:block; margin-bottom:3px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.preview-item strong { font-size:13px; }
.form-actions { margin-top:30px; display:flex; justify-content:flex-end; gap:12px; }
.secondary-button { border:1px solid var(--line); color:var(--muted); background:#fff; }
.secondary-button:hover { color:var(--berry); border-color:var(--berry); }
.submit-button { min-width:230px; }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; opacity:0!important; }

/* Success */
.success-section { min-height:790px; padding:110px 25px; display:grid; place-items:center; background:radial-gradient(circle at 25% 20%,#ffdae7,transparent 33%),radial-gradient(circle at 78% 80%,#e9d1f2,transparent 32%),#fff8fa; }
.success-card { width:min(760px,100%); padding:55px; border:1px solid var(--line); border-radius:34px; text-align:center; background:rgba(255,255,255,.9); box-shadow:var(--shadow); animation:successIn .7s cubic-bezier(.2,.8,.2,1) both; }
@keyframes successIn{from{opacity:0;transform:scale(.9) translateY(20px)}}
.success-icon { width:82px; height:82px; margin:0 auto 25px; border-radius:50%; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--berry),var(--rose)); box-shadow:0 15px 35px rgba(182,45,96,.3); }
.success-icon span { font-size:34px; }
.success-card h2 { font-size:clamp(42px,6vw,65px); }
.success-lead { max-width:590px; margin:22px auto; color:var(--muted); font-size:17px; line-height:1.7; }
.success-details { margin:28px 0; padding:20px; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; border-radius:18px; background:#f9edef; text-align:left; }
.success-detail { padding:10px 12px; }
.success-detail small { display:block; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.success-detail strong { display:block; margin-top:4px; font-size:14px; }
.success-note { color:var(--muted); font-size:14px; line-height:1.6; }
.final-signature { margin-top:24px; font:italic 19px var(--serif); }
.final-signature strong { color:var(--berry); }

footer { min-height:115px; padding:28px max(25px,calc((100vw - 1240px)/2)); display:flex; justify-content:space-between; align-items:center; color:rgba(255,255,255,.67); background:#2e2026; font-size:12px; }
footer strong { color:#fff; letter-spacing:.14em; }
.toast { position:fixed; left:50%; bottom:25px; z-index:300; max-width:min(450px,calc(100% - 30px)); padding:14px 20px; border-radius:999px; color:#fff; background:#38242d; box-shadow:0 14px 44px rgba(0,0,0,.25); font-size:13px; font-weight:700; transform:translate(-50%,30px); opacity:0; pointer-events:none; transition:.3s; }
.toast.is-visible { transform:translate(-50%,0); opacity:1; }

.reveal { opacity:0; transform:translateY(35px); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
.reveal-delay { transition-delay:.13s; }.reveal-delay-2{transition-delay:.24s}
.confetti-piece { position:fixed; z-index:400; top:-20px; width:10px; height:16px; pointer-events:none; animation:confettiFall var(--duration) linear forwards; }
@keyframes confettiFall{to{transform:translate3d(var(--x),110vh,0) rotate(800deg);opacity:.7}}

@media (max-width: 1000px) {
    .hero-section { grid-template-columns:1fr 1fr; gap:45px; }
    .sticker-two { right:-25px; }
    .thanks-grid { grid-template-columns:1fr 1fr; }
    .thanks-card { min-height:280px; }
    .letter-section { grid-template-columns:.9fr 1.1fr; }
    .letter-photo { padding:30px 0 30px 30px; }
    .love-letter { padding:70px 45px; }
}

@media (max-width: 760px) {
    .glass-card { padding:45px 24px 28px; }
    .lock-seal { margin-top:-82px; }
    .story-nav { width:calc(100% - 30px); height:68px; }
    .anniversary-pill { padding:8px 11px; font-size:10px; }
    .hero-section { width:calc(100% - 34px); min-height:auto; padding:38px 0 80px; grid-template-columns:1fr; gap:65px; }
    .hero-photo-wrap { width:88%; order:1; }
    .hero-copy { order:2; }
    .hero-copy h1 { font-size:clamp(46px,14vw,68px); }
    .hero-copy .lead { font-size:16px; }
    .sticker-one { left:-22px; bottom:35px; }
    .sticker-two { right:-22px; top:25px; }
    .photo-sticker { padding:11px 14px; font-size:13px; }
    .photo-sticker strong { font-size:19px; }
    .hand-heart { display:none; }
    .thanks-section,.memories-section { padding:85px 17px; }
    .section-heading { margin-bottom:38px; }
    .section-heading h2 { font-size:45px; }
    .thanks-grid { grid-template-columns:1fr; }
    .thanks-card { min-height:250px; }
    .card-icon { margin:28px 0 20px; }
    .photo-wall { grid-template-columns:1fr 1fr; grid-auto-rows:180px; gap:9px; }
    .memory,.memory-tall,.memory-wide { grid-column:span 1; grid-row:span 1; border-radius:13px; }
    .memory:first-child,.memory:nth-child(4) { grid-column:1/-1; grid-row:span 2; }
    .memory figcaption { left:13px; right:13px; bottom:11px; font-size:13px; }
    .letter-section { grid-template-columns:1fr; }
    .letter-photo { min-height:auto; height:430px; padding:25px 17px 0; }
    .letter-photo img { border-radius:3px 40% 3px 3px; }
    .love-letter { padding:65px 25px 85px; }
    .invitation-section { min-height:680px; padding:90px 18px; }
    .invitation-card h2 { font-size:52px; }
    .decision-zone { height:150px; }
    .no-message { margin-top:0; }
    .planner-section { padding:65px 12px; }
    .planner-shell { padding:28px 18px; border-radius:23px; }
    .planner-header { align-items:flex-start; }
    .planner-header h2 { font-size:40px; }
    .progress-copy { font-size:14px; }
    .progress-copy strong { font-size:24px; }
    .choice-grid,.cuisine-grid,.input-grid { grid-template-columns:1fr; }
    .choice-card { min-height:115px; }
    .choice-visual { height:78px; width:64px; }
    .cuisine-grid { grid-template-columns:1fr 1fr; }
    .food-card { min-height:130px; padding:15px 8px; }
    .form-actions { justify-content:space-between; }
    .form-actions .primary-button { margin-left:auto; }
    .submit-button { min-width:0; padding:0 18px; }
    .success-section { padding:65px 14px; }
    .success-card { padding:38px 20px; }
    .success-details { grid-template-columns:1fr; }
    footer { flex-direction:column; justify-content:center; gap:12px; text-align:center; }
}

@media (max-width: 420px) {
    .brand > span:last-child { display:none; }
    .hero-copy h1 { font-size:45px; }
    .photo-wall { grid-auto-rows:150px; }
    .choice-card small { font-size:11px; }
    .choice-card strong { font-size:18px; }
    .cuisine-grid { gap:9px; }
    .invitation-card h2 { font-size:45px; }
    .yes-button { padding:0 22px; }
    .form-actions { gap:8px; }
    .primary-button,.secondary-button { padding:0 16px; font-size:12px; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
    .reveal { opacity:1; transform:none; }
}
