.app{isolation:isolate;min-height:100%;position:relative}.snowfall{z-index:-1;pointer-events:none;position:fixed;inset:0}.light-string{height:70px;position:relative}.light-string .wire{background:linear-gradient(90deg,#0000,#5a628f 15% 85%,#0000);height:2px;position:absolute;top:14px;left:0;right:0}.light-string .bulb{border-radius:50% 50% 45% 45%;width:12px;height:16px;animation:2.1s ease-in-out infinite glow;position:absolute;top:16px;transform:translate(-50%)}@keyframes glow{0%,to{filter:brightness(.75)}50%{filter:brightness(1.35)}}.hero{text-align:center;padding:3.5rem 1.5rem 2rem}.eyebrow{letter-spacing:.5em;color:var(--silver);opacity:.75;text-transform:uppercase;font-size:.85rem}.title{color:var(--gold);text-shadow:0 0 24px #f5d67b59;letter-spacing:.25em;margin:1rem 0 .5rem;font-size:clamp(2.6rem,7vw,4.5rem)}.subtitle{color:var(--gold-deep);letter-spacing:.35em;font-size:clamp(1rem,2.5vw,1.3rem)}.divider{background:linear-gradient(90deg, transparent, var(--gold-deep), transparent);width:min(420px,70%);height:1px;margin:2rem auto 0;position:relative}.divider span{color:var(--gold);background:0 0;padding:0 .75rem;font-size:1.1rem;position:absolute;top:-.8em;left:50%;transform:translate(-50%)}.poem{text-align:center;max-width:640px;margin:0 auto;padding:2.5rem 1.5rem}.poem-line{letter-spacing:.28em;color:var(--silver);opacity:0;font-size:clamp(1.35rem,3.4vw,1.9rem);line-height:2.3;animation:1.1s forwards rise;transform:translateY(14px)}.poem-line:nth-child(odd){color:var(--gold)}@keyframes rise{to{opacity:1;transform:translateY(0)}}.video-section{max-width:900px;margin:0 auto;padding:1rem 1.5rem 3rem}.video-section .notes-title{margin-bottom:1.5rem}.video-frame{aspect-ratio:315/315;border:1px solid #f5d67b4d;border-radius:14px;width:100%;position:relative;overflow:hidden;box-shadow:0 18px 40px #0000004d}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.notes{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}.notes-title{text-align:center;color:var(--gold);letter-spacing:.4em;margin-bottom:2rem;font-size:1.4rem}.notes-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;display:grid}.note-card{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff0d;border:1px solid #f5d67b40;border-radius:14px;padding:1.4rem 1.3rem;transition:transform .3s,border-color .3s;animation:.9s both rise;display:block}.note-card:hover{border-color:#f5d67b99;transform:translateY(-4px)}.note-card:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.note-card-title,.note-card-text{display:block}.note-card-title{color:var(--gold);letter-spacing:.2em;margin-bottom:.6rem;font-size:1.1rem}.note-card-text{opacity:.9;font-size:.95rem;line-height:1.9}.note-dialog{-webkit-text-size-adjust:auto;width:min(680px,100% - 2rem);min-height:64vh;max-height:min(340vh,1400px);color:var(--silver);background:linear-gradient(160deg,#1b2452,#0b1030);border:1px solid #f5d67b99;border-radius:18px;margin:auto;padding:clamp(2rem,6vw,3.5rem);position:fixed;inset:0;overflow-y:auto;box-shadow:0 24px 70px #0000008c}.note-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#040718c7}.note-dialog h3{color:var(--gold);letter-spacing:.4em;margin-bottom:2.4rem;padding-right:3rem;font-size:clamp(2.6rem,8vw,3.6rem);line-height:3.4}.note-dialog p{white-space:pre-wrap;font-size:clamp(2.1rem,6vw,2.5rem);line-height:4.2}.note-dialog-close{width:2.5rem;height:2.5rem;color:var(--gold);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.8rem;line-height:1;position:absolute;top:.75rem;right:.9rem}.note-dialog-close:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.footer{text-align:center;color:var(--gold-deep);letter-spacing:.2em;border-top:1px solid #f5d67b26;padding:2rem 1.5rem 3rem;font-size:.95rem}.card-section{text-align:center;padding:2rem 1.5rem 3rem}.card-hint-top{color:#e8ecf5b3;letter-spacing:.25em;margin-bottom:1.5rem;font-size:.9rem}.flip-scene{perspective:1200px;cursor:pointer;width:min(320px,82vw);height:420px;margin:0 auto}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.35,.1,.25,1);position:relative}.flip-scene.open .flip-inner{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border:1px solid #f5d67b66;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:absolute;inset:0;box-shadow:0 18px 40px #00000059}.card-front{background:linear-gradient(170deg,#14301f 0%,#0d2015 100%)}.card-back{background:linear-gradient(170deg,#2a1f0d 0%,#1c1408 100%);transform:rotateY(180deg)}.tree{width:78%;max-height:280px}.t-star{transform-origin:100px 28px;animation:1.8s ease-in-out infinite starPulse}@keyframes starPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.t-light{animation:1.6s ease-in-out infinite lightTwinkle}@keyframes lightTwinkle{0%,to{opacity:.35}50%{opacity:1}}.card-front-text{color:var(--gold);letter-spacing:.3em;margin-top:.8rem;font-size:1.05rem}.card-hint{color:#e8ecf599;letter-spacing:.2em;margin-top:.4rem;font-size:.85rem}.card-ornament{color:var(--gold);margin-bottom:1.2rem;font-size:1.6rem;animation:2.4s ease-in-out infinite starPulse}.card-blessing{color:var(--gold);letter-spacing:.15em;font-size:1.15rem;line-height:2.4}.card-sign{color:#f5d67bb3;letter-spacing:.25em;margin-top:1.4rem;font-size:.9rem}.flip-scene:not(.open) .flip-inner{animation:3.2s ease-in-out infinite cardBob}@keyframes cardBob{0%,to{transform:rotate(0)}50%{transform:rotate(-1.5deg)translateY(-4px)}}.now-playing{color:#f5d67bd9;letter-spacing:.2em;margin-top:1.4rem;font-size:.9rem}.music-note{animation:.9s ease-in-out infinite noteBounce;display:inline-block}@keyframes noteBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}*{box-sizing:border-box;margin:0;padding:0}:root{--gold:#f5d67b;--gold-deep:#d4a94e;--silver:#e8ecf5;--night-1:#0b1030;--night-2:#1b2452;--night-3:#2c3a75}html,body,#root{height:100%}body{background:linear-gradient(180deg, var(--night-1) 0%, var(--night-2) 55%, var(--night-3) 100%);color:var(--silver);font-family:Noto Serif TC,Songti TC,PMingLiU,serif;overflow-x:hidden}
