:root{--paper:#f7f5f0;--ink:#171717;--pink:#ed6b9b;--soft:#eadfd7;--page-time:780ms}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#111;color:var(--ink);font-family:"Songti SC","Noto Serif SC","Microsoft YaHei",serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}
#app{position:relative;width:100%;max-width:430px;height:100vh;height:100dvh;margin:auto;overflow:hidden;background:var(--paper);box-shadow:0 0 50px #0008}.pages{height:100%;transition:transform var(--page-time) cubic-bezier(.72,0,.28,1);will-change:transform}.page{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;background:var(--paper);isolation:isolate}.page img{width:100%;height:100%;object-fit:cover;display:block}.serif{font-family:Georgia,"Times New Roman",serif;letter-spacing:.13em}.eyebrow{position:absolute;z-index:3;font:10px/1.3 Arial,sans-serif;letter-spacing:.34em}.letter-row{font:8px/1 Arial,sans-serif;letter-spacing:.28em;text-transform:uppercase}.tape{position:absolute;width:78px;height:18px;background:#efe5d8aa;z-index:4;transform:rotate(-7deg)}
.loader{position:absolute;inset:0;z-index:99;background:#f8f7f3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;transition:opacity .55s,visibility .55s}.loader.hidden{opacity:0;visibility:hidden}.loader strong{font:28px/1 Georgia,serif}.loader span{font-size:11px;letter-spacing:.22em}.loader-ring{width:56px;height:56px;border:1px solid #ddd;border-top-color:#222;border-radius:50%;animation:loaderSpin 1.3s linear infinite;margin-bottom:15px}
.music-button{position:absolute;right:12px;top:calc(10px + env(safe-area-inset-top));z-index:30;border:0;background:transparent;padding:0;color:#777;display:flex;align-items:center;gap:4px}.music-button img{width:44px;height:44px;border-radius:50%;opacity:.72}.music-button span{order:-1;background:#999;color:#fff;border-radius:5px;padding:4px 7px;font-size:11px}.music-button.playing img{animation:musicSpin 3s linear infinite}.music-button.playing span{display:none}.swipe-hint{position:absolute;bottom:calc(9px + env(safe-area-inset-bottom));left:50%;z-index:25;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;color:#777;font-size:9px;letter-spacing:.15em}.swipe-hint i{width:12px;height:12px;border-left:1px solid;border-top:1px solid;transform:rotate(45deg);animation:hintUp 1.5s infinite}.page-indicator{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom));right:14px;z-index:25;font:9px Arial;color:#777;letter-spacing:.15em}
.page-cover{background:#faf9f5}.cover-top{position:absolute;top:5.2%;left:6%;right:6%;text-align:center;z-index:3}.cover-top h1{margin:12px 0 5px;font-size:29px;font-weight:500;letter-spacing:.38em;text-indent:.38em}.cover-top .serif{margin:0;font-size:13px}.scribble{position:absolute;top:17%;left:50%;z-index:4;font:58px/1 cursive;color:var(--pink);transform:translateX(-50%) rotate(-10deg)}.hero-window{position:absolute;left:6%;right:6%;top:25%;height:56%;border-radius:48% 48% 2px 2px/22% 22% 2px 2px;overflow:hidden}.hero-window img{object-position:center 28%}.name-card{position:absolute;left:10%;right:10%;bottom:9%;z-index:4;background:#f8f6f0e8;padding:12px 10px;text-align:center;box-shadow:0 3px 18px #00000010}.name-card p{margin:0;font-size:11px;letter-spacing:.2em}.name-card h2{font-size:22px;font-weight:400;margin:5px 0}.name-card i{font:italic 18px Georgia;color:var(--pink)}.name-card .date{font:12px Georgia}.tiny-note{position:absolute;bottom:4.2%;width:100%;text-align:center;font-size:10px;letter-spacing:.3em}
.page-notice{background:#f2eee8}.page-notice .eyebrow{left:7%;top:7%}.tape-a{left:1%;top:19%}.tape-b{right:0;top:54%;transform:rotate(9deg)}.photo-main{position:absolute;left:5%;top:14%;width:67%;height:60%;padding:9px 9px 28px;background:#fff;box-shadow:0 7px 18px #2222;transform:rotate(-2deg)}.photo-main img{object-position:center 24%}.date-stamp{position:absolute;right:4%;top:22%;width:35%;padding:12px 8px;border:1px solid #222;background:#faf8f2;transform:rotate(4deg);text-align:center}.date-stamp b{display:block;font:15px Georgia;margin-bottom:15px}.date-stamp span{font-size:12px;line-height:2}.contact-row{position:absolute;left:8%;right:8%;bottom:13%;display:flex;justify-content:space-between}.contact-row a{font-size:11px;border-bottom:1px solid;padding:5px}.english{position:absolute;right:4%;bottom:23%;font:9px/1.7 Georgia;text-align:right;letter-spacing:.12em}
.page-hi{background:#fff}.pink-orbit{position:absolute;width:340px;height:340px;border:1px solid #f5b7ca;border-radius:50%;left:-160px;top:-100px;box-shadow:0 0 0 35px #fff,0 0 0 36px #f7dce4}.hi{position:absolute;left:8%;top:8%;font:italic 74px/1 Georgia;margin:0;color:var(--pink)}.vertical-copy{position:absolute;left:9%;top:27%;font-size:22px;line-height:2.25;letter-spacing:.38em;width:30%;z-index:3}.subcopy{position:absolute;left:8%;bottom:19%;font-size:9px;writing-mode:vertical-rl;letter-spacing:.2em}.portrait{position:absolute;right:-6%;top:12%;width:70%;height:75%;border-radius:45% 0 0 0/20% 0 0 0;overflow:hidden}.portrait img{object-position:54% center}.story{position:absolute;left:14%;right:8%;bottom:7%;font-size:12px;line-height:2;text-align:right;z-index:3}
.page-countdown{color:#fff}.full-photo{position:absolute;inset:0}.full-photo img{object-position:center 28%}.count-box{position:absolute;left:5%;right:5%;bottom:8%;text-align:center;padding:28px 14px;border:1px solid #ffffffaa;background:#0006}.count-box>p{font-size:9px}.countdown{display:flex;justify-content:center;gap:13px;margin:20px 0}.countdown span{display:flex;flex-direction:column}.countdown b{font:28px/1 Georgia}.countdown i{font-style:normal;font-size:9px;margin-top:8px}.white-line{width:80px;height:1px;background:#fff;margin:13px auto}.count-box h2{font:17px Georgia;letter-spacing:.13em;margin:0}
.page-love{background:#f9f7f2}.paper-grid{position:absolute;inset:0;background-image:linear-gradient(#aaa1 1px,transparent 1px),linear-gradient(90deg,#aaa1 1px,transparent 1px);background-size:30px 30px}.photo-crop{position:absolute;right:0;top:0;width:57%;height:100%}.photo-crop img{object-position:62% center}.quote-mark{position:absolute;left:7%;top:5%;font:120px/1 Georgia;color:var(--pink)}.love-copy{position:absolute;left:8%;top:25%;width:44%;font-size:13px;line-height:1.9}.love-copy p{margin:0 0 25px}.vertical-title{position:absolute;left:4%;bottom:5%;font-size:11px;letter-spacing:.3em;writing-mode:vertical-rl}
.page-collage{background:#f3efe8}.polaroid{position:absolute;background:#fff;padding:7px 7px 25px;box-shadow:0 6px 15px #0002}.p1{left:6%;top:8%;width:52%;height:39%;transform:rotate(-5deg)}.p2{right:-4%;top:20%;width:52%;height:39%;transform:rotate(7deg)}.p3{left:24%;top:45%;width:55%;height:39%;transform:rotate(-2deg)}.polaroid img{object-position:center 28%}.slash{position:absolute;left:7%;top:48%;font:90px Georgia;color:var(--pink);z-index:4}.collage-copy{position:absolute;left:6%;right:6%;bottom:7%;font-size:12px;line-height:1.8;text-align:center}.pink-hand{position:absolute;right:5%;top:5%;font:20px cursive;color:var(--pink);transform:rotate(7deg)}
.page-thanks{background:#fff}.tiny-serif{position:absolute;top:4%;left:7%;right:7%;font:8px/1.6 Georgia;text-align:center;letter-spacing:.12em}.wide-photo{position:absolute;left:0;right:0;top:8%;height:48%}.wide-photo img{object-position:center 36%}.thanks-copy{position:absolute;top:54%;left:10%;right:10%;font-size:12px;line-height:2;text-align:center}.thanks-copy p{margin:0 0 9px}.see-you{position:absolute;left:0;right:0;bottom:10%;color:var(--pink);font:23px/1.4 cursive;text-align:center}.see-you small{display:block;font-size:17px}.doodles{position:absolute;bottom:3%;left:0;right:0;text-align:center;color:#77bfd2;font-size:25px;letter-spacing:.18em}
.page-info{background:#f5f1e9}.page-info .eyebrow{left:7%;top:6%}.info-photo{position:absolute;left:0;right:0;top:8%;height:55%}.info-photo img{object-position:center 68%}.info-card{position:absolute;left:7%;right:7%;bottom:11%;background:#faf9f5;padding:22px 16px;text-align:center;border:1px solid #222}.love-quote{font-size:14px;line-height:2.2;color:#3a3a3a;font-family:"STXingkai","华文行楷","KaiTi","楷体",serif}.info-card .label{font:9px Georgia;letter-spacing:.3em}.info-card h2{font:20px Georgia;font-weight:400;margin:12px 0}.info-card p{font-size:11px;margin:6px}.info-card button{border:0;border-bottom:1px solid;background:transparent;margin-top:10px;padding:7px 15px;font-size:11px}.lover-mark{position:absolute;right:3%;top:57%;font:22px Georgia;z-index:3}.lover-mark small{font-size:7px;letter-spacing:.1em}
.page-tips{background:#fff}.tips-photo{position:absolute;left:0;right:0;top:0;height:54%}.tips-photo img{object-position:center 62%}.tips-copy{position:absolute;top:59%;left:9%;right:9%;bottom:7%}.tips-text-area{width:100%;height:100%;border:1px dashed #ccc;border-radius:10px;background:#fafafa;min-height:120px;display:flex;align-items:center;justify-content:center;padding:18px}.tips-love-text{margin:0;font-size:14px;line-height:2;color:#555;font-family:"STXingkai","华文行楷","KaiTi","楷体",serif;text-align:center}
.page-rsvp{background:#eee8df}.final-photo{position:absolute;left:0;right:0;top:0;height:39%}.final-photo img{object-position:60% 90%}.rsvp-cards{position:absolute;left:8%;right:8%;top:44%;bottom:22%;display:flex;flex-direction:column;gap:12px;justify-content:center}.info-card-item{background:#faf9f4;border:1px solid #ccc;border-radius:12px;padding:13px 16px;text-align:center}.card-label{font-size:10px;letter-spacing:.2em;color:#888;margin:0 0 8px}.card-value{font-size:14px;line-height:1.7;color:#333;margin:0}.map-btn{border:1px solid #222;background:#222;color:#fff;border-radius:10px;padding:12px;font-size:13px;letter-spacing:.1em}
.page-rsvp .see-you{bottom:4%;font-size:19px}
.page-rsvp .see-you small{font-size:13px}
@media(min-width:431px){body{display:grid;place-items:center}#app{height:min(100dvh,932px)}}
@media(max-height:760px){.cover-top{top:3%}.hero-window{top:22%;height:57%}.tips-copy p{margin:9px 0;line-height:1.6}.rsvp-card{top:7%;padding-top:18px}.page-info .info-card{bottom:9%;padding:15px}.name-card{bottom:7%}}

/* Original theme 4879 cartoon layers */
.page .character-art,.decoration-layer img,.letter-banner img{height:auto;object-fit:contain}
.page-cover{background:linear-gradient(180deg,#fffefb 0%,#fdfaf3 72%,#f7f0e5 100%)}
.page-cover .cover-top{top:11.5%;z-index:5}
.page-cover .cover-top h1{font-size:28px}
.page-cover .scribble{top:24%;z-index:5;font-size:45px}
.cover-confetti{position:absolute;z-index:2;left:-2%;right:-2%;top:-1%;pointer-events:none}
.cover-confetti img{width:104%;opacity:.98}
.cover-characters{position:absolute;z-index:10;left:1%;right:1%;top:22%;height:30%;pointer-events:none}
.character-slot{position:absolute;bottom:0;display:flex;align-items:flex-end;justify-content:center}
.character-slot img{width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.08))}
.slot-nene{left:-8%;width:22%;height:77%;z-index:4}
.slot-masao{left:5%;width:22%;height:81%;z-index:5}
.slot-shinchan{left:8%;width:46%;height:130%;z-index:12}
.slot-dog{left:32%;width:24%;height:80%;z-index:15;bottom:-6%}
.slot-bride{left:36%;width:46%;height:130%;z-index:11}
.slot-kazama{left:72%;width:20%;height:65%;z-index:6}
.slot-bochan{right:-2%;width:16%;height:100%;z-index:5}
.page-cover .name-card{left:10%;right:10%;top:56%;bottom:auto;z-index:6;padding:10px;background:#fffaf1db;border-radius:12px;box-shadow:0 3px 18px #0000000c}
.cover-feast{position:absolute;top:70%;left:10%;right:10%;display:flex;justify-content:center;gap:8px;z-index:5}
.cover-feast span{padding:5px 8px;border:1px solid #2d2924;border-radius:999px;background:#fff9;font-size:10px;letter-spacing:.06em}
.page-cover .tiny-note{bottom:7%}
.side-character{position:absolute;z-index:8;pointer-events:none}
.action-mask{right:-1%;top:47%;width:27%;transform:rotate(7deg)}
.shinchan-pink{right:-3%;bottom:7%;width:21%;z-index:5}
.page-thanks .thanks-copy{top:60%}
.page-thanks .thanks-copy p{margin-bottom:7px}
.page-thanks .see-you{bottom:16%;font-size:21px}
.page-thanks .see-you small{font-size:15px}
.letter-banner{position:absolute;left:0;right:0;bottom:2.5%;z-index:7;pointer-events:none}
.letter-banner img{width:100%}
.shiro-stars{right:2%;top:32%;width:19%;z-index:7}
.fan-cameo,.party-corner{position:absolute;pointer-events:none}
.cover-fan-cameo{right:3%;top:69%;width:15%;z-index:7;transform:rotate(5deg)}
.party-thanks{right:-30%;top:54%;width:44%;z-index:1;opacity:.76;transform:rotate(-7deg)}
.party-thanks img{width:100%;height:auto;object-fit:contain}
.page-thanks .thanks-copy,.page-thanks .see-you{z-index:3}
@media(max-height:760px){.page-cover .cover-top{top:8%}.cover-characters{top:20%;height:32%}.page-cover .name-card{top:55%;bottom:auto;padding:7px 10px}.cover-feast{top:69%}.cover-fan-cameo{top:68%}}

/* ===== Layout compact overrides 2026-08-22 ===== */
/* Cover: title → characters → name card → tags */
.page-cover .cover-top{top:7%}
.page-cover .scribble{top:13%;font-size:32px}
.hero-window{display:none}
.cover-characters{top:5%;height:68%}
.page-cover .name-card{top:76%;padding:8px 10px;border-radius:12px}
.head-decorations{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:20}
.head-decorations span{position:absolute;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.08);opacity:0}
.head-decorations .note{color:#5ca8ff}
.head-decorations .heart{color:#ff6b8a}
.head-decorations .star{color:#ffc84b}
.head-decorations .n1{left:18%;top:26%;font-size:18px;transform:rotate(-18deg)}
.head-decorations .n2{left:30%;top:20%;font-size:22px;transform:rotate(12deg)}
.head-decorations .n3{left:54%;top:24%;font-size:16px;transform:rotate(20deg)}
.head-decorations .h1{left:22%;top:34%;font-size:14px;transform:rotate(-8deg)}
.head-decorations .h2{left:48%;top:30%;font-size:18px;transform:rotate(5deg)}
.head-decorations .h3{left:64%;top:36%;font-size:13px;transform:rotate(-12deg)}
.head-decorations .s1{left:40%;top:22%;font-size:12px}
.head-decorations .s2{left:72%;top:28%;font-size:15px;transform:rotate(15deg)}
.page-cover .name-card h2{font-size:20px}
.page-cover .name-card h2.art-names{font-family:"STXingkai","华文行楷","STKaiti","华文楷体","KaiTi","楷体","LiSu","隶书",cursive;font-size:24px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;gap:2px}
.heart-burst-zone{position:relative;display:inline-flex;align-items:center;justify-content:center}
.burst-particles{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none}
.burst-particle{position:absolute;left:0;top:0;font-size:9px;color:#e63946;opacity:0;white-space:nowrap;will-change:transform,opacity}
.burst-particle.star{color:#ffb340;font-size:8px}
.page-cover .name-card i{font-size:16px}
.page-cover .name-card .double-happiness{color:#e63946;font-size:16px;letter-spacing:.1em}
.page-cover .name-card .heart-sep{color:#e63946;font-size:18px;font-style:normal}
.cover-feast{top:88%;gap:6px}
.cover-feast span{font-size:9px;padding:4px 8px}
.cover-fan-cameo{width:9%;top:87%;right:3%}
.page-cover .tiny-note{bottom:5%}

/* Notice: smaller photo, better spacing */
.page-notice .eyebrow{top:6%}
.photo-main{left:7%;top:15%;width:58%;height:48%;padding:7px 7px 22px}
.date-stamp{right:5%;top:17%;width:30%;padding:10px 7px}
.date-stamp b{font-size:13px;margin-bottom:9px}
.date-stamp span{font-size:11px;line-height:1.8}
.contact-row{bottom:16%}
.contact-row a{font-size:10px}
.english{bottom:26%}

/* Hi: smaller portrait, clearer text */
.hi{font-size:56px;top:7%}
.vertical-copy{top:17%;font-size:18px;line-height:1.9;width:34%}
.subcopy{bottom:22%;font-size:8px}
.portrait{right:2%;top:13%;width:55%;height:58%;border-radius:40% 0 0 0/18% 0 0 0}
.story{left:7%;right:7%;bottom:8%;font-size:11px;line-height:1.75;text-align:center;background:#fff9;padding:9px 12px;border-radius:10px}

/* Love: smaller photo, more breathable copy */
.photo-crop{right:5%;top:8%;width:48%;height:50%;border-radius:18px}
.love-copy{left:5%;top:18%;width:42%;font-size:12px;line-height:1.85;background:#fff9;padding:11px 13px;border-radius:12px}
.love-copy p{margin:0 0 16px}
.quote-mark{font-size:80px;top:3%}
.vertical-title{bottom:7%}

/* Global: smaller cartoon stickers */
.action-mask{right:1%;top:42%;width:28%}
.shinchan-pink{left:-1%;bottom:5%;width:18%}
.shiro-stars{right:3%;top:35%;width:14%}
.sticker-love{right:3%;bottom:5%;width:21%;z-index:7}
.sticker-zhu{z-index:7}
.sticker-zhu img{border-radius:8px;border:3px solid #fff;background:#fff;box-shadow:0 5px 14px rgba(0,0,0,.2)}
.sticker-zhu.za{left:22%;bottom:6%;width:15%}
.sticker-zhu.zb{right:9%;top:59%;width:14%}
.sticker-zhu.zc{left:6%;top:57%;width:13%}
.sticker-tips{right:2%;bottom:3%;width:12%;z-index:7}
.sticker-rsvp{display:none}
.party-thanks{right:-12%;top:52%;width:30%}

/* Compact small-screen tweaks */
@media(max-height:760px){
  .cover-characters{top:4%;height:70%}
  .page-cover .name-card{top:78%}
  .cover-feast{top:90%}
  .cover-fan-cameo{top:89%}
  .photo-main{height:45%}
  .date-stamp{top:15%}
  .portrait{height:55%;top:12%}
  .story{font-size:10px;padding:7px 10px}
  .photo-crop{height:48%}
  .love-copy{top:18%;font-size:11px}
}

/* ===== Effects & stickers 2026-08-22 ===== */
/* Ken-burns breathing on all wedding photos */
img[data-photo]{animation:kenBurns 18s ease-in-out infinite alternate}
/* Light sweep on framed photos */
.photo-main::after{content:"";position:absolute;top:0;bottom:0;left:0;width:38%;background:linear-gradient(100deg,transparent 20%,#ffffff7d 50%,transparent 80%);transform:translateX(-160%) skewX(-14deg);animation:shineSweep 6.5s ease-in-out 1.2s infinite;pointer-events:none}
/* Global floating layer: hearts / petals / sparkles */
.global-effects{position:absolute;inset:0;z-index:22;pointer-events:none;overflow:hidden}
.fx{position:absolute;opacity:0;font-style:normal;will-change:transform,opacity}
.fx-heart{bottom:-4%;color:#f2a0bd;font-size:15px;animation:fxRise 12s linear infinite}
.fx-petal{top:-6%;color:#f5b7ca;font-size:14px;animation:fxFall 14s linear infinite}
.fx-spark{color:#e8c36a;font-size:13px;animation:fxSparkle 3.6s ease-in-out infinite}
/* Small cartoon stickers on inner pages */
/* ===== Gallery page: immersive scroll showcase ===== */
.page-gallery{background:linear-gradient(180deg,#f9f7f2 0%,#f2eee8 100%);overflow:hidden}
.gallery-scroll{position:absolute;inset:0;display:flex;align-items:center;gap:8vw;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:0 12vw}
.gallery-scroll::-webkit-scrollbar{display:none}
.gallery-parallax{position:absolute;left:0;top:0;height:100%;width:260vw;pointer-events:none;z-index:0;opacity:.24}
.gallery-parallax img{width:100%;height:100%;object-fit:cover;transform:translate3d(calc(var(--px,0)* -26vw),0,0);will-change:transform}
.gallery-section{position:relative;z-index:1;flex:0 0 auto;height:78vh;display:flex;align-items:center;justify-content:center}
.gallery-intro{width:70vw}
.gallery-header{text-align:center}
.gallery-header p{font-size:9px;letter-spacing:.3em;color:#777;margin:0 0 8px}
.gallery-header h2{font-size:24px;font-weight:400;letter-spacing:.25em;margin:0;color:var(--ink)}
.stack-section{width:86vw;flex-direction:column;gap:12px}
.stack-hint{font-size:10px;letter-spacing:.2em;color:#999}
.stack-cards{position:relative;width:64vw;height:46vh;max-width:280px;max-height:380px}
.stack-card{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:14px;overflow:hidden;background:#fff;padding:7px 7px 28px;box-shadow:0 10px 28px rgba(0,0,0,.12);transform:translate3d(calc(var(--px,0)*var(--tx) + var(--bx,0px)),calc(var(--px,0)*var(--ty) + var(--by,0px)),0) rotate(calc(var(--r)*var(--px,0) + var(--br,0deg)));transition:transform .12s linear;will-change:transform}
.stack-card img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.card-a{--tx:42vw;--ty:-6vh;--r:-6deg;--bx:30px;--by:-12px;--br:-3deg;z-index:3}
.card-b{--tx:0;--ty:0;--r:0deg;--bx:0px;--by:0px;--br:0deg;z-index:2}
.card-c{--tx:-36vw;--ty:7vh;--r:8deg;--bx:-26px;--by:14px;--br:4deg;z-index:1}
.reveal-section{width:86vw}
.reveal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}
.reveal-item{opacity:0;transform:translateY(40px) scale(.96);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.25,1);border-radius:12px;overflow:hidden;background:#fff;padding:5px 5px 22px;box-shadow:0 6px 18px rgba(0,0,0,.1)}
.reveal-item.revealed{opacity:1;transform:none}
.reveal-item:nth-child(2){transition-delay:.12s}
.reveal-item:nth-child(3){transition-delay:.24s}
.reveal-item:nth-child(4){transition-delay:.36s}
.reveal-item img{width:100%;height:22vh;object-fit:cover;border-radius:8px}
.marquee-section{width:92vw;flex-direction:column;gap:18px;padding-right:8vw}
.marquee-title{font-size:11px;letter-spacing:.25em;color:#888;margin:0;text-align:center}
.marquee-track{position:relative;width:100%;overflow:hidden;border-radius:14px}
.marquee-group{display:flex;gap:10px;animation:marqueeX 22s linear infinite;will-change:transform}
.marquee-group img{flex:0 0 auto;width:38vw;height:26vh;object-fit:cover;border-radius:10px;max-width:180px;max-height:240px}
@keyframes marqueeX{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(-50%,0,0)}}

@media(max-height:760px){
  .gallery-section{height:74vh}
  .gallery-header h2{font-size:21px}
  .stack-cards{height:44vh}
  .reveal-item img{height:20vh}
  .marquee-group img{height:24vh}
}

