@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,figure{margin:0}img,svg{max-width:100%;display:block}button,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}}@layer base{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#26324b;font-synthesis:none;text-rendering:optimizelegibility;--coral:#ef6544;--coral-dark:#c94431;--orange:#f6a545;--baby-blue:#cfeaff;--blue:#74bce9;--blue-dark:#356f99;--cream:#fff8ed;--paper:#fffdf8;--ink:#26324b;--night:#24324c;--yellow:#ffd66b;--shadow:0 24px 70px #2d3a5124;--serif:"Songti TC", "Noto Serif TC", "PMingLiU", Georgia, serif;--hand:"Klee One", "Klee", "Hannotate TC", "DFKai-SB", cursive;background:#fff8ed;font-family:PingFang TC,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}body{background:radial-gradient(circle at 8% 12%, #ffd66b40, transparent 23rem), var(--cream);min-width:320px;min-height:100vh;overflow-x:hidden}body.dialog-open{overflow:hidden}::selection{color:#fff;background:var(--coral)}button{cursor:pointer;border:0}a{color:inherit}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}}@layer components{.skip-link{z-index:1000;color:#fff;background:var(--night);border-radius:999px;padding:.75rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.section-shell{width:min(1120px,100% - 40px);margin-inline:auto}.eyebrow{color:var(--coral);letter-spacing:.18em;margin-bottom:.9rem;font-size:.72rem;font-weight:800}.chapter-nav{z-index:30;top:50%;right:max(18px, env(safe-area-inset-right));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#24324c2e;border:1px solid #ffffff73;border-radius:999px;gap:.7rem;padding:.75rem .55rem;display:grid;position:fixed;transform:translateY(-50%);box-shadow:0 10px 35px #0000001a}.chapter-dot{background:#fff3;border:1px solid #fff;border-radius:50%;width:7px;height:7px;transition:all .22s}.chapter-dot.is-active{background:#fff;transform:scale(1.15);box-shadow:0 0 0 4px #fff3}.scroll-progress{z-index:40;background:#ffffff38;width:100%;height:3px;position:fixed;top:0;left:0}.scroll-progress span{background:linear-gradient(90deg, var(--yellow), var(--coral), var(--blue));transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.confetti-layer{z-index:100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{width:10px;height:18px;animation:confetti-fall var(--fall-duration,2.8s) cubic-bezier(.2, .7, .3, 1) forwards;border-radius:2px;position:absolute;top:-24px}.hero{color:#fff;isolation:isolate;min-height:100svh;display:grid;position:relative;overflow:hidden}.hero-media,.hero-media img,.hero-shade{width:100%;height:100%;position:absolute;inset:0}.hero-media{z-index:-3}.hero-media img{object-fit:cover;object-position:48% center;transition:scale 1.8s cubic-bezier(.2,.75,.2,1);scale:1.035}.hero.is-ready .hero-media img{scale:1}.hero-shade{z-index:-2;background:linear-gradient(90deg,#161f2ea6 0%,#161f2e40 55%,#161f2e14 100%),linear-gradient(#1420321f 0%,#0000 55%,#131d2da8 100%)}.hero:after{z-index:-1;content:"";border:1px solid #ffffff40;border-radius:50%;width:42vw;height:42vw;position:absolute;bottom:-12vw;right:-8vw;box-shadow:0 0 0 5vw #ffffff0a,0 0 0 10vw #ffffff08}.hero-content{align-self:center;width:min(1120px,100% - 40px);margin:auto;padding-block:5rem}.hero-kicker{letter-spacing:.18em;align-items:center;gap:.7rem;margin-bottom:4vh;font-size:.7rem;font-weight:750;display:flex}.hero-kicker-star{color:var(--yellow)}.leo-mark{width:142px;margin:0 0 .8rem -.3rem;overflow:visible}.leo-lines path{fill:none;stroke:#ffffffa6;stroke-dasharray:4 4;stroke-width:1.2px}.leo-stars circle{fill:var(--yellow);filter:drop-shadow(0 0 5px #ffd66bcc)}.hero-overline{font-family:var(--hand);letter-spacing:.12em;margin-bottom:.55rem;font-size:clamp(1rem,2vw,1.35rem)}.hero h1{max-width:780px;font-family:var(--serif);letter-spacing:-.08em;text-shadow:0 20px 45px #0f192647;font-size:clamp(4rem,9.5vw,8.8rem);font-weight:650;line-height:.86}.hero h1 em{color:var(--yellow);font-style:normal}.hero-subtitle{font-family:var(--hand);margin-top:1.55rem;font-size:clamp(1rem,2vw,1.25rem)}.hero-button{color:var(--ink);background:#fffdf8eb;border:1px solid #ffffffb3;border-radius:999px;align-items:center;gap:1.8rem;margin-top:2.5rem;padding:.95rem 1.1rem .95rem 1.35rem;font-size:.88rem;font-weight:750;transition:transform .18s,background .18s;display:inline-flex;box-shadow:0 14px 45px #0000002e}.hero-button span:last-child{color:#fff;background:var(--coral);border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid}.hero-button:hover{background:#fff;transform:translateY(-3px)}.hero-scroll-hint{letter-spacing:.16em;text-transform:uppercase;padding-right:4.5rem;font-size:.68rem;position:absolute;bottom:1.5rem;right:2rem}.hero-scroll-hint:after{content:"";background:#ffffffb3;width:3.5rem;height:1px;position:absolute;top:50%;right:0}.hero-stars span{background:#fff;border-radius:50%;width:5px;height:5px;animation:2.8s ease-in-out infinite alternate twinkle;position:absolute;box-shadow:0 0 14px #fff}.hero-stars span:first-child{top:12%;left:12%}.hero-stars span:nth-child(2){animation-delay:.8s;top:18%;right:22%}.hero-stars span:nth-child(3){animation-delay:1.4s;top:35%;right:8%}.hero-stars span:nth-child(4){animation-delay:.35s;top:10%;right:43%}.hero-stars span:nth-child(5){animation-delay:1.8s;bottom:22%;right:30%}.opening-note{padding-block:clamp(6rem,12vw,10rem);position:relative}.opening-note:before{aspect-ratio:1;background:var(--baby-blue);content:"";opacity:.55;filter:blur(1px);border-radius:50%;width:26vw;position:absolute;top:12%;left:-8vw}.opening-card{background:linear-gradient(#45759712 1px, transparent 1px) 0 2.6rem / 100% 2.65rem, var(--paper);width:min(760px,100%);box-shadow:var(--shadow);border:1px solid #26324b17;margin-inline:auto;padding:clamp(2.2rem,6vw,5.4rem);position:relative;rotate:-1deg}.opening-card:before{content:"";background:#ffd66bb8;width:120px;height:35px;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.opening-card h2{max-width:650px;font-family:var(--serif);letter-spacing:-.055em;margin-bottom:2rem;font-size:clamp(2.35rem,6vw,4.6rem);font-weight:650;line-height:1.08}.opening-copy{gap:1rem;max-width:600px;font-size:clamp(1rem,2vw,1.15rem);line-height:2;display:grid}.signature{color:var(--coral);font-family:var(--hand);text-align:right;margin-top:2.5rem;display:block}.note-sticker{z-index:2;place-items:center;font-weight:800;display:grid;position:absolute;box-shadow:0 15px 35px #26324b1f}.note-sticker--heart{color:#fff;background:var(--coral);border-radius:20px;width:66px;height:66px;top:22%;right:2%;rotate:9deg}.note-sticker--star{width:56px;height:56px;color:var(--ink);background:var(--yellow);border-radius:50%;bottom:18%;left:4%;rotate:-12deg}.story-section,.her-section{padding-block:clamp(5rem,10vw,9rem)}.section-heading{max-width:720px;margin-bottom:clamp(3rem,8vw,6rem)}.section-heading h2,.wish-copy h2{font-family:var(--serif);letter-spacing:-.07em;font-size:clamp(2.6rem,7vw,5.7rem);font-weight:650;line-height:1.03}.section-heading>p:last-child{color:#26324bb3;max-width:530px;margin-top:1.4rem;font-size:1rem;line-height:1.8}.memory-grid{grid-template-columns:repeat(12,1fr);align-items:start;gap:clamp(2.8rem,7vw,6rem) clamp(1.5rem,5vw,4rem);display:grid}.memory-card{background:var(--paper);box-shadow:var(--shadow);border:1px solid #26324b17;padding:.8rem .8rem 1.4rem;transition:transform .28s,box-shadow .28s;position:relative}.memory-card:hover{z-index:2;transform:translateY(-8px)rotate(0);box-shadow:0 30px 85px #2d3a5138}.memory-card picture,.memory-card img{width:100%}.memory-card img{object-fit:cover}.memory-card--landscape img{aspect-ratio:4/3}.memory-card--portrait img{aspect-ratio:3/4}.memory-card--tilt-right{rotate:2.2deg}.memory-card--tilt-left{rotate:-2.4deg}.memory-grid--home .memory-card:first-child{grid-column:1/span 7}.memory-grid--home .memory-card:nth-child(2){grid-column:9/span 4;margin-top:8rem}.memory-grid--home .memory-card:nth-child(3){grid-column:2/span 4}.memory-grid--home .memory-card:nth-child(4){grid-column:7/span 5;margin-top:7rem}.memory-caption{padding:1.25rem .45rem .15rem;position:relative}.memory-caption h3{font-family:var(--serif);margin-bottom:.55rem;font-size:clamp(1.3rem,2.4vw,1.8rem);line-height:1.2}.memory-caption p{color:#26324bad;font-size:.88rem;line-height:1.75}.memory-number{aspect-ratio:1;color:#fff;border:4px solid var(--paper);background:var(--coral);border-radius:50%;place-items:center;width:2.9rem;font-size:.7rem;font-weight:800;display:grid;position:absolute;top:-1.35rem;right:.3rem}.road-section{color:#fff;background:radial-gradient(circle at 90% 10%, #74bce947, transparent 28rem), var(--night);padding:7rem 0 9rem;position:relative;overflow:hidden}.road-ribbon{width:106%;color:var(--night);background:var(--yellow);letter-spacing:.16em;justify-content:space-around;padding:.55rem;font-size:.7rem;font-weight:850;display:flex;position:absolute;top:3rem;left:-3%;rotate:-1deg}.section-heading--light h2{color:#fff}.section-heading--light>p:last-child{color:#ffffffad}.road-track{background:repeating-linear-gradient(90deg,#ffffff4d 0 30px,#0000 30px 55px);width:100%;height:2px;position:absolute;top:28%;left:0}.road-track span{background:var(--coral);border-radius:50%;width:14px;height:14px;position:absolute;top:-6px;left:8%;box-shadow:0 0 0 5px #ef654433}.memory-grid--road .memory-card{color:var(--ink)}.memory-grid--road .memory-card:first-child{grid-column:1/span 5}.memory-grid--road .memory-card:nth-child(2){grid-column:8/span 4;margin-top:7rem}.memory-grid--road .memory-card:nth-child(3){grid-column:2/span 4;margin-top:3rem}.memory-grid--road .memory-card:nth-child(4){grid-column:7/span 5;margin-top:10rem}.classroom-pair{grid-template-columns:1fr 1fr;gap:clamp(1rem,4vw,3rem);margin-bottom:clamp(5rem,11vw,9rem);display:grid;position:relative}.classroom-pair:before{z-index:-1;background:var(--baby-blue);content:"";border-radius:50%;width:45%;height:80%;position:absolute;top:-2rem;right:-4rem}.classroom-pair figure{box-shadow:var(--shadow);background:#fff;padding:.65rem .65rem 1.25rem}.classroom-pair figure:first-child{rotate:-1.5deg}.classroom-pair figure:last-child{margin-top:5rem;rotate:1.8deg}.classroom-pair img{aspect-ratio:4/3;object-fit:cover;width:100%}.classroom-pair figcaption{font-family:var(--hand);text-align:center;padding:1rem .45rem 0;font-size:clamp(1rem,2vw,1.3rem)}.joy-layout{grid-template-columns:.7fr 1.3fr;align-items:center;gap:clamp(2rem,6vw,5rem);display:grid}.memory-card--balloon{rotate:-2deg}.joy-card{position:relative}.joy-card img{object-fit:cover;width:100%;min-height:480px;box-shadow:var(--shadow);border-radius:48% 48% 2.2rem 2.2rem}.joy-quote{color:#fff;background:var(--coral);border-radius:1.6rem 1.6rem .4rem;width:min(360px,85%);padding:1.6rem 1.8rem;position:absolute;bottom:-2.5rem;right:-1.5rem;box-shadow:0 20px 50px #c9443140}.joy-quote>span{color:var(--yellow);font-family:Georgia,serif;font-size:5rem;line-height:1;position:absolute;top:-1.5rem;left:1rem}.joy-quote p{font-family:var(--serif);font-size:clamp(1.15rem,2.3vw,1.6rem);font-weight:700;line-height:1.5;position:relative}.letter-section{color:#fff;background:radial-gradient(circle at 15% 10%,#ef65443d,#0000 28rem),radial-gradient(circle at 90% 90%,#74bce93d,#0000 30rem),#1d2940;padding-block:clamp(6rem,11vw,10rem);position:relative;overflow:hidden}.letter-sky span{background:var(--yellow);width:5px;height:5px;box-shadow:0 0 12px var(--yellow);border-radius:50%;position:absolute}.letter-sky span:first-child{top:12%;left:8%}.letter-sky span:nth-child(2){top:8%;left:43%}.letter-sky span:nth-child(3){top:22%;right:12%}.letter-sky span:nth-child(4){bottom:18%;left:12%}.letter-sky span:nth-child(5){bottom:10%;right:27%}.letter-shell{grid-template-columns:1.12fr .88fr;align-items:start;gap:clamp(2.5rem,7vw,6rem);display:grid}.letter-shell>.section-heading{grid-column:1/-1;margin-bottom:0}.love-letter{color:var(--ink);background:linear-gradient(#45759712 1px, transparent 1px) 0 3.2rem / 100% 3.25rem, var(--paper);padding:clamp(2rem,5vw,4.2rem);position:relative;rotate:-1deg;box-shadow:0 35px 80px #00000047}.love-letter-tape{background:#cfeaffcc;width:120px;height:38px;position:absolute;top:-18px;left:50%;transform:translate(-50%)rotate(2deg)}.love-letter p{font-family:var(--hand);margin-bottom:1.2rem;font-size:clamp(1rem,2vw,1.16rem);line-height:2.05}.love-letter .love-letter-ending{color:var(--coral-dark);font-family:var(--serif);margin:2rem 0 0;font-size:clamp(1.2rem,2.4vw,1.55rem);font-weight:700;line-height:1.8}.disney-card{color:var(--ink);background:#fff;align-self:start;padding:.75rem .75rem 1.5rem;position:sticky;top:2rem;rotate:2deg;box-shadow:0 30px 80px #00000042}.disney-card img{aspect-ratio:3/4;object-fit:cover;width:100%}.disney-card figcaption{gap:.45rem;padding:1.25rem .45rem 0;display:grid}.disney-card figcaption span{color:var(--coral);letter-spacing:.16em;font-size:.65rem;font-weight:850}.disney-card figcaption strong{font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.45}.wish-section{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2.5rem,8vw,7rem);padding-block:clamp(6rem,12vw,10rem);display:grid}.wish-copy h2{font-size:clamp(2.6rem,6vw,5rem)}.wish-message{color:#26324bad;opacity:0;max-width:500px;margin-top:1.6rem;line-height:1.85;transition:all .5s .2s;transform:translateY(12px)}.wish-section.wish-made .wish-message{opacity:1;transform:translateY(0)}.cake-stage{justify-items:center;display:grid}.cake{width:min(340px,78vw);height:330px;position:relative}.cake-layer,.cake-top,.cake-plate{position:absolute;left:50%;transform:translate(-50%)}.cake-layer{color:#fff;font-family:var(--serif);place-items:center;font-size:3.2rem;font-weight:800;display:grid;box-shadow:inset 0 -12px #0000000f}.cake-layer--top{background:var(--coral);border-radius:22px 22px 10px 10px;width:210px;height:90px;bottom:120px}.cake-layer--bottom{background:radial-gradient(circle at 16px 18px, var(--yellow) 0 5px, transparent 6px) 0 0 / 38px 38px, var(--blue);border-radius:18px 18px 26px 26px;width:286px;height:92px;bottom:42px}.cake-top{z-index:2;background:#fff1d6;border-radius:50%;width:210px;height:32px;bottom:196px}.cake-top span{background:#fff1d6;border-radius:0 0 18px 18px;width:32px;height:28px;position:absolute;top:17px}.cake-top span:first-child{left:25px}.cake-top span:nth-child(2){height:38px;left:90px}.cake-top span:nth-child(3){right:25px}.cake-plate{background:#e9cfc0;border-radius:50%;width:330px;height:32px;bottom:26px;box-shadow:0 16px 25px #26324b1f}.candle{z-index:3;background:repeating-linear-gradient(45deg, white 0 7px, var(--coral) 7px 14px);border-radius:6px 6px 2px 2px;width:14px;height:64px;position:absolute;bottom:220px}.candle--one{left:calc(50% - 34px)}.candle--two{left:calc(50% + 24px)}.flame{background:linear-gradient(#fff4a7, var(--orange));transform-origin:bottom;border-radius:50% 50% 46% 54%/65% 65% 35% 35%;width:17px;height:27px;transition:all .25s;animation:.9s ease-in-out infinite alternate flame-dance;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)rotate(4deg);box-shadow:0 0 18px #f6a545cc}.wish-section.wish-made .flame{opacity:0;scale:.2}.wish-button{color:#fff;background:var(--coral);border-radius:999px;padding:1rem 1.5rem;font-weight:750;transition:all .18s;box-shadow:0 14px 35px #ef65443d}.wish-button:hover{background:var(--coral-dark);transform:translateY(-3px)}.wish-button:disabled{cursor:default;background:var(--blue-dark);transform:none}.coupon-section{background:radial-gradient(circle at 8% 16%, #ffffffc2, transparent 24rem), var(--baby-blue);padding:8rem 0 9rem;position:relative}.coupon-wave{background:var(--cream);clip-path:polygon(0 0,100% 0,100% 22%,92% 56%,82% 28%,70% 62%,58% 24%,46% 58%,34% 28%,22% 64%,10% 26%,0 56%);width:100%;height:56px;position:absolute;top:-1px;left:0}.sync-status{color:var(--blue-dark);background:#ffffff94;border-radius:999px;align-items:center;gap:.55rem;margin-top:1.2rem;padding:.55rem .85rem;font-size:.75rem;font-weight:700;display:inline-flex}.sync-dot{background:var(--orange);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #f6a5452e}.sync-status.is-ready .sync-dot{background:#48a86b;box-shadow:0 0 0 4px #48a86b2e}.sync-status.is-error .sync-dot{background:var(--coral);box-shadow:0 0 0 4px #ef65442e}.coupon-grid{gap:1.5rem;display:grid}.coupon-card{--ticket-color:var(--coral);--ticket-text:white;min-height:270px;color:var(--ticket-text);background:var(--ticket-color);border-radius:1.6rem;grid-template-columns:150px 1fr;transition:transform .24s,box-shadow .24s;display:grid;position:relative;overflow:hidden;box-shadow:0 22px 60px #356f9929}.coupon-card:before,.coupon-card:after{z-index:2;background:var(--baby-blue);content:"";border-radius:50%;width:34px;height:34px;position:absolute;top:50%}.coupon-card:before{left:-17px}.coupon-card:after{right:-17px}.coupon-card:hover{transform:translateY(-7px);box-shadow:0 30px 75px #356f993d}.coupon-card--blue{--ticket-color:#4c97c5}.coupon-card--cream{--ticket-color:#fff5dd;--ticket-text:var(--ink)}.coupon-stub{border-right:2px dashed #fff6;align-content:center;justify-items:center;gap:1.25rem;display:grid;position:relative}.coupon-card--cream .coupon-stub{border-color:#26324b2e}.coupon-stub>span{letter-spacing:.2em;font-size:.72rem;font-weight:850}.coupon-stub svg{fill:#ffffffe0;stroke:none;width:72px}.coupon-card--cream .coupon-stub svg{fill:var(--coral)}.coupon-eye{fill:#fff}.coupon-smile,.coupon-arm{fill:none;stroke:#fff;stroke-linecap:round;stroke-width:3px}.coupon-body{grid-template-rows:auto auto 1fr auto;padding:clamp(1.6rem,4vw,2.6rem);display:grid}.coupon-label{letter-spacing:.16em;opacity:.75;margin-bottom:.65rem;font-size:.66rem;font-weight:850}.coupon-body h3{font-family:var(--serif);letter-spacing:-.055em;margin-bottom:.85rem;font-size:clamp(2rem,4.5vw,3.5rem);line-height:1}.coupon-body>p:not(.coupon-label){opacity:.82;max-width:650px;font-size:.9rem;line-height:1.7}.coupon-footer{border-top:1px solid #ffffff3d;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.3rem;padding-top:1rem;font-size:.8rem;display:flex}.coupon-card--cream .coupon-footer{border-color:#26324b1f}.coupon-footer strong{font-family:var(--serif);font-size:1.3rem}.coupon-footer button{color:var(--ticket-color);background:#fff;border-radius:999px;padding:.75rem 1.1rem;font-size:.78rem;font-weight:800}.coupon-card--cream .coupon-footer button{color:#fff;background:var(--coral)}.coupon-footer button:disabled{cursor:not-allowed;opacity:.55}.site-footer{padding:5rem 1.5rem max(4rem, env(safe-area-inset-bottom));color:#fff;background:var(--night);text-align:center;justify-items:center;display:grid}.footer-lion{width:95px;margin-bottom:1.2rem}.lion-mane{fill:var(--coral)}.lion-face{fill:#ffd68f}.lion-ear,.lion-smile{fill:none;stroke:var(--ink);stroke-linecap:round;stroke-width:3px}.lion-eye,.lion-nose{fill:var(--ink)}.site-footer p{font-family:var(--serif);margin-bottom:.4rem;font-size:clamp(1.8rem,5vw,3rem);font-weight:700}.site-footer span{color:#ffffff8c;letter-spacing:.16em;font-size:.65rem;font-weight:750}.site-footer a{color:var(--yellow);text-underline-offset:.35rem;margin-top:2.2rem;font-size:.78rem}.coupon-dialog{width:min(520px,100% - 32px);max-height:min(760px,100dvh - 32px);color:var(--ink);background:var(--paper);border:0;border-radius:1.8rem;padding:0;overflow:auto;box-shadow:0 35px 100px #0c162566}.coupon-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#182234b8}.dialog-close{z-index:2;width:2.4rem;height:2.4rem;color:var(--ink);background:var(--baby-blue);border-radius:50%;place-items:center;font-size:1.45rem;line-height:1;display:grid;position:absolute;top:1rem;right:1rem}.coupon-form,.redeem-success{padding:clamp(2rem,7vw,3.5rem)}.coupon-dialog-label{color:var(--coral);letter-spacing:.17em;margin-bottom:.7rem;font-size:.64rem;font-weight:850}.coupon-form h2{font-family:var(--serif);letter-spacing:-.055em;margin-bottom:.75rem;font-size:clamp(2rem,8vw,3.3rem)}#dialog-description{color:#26324bad;margin-bottom:1.6rem;line-height:1.7}.form-field{gap:.55rem;margin-top:1rem;font-size:.82rem;font-weight:700;display:grid}.form-field select,.form-field textarea{width:100%;color:var(--ink);resize:vertical;background:#fff;border:1px solid #26324b24;border-radius:.9rem;outline:none;padding:.9rem 1rem}.form-field select:focus,.form-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #74bce92e}.dialog-error{color:var(--coral-dark);background:#ef65441a;border-radius:.8rem;margin-top:1rem;padding:.8rem 1rem;font-size:.8rem;line-height:1.5}.coupon-submit,.redeem-success button{color:#fff;background:var(--coral);border-radius:999px;width:100%;margin-top:1.4rem;padding:1rem 1.3rem;font-weight:800}.coupon-submit:disabled{cursor:wait;opacity:.65}.dialog-hint{color:#26324b7a;text-align:center;margin-top:.8rem;font-size:.7rem;line-height:1.5}.redeem-success{text-align:center;align-content:center;justify-items:center;min-height:430px;display:grid}.success-seal{aspect-ratio:1;color:#fff;background:var(--coral);border-radius:50%;place-items:center;width:76px;margin-bottom:1.3rem;font-size:2rem;display:grid;box-shadow:0 0 0 10px #ef65441f}.redeem-success p{font-family:var(--serif);font-size:2.4rem;font-weight:750}.redeem-success strong{color:var(--blue-dark);letter-spacing:.12em;margin:.5rem 0;font-size:.82rem}.redeem-success span{color:#26324b99;font-family:var(--hand)}.reveal-item{opacity:0;transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1);transform:translateY(38px)}.reveal-item.is-visible{opacity:1;transform:translateY(0)}}@layer utilities{[hidden]{display:none!important}@keyframes twinkle{0%{opacity:.35;transform:scale(.8)}to{opacity:1;transform:scale(1.35)}}@keyframes flame-dance{0%{transform:translate(-50%)rotate(-7deg)scaleY(.96)}to{transform:translate(-50%)rotate(7deg)scaleY(1.06)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10px)rotate(0)}to{opacity:0;transform:translate3d(var(--drift,30px), 105vh, 0) rotate(var(--spin,720deg))}}}@media (max-width:760px){.chapter-nav{top:auto;right:50%;bottom:max(.8rem, env(safe-area-inset-bottom));grid-auto-flow:column;transform:translate(50%)}.hero-content{align-self:end;padding-block:7rem 7.2rem}.hero-media img{object-position:55% center}.hero-shade{background:linear-gradient(#141e2f24 0%,#141e2f3d 32%,#141e2fdb 100%)}.hero h1{font-size:clamp(3.7rem,19vw,5.8rem)}.hero-scroll-hint{display:none}.leo-mark{width:112px}.note-sticker{display:none}.opening-card{padding:3.4rem 1.55rem 2.2rem}.memory-grid{grid-template-columns:1fr;gap:3.2rem}.memory-grid--home .memory-card:nth-child(n),.memory-grid--road .memory-card:nth-child(n){grid-column:1;width:min(92%,500px);margin-top:0}.memory-grid--home .memory-card:nth-child(2n),.memory-grid--road .memory-card:nth-child(2n){justify-self:end}.road-section{padding-top:8rem}.classroom-pair{grid-template-columns:1fr}.classroom-pair figure:last-child{margin-top:0}.joy-layout,.letter-shell,.wish-section{grid-template-columns:1fr}.joy-layout{gap:5.5rem}.memory-card--balloon{width:82%}.joy-card img{min-height:380px}.joy-quote{right:-.5rem}.letter-shell>.section-heading{grid-column:auto}.disney-card{width:84%;margin:0 auto;position:relative;top:auto}.wish-copy{text-align:center}.wish-message{margin-inline:auto}.coupon-card{border-radius:1.2rem;grid-template-columns:76px 1fr;min-height:300px}.coupon-stub svg{width:48px}.coupon-body{padding:1.5rem 1.25rem}.coupon-body h3{font-size:clamp(1.7rem,8vw,2.5rem)}.coupon-footer{flex-direction:column;align-items:flex-start}.coupon-footer button{width:100%}}@media (max-width:420px){.section-shell,.hero-content{width:min(100% - 28px,1120px)}.hero-kicker{margin-bottom:1.4rem}.hero-button{justify-content:space-between;width:100%}.memory-card--balloon{width:90%}.coupon-section{padding-bottom:7rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal-item{opacity:1;transform:none}}
