:root{color-scheme:dark;--gold:#d6b780;--text:#f2e9d8;--muted:#c4beb0}*{box-sizing:border-box}body{margin:0;background:#101b20;color:var(--text);font-family:'Noto Serif TC','Songti TC','PMingLiU',serif;font-size:16px;min-height:100svh}button,textarea{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button:disabled{opacity:.55;cursor:wait}.landscape{position:fixed;inset:0;background:linear-gradient(#132329,#070e13);background-image:url('sanctuary.webp');background-position:center;background-size:cover;z-index:-4;animation:moon 14s ease-in-out infinite}.veil{position:fixed;inset:0;background:linear-gradient(180deg,rgba(3,12,18,.28),rgba(3,12,18,.1) 40%,rgba(3,10,15,.72));z-index:-3}.mist{position:fixed;inset:35% -15% -5%;background:radial-gradient(ellipse at 30% 80%,#b7cad322,transparent 45%),radial-gradient(ellipse at 80% 60%,#b7cad319,transparent 50%);filter:blur(20px);z-index:-2;animation:mist 28s ease-in-out infinite;pointer-events:none}.embers{position:fixed;inset:0;pointer-events:none;z-index:-1}.ember{position:absolute;width:3px;height:3px;border-radius:50%;background:#e9c887;box-shadow:0 0 12px #e7b55c;animation:float 14s ease-in-out infinite;opacity:0}header{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:24px}header #sound{margin-left:auto}.quiet{border:0;background:transparent;color:var(--muted);font-size:14px;letter-spacing:.12em;padding:10px;min-height:44px}.quiet:hover{color:var(--text)}#stage{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:95px 24px 48px}.view{width:100%;max-width:720px;text-align:center;animation:arrive 1.3s ease both}.eyebrow{font-family:Georgia,serif;letter-spacing:.25em;font-size:12px;color:var(--gold);text-transform:uppercase;margin:0 0 22px}h1,h2{font-weight:400;margin:0;letter-spacing:.2em}h1{font-size:clamp(56px,12vw,100px);text-indent:.2em;text-shadow:0 3px 30px #000}h2{font-size:clamp(30px,7vw,45px);line-height:1.6}p{line-height:1.9}.intro{align-self:flex-start;padding-top:12svh}.intro .line{margin:24px 0 50px;color:#e3d8c3;letter-spacing:.12em;font-size:16px}.primary{background:#16202599;border:1px solid #bfa57888;padding:15px 34px;min-height:52px;letter-spacing:.2em;box-shadow:inset 0 0 20px #d3aa5510;transition:background .4s,border-color .4s}.primary:hover{background:#8d613633;border-color:var(--gold)}.entry{min-width:155px}.threshold{margin-top:40px;color:var(--muted);font-size:14px;letter-spacing:.1em}.hall h2{font-size:28px}.doors{display:flex;justify-content:center;gap:clamp(24px,8vw,90px);margin:50px auto 28px}.door{position:relative;min-height:260px;width:180px;border:1px solid #d0ab7044;background:linear-gradient(90deg,#151a1bd9,#4f33258c,#151a1bd9);box-shadow:0 0 55px #c7893c13;display:flex;align-items:center;justify-content:center;transition:box-shadow .6s,transform .6s}.door:hover{transform:translateY(-4px);box-shadow:0 0 65px #d19b4633}.door:before{content:'';position:absolute;inset:12px;border:1px solid #d0ab7033;pointer-events:none}.door span{writing-mode:vertical-rl;font-size:30px;letter-spacing:.3em}.door small{position:absolute;bottom:24px;left:0;right:0;font-family:Georgia,serif;font-size:12px;letter-spacing:.12em;color:var(--muted)}.lantern-glow{position:absolute;top:-12px;width:42px;height:7px;background:#dd9761;border-radius:50%;box-shadow:0 0 30px 13px #d96c3433;animation:breathe 5s ease-in-out infinite}.room{max-width:550px}.room:before{content:'';position:fixed;inset:0;background:#08111688;z-index:-1}.prompt{color:var(--muted);margin:18px 0 28px}.wish-form textarea{width:100%;height:155px;resize:vertical;background:#102024b8;color:var(--text);border:0;border-bottom:1px solid #bfa57866;line-height:1.9;padding:20px;border-radius:0;font-size:18px;box-shadow:0 0 60px #0003}.wish-form textarea::placeholder{color:#a8aea3}.form-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:12px 0 30px}.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}.back{display:block;margin:26px auto 0}.ritual{min-height:310px;display:flex;align-items:center;justify-content:center;position:relative}.paper{width:95px;min-height:170px;background:linear-gradient(100deg,#c7ad82,#f0dbb3,#c7ad82);color:#56452e;padding:25px 20px;box-shadow:0 0 40px #dbb47230;writing-mode:vertical-rl;text-align:left;letter-spacing:.2em;line-height:1.8;font-size:18px;overflow:hidden}.offering .paper{animation:offer 3.8s ease-in forwards}.ritual-message{position:absolute;bottom:0;color:var(--muted);font-size:14px;letter-spacing:.1em}.blessing{font-size:clamp(23px,5vw,30px);line-height:2;letter-spacing:.1em;margin:38px 0}.seal{width:42px;height:42px;border:1px solid #a45345;color:#c58c79;display:grid;place-items:center;margin:0 auto 26px;transform:rotate(-5deg)}.tube-wrap{height:280px;position:relative;display:flex;justify-content:center;align-items:center}.tube{position:relative;width:116px;height:165px;border-radius:5px 5px 36% 36% / 4px 4px 15% 15%;background:linear-gradient(90deg,#352018,#7b4c30 30%,#a17145 45%,#68432c 70%,#352018);border:1px solid #bc996466;box-shadow:0 15px 35px #0008,inset 0 -12px 20px #20160b66;display:flex;align-items:center;justify-content:center;margin-top:50px}.tube-label{border:1px solid #bc996477;background:#563021;color:#dac08b;padding:12px 7px;writing-mode:vertical-rl;font-size:24px;letter-spacing:.2em}.sticks{position:absolute;left:10px;right:10px;top:-66px;height:90px;display:flex;gap:5px;align-items:flex-end;z-index:-1}.sticks i{display:block;width:9px;height:90px;background:linear-gradient(90deg,#947245,#e4c797,#a28450);border-radius:2px;transform:rotate(var(--r))}.drawing .tube{animation:shake 2.2s ease-in-out}.fallen-stick{position:absolute;width:12px;height:135px;background:#e0c18b;opacity:0}.drawing .fallen-stick{animation:fall 1.4s 1.9s ease forwards}.draw-status{height:28px;color:var(--muted);font-size:14px}.fortune-result{max-width:660px}.fortune-sheet{background:linear-gradient(120deg,#ead7b4,#f0e1c5);color:#44372c;padding:36px 28px;text-align:left;box-shadow:0 15px 80px #0006}.fortune-heading{text-align:center}.fortune-heading .eyebrow{color:#806642;margin-bottom:10px}.fortune-heading h2{font-size:32px}.poem{text-align:center;font-size:21px;line-height:2.1;letter-spacing:.15em;margin:24px 0 30px;white-space:pre-line}.interpretation{border-top:1px solid #7c634533;padding-top:24px}.fortune-sheet h3{font-size:16px;letter-spacing:.15em;font-weight:400;color:#806642;margin:0 0 8px}.fortune-sheet p{margin:0 0 22px}.readings{display:grid;gap:20px;grid-template-columns:1fr 1fr}.readings p{font-size:16px;margin:0;line-height:1.8}.note{font-size:12px;color:var(--muted);margin:22px 0 0}#transition{position:fixed;inset:0;z-index:10;pointer-events:none;display:flex;visibility:hidden}#transition i{width:50%;height:100%;background:#10191d;border:1px solid #99774533;transform:scaleX(0)}#transition i:first-child{transform-origin:left}#transition i:last-child{transform-origin:right}#transition.active{visibility:visible}#transition.active i{animation:gate 1.5s ease-in-out}@keyframes gate{0%{transform:scaleX(0)}40%,55%{transform:scaleX(1)}100%{transform:scaleX(0)}}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes mist{50%{transform:translateX(8%)}}@keyframes moon{50%{filter:brightness(1.08)}}@keyframes breathe{50%{opacity:.65;transform:rotate(3deg)}}@keyframes float{20%,70%{opacity:.55}100%{transform:translate(20px,-100px);opacity:0}}@keyframes offer{0%{opacity:0;transform:translateY(25px)}20%{opacity:1;transform:none}60%{opacity:1;transform:translateY(-60px) rotate(6deg)}100%{opacity:0;transform:translateY(-180px) scale(.2)}}@keyframes shake{0%,100%{transform:none}20%{transform:rotate(-4deg)}40%{transform:rotate(5deg)}55%{transform:rotate(-8deg)}70%{transform:rotate(8deg)}85%{transform:rotate(-5deg)}}@keyframes fall{0%{opacity:1;transform:translateY(-50px) rotate(0)}65%{opacity:1;transform:translate(70px,80px) rotate(38deg)}100%{opacity:0;transform:translate(70px,100px) rotate(38deg)}}@media(max-width:480px){header{padding:14px}#stage{padding:84px 20px 36px}.intro{padding-top:14svh}.intro .line{letter-spacing:.04em;font-size:15px}.door{width:132px;min-height:235px}.doors{gap:26px}.fortune-sheet{padding:28px 22px}.readings{grid-template-columns:1fr}.poem{font-size:19px;letter-spacing:.09em}.room h2{font-size:27px}.landscape{background-position:50% center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.offering .paper{opacity:.8}.drawing .fallen-stick{display:none}#transition.active{display:none}}
/* Separate exterior and interior scenes; the gate masks the scene change. */
body[data-scene="interior"] .landscape{background-image:url('hall.webp');background-position:50% 58%;animation:none}
body[data-scene="interior"] .veil{background:linear-gradient(180deg,#09090777 0%,#09090718 45%,#09090788 100%)}
body[data-scene="interior"] .mist{inset:65% -15% -10%;opacity:.45}
body[data-scene="interior"] .hall{max-width:820px;align-self:flex-start;padding-top:3svh}
body[data-scene="interior"] .hall h2{font-size:clamp(21px,4.8vw,30px);text-shadow:0 2px 20px #000;letter-spacing:.15em}
body[data-scene="interior"] .doors{margin:8svh auto 18px;gap:clamp(26px,7vw,100px)}
body[data-scene="interior"] .door{min-height:clamp(235px,34svh,340px);background:linear-gradient(180deg,#15120d33,#21170c55);border-color:#d5b27e55;box-shadow:0 0 50px #e69d2d18;max-width:40vw}
body[data-scene="interior"] .door span{text-shadow:0 2px 14px #000,0 0 20px #d79446}
body[data-scene="interior"] .door small{color:#ead8ba;text-shadow:0 2px 8px #000}
body[data-scene="interior"] .door:hover{background:#99602733;box-shadow:0 0 55px #e6b35d33}
@media(max-width:480px){body[data-scene="interior"] .hall{padding-top:2svh}body[data-scene="interior"] .doors{margin-top:9svh;gap:22px}body[data-scene="interior"] .door{width:135px;min-height:31svh}}
@media(max-width:600px){body[data-scene="interior"] .landscape{background-image:url('hall-mobile.webp');background-size:100% auto;background-repeat:no-repeat;background-position:center 48%;background-color:#110e0b}}
/* A single, quiet offering: rise, kindle from the bottom, then disperse. */
.offering{min-height:380px;overflow:visible}
.wish-vessel{width:95px;height:180px;position:relative;animation:wish-ascent 6.6s ease-in-out both}
.offering .paper{height:180px;min-height:180px;width:95px;animation:paper-burn 6.6s linear both;position:relative;z-index:1}
.wish-flame{position:absolute;z-index:2;left:50%;width:140px;height:130px;object-fit:contain;pointer-events:none;transform:translate(-50%,15%);opacity:0;animation:flame-front 6.6s linear both}
.offering-light{position:absolute;width:260px;height:320px;top:-20px;background:radial-gradient(ellipse,#f4d18a25,transparent 65%);opacity:0;animation:offering-aura 6.6s ease both;pointer-events:none}
.wish-sparks{position:absolute;inset:0;z-index:3;pointer-events:none}
.wish-sparks i{position:absolute;left:50%;bottom:20%;width:3px;height:3px;background:#f0d699;border-radius:50%;box-shadow:0 0 9px #f4c77e;opacity:0;animation:wish-spark 2.8s ease-out both;animation-delay:calc(3.2s + var(--delay))}
@keyframes wish-ascent{0%{opacity:0;transform:translateY(25px)}14%{opacity:1;transform:translateY(0)}35%{transform:translateY(-30px) rotate(2deg)}75%{opacity:1;transform:translateY(-90px) rotate(-2deg)}100%{opacity:0;transform:translateY(-125px)}}
@keyframes paper-burn{0%,33%{clip-path:inset(0 0 0 0);filter:none}40%{clip-path:inset(0 0 8% 0);filter:sepia(.15)}60%{clip-path:inset(0 0 45% 0);filter:sepia(.35)}80%{clip-path:inset(0 0 83% 0);filter:sepia(.55)}92%,100%{clip-path:inset(0 0 100% 0)}}
@keyframes flame-front{0%,30%{opacity:0;bottom:-20px;transform:translate(-50%,15%) scale(.45)}38%{opacity:.8;bottom:-4px;transform:translate(-50%,15%) scale(.75)}55%{opacity:.9;bottom:48px;transform:translate(-50%,15%) scale(.92)}72%{opacity:.8;bottom:108px;transform:translate(-50%,15%) scale(.8)}88%{opacity:.5;bottom:159px;transform:translate(-50%,15%) scale(.55)}96%,100%{opacity:0;bottom:180px;transform:translate(-50%,15%) scale(.25)}}
@keyframes wish-spark{0%{opacity:0;transform:translate(var(--x),0)}20%{opacity:.85}100%{opacity:0;transform:translate(calc(var(--x)*1.8),-220px)}}
@keyframes offering-aura{0%,25%{opacity:0}65%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.wish-flame,.wish-sparks,.offering-light{display:none}.wish-vessel,.offering .paper{animation:none!important;clip-path:none;filter:none}}
.visitor-count{font-size:14px;color:#dbcba9;letter-spacing:.08em;margin:26px 0 0;text-shadow:0 2px 8px #000}.wish-consent{display:block;text-align:left;font-size:14px;color:#e4d7bd;line-height:1.8;margin:12px 0 26px}.wish-consent input{accent-color:#cda667;width:18px;height:18px;margin:0 10px 0 0;vertical-align:middle}.wish-consent small{display:block;margin:8px 0 0 28px;font-size:12px;color:#c4beb0}#wish-save-error{font-size:14px;color:#f2c3a7;text-align:left;padding:12px;border:1px solid #bc865055}
body[data-scene="wish"] .landscape{background-image:url('wish-room.webp');background-position:center 40%;animation:none}
body[data-scene="fortune"] .landscape{background-image:url('fortune-room.webp');background-position:center 40%;animation:none}
body[data-scene="wish"] .veil,body[data-scene="fortune"] .veil{background:linear-gradient(#0b0c0c15,#070d10aa)}
body[data-scene="wish"] .room:before,body[data-scene="fortune"] .room:before{background:linear-gradient(#08111608,#08111655 50%,#08111699)}
body[data-scene="wish"] #stage,body[data-scene="fortune"] #stage{padding-top:clamp(150px,26svh,250px)}
body[data-scene="wish"] .room,body[data-scene="fortune"] .room{text-shadow:0 2px 15px #000}
body[data-scene="wish"] .wish-form textarea{background:#102024a6}
.landscape.approaching{animation:room-approach .7s ease-in forwards!important;transform-origin:center 55%}
@keyframes room-approach{from{transform:scale(1);filter:brightness(1)}to{transform:scale(1.14);filter:brightness(.75)}}
@media(prefers-reduced-motion:reduce){.landscape.approaching{animation:none!important;transform:none!important}}
@media(max-width:600px){body[data-scene="wish"] .landscape,body[data-scene="fortune"] .landscape{background-position:center top}body[data-scene="wish"] #stage,body[data-scene="fortune"] #stage{padding-top:24svh}.form-meta{gap:12px;align-items:flex-start}.form-meta span:first-child{text-align:left}}
.tube-wrap{height:300px;isolation:isolate}.tube{width:210px;height:300px;min-width:0;background:none;border:0;box-shadow:none;border-radius:0;margin-top:0;transform-origin:50% 75%}.cylinder-art{width:100%;height:100%;object-fit:contain;display:block;user-select:none;pointer-events:none;filter:drop-shadow(0 16px 16px #0006)}.fallen-stick{z-index:2;border-radius:2px;box-shadow:1px 1px 3px #0006}.fortune-category{display:inline-block;color:#796039;border:1px solid #92754466;padding:4px 16px;margin:8px 0 16px!important;letter-spacing:.18em;font-size:16px}.fortune-category[data-category="上上籤"]{color:#8b5526;border-color:#b48047}.fortune-category[data-category="警示籤"]{color:#8b493d;border-color:#a06b5c}.fortune-category[data-category="中籤"]{color:#5e665c;border-color:#7d877e}
.gratitude-entry{display:block;margin:16px auto 8px;background:#39281977;color:#f2d9a7;border:1px solid #ba946c77;padding:12px 24px;min-height:48px;letter-spacing:.12em}body[data-scene="gratitude"] .landscape{background-image:url('wish-room.webp');background-position:center top;animation:none}body[data-scene="gratitude"] .veil{background:linear-gradient(#0c090b22,#090d10cc 65%)}body[data-scene="gratitude"] #stage{padding-top:28svh}.gratitude-room{max-width:850px;text-shadow:0 2px 12px #000}.offering-table{position:relative;height:215px;width:min(100%,650px);margin:24px auto 8px;border-bottom:5px solid #543620;background:linear-gradient(180deg,#9c6d3622,#6e472c77);box-shadow:0 12px 30px #0004}.table-hint{position:absolute;inset:60px 20px;color:#dcc59c;pointer-events:none;font-size:14px}.placed-gift{position:absolute;width:100px;height:110px;transform:translate(-50%,-50%);background:none;border:0;padding:0;touch-action:none}.placed-gift img{width:100%;height:100%;object-fit:contain;pointer-events:none}.gift-tray{display:flex;gap:14px;justify-content:center;margin:18px 0 0}.gift-tray button{width:105px;min-height:115px;background:#1b171233;border:1px solid #bfa57844;padding:4px 5px 10px;touch-action:none}.gift-tray button[aria-pressed="true"]{border-color:#d6b780;background:#b98c3522}.gift-tray img{width:80px;height:85px;object-fit:contain;pointer-events:none}.gift-tray span{display:block;font-size:14px;letter-spacing:.08em}.gift-help{font-size:13px;color:#c4beb0;line-height:1.8}.drag-gift{position:fixed;width:105px;height:115px;object-fit:contain;transform:translate(-50%,-50%);z-index:30;pointer-events:none;filter:drop-shadow(0 10px 12px #0008)}.gratitude-form{max-width:540px;margin:30px auto 50px;text-align:left}.gratitude-form label{display:block;color:#e4d5b7;letter-spacing:.1em;margin:20px 0 10px}.gratitude-form input:not(.bot-field),.gratitude-form textarea{display:block;width:100%;background:#101b20bb;color:#f2e9d8;border:1px solid #bfa57855;border-radius:0;padding:14px;font:inherit;font-size:17px;line-height:1.8}.gratitude-form textarea{resize:vertical}.gratitude-form .primary{display:block;margin:22px auto 0}.public-notice{font-size:14px;color:#c4beb0}.bot-field{display:none}.card-saved{color:#f0ce89}.gratitude-wall{border-top:1px solid #bd98644d;padding-top:30px}.wall-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.wall-heading h3{font-size:24px;letter-spacing:.1em;font-weight:400}.wall-intro{font-size:14px;color:#c4beb0}.wood-rack{display:grid;grid-template-columns:repeat(4,1fr);gap:35px 18px;padding:30px 0 18px}.wood-card{position:relative;min-height:185px;padding:25px 18px 16px;border:1px solid #9b683d;border-radius:3px;background:linear-gradient(100deg,#b08b5e,#d2b284 45%,#b08a59);color:#392a1d;box-shadow:0 10px 25px #0005;text-shadow:none;display:flex;flex-direction:column;justify-content:space-between;gap:20px;text-align:left;transition:transform .5s}.wood-card:hover{transform:translateY(-5px)}.card-thread{position:absolute;height:28px;width:1px;background:#b89a69;top:-28px;left:50%}.card-inscription{font-size:16px;line-height:1.8;overflow-wrap:anywhere}.card-signature{font-size:14px;text-align:right;color:#675033}.no-cards{grid-column:1/-1;color:#cfbfa3;padding:30px}.wall-pagination{display:flex;justify-content:center;gap:16px;align-items:center;font-size:14px}.card-dialog{width:min(90vw,570px);max-height:85svh;overflow:auto;border:1px solid #ad8c60;padding:28px;background:linear-gradient(100deg,#bc9869,#e0c49a,#b28e5f);color:#392b20;text-align:center;text-shadow:none}.card-dialog::backdrop{background:#020609cc}.dialog-close{display:block;margin-left:auto;color:#51412e}.card-dialog .eyebrow{color:#765737}.card-dialog h3{font-weight:400;font-size:25px}.full-thanks{white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;font-size:20px;line-height:2}.card-gift-display{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.card-gift-display figure{margin:10px 0;width:90px}.card-gift-display img{width:90px;height:100px;object-fit:contain}.card-gift-display figcaption,.card-date{font-size:14px;color:#685239}.newly-hung{animation:hang-card 1.8s ease-out}@keyframes hang-card{from{opacity:0;transform:translateY(-35px) rotate(5deg)}to{opacity:1;transform:none}}@media(max-width:600px){.gift-tray{gap:7px}.gift-tray button{width:calc(25% - 5px);min-height:100px}.gift-tray img{width:65px;height:72px}.placed-gift{width:85px;height:100px}.wood-rack{grid-template-columns:repeat(2,1fr);gap:35px 14px}.wood-card{padding:20px 15px 16px}.wall-heading h3{font-size:20px}.wall-heading .quiet{font-size:13px}.offering-table{height:195px}}
/* A continuous wall of thanks, with quiet rows of hanging plaques. */
.gratitude-count{margin:18px 0 28px;color:#e3c995;letter-spacing:.12em;font-size:16px}.gratitude-count strong{display:inline-block;margin:0 8px;font-size:34px;font-weight:400;color:#ffe1a4;text-shadow:0 0 22px #c8984944;font-variant-numeric:tabular-nums}.wood-rack{grid-template-columns:repeat(6,minmax(0,1fr));gap:43px 12px;padding:38px 0 26px;align-items:start}.wood-card{min-width:0;min-height:170px;padding:22px 10px 14px;gap:14px;margin-top:var(--hang,0px);transform:rotate(var(--tilt,0deg));transform-origin:50% -28px;animation:plaque-breath 9s ease-in-out var(--sway-delay,0s) infinite}.card-inscription{font-size:16px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.card-signature{font-size:14px;line-height:1.5;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.decorative-card{opacity:.4;pointer-events:none;box-shadow:0 8px 18px #0003;background:linear-gradient(100deg,#705231,#917044 45%,#674a2b)}.wall-continuation{text-align:center;margin:10px 0 24px;color:#c4beb0;font-size:14px;line-height:1.8}#wall-sentinel{height:2px}.newly-hung{animation:hang-card 1.8s ease-out}@keyframes plaque-breath{0%,100%{transform:rotate(var(--tilt,0deg))}50%{transform:rotate(calc(var(--tilt,0deg) + .5deg))}}@media(max-width:600px){.wood-rack{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 10px}.wood-card{padding:20px 9px 12px;min-height:168px}.gratitude-count strong{font-size:30px}}@media(prefers-reduced-motion:reduce){.wood-card,.newly-hung{animation:none;transform:none}.wood-card:hover{transform:none}}
/* Keep the fox's ears inside wide desktop views; retain the mobile framing. */
@media(min-width:601px){body[data-scene="wish"] .landscape,body[data-scene="gratitude"] .landscape{background-position:center top}}
