:root{
  --cream:#f8f1ea;--cream-2:#efe4da;--paper:#fffdf9;--rose:#b87878;--rose-dark:#8c5557;
  --brown:#4e3932;--brown-2:#755d53;--muted:#9a857c;--line:rgba(92,65,54,.14);--shadow:0 24px 70px rgba(91,62,50,.12);
  --radius:24px;--serif:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--brown);font-family:var(--sans);background:var(--cream);line-height:1.75}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}p{margin:0 0 1em}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.25;margin:0 0 .6em}h1{font-size:clamp(2.6rem,7vw,5.6rem);letter-spacing:-.04em}h2{font-size:clamp(1.7rem,3.5vw,3rem)}h3{font-size:1.25rem}.paper-noise{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}.eyebrow{display:block;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-dark);font-weight:700;margin-bottom:1rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.35rem;border-radius:999px;border:1px solid transparent;font-weight:650;transition:.25s ease}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--brown);color:#fff;box-shadow:0 10px 26px rgba(78,57,50,.2)}.button.secondary{background:#fff;border-color:var(--line)}.button.light{background:#fff;color:var(--brown)}.button.ghost{background:transparent;border-color:var(--line)}.button.wide{width:100%}.text-link{display:inline-block;color:var(--rose-dark);font-weight:650;border-bottom:1px solid currentColor;padding-bottom:.1rem}.flash{max-width:1180px;margin:1rem auto;padding:1rem 1.2rem;border-radius:14px;background:#fff;border:1px solid var(--line)}.flash.success{background:#edf6f0;color:#315f40}.flash.error{background:#fff0ef;color:#8b3e3e}.site-header{height:88px;max-width:1440px;margin:auto;padding:0 clamp(1.2rem,4vw,4rem);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20}.brand{display:flex;align-items:center;gap:.9rem}.brand-mark,.museum-seal{width:46px;height:46px;border:1px solid var(--brown);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:1.4rem}.brand strong{display:block;font-family:var(--serif);font-weight:600}.brand small{display:block;font-size:.72rem;color:var(--muted)}.main-nav{display:flex;align-items:center;gap:1.5rem;font-size:.85rem}.main-nav a{position:relative;color:var(--brown-2)}.main-nav a.active,.main-nav a:hover{color:var(--brown)}.main-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-.55rem;height:1px;background:var(--rose)}.main-nav .nav-heart{font-size:1.6rem;color:var(--rose)}.nav-toggle{display:none;border:0;background:transparent;font-size:1.5rem}.site-main{min-height:70vh}.site-footer{max-width:1280px;margin:6rem auto 0;padding:3rem clamp(1.2rem,4vw,4rem);border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}.site-footer div{display:flex;justify-content:space-between;gap:1rem}.site-footer a{text-decoration:underline}.page-intro{max-width:1180px;margin:5rem auto 3rem;padding:0 2rem;text-align:center}.page-intro p{max-width:680px;margin:0 auto;color:var(--muted)}.page-intro h1{font-size:clamp(2.7rem,7vw,5.4rem)}.hero{max-width:1320px;min-height:calc(100vh - 88px);margin:auto;padding:5vh clamp(1.2rem,6vw,6rem) 10vh;display:grid;grid-template-columns:1.05fr .8fr;gap:7vw;align-items:center}.hero-copy p{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.7rem);color:var(--brown-2)}.hero-stats{display:flex;gap:2.5rem;margin:2.5rem 0}.hero-stats div{display:flex;flex-direction:column}.hero-stats strong{font-family:var(--serif);font-size:2rem;font-weight:500}.hero-stats span{font-size:.76rem;color:var(--muted)}.polaroid{background:#fff;padding:1.1rem 1.1rem 2.8rem;box-shadow:var(--shadow);transform:rotate(2.5deg);position:relative}.polaroid:before{content:"";position:absolute;width:105px;height:30px;background:rgba(230,213,198,.7);top:-16px;left:50%;transform:translateX(-50%) rotate(-4deg)}.polaroid img{width:100%;aspect-ratio:4/5;object-fit:cover}.polaroid span{display:block;text-align:center;font-family:var(--serif);margin-top:1.2rem;color:var(--brown-2)}.soft-note{max-width:1060px;margin:-3rem auto 5rem;padding:1.4rem 2rem;background:rgba(255,255,255,.65);border:1px solid var(--line);display:flex;gap:2rem;align-items:center}.soft-note span{font-size:.75rem;letter-spacing:.16em;color:var(--rose-dark)}.soft-note p{margin:0}.home-grid{max-width:1180px;margin:auto;padding:0 2rem;display:grid;grid-template-columns:1.2fr .8fr;gap:2rem}.feature-card{background:rgba(255,253,249,.82);border:1px solid var(--line);border-radius:var(--radius);padding:2rem}.section-heading{display:flex;gap:1rem;margin-bottom:2rem}.section-heading>span{font-family:Georgia,serif;color:var(--rose);font-size:.8rem}.section-heading h2{font-size:2rem}.section-heading p{color:var(--muted);font-size:.85rem}.today-photo{display:grid;grid-template-columns:46% 1fr;gap:1.6rem;align-items:center}.today-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px}.today-photo strong{font-family:var(--serif);font-size:1.5rem}.today-photo p{color:var(--muted);margin-top:.7rem}.message-card{display:flex;flex-direction:column}.message-card blockquote{font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.65;margin:auto 0;padding:0;position:relative}.message-card blockquote:before{content:"“";display:block;color:var(--rose);font-size:4rem;line-height:.5}.message-card small{margin-top:2rem;color:var(--muted)}.next-surprise{max-width:1180px;margin:2rem auto 6rem;padding:2.4rem 2.6rem;background:var(--brown);color:#fff;border-radius:var(--radius);display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:3rem}.next-surprise .eyebrow{color:#dab5b2}.next-surprise h2{margin:0}.next-surprise .text-link{color:#fff}.countdown{display:flex;flex-direction:column;text-align:center}.countdown strong{font-family:var(--serif);font-size:1.2rem}.countdown span{font-size:1.8rem;color:#f0c8c4}.countdown small{opacity:.65}.museum-rooms{max-width:1180px;margin:0 auto;padding:0 2rem}.section-title{text-align:center;margin-bottom:2.5rem}.room-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.room-card{min-height:320px;background:var(--paper);border:1px solid var(--line);padding:1.6rem;display:flex;flex-direction:column;transition:.3s ease}.room-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}.room-card>span{color:var(--rose);font-family:Georgia,serif}.room-card h3{font-size:1.7rem;margin-top:auto}.room-card p{color:var(--muted);font-size:.9rem}.room-card b{font-size:.78rem}.opening-overlay{position:fixed;inset:0;background:var(--brown);color:#fff;z-index:10000;display:grid;place-items:center;transition:opacity .8s,visibility .8s}.opening-overlay.hidden{opacity:0;visibility:hidden}.opening-content{text-align:center;max-width:660px;padding:2rem}.opening-content .museum-seal{margin:0 auto 2rem;border-color:#fff}.opening-content>p{font-size:.8rem;letter-spacing:.15em;opacity:.7}.opening-lines{font-family:var(--serif);font-size:clamp(1.5rem,4vw,2.6rem);line-height:1.8;margin:2rem 0 2.5rem}.opening-overlay .button{opacity:0;animation:fadeIn 1s 2.5s forwards}@keyframes fadeIn{to{opacity:1}}.gallery-toolbar{max-width:1260px;margin:0 auto 2rem;padding:0 2rem;display:flex;justify-content:space-between;gap:2rem;align-items:flex-end}.chips{display:flex;gap:.65rem;flex-wrap:wrap}.chips a,.view-switch a{padding:.5rem .85rem;border:1px solid var(--line);background:rgba(255,255,255,.45);border-radius:999px;font-size:.78rem}.chips a.active,.view-switch a.active{background:var(--brown);color:#fff}.chips small{margin-left:.35rem;opacity:.55}.view-switch{display:flex;gap:.5rem;white-space:nowrap}.photo-wall{max-width:1260px;margin:auto;padding:1rem 2rem;columns:4 250px;column-gap:1.2rem}.photo-tile{break-inside:avoid;display:block;margin:0 0 1.2rem;background:var(--paper);padding:.65rem;box-shadow:0 10px 35px rgba(78,57,50,.08);transition:.3s}.photo-tile:hover{transform:translateY(-5px)}.photo-tile img{width:100%;height:auto}.photo-tile div{padding:.9rem .5rem .5rem}.photo-tile span{font-size:.68rem;color:var(--rose-dark);letter-spacing:.08em}.photo-tile h3{font-size:1.1rem;margin:.3rem 0}.photo-tile small{color:var(--muted)}.story-gallery{max-width:1100px;margin:auto;padding:0 2rem}.story-slide{display:grid;grid-template-columns:40px 48% 1fr;gap:2rem;align-items:center;margin:0 0 8rem}.story-slide:nth-child(even){grid-template-columns:40px 1fr 48%}.story-slide:nth-child(even)>a{grid-column:3}.story-slide:nth-child(even)>div:last-child{grid-column:2;grid-row:1}.story-slide img{width:100%;max-height:680px;object-fit:cover}.story-number{font-family:Georgia,serif;color:var(--rose);writing-mode:vertical-rl}.story-slide p{color:var(--muted)}.photo-detail{max-width:1260px;margin:4rem auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.8fr);gap:5vw;padding:0 2rem;align-items:start}.photo-stage{position:sticky;top:2rem}.photo-stage img{width:100%;max-height:82vh;object-fit:contain;background:#eee2d8}.photo-stage>span{display:block;text-align:center;font-size:.75rem;color:var(--muted);padding:.8rem}.photo-story h1{font-size:clamp(2.4rem,5vw,4.2rem)}.photo-meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:var(--muted);padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.photo-story section{padding:2rem 0;border-bottom:1px solid var(--line)}.photo-story section h2{font-size:1.3rem}.photo-story section p{color:var(--brown-2)}.photo-story .unsaid{background:rgba(255,255,255,.5);padding:1.5rem;margin-top:2rem;border:1px solid var(--line)}.response-form{margin:2.5rem 0;background:var(--paper);padding:1.4rem;border:1px solid var(--line);border-radius:16px}.response-form label{font-size:.86rem;font-weight:600}.response-form textarea{margin-top:.65rem}.response-form.centered{max-width:680px;margin:4rem auto}.timeline{max-width:1050px;margin:4rem auto;padding:0 2rem;position:relative}.timeline:before{content:"";position:absolute;left:124px;top:0;bottom:0;width:1px;background:var(--line)}.timeline-item{display:grid;grid-template-columns:110px 1fr;gap:3rem;position:relative;margin-bottom:5rem}.timeline-dot{position:absolute;left:116px;top:22px;width:17px;height:17px;border:4px solid var(--cream);background:var(--rose);border-radius:50%;z-index:2}.timeline-date{text-align:right;padding-top:.15rem}.timeline-date span{display:block;font-size:.75rem;color:var(--muted)}.timeline-date strong{font-family:Georgia,serif;font-size:1.3rem}.timeline-card{background:var(--paper);border:1px solid var(--line);display:grid;grid-template-columns:38% 1fr;gap:2rem;padding:1rem}.timeline-card:not(:has(img)){grid-template-columns:1fr}.timeline-card img{width:100%;height:100%;min-height:250px;object-fit:cover}.timeline-card>div{padding:1.5rem 1.5rem 1.5rem 0}.timeline-card p{color:var(--brown-2)}.notes-section{max-width:1180px;margin:6rem auto;padding:0 2rem}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.note-card{background:var(--paper);border:1px solid var(--line);padding:2rem;min-height:260px}.note-card>span{font-family:Georgia,serif;color:var(--rose)}.note-card h3{font-size:1.5rem;margin-top:2rem}.note-card p{color:var(--brown-2);font-size:.92rem}.letter-grid{max-width:1180px;margin:3rem auto;padding:0 2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.letter-card{background:var(--paper);border:1px solid var(--line);padding:2rem;min-height:390px;display:flex;flex-direction:column;transition:.3s}.letter-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}.letter-card.locked{filter:saturate(.55);opacity:.75}.envelope{height:120px;position:relative;background:var(--cream-2);margin-bottom:2rem;display:grid;place-items:center;overflow:hidden}.envelope:before,.envelope:after{content:"";position:absolute;bottom:-45px;width:70%;height:150px;background:#e7d6c9;transform:rotate(42deg)}.envelope:before{left:-25%}.envelope:after{right:-25%;transform:rotate(-42deg)}.envelope-flap{position:absolute;top:-75px;width:180px;height:180px;background:#ddcabc;transform:rotate(45deg)}.envelope b{z-index:2;width:38px;height:38px;border-radius:50%;background:var(--rose);color:#fff;display:grid;place-items:center}.letter-card>span{font-size:.72rem;color:var(--rose-dark)}.letter-card h2{font-size:1.65rem;margin-top:.5rem}.letter-card p{color:var(--muted)}.letter-card small{margin-top:auto}.letter-page{max-width:820px;margin:5rem auto;padding:0 1.2rem}.letter-paper{background:var(--paper);padding:clamp(2rem,7vw,5rem);box-shadow:var(--shadow);min-height:680px;position:relative}.letter-paper:before{content:"";position:absolute;inset:18px;border:1px solid var(--line);pointer-events:none}.letter-paper h1{font-size:clamp(2.5rem,6vw,4.3rem)}.letter-body{font-family:var(--serif);font-size:1.12rem;line-height:2.1;margin-top:3rem}.letter-sign{text-align:right;font-family:var(--serif);margin-top:4rem}.letter-sign strong{font-size:1.5rem}.letter-sign small{display:block;color:var(--muted)}.locked-letter{text-align:center;padding:5rem 0}.locked-letter>span{font-size:4rem;color:var(--rose)}.locked-letter form{display:flex;max-width:420px;margin:2rem auto;gap:.6rem}.game-grid{max-width:1100px;margin:3rem auto;padding:0 2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.game-card{background:var(--paper);border:1px solid var(--line);padding:2rem;min-height:410px;display:flex;flex-direction:column;transition:.3s}.game-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}.game-card>span{color:var(--rose);font-family:Georgia,serif}.game-icon{width:80px;height:80px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:2.4rem;margin:2.2rem 0}.game-card p{color:var(--muted)}.game-card b{margin-top:auto}.quiz-form{max-width:850px;margin:3rem auto;padding:0 2rem}.quiz-question{border:0;background:var(--paper);padding:2rem;margin:0 0 1.2rem}.quiz-question legend{font-family:var(--serif);font-size:1.4rem;padding:0 0 1rem;width:100%}.quiz-question legend span{color:var(--rose);font-family:Georgia,serif;margin-right:1rem}.quiz-question>label{display:block;margin:.6rem 0}.quiz-question input{position:absolute;opacity:0}.quiz-question label span{display:block;padding:.9rem 1rem;border:1px solid var(--line);border-radius:10px;transition:.2s}.quiz-question input:checked+span{background:var(--brown);color:#fff;border-color:var(--brown)}.answer-box{margin-top:1rem;padding:1rem;background:var(--cream);border-left:3px solid var(--rose)}.answer-box p{margin:.4rem 0 0;color:var(--muted)}.quiz-result{max-width:810px;margin:0 auto 2rem;padding:2rem;background:var(--brown);color:#fff;text-align:center}.quiz-result>span{font-size:3rem;font-family:Georgia,serif;color:#efc7c3}.quiz-result h2{font-size:1.5rem}.guess-card{max-width:720px;margin:3rem auto;text-align:center;padding:0 2rem}.guess-image{overflow:hidden;max-width:520px;margin:0 auto 2rem;background:#ddd}.guess-image img{aspect-ratio:4/5;object-fit:cover;filter:blur(24px);transform:scale(1.13);transition:1s}.guess-image.revealed img{filter:none;transform:none}.guess-options{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1.5rem 0}.guess-options span{background:var(--paper);padding:.8rem;border:1px solid var(--line)}.heart-game{max-width:900px;margin:2rem auto;padding:0 2rem}.heart-score{display:flex;justify-content:space-between;margin-bottom:1rem}.heart-field{height:520px;border:1px solid var(--line);background:var(--paper);position:relative;overflow:hidden}.heart-target{position:absolute;width:54px;height:54px;border:0;background:var(--rose);color:#fff;border-radius:50%;font-size:1.8rem;display:none;transition:transform .1s}.heart-target:active{transform:scale(.8)}.heart-start{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:rgba(255,253,249,.88)}.heart-reward{text-align:center;background:var(--brown);color:#fff;padding:3rem}.heart-reward>span{font-size:4rem;color:#efc7c3}.mood-grid{max-width:1100px;margin:3rem auto;padding:0 2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.mood-card{background:var(--paper);border:1px solid var(--line);padding:2rem;min-height:220px;display:flex;flex-direction:column;transition:.25s}.mood-card:hover{transform:translateY(-5px)}.mood-card>span{font-size:2rem;color:var(--rose)}.mood-card h2{font-size:1.35rem;margin-top:auto}.mood-card small{color:var(--muted)}.mood-message{max-width:760px;margin:3rem auto;background:var(--paper);padding:clamp(2rem,7vw,5rem);text-align:center;box-shadow:var(--shadow)}.mood-big-icon{display:block;font-size:5rem;color:var(--rose)}.mood-message p{font-family:var(--serif);font-size:1.3rem;line-height:2}.anniversary-grid{max-width:1100px;margin:3rem auto;padding:0 2rem;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.anniversary-card{background:var(--paper);border:1px solid var(--line);padding:2rem;display:grid;grid-template-columns:100px 1fr;gap:1.5rem}.calendar-page{height:120px;border:1px solid var(--line);text-align:center;background:#fff}.calendar-page span{display:block;background:var(--rose);color:#fff;text-transform:uppercase;font-size:.75rem;padding:.3rem}.calendar-page strong{display:block;font-family:Georgia,serif;font-size:2.8rem;font-weight:400}.anniversary-card p{color:var(--muted)}.anniversary-count{font-family:var(--serif);font-size:1.4rem;color:var(--rose-dark)}.wish-list{max-width:900px;margin:3rem auto;padding:0 2rem}.wish-item{display:grid;grid-template-columns:70px 1fr;gap:1.5rem;padding:2rem 0;border-bottom:1px solid var(--line)}.wish-item>span{font-family:Georgia,serif;font-size:1.4rem;color:var(--rose)}.wish-item small{color:var(--muted)}.wish-item h2{font-size:1.6rem}.egg-page{min-height:calc(100vh - 88px);background:var(--brown);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem}.egg-page .eyebrow{color:#dfaaa8}.egg-page h1{max-width:850px}.egg-page>p,.egg-content{max-width:680px;color:rgba(255,255,255,.78)}.moon{font-size:5rem;color:#efd3b3;animation:float 4s ease-in-out infinite}.egg-form{display:flex;gap:.7rem;margin-top:2rem}.egg-form input{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}@keyframes float{50%{transform:translateY(-10px)}}.empty-state{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:2rem}.empty-state>span{font-family:Georgia,serif;font-size:3rem;color:var(--rose)}input,textarea,select{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem .9rem;border-radius:9px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(184,120,120,.12)}textarea{resize:vertical}.login-page,.install-page{min-height:100vh;background:var(--cream);display:grid;place-items:center;padding:2rem;position:relative}.login-bg{position:fixed;inset:0;background:radial-gradient(circle at 20% 10%,#f3dcd8 0,transparent 35%),radial-gradient(circle at 80% 90%,#e5d8c8 0,transparent 35%)}.login-card,.install-card{position:relative;z-index:1;width:min(480px,100%);background:rgba(255,253,249,.9);padding:clamp(2rem,6vw,4rem);border:1px solid var(--line);box-shadow:var(--shadow);text-align:center}.install-card{width:min(900px,100%);text-align:left}.login-card .museum-seal{margin:0 auto 2rem}.login-card h1{font-size:2.7rem}.login-card p{color:var(--muted)}.login-card form{text-align:left;margin-top:2rem}.login-card label{display:block;font-size:.82rem;font-weight:600;margin-bottom:1rem}.login-card input{margin-top:.4rem}.admin-secret{display:inline-block;margin-top:1.5rem;font-size:.7rem;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid label{font-size:.82rem;font-weight:600}.form-grid label input,.form-grid label textarea,.form-grid label select{margin-top:.4rem}.span-2{grid-column:span 2}.form-actions{display:flex;gap:.7rem;align-items:center;margin-top:1.5rem}.install-check{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}.admin-topbar{height:66px;background:var(--brown);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 2rem}.admin-topbar>div{display:flex;gap:1.5rem;font-size:.8rem}.admin-brand{font-family:var(--serif);font-size:1.25rem}.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 66px)}.admin-sidebar{background:#eadfd5;padding:1.5rem 1rem}.admin-sidebar a{display:block;padding:.72rem .9rem;border-radius:8px;font-size:.84rem;margin:.12rem 0}.admin-sidebar a.active,.admin-sidebar a:hover{background:var(--paper)}.admin-main{padding:2.5rem;min-width:0;background:#f7f3ef}.admin-main>h1{font-size:2.3rem}.admin-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:.8rem;margin:2rem 0}.admin-stats>div{background:#fff;border:1px solid var(--line);padding:1.25rem;display:flex;flex-direction:column}.admin-stats strong{font-family:Georgia,serif;font-size:2rem;font-weight:400}.admin-stats span{font-size:.75rem;color:var(--muted)}.admin-panel,.admin-form{background:#fff;border:1px solid var(--line);padding:1.5rem;margin:1rem 0}.admin-panel h2{font-size:1.35rem}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:1.2rem 0}.panel-heading p{color:var(--muted);margin:0}.quick-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}.quick-actions a{padding:1.2rem;background:var(--cream);border:1px solid var(--line);font-size:.85rem}.quick-actions a:hover{border-color:var(--rose)}.response-list{display:grid;gap:.7rem}.response-list article{background:var(--cream);padding:1rem;position:relative}.response-list article>span{font-size:.7rem;text-transform:uppercase;color:var(--rose-dark)}.response-list article p{margin:.25rem 0}.response-list article small{color:var(--muted)}.admin-responses article form{position:absolute;right:1rem;top:1rem}.security-tip{border-left:4px solid var(--rose)}code{background:rgba(78,57,50,.08);padding:.15rem .35rem;border-radius:4px}.admin-form small{display:block;color:var(--muted);font-weight:400;margin-top:.3rem}.check-label{display:flex!important;gap:.7rem;align-items:center}.check-label input{width:auto;margin:0!important}.checkbox-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.checkbox-row label{display:flex;gap:.4rem;align-items:center}.checkbox-row input{width:auto}.admin-photo-preview img{max-height:320px;object-fit:contain;background:var(--cream)}.admin-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.admin-photo-card{background:#fff;border:1px solid var(--line)}.admin-photo-card>img{width:100%;aspect-ratio:4/3;object-fit:cover}.admin-photo-card>div{padding:1rem}.admin-photo-card span,.admin-photo-card small{font-size:.72rem;color:var(--muted)}.admin-photo-card h3{font-family:var(--sans);font-size:1rem;margin:.3rem 0}.row-actions{display:flex;gap:1rem;align-items:center;margin-top:.8rem;font-size:.78rem}.row-actions form{margin:0}.row-actions button,.link-danger{border:0;background:transparent;padding:0;color:#a14646;font-size:inherit}.admin-list{display:grid;gap:.7rem}.admin-list>article{display:grid;grid-template-columns:90px 1fr auto;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);padding:1rem}.admin-list h3{font-family:var(--sans);font-size:1rem;margin:0}.admin-list p{color:var(--muted);font-size:.85rem;margin:.25rem 0}.admin-list small{color:var(--muted)}.date-badge{font-family:Georgia,serif;color:var(--rose-dark);font-size:1.1rem;text-align:center}.tag{display:inline-flex;justify-content:center;padding:.35rem .6rem;border-radius:999px;background:var(--cream);font-size:.72rem}.restore-steps{line-height:2}.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1100px){.main-nav{gap:.85rem}.hero{gap:3rem}.room-grid{grid-template-columns:1fr 1fr}.admin-stats{grid-template-columns:repeat(3,1fr)}.quick-actions{grid-template-columns:repeat(3,1fr)}.admin-card-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){h1{font-size:2.8rem}.site-header{height:72px}.nav-toggle{display:block}.main-nav{position:absolute;left:1rem;right:1rem;top:68px;background:var(--paper);border:1px solid var(--line);padding:1rem;display:none;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}.main-nav.open{display:flex}.main-nav a.active:after{display:none}.brand small{display:none}.hero{grid-template-columns:1fr;padding-top:3rem}.hero-image{max-width:520px;margin:auto}.home-grid,.anniversary-grid{grid-template-columns:1fr}.next-surprise{grid-template-columns:1fr;text-align:center;gap:1.5rem}.room-grid,.notes-grid,.letter-grid,.game-grid,.mood-grid{grid-template-columns:1fr 1fr}.gallery-toolbar{flex-direction:column;align-items:stretch}.view-switch{flex-wrap:wrap}.photo-detail{grid-template-columns:1fr}.photo-stage{position:static}.story-slide,.story-slide:nth-child(even){grid-template-columns:24px 1fr;gap:1rem;margin-bottom:5rem}.story-slide>a,.story-slide:nth-child(even)>a{grid-column:2}.story-slide>div:last-child,.story-slide:nth-child(even)>div:last-child{grid-column:2;grid-row:auto}.timeline:before{left:54px}.timeline-item{grid-template-columns:40px 1fr;gap:2rem}.timeline-dot{left:46px}.timeline-date{writing-mode:vertical-rl;text-align:left}.timeline-card{grid-template-columns:1fr}.timeline-card>div{padding:1rem}.admin-shell{grid-template-columns:1fr}.admin-sidebar{display:flex;overflow-x:auto;gap:.3rem;padding:.7rem}.admin-sidebar a{white-space:nowrap}.admin-main{padding:1.2rem}.admin-card-grid{grid-template-columns:1fr 1fr}.quick-actions{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.hero-stats{gap:1rem;justify-content:space-between}.hero-stats strong{font-size:1.5rem}.home-grid,.museum-rooms,.page-intro,.gallery-toolbar,.photo-wall,.story-gallery,.timeline,.notes-section,.letter-grid,.game-grid,.quiz-form,.guess-card,.heart-game,.mood-grid,.anniversary-grid,.wish-list{padding-left:1rem;padding-right:1rem}.today-photo{grid-template-columns:1fr}.room-grid,.notes-grid,.letter-grid,.game-grid,.mood-grid{grid-template-columns:1fr}.next-surprise{margin-left:1rem;margin-right:1rem}.letter-paper{padding:2.5rem 1.5rem}.letter-paper:before{inset:10px}.locked-letter form,.egg-form{flex-direction:column}.anniversary-card{grid-template-columns:76px 1fr;padding:1.2rem}.calendar-page{height:100px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.admin-stats{grid-template-columns:1fr 1fr}.quick-actions,.admin-card-grid{grid-template-columns:1fr}.admin-list>article{grid-template-columns:1fr}.admin-topbar{padding:0 1rem}.admin-topbar>div a:first-child{display:none}.site-footer div{flex-direction:column}.guess-options{grid-template-columns:1fr}.heart-field{height:430px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
.footer-links{display:flex;gap:1.2rem}.celebration-layer{position:fixed;inset:0;pointer-events:none;z-index:9998;overflow:hidden}.celebration-particle{position:absolute;top:-8vh;animation:celebrate-fall linear forwards;opacity:.8}.celebration-particle.star{animation-name:celebrate-twinkle}.celebration-particle.firework{top:auto;border-radius:50%;animation-name:celebrate-pop}@keyframes celebrate-fall{to{transform:translate3d(var(--drift),110vh,0) rotate(520deg);opacity:.1}}@keyframes celebrate-twinkle{0%,100%{opacity:.1;transform:scale(.6)}50%{opacity:1;transform:scale(1.3)}}@keyframes celebrate-pop{0%{transform:scale(0);opacity:1}100%{transform:scale(18);opacity:0}}.archive-stats{max-width:1100px;margin:3rem auto;padding:0 2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.archive-stats>div{background:var(--paper);border:1px solid var(--line);padding:2.2rem;display:flex;flex-direction:column;text-align:center}.archive-stats strong{font-family:Georgia,serif;font-size:2.8rem;font-weight:400;color:var(--rose-dark)}.archive-stats span{font-size:.82rem;color:var(--muted)}.archive-highlight{max-width:700px;margin:3rem auto;text-align:center;padding:3rem;background:var(--brown);color:#fff}.archive-highlight .eyebrow{color:#e6bcb8}.visitor-upload{max-width:720px;margin:3rem auto;background:var(--paper);border:1px solid var(--line);padding:2rem}.visitor-upload>label{display:block;font-size:.85rem;font-weight:600;margin-bottom:1rem}.visitor-upload input,.visitor-upload textarea{margin-top:.4rem}.checkin-list{max-width:720px;margin:3rem auto;padding:0 2rem;display:grid;gap:.8rem}.checkin-list label{display:block}.checkin-list input{position:absolute;opacity:0}.checkin-list label span{display:block;padding:1.1rem 1.3rem;background:var(--paper);border:1px solid var(--line);border-radius:12px}.checkin-list input:checked+span{background:var(--brown);color:#fff}.checkin-list .button{margin-top:1rem}.checkin-done{max-width:700px;margin:3rem auto;padding:4rem 2rem;text-align:center;background:var(--paper);box-shadow:var(--shadow)}.checkin-done>span{font-size:4rem;color:var(--rose)}
@media(max-width:820px){.archive-stats{grid-template-columns:1fr 1fr}}@media(max-width:560px){.archive-stats{grid-template-columns:1fr;padding:0 1rem}.footer-links{flex-wrap:wrap}}

/* Multi-photo uploader and gallery carousel — v1.1 */
.multi-photo-upload{border:1px dashed var(--line);background:rgba(255,255,255,.38);padding:1.4rem;border-radius:16px}.multi-upload-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.multi-upload-heading>div{display:flex;flex-direction:column;gap:.3rem}.multi-upload-heading small,.existing-photo-section>p,.new-photo-section>p{color:var(--muted);font-size:.8rem}.upload-picker{position:relative;overflow:hidden;white-space:nowrap;cursor:pointer}.upload-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}.existing-photo-section,.new-photo-section{margin-top:1.35rem}.existing-photo-section h3,.new-photo-section h3{font-family:var(--sans);font-size:.95rem;margin:0 0 .25rem}.multi-photo-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1rem}.photo-preview-card{position:relative;overflow:hidden;border:2px solid transparent;border-radius:14px;background:var(--paper);box-shadow:0 8px 24px rgba(72,48,40,.08);transition:border-color .2s ease,opacity .2s ease,transform .2s ease}.photo-preview-card:hover{transform:translateY(-2px)}.photo-preview-card.is-cover{border-color:var(--rose-dark);box-shadow:0 0 0 3px rgba(174,111,111,.12)}.photo-preview-card.is-cover:before{content:'当前封面';position:absolute;top:.55rem;left:.55rem;z-index:2;padding:.25rem .48rem;border-radius:999px;background:var(--rose-dark);color:#fff;font-size:.68rem}.photo-preview-card.is-removed{opacity:.35;filter:grayscale(1)}.photo-preview-card>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--cream)}.preview-index{position:absolute;top:.55rem;right:.55rem;padding:.25rem .48rem;border-radius:999px;background:rgba(50,35,30,.72);color:#fff;font-size:.66rem}.preview-card-actions{display:flex;align-items:center;justify-content:space-between;gap:.45rem;padding:.65rem}.cover-choice,.remove-choice{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;cursor:pointer}.cover-choice input,.remove-choice input{width:auto}.cover-choice span{font-weight:700;color:var(--rose-dark)}.remove-choice span,.preview-remove-button{color:#9a4d4d}.preview-remove-button{border:0;background:transparent;font:inherit;font-size:.76rem;cursor:pointer;padding:.25rem}.upload-empty{display:grid;place-items:center;text-align:center;min-height:190px;margin-top:1rem;border-radius:12px;background:var(--cream);color:var(--muted)}.upload-empty span{font-size:2.2rem}.upload-empty p{margin:.2rem 0 0}.new-photo-section[hidden],.upload-empty[hidden]{display:none!important}
.photo-carousel{outline:none}.photo-carousel>a{display:block;overflow:hidden;background:var(--cream)}.photo-carousel>a>img{display:block;width:100%;max-height:76vh;object-fit:contain;transition:opacity .18s ease}.photo-carousel>a>img.is-changing{opacity:.45}.carousel-nav{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem;background:var(--paper);border:1px solid var(--line);border-top:0}.carousel-nav button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer;font-size:1.1rem}.carousel-nav button:hover{background:var(--brown);color:#fff}.carousel-nav span{min-width:70px;text-align:center;font-size:.82rem;color:var(--muted)}.carousel-thumbs{display:flex;gap:.55rem;overflow-x:auto;padding:.75rem .15rem .2rem;scrollbar-width:thin}.carousel-thumbs button{position:relative;flex:0 0 76px;padding:0;border:2px solid transparent;border-radius:9px;overflow:hidden;background:var(--paper);cursor:pointer;opacity:.62}.carousel-thumbs button.active{border-color:var(--rose-dark);opacity:1}.carousel-thumbs img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.carousel-thumbs span{position:absolute;left:.25rem;bottom:.25rem;padding:.15rem .3rem;border-radius:999px;background:rgba(50,35,30,.72);color:#fff;font-size:.58rem}
@media(max-width:1000px){.multi-photo-preview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.multi-upload-heading{align-items:stretch;flex-direction:column}.upload-picker{text-align:center}.multi-photo-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-carousel>a>img{max-height:65vh}}
@media(max-width:420px){.multi-photo-preview{grid-template-columns:1fr 1fr;gap:.65rem}.preview-card-actions{align-items:flex-start;flex-direction:column}.photo-preview-card.is-cover:before{font-size:.58rem}.carousel-thumbs button{flex-basis:64px}}

/* Immersive mailbox, mood first aid and sweet arcade — v1.2 */
.mailbox-hero{max-width:1120px;margin:1rem auto 4rem;padding:2.5rem 3rem;border-radius:32px;background:linear-gradient(135deg,#fff8f4,#f4e4e1 58%,#e9d3ce);display:grid;grid-template-columns:260px 1fr;gap:3rem;align-items:center;overflow:hidden;position:relative}.mailbox-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;top:-100px;background:rgba(255,255,255,.45)}.mailbox-hero h2{font-size:clamp(2rem,4vw,3.6rem)}.mailbox-hero p{max-width:620px;color:var(--brown-2)}.mailbox-scene{height:210px;position:relative;display:grid;place-items:center}.mailbox-box{width:190px;height:135px;border-radius:48px 48px 18px 18px;background:#b66f72;color:#fff;box-shadow:0 22px 45px rgba(112,55,58,.25);position:relative;display:grid;place-items:end center;padding-bottom:18px;animation:mailboxFloat 4s ease-in-out infinite}.mailbox-box:after{content:"";position:absolute;width:18px;height:90px;background:#7e5351;bottom:-78px;left:50%;transform:translateX(-50%)}.mailbox-box>span{font:700 .72rem var(--sans);letter-spacing:.15em}.mail-slot{position:absolute;top:38px;width:120px;height:12px;border-radius:99px;background:#6f4143;box-shadow:inset 0 2px 4px rgba(0,0,0,.25)}.mailbox-flag{position:absolute;right:36px;top:25px;width:8px;height:85px;background:#7e5351;z-index:2;transform-origin:bottom;animation:mailFlag 3.5s ease-in-out infinite}.mailbox-flag:after{content:"♡";position:absolute;top:0;left:0;width:48px;height:34px;background:#fff4ef;color:#9b5558;display:grid;place-items:center;border-radius:5px 13px 13px 5px}.mailbox-letters{position:absolute;top:10px;left:62px;display:flex;gap:4px}.mailbox-letters i{display:block;width:54px;height:38px;background:#fff;border:1px solid rgba(94,54,54,.12);transform:rotate(-7deg);box-shadow:0 6px 12px rgba(80,50,45,.08)}.mailbox-letters i:nth-child(2){transform:translateY(6px) rotate(6deg);background:#f6e8ef}.mailbox-letters i:nth-child(3){transform:translateY(2px) rotate(13deg);background:#e9f2f7}@keyframes mailboxFloat{50%{transform:translateY(-7px)}}@keyframes mailFlag{0%,60%,100%{transform:rotate(0)}75%{transform:rotate(-20deg)}}
.letter-grid-rich{gap:1.3rem}.letter-grid-rich .letter-card{border-radius:24px;min-height:420px;position:relative;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.letter-grid-rich .letter-card:hover{transform:translateY(-9px) rotate(.4deg);box-shadow:0 24px 60px rgba(78,57,50,.16)}.letter-grid-rich .letter-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 100% 0,rgba(255,255,255,.72),transparent 38%);pointer-events:none}.letter-status{position:absolute;right:1rem;top:1rem;z-index:3}.letter-status b{display:inline-flex;padding:.28rem .52rem;border-radius:999px;background:rgba(78,57,50,.78);color:#fff;font-size:.62rem;letter-spacing:.12em}.letter-card.is-unread .letter-status b{background:#b35f69;animation:statusPulse 1.8s ease-in-out infinite}@keyframes statusPulse{50%{transform:scale(1.08)}}.letter-card .letter-stamp{position:absolute;right:1rem;top:.8rem;width:42px;height:48px;border:2px dashed rgba(104,66,61,.28);display:grid;place-items:center;font-size:1.2rem;transform:rotate(5deg);background:rgba(255,255,255,.5)}.letter-theme-rose{--letter-bg:#fff3f2;--letter-accent:#a65d67}.letter-theme-lavender{--letter-bg:#f2eefb;--letter-accent:#77649b}.letter-theme-sky{--letter-bg:#edf6fb;--letter-accent:#547e9b}.letter-theme-sunset{--letter-bg:#fff1e4;--letter-accent:#b76f48}.letter-theme-mint{--letter-bg:#edf8f3;--letter-accent:#4f8771}.letter-theme-night{--letter-bg:#31364b;--letter-accent:#e9cf9b}.letter-grid-rich .letter-card{background:var(--letter-bg,#fffdf9)}.letter-grid-rich .letter-card>span,.letter-grid-rich .letter-card small{color:var(--letter-accent,var(--rose-dark))}.letter-theme-night.letter-card,.letter-theme-night.letter-card p,.letter-theme-night.letter-card h2{color:#f8f3eb}.letter-theme-night .envelope{filter:brightness(.92)}
.mail-drop{max-width:1050px;margin:5rem auto;padding:3rem;border-radius:30px;background:var(--brown);color:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem}.mail-drop .eyebrow{color:#e9bcb8}.mail-drop p{color:rgba(255,255,255,.7)}.mail-drop form{display:grid;gap:1rem}.mail-drop label{font-size:.8rem}.mail-drop input,.mail-drop textarea{margin-top:.35rem;background:rgba(255,255,255,.96)}
.letter-experience{--letter-bg:#fff8f3;--letter-accent:#a65d67;max-width:980px;margin:2rem auto 5rem;padding:0 2rem}.letter-opening-stage{min-height:560px;border-radius:34px;background:var(--letter-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem;overflow:hidden;position:relative}.letter-opening-stage:before,.letter-opening-stage:after{content:"";position:absolute;border-radius:50%;background:color-mix(in srgb,var(--letter-accent) 12%,transparent)}.letter-opening-stage:before{width:360px;height:360px;left:-170px;top:-170px}.letter-opening-stage:after{width:300px;height:300px;right:-140px;bottom:-150px}.opening-envelope{width:min(500px,90%);aspect-ratio:1.65/1;background:#fffdf9;border:1px solid rgba(87,55,52,.12);box-shadow:0 28px 70px rgba(76,45,42,.17);position:relative;display:flex;align-items:center;justify-content:center;padding:2rem;transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .5s}.opening-envelope:before,.opening-envelope:after{content:"";position:absolute;inset:auto 0 0;height:72%;clip-path:polygon(0 0,50% 65%,100% 0,100% 100%,0 100%);background:#f4e8df}.opening-envelope:after{clip-path:polygon(0 100%,50% 36%,100% 100%);background:#fff8f2}.opening-envelope-flap{position:absolute;inset:0 0 auto;height:68%;clip-path:polygon(0 0,100% 0,50% 100%);background:#ead9cf;transform-origin:top;transition:transform .75s cubic-bezier(.2,.8,.2,1);z-index:2}.opening-envelope>div{position:relative;z-index:4;display:flex;flex-direction:column}.opening-envelope small{letter-spacing:.15em;color:var(--letter-accent)}.opening-envelope strong{font-family:var(--serif);font-size:clamp(1.4rem,4vw,2.4rem)}.opening-stamp{position:absolute;right:24px;top:22px;z-index:5;width:58px;height:64px;border:2px dashed var(--letter-accent);display:grid;place-items:center;font-size:1.5rem;color:var(--letter-accent);transform:rotate(6deg)}.letter-opening-stage>p{max-width:580px;margin:2rem 0 1rem;color:var(--brown-2)}.letter-experience.js-letter-ready [data-letter-paper]{display:none}.letter-experience.is-opening .opening-envelope-flap{transform:rotateX(180deg)}.letter-experience.is-opening .opening-envelope{transform:translateY(-20px) scale(1.03)}.letter-experience.is-opening .letter-opening-stage{animation:openingGlow 1.2s ease forwards}.letter-experience.is-opened .letter-opening-stage{display:none}.letter-experience.is-opened [data-letter-paper]{display:block;animation:paperRise .9s cubic-bezier(.2,.8,.2,1) both}@keyframes openingGlow{50%{box-shadow:inset 0 0 90px color-mix(in srgb,var(--letter-accent) 20%,transparent)}}@keyframes paperRise{from{opacity:0;transform:translateY(40px) rotateX(8deg)}to{opacity:1;transform:none}}.letter-experience .letter-paper{background:var(--letter-bg);border-radius:8px;box-shadow:0 28px 80px rgba(78,57,50,.16)}.letter-theme-night .letter-paper{color:#f8f3eb;background:#31364b}.letter-theme-night .letter-paper:before{border-color:rgba(255,255,255,.15)}.letter-theme-night .letter-body,.letter-theme-night .letter-sign small{color:rgba(255,255,255,.78)}.letter-reactions{margin-top:3rem;padding-top:2rem;border-top:1px dashed color-mix(in srgb,var(--letter-accent) 35%,transparent)}.letter-reactions>span{display:block;margin-bottom:1rem;font-size:.82rem;color:var(--muted)}.letter-reactions>div{display:flex;gap:.65rem;flex-wrap:wrap}.letter-reactions button{border:1px solid color-mix(in srgb,var(--letter-accent) 35%,transparent);background:rgba(255,255,255,.55);padding:.62rem 1rem;border-radius:999px}.letter-reactions button:hover{background:var(--letter-accent);color:#fff}.letter-back{margin-top:1.5rem}
.points-dashboard{max-width:1080px;margin:1rem auto 4rem;padding:2.5rem 3rem;border-radius:32px;background:linear-gradient(120deg,#4e3932,#6f4c4d 55%,#9c656b);color:#fff;display:grid;grid-template-columns:190px 1fr;gap:2.5rem;align-items:center;position:relative;overflow:hidden}.points-dashboard:after{content:"♡";position:absolute;right:4%;top:-32%;font:18rem Georgia;color:rgba(255,255,255,.05)}.points-dashboard p{color:rgba(255,255,255,.72)}.points-dashboard .text-link{color:#fff}.points-orb{width:170px;height:170px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:radial-gradient(circle,rgba(255,255,255,.2),rgba(255,255,255,.05));display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 40px rgba(255,255,255,.08),0 18px 40px rgba(0,0,0,.15)}.points-orb span,.points-orb small{font-size:.72rem;letter-spacing:.12em}.points-orb strong{font:3.6rem Georgia;font-weight:400;line-height:1}.game-grid-rich{grid-template-columns:repeat(3,1fr);max-width:1180px}.game-card-live{background:linear-gradient(160deg,#fffdf9,#f8e8e6)}.game-card-live .game-icon{animation:gameIconBeat 2s ease-in-out infinite}@keyframes gameIconBeat{50%{transform:scale(1.12)}}.sweet-rewards{max-width:1080px;margin:6rem auto;padding:0 2rem}.reward-track{display:grid;gap:1rem}.reward-card{display:grid;grid-template-columns:90px 1fr;gap:1.4rem;align-items:center;padding:1.5rem;border:1px solid var(--line);background:var(--paper);border-radius:22px}.reward-card.locked{opacity:.74}.reward-card.unlocked{border-color:rgba(161,99,105,.38);box-shadow:0 12px 34px rgba(94,55,58,.09)}.reward-emoji{width:72px;height:72px;border-radius:22px;background:var(--cream);display:grid;place-items:center;font-size:2rem}.reward-card span{font-size:.72rem;color:var(--rose-dark)}.reward-card h3{margin:.2rem 0;font-size:1.3rem}.reward-card p{margin:0;color:var(--muted)}.reward-progress{height:10px;border-radius:99px;background:var(--cream-2);margin-top:.8rem;overflow:hidden}.reward-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--rose),#e0ad9f);transition:width .6s ease}
.live-game-hud{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.live-game-hud>div{background:rgba(255,255,255,.75);border:1px solid var(--line);border-radius:18px;padding:1rem;text-align:center}.live-game-hud small{display:block;color:var(--muted)}.live-game-hud strong{font:2rem Georgia;font-weight:400}.heart-game-v2,.memory-game,.pulse-game{max-width:920px;margin:2rem auto;padding:0 2rem}.heart-game-v2 .heart-field{height:520px;border-radius:26px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fff7f4,#f0dcd9);border:1px solid rgba(164,94,100,.16)}.heart-start>span{font-size:4rem;color:var(--rose);animation:gameIconBeat 1.5s infinite}.live-heart-target{position:absolute;width:58px;height:58px;border:0;border-radius:50%;display:grid;place-items:center;font-size:2rem;color:#b55b68;background:rgba(255,255,255,.88);box-shadow:0 12px 30px rgba(103,50,58,.18);animation:targetPop .22s ease-out,heartHover 1s ease-in-out infinite alternate;z-index:3}.live-heart-target.gold{color:#c28d2f;background:#fff5d5;box-shadow:0 0 0 8px rgba(244,207,116,.18),0 15px 35px rgba(137,94,25,.2)}.live-heart-target.cloud{color:#6f7487;background:#eef0f5}.live-heart-target.caught{animation:targetCaught .18s ease forwards}@keyframes targetPop{from{transform:scale(.2);opacity:0}}@keyframes heartHover{to{transform:translateY(-5px) rotate(5deg)}}@keyframes targetCaught{to{transform:scale(1.7);opacity:0}}.game-floating-text{position:absolute;top:1rem;left:50%;transform:translateX(-50%) translateY(-10px);font-weight:800;color:var(--rose-dark);opacity:0;z-index:8}.game-floating-text.show{animation:floatingText .65s ease}@keyframes floatingText{20%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-35px)}}.game-result-panel{margin-top:1rem;padding:2rem;border-radius:24px;background:var(--paper);border:1px solid var(--line);text-align:center}.game-result-panel>span{display:block;font-size:3rem;color:var(--rose)}.game-result-panel h2{font-size:2rem}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;perspective:1000px}.memory-card{position:relative;aspect-ratio:4/5;border:0;background:transparent;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1);padding:0}.memory-card.flipped,.memory-card.matched{transform:rotateY(180deg)}.memory-card.matched{filter:saturate(.75);opacity:.78}.memory-card-front,.memory-card-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:18px;overflow:hidden;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}.memory-card-front{background:linear-gradient(145deg,#b56f76,#80545b);color:#fff;font:2.4rem Georgia}.memory-card-front:after{content:"";position:absolute;inset:10px;border:1px dashed rgba(255,255,255,.38);border-radius:13px}.memory-card-back{transform:rotateY(180deg);background:#fff;flex-direction:column}.memory-card-back img{width:100%;height:100%;object-fit:cover}.memory-card-back small{position:absolute;left:.45rem;right:.45rem;bottom:.45rem;padding:.32rem .4rem;border-radius:8px;background:rgba(51,34,31,.68);color:#fff;font-size:.64rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.memory-card-back:not(:has(img)){font-size:2.5rem}.memory-game>[data-memory-reset]{margin-top:1rem}.pulse-game{text-align:center}.pulse-orb{width:min(360px,78vw);height:min(360px,78vw);margin:2.5rem auto;border-radius:50%;border:0;background:radial-gradient(circle,#fff 0,#f8e8e7 42%,#dab4b4 70%,#b87578);box-shadow:0 25px 80px rgba(133,73,79,.22),inset 0 0 0 18px rgba(255,255,255,.24);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#71464a;transition:background .18s,transform .18s,box-shadow .18s}.pulse-orb span{font-size:5rem;line-height:1;animation:gameIconBeat 1.5s infinite}.pulse-orb b{margin-top:1rem}.pulse-orb.ready{background:radial-gradient(circle,#fff8d5,#ffd36d 50%,#dd8c53);transform:scale(1.045);box-shadow:0 0 0 16px rgba(255,203,82,.18),0 25px 90px rgba(190,113,40,.28)}.pulse-orb.ready span{animation:rapidBeat .42s infinite}@keyframes rapidBeat{50%{transform:scale(1.22)}}.pulse-orb.too-soon{background:radial-gradient(circle,#f4f5f7,#c8ccd4 65%,#858c9b)}
.mood-lab{--mood-a:#b96f79;--mood-b:#f7d9d6;max-width:1180px;margin:0 auto;padding:0 2rem;position:relative}.mood-lab[data-theme="lavender"]{--mood-a:#77649b;--mood-b:#e7ddfa}.mood-lab[data-theme="sky"]{--mood-a:#4f819f;--mood-b:#d8eef8}.mood-lab[data-theme="sunset"]{--mood-a:#bd7048;--mood-b:#ffe1c9}.mood-lab[data-theme="mint"]{--mood-a:#4e8872;--mood-b:#d9f1e7}.mood-lab[data-theme="night"]{--mood-a:#5d6487;--mood-b:#d9dcf2}.mood-ambient{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:-1;border-radius:36px}.mood-ambient i{position:absolute;color:color-mix(in srgb,var(--mood-a) 34%,transparent);font-style:normal;animation:moodDrift ease-in-out infinite alternate}@keyframes moodDrift{to{transform:translate(18px,-24px) rotate(18deg);opacity:.28}}.mood-picker{padding:2rem 0}.mood-grid-interactive{grid-template-columns:repeat(4,1fr);padding:0}.mood-grid-interactive .mood-card{width:100%;text-align:left;border-radius:22px;border:1px solid var(--line);background:rgba(255,255,255,.76);transition:transform .25s,border-color .25s,background .25s}.mood-grid-interactive .mood-card:hover,.mood-grid-interactive .mood-card.active{transform:translateY(-6px);border-color:var(--mood-a);background:color-mix(in srgb,var(--mood-b) 42%,white)}.mood-grid-interactive .mood-card>span{color:var(--mood-a)}.mood-grid-interactive .mood-card h3{font-size:1.2rem;margin:.5rem 0}.mood-grid-interactive .mood-card small{display:block;color:var(--muted);line-height:1.5}.mood-care-panel{margin:2rem 0;padding:3rem;border-radius:34px;background:linear-gradient(135deg,color-mix(in srgb,var(--mood-b) 78%,white),#fff 65%);display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;border:1px solid color-mix(in srgb,var(--mood-a) 18%,transparent);box-shadow:0 24px 70px color-mix(in srgb,var(--mood-a) 12%,transparent)}.mood-care-panel.mood-enter{animation:moodPanelIn .55s ease both}@keyframes moodPanelIn{from{opacity:.35;transform:translateY(12px)}}.mood-care-panel .mood-big-icon{display:block;font-size:4.5rem;color:var(--mood-a);animation:gameIconBeat 2.4s infinite}.mood-care-panel .eyebrow{color:var(--mood-a)}.mood-care-panel h2{font-size:clamp(2rem,4vw,3.3rem)}.mood-main-text{white-space:pre-line;font-family:var(--serif);font-size:1.15rem;line-height:2;color:var(--brown-2)}.mood-action-card{margin-top:1.5rem;padding:1.2rem 1.4rem;border-left:4px solid var(--mood-a);background:rgba(255,255,255,.65)}.mood-action-card span{font-size:.72rem;color:var(--mood-a);letter-spacing:.1em}.mood-action-card p{margin:.35rem 0 0}.breathing-card{text-align:center;padding:2rem;border-radius:28px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.8)}.breathing-orb{width:170px;height:170px;margin:1rem auto 1.4rem;border-radius:50%;position:relative;display:grid;place-items:center}.breathing-orb i{position:absolute;inset:22px;border-radius:50%;background:radial-gradient(circle,#fff,var(--mood-b));box-shadow:0 0 0 14px color-mix(in srgb,var(--mood-a) 10%,transparent),0 18px 45px color-mix(in srgb,var(--mood-a) 18%,transparent);transition:transform 4s ease-in-out}.breathing-orb b{position:relative;color:var(--mood-a)}.breathing-card.is-breathing .breathing-orb i{transform:scale(1.35)}.breathing-card.phase-hold .breathing-orb i{transition-duration:2s;transform:scale(1.35)}.breathing-card.phase-exhale .breathing-orb i{transition-duration:6s;transform:scale(.82)}.mood-message-form{margin:2rem 0 5rem;padding:2.5rem;border-radius:28px;background:var(--brown);color:#fff;display:grid;grid-template-columns:.8fr 1fr auto;gap:1.5rem;align-items:end}.mood-message-form .eyebrow{color:#e8b9b6}.mood-message-form p{color:rgba(255,255,255,.68)}.mood-message-form label{font-size:.8rem}.mood-message-form textarea{margin-top:.4rem}.mood-message-form .button{margin-bottom:.05rem}
.instant-quiz .quiz-question label{transition:transform .18s,border-color .18s,background .18s}.instant-quiz .quiz-question label.is-selected{transform:translateX(7px);border-color:var(--rose);background:#fff5f3}.quiz-result>b{display:block;color:var(--rose-dark);margin-top:.6rem}
@media(max-width:980px){.game-grid-rich{grid-template-columns:1fr 1fr}.mood-grid-interactive{grid-template-columns:repeat(3,1fr)}.mood-care-panel{grid-template-columns:1fr}.mood-message-form{grid-template-columns:1fr}.memory-board{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.mailbox-hero,.mail-drop,.points-dashboard{grid-template-columns:1fr;text-align:center;padding:2rem}.mailbox-scene{margin:auto;width:260px}.points-orb{margin:auto}.mood-grid-interactive{grid-template-columns:1fr 1fr}.mood-care-panel{padding:2rem}.live-game-hud{gap:.5rem}.live-game-hud>div{padding:.75rem .4rem}.live-game-hud strong{font-size:1.45rem}.memory-board{gap:.55rem}.reward-card{grid-template-columns:65px 1fr}.reward-emoji{width:58px;height:58px}}
@media(max-width:520px){.letter-experience,.heart-game-v2,.memory-game,.pulse-game,.mood-lab,.sweet-rewards{padding-left:1rem;padding-right:1rem}.game-grid-rich,.mood-grid-interactive{grid-template-columns:1fr}.mailbox-hero{margin-left:1rem;margin-right:1rem}.letter-opening-stage{min-height:470px;padding:1.5rem}.opening-envelope{width:100%;padding:1rem}.opening-stamp{width:46px;height:52px;right:14px;top:14px}.mail-drop{margin-left:1rem;margin-right:1rem}.mood-care-panel{padding:1.5rem}.mood-message-form{padding:1.5rem}.memory-board{grid-template-columns:repeat(3,1fr)}.memory-card-front{font-size:1.8rem}.memory-card-back small{font-size:.52rem}.heart-game-v2 .heart-field{height:460px}.live-heart-target{width:52px;height:52px}.points-dashboard{margin-left:1rem;margin-right:1rem}.reward-card{grid-template-columns:1fr;text-align:center}.reward-emoji{margin:auto}}

/* v1.3.0 · 丰富的「我眼中的你」、旅程时间线与上传进度 */
.journey-overview{max-width:1180px;margin:0 auto 5rem;padding:2.4rem 2.7rem;border:1px solid var(--line);border-radius:30px;background:linear-gradient(135deg,rgba(255,253,249,.98),rgba(240,226,216,.72));display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center;overflow:hidden;position:relative}.journey-overview:after{content:'∞';position:absolute;right:-1rem;bottom:-4.8rem;font-family:Georgia,serif;font-size:13rem;color:rgba(184,120,120,.08);line-height:1}.journey-overview h2{font-size:clamp(1.9rem,3.5vw,3rem)}.journey-overview p{color:var(--muted);max-width:620px}.journey-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;position:relative;z-index:1}.journey-metrics>div{min-height:130px;padding:1.2rem;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid rgba(92,65,54,.1);display:flex;flex-direction:column;justify-content:center;text-align:center}.journey-metrics strong{font-family:var(--serif);font-size:2rem;font-weight:500;color:var(--rose-dark)}.journey-metrics span{font-size:.72rem;color:var(--muted)}
.journey-map{max-width:1180px;margin:0 auto;padding:0 2rem 4rem;position:relative}.journey-route{position:absolute;left:50%;top:4rem;bottom:8rem;width:4px;transform:translateX(-50%);background:linear-gradient(to bottom,rgba(184,120,120,.08),rgba(184,120,120,.55),rgba(184,120,120,.08));border-radius:99px;overflow:hidden}.journey-route span{display:block;width:100%;height:38%;background:linear-gradient(to bottom,transparent,#fff,transparent);animation:routeGlow 5s linear infinite}.journey-year{position:relative;z-index:3;width:130px;margin:4rem auto 2.5rem;padding:.65rem 1rem;border-radius:999px;background:var(--brown);color:#fff;text-align:center;box-shadow:0 12px 30px rgba(78,57,50,.18)}.journey-year span{display:block;font-family:Georgia,serif;font-size:1.2rem}.journey-year small{display:block;font-size:.62rem;opacity:.68;letter-spacing:.12em}.journey-stop{display:grid;grid-template-columns:minmax(0,1fr) 86px minmax(0,1.25fr);gap:1.2rem;align-items:center;margin:0 0 5.2rem;position:relative;z-index:2}.journey-stop.is-reverse{grid-template-columns:minmax(0,1.25fr) 86px minmax(0,1fr)}.journey-marker{grid-column:2;grid-row:1;justify-self:center;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:6px solid rgba(255,255,255,.78);box-shadow:0 0 0 2px var(--journey-accent,#b87878),0 12px 28px rgba(78,57,50,.16);position:relative}.journey-marker span{font-size:1.5rem}.journey-marker small{position:absolute;right:-9px;bottom:-7px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--brown);color:#fff;font-size:.58rem}.journey-date-card{grid-column:1;grid-row:1;justify-self:end;text-align:right;padding:1.1rem 1.3rem;border-radius:18px;background:rgba(255,255,255,.68);border:1px solid var(--line);max-width:230px}.journey-date-card strong{display:block;font-family:Georgia,serif;font-size:1.65rem;color:var(--journey-accent,#b87878)}.journey-date-card span,.journey-date-card small{display:block;font-size:.72rem;color:var(--muted)}.journey-memory-card{grid-column:3;grid-row:1;background:var(--paper);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 22px 60px rgba(82,56,46,.1);position:relative}.journey-memory-card:before{content:'';position:absolute;inset:0 0 auto;height:5px;background:var(--journey-accent,#b87878)}.journey-stop.is-reverse .journey-date-card{grid-column:3;justify-self:start;text-align:left}.journey-stop.is-reverse .journey-memory-card{grid-column:1}.journey-memory-card figure{margin:0;padding:1rem 1rem 0;position:relative}.journey-memory-card figure img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:18px}.journey-memory-card figcaption{position:absolute;left:1.8rem;bottom:.8rem;padding:.25rem .55rem;border-radius:999px;background:rgba(46,31,27,.72);color:#fff;font-size:.62rem}.journey-memory-copy{padding:1.8rem 2rem 2rem}.journey-card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;font-size:.72rem;color:var(--muted)}.journey-card-top b{padding:.25rem .55rem;border-radius:999px;background:var(--journey-soft,rgba(184,120,120,.13));color:var(--journey-accent,#8c5557);font-size:.65rem}.journey-memory-copy h2{font-size:clamp(1.55rem,2.4vw,2.25rem)}.journey-story p{color:var(--brown-2);line-height:1.9}.journey-stop.is-highlight .journey-memory-card{box-shadow:0 26px 75px color-mix(in srgb,var(--journey-accent,#b87878) 20%,transparent);transform:scale(1.018)}.journey-theme-rose{--journey-accent:#b87878;--journey-soft:#f4dddd}.journey-theme-lavender{--journey-accent:#8d79a8;--journey-soft:#eee8f5}.journey-theme-sky{--journey-accent:#6994aa;--journey-soft:#e1eff5}.journey-theme-sunset{--journey-accent:#c68058;--journey-soft:#f7e7da}.journey-theme-mint{--journey-accent:#668f82;--journey-soft:#e2f0eb}.journey-theme-night{--journey-accent:#5b607f;--journey-soft:#e5e7f0}.journey-future{max-width:540px;margin:1rem auto 0;display:flex;align-items:center;gap:1.4rem;padding:1.3rem 1.6rem;border:1px dashed rgba(184,120,120,.5);border-radius:22px;background:rgba(255,255,255,.45);position:relative;z-index:2}.journey-future>span{font-family:Georgia,serif;font-size:3rem;color:var(--rose)}.journey-future strong{font-family:var(--serif);font-size:1.25rem}.journey-future p{margin:0;color:var(--muted);font-size:.85rem}@keyframes routeGlow{from{transform:translateY(-100%)}to{transform:translateY(320%)}}
.eyes-portrait{max-width:1180px;margin:0 auto 4.5rem;padding:3rem;border-radius:34px;background:linear-gradient(135deg,#4e3932,#6d4e46);color:#fff;display:grid;grid-template-columns:.82fr 1.18fr;gap:4rem;align-items:center;position:relative;overflow:hidden}.eyes-portrait:before,.eyes-portrait:after{content:'';position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%}.eyes-portrait:before{width:460px;height:460px;left:-170px;top:-180px}.eyes-portrait:after{width:320px;height:320px;right:-110px;bottom:-170px}.eyes-orbit{width:min(380px,100%);aspect-ratio:1;position:relative;margin:auto;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:grid;place-items:center;animation:orbitBreathe 6s ease-in-out infinite}.eyes-orbit:before,.eyes-orbit:after{content:'';position:absolute;border:1px dashed rgba(255,255,255,.14);border-radius:50%}.eyes-orbit:before{inset:12%}.eyes-orbit:after{inset:27%}.eyes-center{width:145px;height:145px;border-radius:50%;display:grid;place-items:center;align-content:center;background:rgba(255,253,249,.96);color:var(--brown);box-shadow:0 20px 60px rgba(0,0,0,.18);position:relative;z-index:2}.eyes-center small,.eyes-center span{font-size:.62rem;color:var(--muted);letter-spacing:.12em}.eyes-center strong{font-family:var(--serif);font-size:2rem;font-weight:500}.orbit-heart{position:absolute;top:2%;left:50%;font-size:2rem;color:#f2bcbc}.eyes-orbit>i{position:absolute;font-style:normal;font-size:.68rem;padding:.35rem .65rem;border-radius:999px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);white-space:nowrap}.eyes-orbit>i:nth-of-type(1){top:17%;right:-3%}.eyes-orbit>i:nth-of-type(2){right:-7%;bottom:22%}.eyes-orbit>i:nth-of-type(3){left:-5%;bottom:17%}.eyes-orbit>i:nth-of-type(4){left:-9%;top:26%}.eyes-manifesto{position:relative;z-index:2}.eyes-manifesto .eyebrow{color:#dfb3b3}.eyes-manifesto h2{font-size:clamp(1.9rem,3.8vw,3.2rem);line-height:1.55}.eyes-manifesto blockquote{margin:2rem 0;padding:1.2rem 1.4rem;border-left:2px solid #e0a9aa;background:rgba(255,255,255,.08);border-radius:0 18px 18px 0}.eyes-manifesto blockquote span{font-size:1.4rem;color:#efbabb}.eyes-manifesto blockquote p{font-family:var(--serif);font-size:1.3rem;margin:.15rem 0}.eyes-manifesto blockquote small{opacity:.68}.eyes-counters{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.eyes-counters a{padding:.9rem;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.05);transition:.25s ease}.eyes-counters a:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}.eyes-counters strong{display:block;font-family:Georgia,serif;font-size:1.45rem}.eyes-counters span{font-size:.66rem;opacity:.7}.eyes-chapter-nav{max-width:1000px;margin:0 auto 5rem;padding:0 2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.eyes-chapter-nav a{display:grid;grid-template-columns:auto 1fr;gap:.15rem .8rem;align-items:center;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.58);transition:.25s ease}.eyes-chapter-nav a:hover{transform:translateY(-3px);border-color:var(--rose)}.eyes-chapter-nav span{grid-row:span 2;font-size:1.5rem;color:var(--rose-dark)}.eyes-chapter-nav small{font-size:.58rem;letter-spacing:.12em;color:var(--muted)}.eyes-chapter-nav strong{font-family:var(--serif);font-weight:500}.eyes-chapter{max-width:1180px;margin:0 auto 7rem;padding:0 2rem;scroll-margin-top:100px}.eyes-chapter-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2rem;padding-bottom:1.4rem;border-bottom:1px solid var(--line)}.eyes-chapter-heading>div{position:relative;padding-left:4rem}.chapter-symbol{position:absolute;left:0;top:.1rem;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--chapter-soft,#f2e3df);color:var(--chapter-accent,#8c5557);font-size:1.4rem}.eyes-chapter-heading h2{font-size:clamp(1.8rem,3vw,2.8rem);margin-bottom:.15rem}.eyes-chapter-heading p{margin:0;color:var(--muted)}.eyes-chapter-heading>strong{font-family:Georgia,serif;font-size:2.2rem;color:var(--chapter-accent,#8c5557);font-weight:400;text-align:right}.eyes-chapter-heading>strong small{display:block;font-family:var(--sans);font-size:.65rem;color:var(--muted);font-weight:400}.eyes-chapter-rose{--chapter-accent:#a96569;--chapter-soft:#f5e2e1}.eyes-chapter-lavender{--chapter-accent:#806d9d;--chapter-soft:#ece7f4}.eyes-chapter-mint{--chapter-accent:#5f857a;--chapter-soft:#e2efeb}.observation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;align-items:start}.observation-card{--card-x:0deg;--card-y:0deg;min-height:285px;padding:1.5rem;border:1px solid rgba(92,65,54,.11);border-radius:24px;background:var(--observation-bg,#fff);box-shadow:0 15px 42px rgba(79,52,43,.08);display:flex;flex-direction:column;position:relative;overflow:hidden;transform:perspective(900px) rotateX(var(--card-y)) rotateY(var(--card-x));transition:transform .18s ease,box-shadow .25s ease}.observation-card:before{content:'';position:absolute;width:150px;height:150px;border-radius:50%;right:-60px;top:-75px;background:var(--observation-deco,rgba(184,120,120,.16))}.observation-card:hover{box-shadow:0 22px 58px rgba(79,52,43,.14)}.observation-card.is-featured{grid-column:span 2;min-height:330px}.observation-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;align-items:center;position:relative;z-index:1}.observation-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.72);font-size:1.2rem}.observation-card-head small{color:var(--observation-accent,#8c5557);font-size:.68rem;letter-spacing:.08em}.observation-card-head b{font-family:Georgia,serif;font-size:.75rem;color:var(--muted);font-weight:400}.observation-card h3{font-size:1.45rem;margin:1.25rem 0 .8rem;position:relative;z-index:1}.observation-copy{position:relative;z-index:1;color:var(--brown-2);font-size:.9rem}.observation-copy p:last-child{margin-bottom:0}.observation-footer{margin-top:auto;padding-top:1.4rem;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.68rem;position:relative;z-index:1}.observation-footer i{font-style:normal;font-size:1.2rem;color:var(--observation-accent,#8c5557)}.observation-theme-rose{--observation-bg:#fff8f7;--observation-accent:#a45f65;--observation-deco:rgba(190,112,118,.15)}.observation-theme-lavender{--observation-bg:#faf8ff;--observation-accent:#806a9e;--observation-deco:rgba(128,106,158,.15)}.observation-theme-sky{--observation-bg:#f6fbfd;--observation-accent:#5d879a;--observation-deco:rgba(93,135,154,.14)}.observation-theme-sunset{--observation-bg:#fff9f3;--observation-accent:#b8734c;--observation-deco:rgba(184,115,76,.15)}.observation-theme-mint{--observation-bg:#f6fcf9;--observation-accent:#587f73;--observation-deco:rgba(88,127,115,.15)}.observation-theme-night{--observation-bg:#f5f6fb;--observation-accent:#575e83;--observation-deco:rgba(87,94,131,.15)}.chapter-empty{padding:3rem;border:1px dashed var(--line);border-radius:22px;text-align:center;color:var(--muted)}.chapter-empty span{font-size:2rem;color:var(--chapter-accent)}.eyes-ending{max-width:850px;margin:0 auto 2rem;padding:3.2rem 2rem;text-align:center;border-top:1px solid var(--line)}.eyes-ending>span{font-family:Georgia,serif;font-size:5rem;color:var(--rose);line-height:.6}.eyes-ending p{font-family:var(--serif);font-size:clamp(1.35rem,2.8vw,2rem);line-height:1.8}.eyes-ending small{color:var(--muted);letter-spacing:.1em}@keyframes orbitBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
.upload-progress-overlay[hidden]{display:none!important}.upload-progress-overlay{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:1.5rem;background:rgba(52,37,32,.72);backdrop-filter:blur(12px)}.upload-progress-dialog{width:min(520px,100%);padding:2.3rem;border-radius:28px;background:var(--paper);box-shadow:0 30px 100px rgba(0,0,0,.25);text-align:center;position:relative;overflow:hidden}.upload-progress-dialog:before{content:'';position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#b87878,#d5a087,#8d79a8)}.upload-progress-dialog h2{font-size:1.8rem;margin-bottom:.4rem}.upload-progress-dialog p{color:var(--muted);font-size:.86rem}.upload-spinner{width:72px;height:72px;margin:0 auto 1.2rem;position:relative}.upload-spinner i{position:absolute;inset:0;border:2px solid rgba(184,120,120,.2);border-top-color:var(--rose);border-radius:50%;animation:uploadSpin 1.25s linear infinite}.upload-spinner i:nth-child(2){inset:10px;animation-direction:reverse;animation-duration:1.7s;border-top-color:#8d79a8}.upload-spinner i:nth-child(3){inset:21px;animation-duration:.9s;border-top-color:#c68058}.upload-progress-track{height:12px;margin:1.5rem 0 .75rem;border-radius:999px;background:#eee5df;overflow:hidden}.upload-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b87878,#d39b83,#8d79a8);transition:width .2s ease;position:relative}.upload-progress-track span:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:progressShine 1.3s ease-in-out infinite}.upload-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem}.upload-progress-meta strong{font-family:Georgia,serif;font-size:1.3rem;color:var(--rose-dark)}.upload-progress-meta small{color:var(--muted);text-align:right}.upload-progress-overlay.is-processing .upload-progress-track span{width:100%!important;animation:processingPulse 1.25s ease-in-out infinite}.upload-progress-overlay.is-complete .upload-spinner i{animation-duration:.55s}.upload-progress-overlay.is-complete .upload-progress-dialog:before{background:#668f82}.upload-progress-overlay.is-error .upload-spinner i{animation-play-state:paused;border-color:#dca9a9}.upload-progress-overlay.is-error .upload-progress-dialog:before{background:#a14646}.upload-progress-close{margin-top:1.4rem}.button[disabled]{opacity:.55;cursor:not-allowed;transform:none!important}@keyframes uploadSpin{to{transform:rotate(360deg)}}@keyframes progressShine{to{transform:translateX(100%)}}@keyframes processingPulse{50%{opacity:.65}}
.timeline-admin-list .date-badge{display:flex;flex-direction:column;gap:.2rem;font-size:1.6rem}.timeline-admin-list .date-badge small{font-family:var(--sans);font-size:.62rem;color:var(--muted)}.notes-admin-list .date-badge{font-size:1.7rem}
@media(max-width:900px){.journey-overview,.eyes-portrait{grid-template-columns:1fr}.eyes-orbit{max-width:340px}.observation-grid{grid-template-columns:1fr 1fr}.journey-map{padding-left:1rem;padding-right:1rem}.journey-route{left:54px}.journey-year{margin-left:0}.journey-stop,.journey-stop.is-reverse{grid-template-columns:76px 1fr;gap:1rem}.journey-marker{grid-column:1;grid-row:1/3}.journey-date-card,.journey-stop.is-reverse .journey-date-card{grid-column:2;grid-row:1;justify-self:stretch;text-align:left;max-width:none}.journey-memory-card,.journey-stop.is-reverse .journey-memory-card{grid-column:2;grid-row:2}.journey-stop.is-highlight .journey-memory-card{transform:none}}
@media(max-width:640px){.journey-overview,.eyes-portrait{margin-left:1rem;margin-right:1rem;padding:1.5rem;border-radius:24px}.journey-metrics{grid-template-columns:1fr}.journey-metrics>div{min-height:90px}.eyes-orbit{width:280px}.eyes-orbit>i{font-size:.58rem}.eyes-chapter-nav{grid-template-columns:1fr;padding:0 1rem}.eyes-chapter{padding:0 1rem}.eyes-chapter-heading{align-items:flex-start}.eyes-chapter-heading>strong{font-size:1.6rem}.observation-grid{grid-template-columns:1fr}.observation-card.is-featured{grid-column:auto}.journey-stop,.journey-stop.is-reverse{grid-template-columns:58px 1fr}.journey-marker{width:52px;height:52px;border-width:4px}.journey-route{left:38px}.journey-year{margin-left:0;width:96px}.journey-memory-copy{padding:1.35rem}.journey-memory-card figure{padding:.75rem .75rem 0}.upload-progress-dialog{padding:1.8rem 1.2rem}.upload-progress-meta{align-items:flex-start;flex-direction:column}.upload-progress-meta small{text-align:left}.eyes-counters{grid-template-columns:1fr}.eyes-portrait:before,.eyes-portrait:after{display:none}}
@media(prefers-reduced-motion:reduce){.journey-route span,.eyes-orbit,.upload-spinner i,.upload-progress-track span:after{animation:none!important}.observation-card{transform:none!important}}

/* v1.4.0 · 小纸条、AI心情与新游戏 */
.mail-drop{position:relative;overflow:hidden}.mail-drop:before{content:'';position:absolute;inset:auto -8% -55% 38%;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 68%);pointer-events:none}.mail-drop-copy,.mail-drop form{position:relative;z-index:2}.mail-drop form{isolation:isolate}.mail-drop input,.mail-drop textarea{color:var(--brown)!important;caret-color:var(--rose-dark);background:rgba(255,255,255,.96)!important;position:relative;z-index:3;pointer-events:auto;user-select:text;-webkit-user-select:text}.mail-drop input::placeholder,.mail-drop textarea::placeholder{color:#9e8b83}.mail-drop input:focus,.mail-drop textarea:focus{outline:3px solid rgba(255,255,255,.26);border-color:#f3cbc9}.mail-drop-status{min-height:1.4em;margin:.8rem 0 0;color:rgba(255,255,255,.9);font-size:.8rem}.mail-drop-illustration{height:92px;position:relative;margin-top:1rem}.mail-drop-illustration>span{font-size:3rem;display:inline-block;animation:mailFloat 3.2s ease-in-out infinite}.mail-drop-illustration i{position:absolute;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.65);left:58px;top:35px;animation:mailSpark 2.1s ease-in-out infinite}.mail-drop-illustration i:nth-child(3){left:92px;top:12px;animation-delay:.6s}.mail-drop-illustration i:nth-child(4){left:122px;top:48px;animation-delay:1.1s}.mail-delivered-seal{position:absolute;inset:0;display:grid;place-content:center;gap:.45rem;background:rgba(255,247,244,.97);color:var(--rose-dark);opacity:0;visibility:hidden;transform:scale(.88);transition:.35s ease;border-radius:20px;z-index:10}.mail-delivered-seal span{width:62px;height:62px;border:2px solid currentColor;border-radius:50%;display:grid;place-items:center;margin:auto;font-size:1.8rem}.mail-drop form.is-sending .button{position:relative;color:transparent}.mail-drop form.is-sending .button:after{content:'♡';position:absolute;color:#fff;left:50%;top:50%;transform:translate(-50%,-50%);animation:mailSending .75s ease-in-out infinite}.mail-drop form.is-delivered .mail-delivered-seal{opacity:1;visibility:visible;transform:scale(1)}@keyframes mailFloat{50%{transform:translateY(-7px) rotate(-3deg)}}@keyframes mailSpark{50%{transform:scale(1.8);opacity:.2}}@keyframes mailSending{50%{transform:translate(-50%,-50%) scale(1.35)}}

.game-category-pills{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.game-category-pills a{padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;font-size:.75rem;background:rgba(255,255,255,.72)}.game-category-section{max-width:1180px;margin:0 auto 5rem;padding:0 2rem;scroll-margin-top:100px}.game-category-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.5rem;padding-bottom:1.1rem;border-bottom:1px solid var(--line)}.game-category-heading>span{font-family:Georgia,serif;font-size:4rem;color:rgba(164,95,101,.2);line-height:1}.game-category-heading p{margin:.3rem 0 0;color:var(--muted)}.game-card-quest{background:linear-gradient(145deg,#f8f4ff,#fff8fb)}.game-card-daily{background:linear-gradient(145deg,#fff9ee,#fff)}

.mood-lab-ai{position:relative}.mood-creative-tool{padding:1.5rem;border-radius:25px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.8);min-height:330px;display:flex;align-items:center}.mood-tool-stage{text-align:center;width:100%;position:relative;overflow:hidden;padding:1.4rem}.mood-tool-stage>span{display:block;font-size:3.4rem;margin-bottom:.7rem;transition:.45s}.mood-tool-stage h3{font-size:1.35rem}.mood-tool-stage p{color:var(--muted);min-height:3em}.mood-creative-tool.is-running .mood-tool-stage>span{animation:moodToolPulse 1.15s ease-in-out infinite}.mood-creative-tool.is-finished{box-shadow:inset 0 0 0 2px rgba(112,151,134,.2)}.mood-creative-tool.is-finished .mood-tool-stage>span{transform:scale(1.18);color:#668f82}.mood-ai-form{max-width:1040px;margin:2rem auto 3rem;padding:2rem;border:1px solid var(--line);border-radius:28px;background:rgba(255,255,255,.8);display:grid;grid-template-columns:.9fr 1.1fr;gap:1.4rem 2rem;position:relative;overflow:hidden}.mood-ai-form:before{content:'';position:absolute;width:240px;height:240px;border-radius:50%;right:-120px;top:-120px;background:var(--mood-soft,#f6e4e2);opacity:.65;pointer-events:none}.mood-ai-form-copy,.mood-ai-form label,.mood-ai-form button,.mood-ai-form-status{position:relative;z-index:1}.mood-ai-form label small{display:block;text-align:right;color:var(--muted);font-size:.68rem}.mood-ai-form .button{grid-column:2}.ai-privacy-note{display:block;margin-top:1rem;font-size:.7rem;color:var(--muted);padding-left:1.3rem;position:relative}.ai-privacy-note:before{content:'⌁';position:absolute;left:0;color:var(--rose-dark)}.mood-ai-status{grid-column:2;min-height:1.4em;margin:0;color:var(--muted);font-size:.78rem}.mood-ai-form.is-thinking .button span:after{content:' · · ·';animation:thinkingDots 1.2s steps(4,end) infinite}.ai-comfort-stage{max-width:1050px;margin:0 auto 5rem;position:relative;border-radius:34px;overflow:hidden;min-height:560px;background:#332a31;color:#fff;box-shadow:0 30px 80px rgba(56,39,43,.2)}.ai-comfort-stage[hidden]{display:none!important}.ai-opening-scene{position:absolute;inset:0;overflow:hidden;opacity:.66}.ai-opening-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,29,36,.15),rgba(35,29,36,.82))}.ai-opening-scene i{position:absolute;font-style:normal;animation:aiSceneFloat 5s ease-in-out infinite;color:rgba(255,255,255,.75)}.ai-scene-sunrise{background:radial-gradient(circle at 50% 80%,#e8a27c,transparent 35%),linear-gradient(#68789e,#e8b18c)}.ai-scene-rainy_window{background:linear-gradient(135deg,#41566b,#687886)}.ai-scene-ocean_wave{background:linear-gradient(#4f7b8c,#294b63)}.ai-scene-moon,.ai-scene-night{background:radial-gradient(circle at 75% 18%,#ede8c9 0 7%,transparent 8%),linear-gradient(#20243f,#4c5271)}.ai-scene-firefly,.ai-scene-garden{background:linear-gradient(#29443d,#526e57)}.ai-scene-aurora{background:linear-gradient(135deg,#2b3858,#47726a,#5e4770)}.ai-scene-snowfall{background:linear-gradient(#607488,#9aabb4)}.ai-scene-polaroid,.ai-scene-paper_plane{background:linear-gradient(145deg,#986f70,#d5a28e)}.ai-scene-ribbon,.ai-scene-heartbeat,.ai-scene-star_letter{background:linear-gradient(145deg,#7d4e61,#b77878)}.ai-scene-bubble{background:linear-gradient(#587b8f,#83a7b0)}.ai-scene-lantern,.ai-scene-music_box{background:linear-gradient(#473445,#8d604d)}.ai-comfort-paper{position:relative;z-index:2;margin:10rem auto 3rem;width:min(780px,calc(100% - 2rem));padding:2.7rem;background:rgba(255,250,247,.95);color:var(--brown);border-radius:28px;box-shadow:0 22px 70px rgba(0,0,0,.25)}.ai-comfort-paper h2{font-size:clamp(2rem,4vw,3.2rem)}.ai-opening-lines p{opacity:0;transform:translateY(8px);animation:aiLineIn .7s ease forwards;color:var(--rose-dark);font-family:var(--serif);font-size:1.08rem}.ai-comfort-copy{margin:1.5rem 0;line-height:1.85}.ai-small-action{padding:1.25rem 1.4rem;border-left:3px solid var(--rose);background:var(--rose-soft);border-radius:0 15px 15px 0}.ai-small-action span{font-size:.7rem;letter-spacing:.1em;color:var(--rose-dark)}.ai-small-action p{margin:.4rem 0 0}.ai-interaction{margin-top:1.5rem;padding-top:1.5rem;border-top:1px dashed var(--line)}.ai-interaction h3{font-size:1.1rem}.ai-interaction textarea{width:100%;margin-bottom:.8rem}.ai-interaction textarea.is-released{animation:releaseNote .65s ease forwards}.ai-hold-button{--hold:0%;position:relative;width:100%;min-height:68px;border:1px solid var(--rose);border-radius:18px;background:linear-gradient(90deg,var(--rose-soft) var(--hold),#fff var(--hold));color:var(--rose-dark);font-weight:600}.ai-tap-board{height:220px;position:relative;border:1px dashed var(--line);border-radius:20px;background:var(--cream)}.ai-tap-board button{position:absolute;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:var(--rose-dark);font-size:1.5rem;box-shadow:0 8px 22px rgba(75,50,46,.12);transition:.3s}.ai-tap-board button.caught{transform:scale(1.7);opacity:0}.ai-mini-choices{display:grid;gap:.7rem}.ai-mini-choices button{padding:.9rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left}.ai-mini-choices button.selected{border-color:#668f82;background:#edf6f2}.ai-interaction-done{color:#5c7e73;font-weight:600;animation:aiLineIn .5s ease}.ai-follow-up{font-family:var(--serif);font-size:1.05rem;color:var(--rose-dark);margin:1.4rem 0}.ai-comfort-stage.is-entering .ai-comfort-paper{animation:comfortPaperIn .85s cubic-bezier(.22,.8,.28,1)}

.daily-mission{max-width:1050px;margin:0 auto 5rem;padding:0 2rem}.daily-mission>header{text-align:center;margin-bottom:2rem}.daily-mission>header small{color:var(--muted)}.mission-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.mission-card{border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#fff;transition:.3s}.mission-card:hover{transform:translateY(-5px)}.mission-card button{width:100%;height:100%;min-height:330px;border:0;background:transparent;padding:1.7rem;text-align:left;display:flex;flex-direction:column;align-items:flex-start}.mission-card button>span{font-size:3rem}.mission-card small{margin-left:auto;padding:.35rem .6rem;border-radius:999px;background:rgba(255,255,255,.7)}.mission-card h2{margin-top:1.5rem}.mission-card p{color:var(--muted)}.mission-card b{margin-top:auto;color:var(--rose-dark)}.mission-card.is-selected{box-shadow:inset 0 0 0 2px var(--rose);transform:translateY(-4px)}.mission-theme-rose{background:#fff4f4}.mission-theme-lavender{background:#f7f3ff}.mission-theme-sky{background:#f1f9fd}.mission-theme-sunset{background:#fff5e9}.mission-theme-mint{background:#f1faf6}.mission-theme-night{background:#f1f2f8}.mission-result{text-align:center;min-height:1.5em;margin-top:1.3rem;color:var(--rose-dark)}

.quest-game,.rhythm-game,.sweetspot-game{max-width:1050px;margin:0 auto 5rem;padding:0 2rem}.quest-map{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin-bottom:2rem}.quest-map-line{position:absolute;left:8%;right:8%;top:25px;height:3px;background:var(--line);z-index:0}.quest-map-line i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--rose),#8d79a8);opacity:.35}.quest-map-node{position:relative;z-index:1;text-align:center}.quest-map-node>span{width:50px;height:50px;border-radius:50%;margin:auto;display:grid;place-items:center;background:var(--paper);border:2px solid var(--line);font-family:Georgia,serif}.quest-map-node small{display:block;margin-top:.45rem;color:var(--muted)}.quest-map-node.is-cleared>span{background:var(--rose);color:#fff;border-color:var(--rose)}.quest-stage{min-height:480px;border-radius:28px;background:linear-gradient(145deg,#342d42,#5f536d);color:#fff;display:grid;place-items:center;padding:2rem;position:relative;overflow:hidden}.quest-intro,.quest-transition,.quest-level{text-align:center;width:min(760px,100%)}.quest-intro>span,.quest-transition>span{font-size:4rem}.quest-field{height:300px;position:relative;margin-top:1rem;border:1px solid rgba(255,255,255,.18);border-radius:22px;background:rgba(255,255,255,.06)}.quest-field button{position:absolute;width:48px;height:48px;border:0;border-radius:50%;background:#fff;color:#ddaa54;font-size:1.45rem;box-shadow:0 0 24px rgba(255,226,153,.35)}.quest-field button.caught{animation:questCaught .35s forwards}.quest-field button.cloud{color:#697488}.quest-field button.heart{color:#c87983}.quest-sequence{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:2rem auto;max-width:560px}.quest-sequence button,.rhythm-pads button{aspect-ratio:1;border:1px solid rgba(255,255,255,.2);border-radius:24px;background:rgba(255,255,255,.08);color:#fff;font-size:2rem;transition:.2s}.quest-sequence button.active,.quest-sequence button.correct{background:#f0c982;color:#5a4350;transform:scale(1.08);box-shadow:0 0 35px rgba(242,210,151,.55)}.lighthouse-heart{--light:0%;width:160px;height:160px;border:0;border-radius:50%;font-size:4rem;color:#fff;background:radial-gradient(circle,rgba(255,230,172,.95) var(--light),rgba(255,255,255,.08) calc(var(--light) + 5%));box-shadow:0 0 calc(var(--light) * .6) rgba(255,219,146,.8)}.promise-choices{display:grid;gap:.8rem;max-width:560px;margin:1.5rem auto}.promise-choices button{padding:1rem;border:1px solid rgba(255,255,255,.25);border-radius:15px;background:rgba(255,255,255,.08);color:#fff}.promise-choices button:hover,.promise-choices button.selected{background:#fff;color:#6c5668}.rhythm-stage{text-align:center;padding:2rem;border-radius:28px;background:#302b3d;color:#fff}.rhythm-pads{max-width:680px;margin:0 auto 1.5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.rhythm-pads button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem}.rhythm-pads button span{font-size:2.4rem}.rhythm-pads button small{font-size:.68rem}.rhythm-pads button.active{background:#f2c987;color:#4c3d50;transform:translateY(-5px);box-shadow:0 0 32px rgba(242,201,135,.45)}.sweetspot-track{height:120px;margin:3rem 0 1.5rem;border-radius:60px;background:linear-gradient(90deg,#eee4e0,#f5d4d0 38%,#dc9b9e 50%,#f5d4d0 62%,#eee4e0);position:relative;box-shadow:inset 0 4px 14px rgba(74,49,43,.1)}.sweetspot-zone{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:18%;height:80%;border:2px dashed rgba(255,255,255,.85);border-radius:50%;display:grid;place-items:center;color:#fff;font-size:2.4rem}.sweetspot-marker{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border:0;border-radius:50%;background:#fff;color:var(--rose-dark);box-shadow:0 8px 22px rgba(64,43,42,.22);font-size:1.35rem}.sweetspot-game>p{text-align:center;color:var(--muted)}.sweetspot-game>.button{display:block;margin:1rem auto}

.ai-writer-panel{grid-column:1/-1;padding:1rem 1.1rem;border:1px dashed #cbb5ad;border-radius:16px;background:#fff9f6;display:flex;align-items:center;justify-content:space-between;gap:1rem}.ai-writer-panel p{margin:0;color:var(--muted);font-size:.78rem}.ai-writer-status{min-height:1.3em;color:var(--rose-dark);font-size:.72rem}.ai-writer-panel.is-working .button:after{content:'…'}
@keyframes moodToolPulse{50%{transform:scale(1.12) rotate(4deg)}}@keyframes thinkingDots{0%{opacity:.25}50%{opacity:1}}@keyframes aiSceneFloat{50%{transform:translateY(-18px) scale(1.2);opacity:.25}}@keyframes aiLineIn{to{opacity:1;transform:none}}@keyframes comfortPaperIn{from{opacity:0;transform:translateY(40px) scale(.96)}}@keyframes releaseNote{to{opacity:0;transform:translateY(-35px) rotate(-2deg)}}@keyframes questCaught{to{transform:scale(2);opacity:0}}
@media(max-width:820px){.mood-ai-form{grid-template-columns:1fr}.mood-ai-form .button,.mood-ai-status{grid-column:1}.mission-card-grid{grid-template-columns:1fr}.quest-map-node small{font-size:.58rem}.rhythm-pads{grid-template-columns:1fr 1fr}.game-category-heading>span{font-size:2.8rem}.ai-comfort-paper{margin-top:7rem;padding:1.6rem}.mail-drop-illustration{display:none}}
@media(max-width:520px){.game-category-section,.daily-mission,.quest-game,.rhythm-game,.sweetspot-game{padding:0 1rem}.quest-map-node>span{width:38px;height:38px}.quest-map-line{top:19px}.quest-map-node small{display:none}.quest-stage{padding:1rem;min-height:430px}.quest-sequence{gap:.5rem}.rhythm-stage{padding:1rem}.sweetspot-track{height:90px}.ai-comfort-stage{border-radius:22px}.ai-comfort-paper{width:calc(100% - 1rem);padding:1.25rem}.mood-ai-form{padding:1.25rem}}
@media(prefers-reduced-motion:reduce){.mail-drop-illustration>span,.mail-drop-illustration i,.mood-creative-tool.is-running .mood-tool-stage>span,.ai-opening-scene i,.ai-opening-lines p,.ai-comfort-stage.is-entering .ai-comfort-paper{animation:none!important}}

/* ===== v1.5.0 creative refresh ===== */
.hero-reinvented{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:24px;align-items:center}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.hero-stage{position:relative;min-height:420px}
.hero-slides,.hero-stage{width:100%}
.hero-slide{display:none;position:relative;border-radius:32px;overflow:hidden;box-shadow:0 24px 70px rgba(51,29,53,.18);background:#fff9fb}
.hero-slide.is-active{display:block}
.hero-slide img{width:100%;height:420px;object-fit:cover;display:block}
.hero-slide figcaption{position:absolute;left:18px;right:18px;bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.72);backdrop-filter:blur(10px)}
.hero-slide figcaption strong{font-size:1rem}
.hero-slide figcaption span{font-size:.85rem;color:#785d72}
.hero-slide-dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:8px;z-index:3}
.hero-slide-dots button{width:10px;height:10px;border-radius:999px;border:0;background:rgba(255,255,255,.55);padding:0}
.hero-slide-dots button.active{width:26px;background:#fff}
.hero-floating-card{position:absolute;right:-12px;bottom:-16px;max-width:220px;padding:16px 18px;border-radius:24px;background:rgba(255,248,251,.95);box-shadow:0 18px 40px rgba(78,51,77,.16)}
.hero-floating-card span{display:block;font-size:.75rem;letter-spacing:.18em;color:#9a708e;margin-bottom:8px}
.hero-floating-card p{margin:0;font-size:.94rem;color:#694f65}
.redesigned-grid .message-card{position:relative;overflow:hidden}
.message-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}
.message-card.message-comfort{background:linear-gradient(145deg,#fff8ff,#f3f8ff)}
.message-card.message-flirt{background:linear-gradient(145deg,#fff7fb,#fff2f6)}
.message-card.message-mission{background:linear-gradient(145deg,#fffdf4,#f8f7ff)}
.message-card.message-default{background:linear-gradient(145deg,#fff9f1,#fffaf8)}
.anniversary-mini{border-radius:24px;padding:18px 20px}
.panel-actions{display:flex;gap:12px;flex-wrap:wrap}
.section-nested{margin-top:22px}
.compact-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))!important}
.select-photo-grid{display:grid;gap:12px}
.select-photo-card{position:relative;border:1px solid rgba(121,92,113,.16);border-radius:20px;padding:10px;background:#fff;display:grid;gap:8px;cursor:pointer}
.select-photo-card input{position:absolute;top:10px;right:10px}
.select-photo-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px}
.select-photo-card strong{font-size:.92rem}
.select-photo-card small{color:#8a7086}
.select-photo-card.is-selected,.select-photo-card:has(input:checked){border-color:#ce95be;box-shadow:0 10px 26px rgba(158,102,145,.16)}
.preview-hint{padding:16px 18px;border-radius:18px;background:#fff8fb;color:#7b5d76;margin-top:14px}
.inline-preview-card{margin-top:18px;padding:18px 20px;border-radius:24px;position:relative;overflow:hidden;background:linear-gradient(145deg,#fff7fb,#fff);box-shadow:0 16px 36px rgba(84,48,76,.12)}
.inline-preview-card span{display:block;font-size:.78rem;letter-spacing:.16em;color:#9b7392;margin-bottom:8px}
.inline-preview-card h3{margin:0 0 10px}
.inline-preview-card p{margin:0;color:#71586d;max-width:88%}
.inline-preview-card b{position:absolute;right:18px;bottom:14px;font-size:2rem;opacity:.7}
.inline-preview-card.anniversary-pet,.anniversary-card.anniversary-pet{background:linear-gradient(145deg,#fff9f8,#fff1f1)}
.inline-preview-card.anniversary-travel,.anniversary-card.anniversary-travel{background:linear-gradient(145deg,#f9fbff,#eef7ff)}
.inline-preview-card.anniversary-food,.anniversary-card.anniversary-food{background:linear-gradient(145deg,#fffdf4,#fff4df)}
.inline-preview-card.anniversary-festival,.anniversary-card.anniversary-festival{background:linear-gradient(145deg,#fff7fb,#f6f0ff)}
.inline-preview-card.anniversary-night,.anniversary-card.anniversary-night{background:linear-gradient(145deg,#f3f4ff,#fdfaff)}
.inline-preview-card.anniversary-garden,.anniversary-card.anniversary-garden{background:linear-gradient(145deg,#fbfff6,#fff7fb)}
.rich-anniversary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.anniversary-card .anniversary-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 10px}
.anniversary-card .anniversary-meta b{font-size:1.4rem}
.grouped-admin-gallery{display:grid;gap:20px}
.grouped-admin-section{display:grid;gap:14px}
.wish-board{display:grid;gap:20px}
.wish-board-intro{padding:24px;border-radius:28px;background:linear-gradient(145deg,#fffaf4,#fff8fb)}
.wish-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.wish-column{padding:16px;border-radius:24px;background:#fff;border:1px solid rgba(126,96,121,.12);box-shadow:0 16px 36px rgba(70,42,71,.08)}
.wish-column-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.wish-item{display:grid;grid-template-columns:58px 1fr;gap:14px;padding:14px;border-radius:20px;background:#fff8fb;margin-bottom:12px}
.wish-item:last-child{margin-bottom:0}
.wish-item h2{font-size:1rem;margin:.15rem 0 .45rem}
.wish-item p{margin:0 0 10px;color:#71586a;font-size:.92rem}
.wish-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#fff;font-size:1.6rem;box-shadow:0 10px 22px rgba(89,56,83,.12)}
.wish-progress{height:8px;border-radius:999px;background:rgba(146,104,134,.12);overflow:hidden;margin-bottom:8px}
.wish-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f3b6cc,#d9bdf9)}
.wish-item.wish-done{background:linear-gradient(145deg,#f7fff6,#fcfffb)}
.wish-item.wish-active{background:linear-gradient(145deg,#fff8f0,#fffaf8)}
.wish-item.wish-dream{background:linear-gradient(145deg,#fff7fb,#fbf8ff)}
.egg-page{position:relative;overflow:hidden;padding:48px 28px;border-radius:34px;background:linear-gradient(145deg,#181629,#2e1f48);color:#fff;box-shadow:0 28px 70px rgba(24,18,45,.28)}
.egg-page .eyebrow,.egg-page p,.egg-page .text-link,.egg-page h1{color:#fff}
.big-egg-reveal{position:relative;z-index:2;max-width:720px;margin:0 auto;text-align:center}
.egg-icon{display:inline-grid;place-items:center;width:92px;height:92px;border-radius:999px;background:rgba(255,255,255,.14);font-size:2.6rem;margin-bottom:12px}
.egg-hint-list{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 14px}
.egg-hint-list span{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.12);font-size:.9rem}
.egg-scene-moon{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 28%),linear-gradient(145deg,#151427,#2f2447)}
.egg-scene-meteor{background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.14),transparent 20%),linear-gradient(145deg,#1c1830,#463070)}
.egg-scene-gift{background:linear-gradient(145deg,#402237,#7c4063)}
.egg-scene-record{background:linear-gradient(145deg,#1d233b,#523776)}
.egg-scene-petal{background:linear-gradient(145deg,#533052,#83586d)}
.egg-overlay{position:fixed;inset:0;background:rgba(21,15,28,.68);display:grid;place-items:center;z-index:120;opacity:0;transition:opacity .28s ease;padding:20px}
.egg-overlay.visible{opacity:1}
.egg-overlay-card{max-width:520px;width:min(92vw,520px);padding:26px 24px;border-radius:28px;background:linear-gradient(145deg,#fff7fb,#fff);box-shadow:0 24px 70px rgba(31,20,35,.24);text-align:center;position:relative;overflow:hidden}
.egg-overlay-card h2{margin:.5rem 0 .65rem}
.egg-overlay-card p{color:#6d556a}
.egg-overlay-copy{white-space:pre-wrap;color:#55404f;padding:12px 0 18px}
.egg-overlay-icon{display:inline-grid;place-items:center;width:74px;height:74px;border-radius:999px;background:#fff5fa;font-size:2rem;margin-bottom:8px}
.egg-overlay.egg-scene-record .egg-overlay-card{background:linear-gradient(145deg,#f8f6ff,#fff)}
@media (max-width: 860px){
  .hero-reinvented{grid-template-columns:1fr}
  .hero-stage{min-height:auto}
  .hero-slide img{height:320px}
  .hero-floating-card{position:static;max-width:none;margin-top:14px}
  .wish-item{grid-template-columns:48px 1fr}
  .wish-icon{width:48px;height:48px}
}
@media (max-width: 600px){
  .hero-slide img{height:260px}
  .hero-slide figcaption{left:12px;right:12px;bottom:12px;padding:12px}
  .egg-page{padding:34px 18px;border-radius:26px}
  .wish-columns,.rich-anniversary-grid{grid-template-columns:1fr}
}

/* ===== v1.5.0 actual implementation ===== */
.hero-v2{position:relative;display:block;max-width:1440px;min-height:720px;padding:0;margin:0 auto 4rem;overflow:hidden;border-radius:0 0 42px 42px;background:#332a28;color:#fff}
.hero-slides{position:absolute;inset:0}.hero-slide{display:block;position:absolute;inset:0;border-radius:0;box-shadow:none;opacity:0;visibility:hidden;transform:scale(1.03);transition:opacity .9s ease,transform 6s ease}.hero-slide.active{opacity:1;visibility:visible;transform:scale(1)}.hero-slide img{width:100%;height:100%;object-fit:cover}.hero-slide figcaption{position:absolute;right:2rem;top:2rem;left:auto;bottom:auto;padding:.5rem .8rem;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(12px);font-size:.72rem;color:#fff}.hero-vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(38,25,23,.84) 0%,rgba(38,25,23,.48) 42%,rgba(38,25,23,.08) 72%),linear-gradient(0deg,rgba(38,25,23,.45),transparent 45%)}.hero-copy-v2{position:relative;z-index:2;width:min(650px,80%);padding:clamp(6rem,12vw,10rem) 5rem 10rem;color:#fff}.hero-copy-v2 .eyebrow{color:#f2c9c5}.hero-copy-v2 h1{font-size:clamp(3.4rem,7vw,6.7rem);text-shadow:0 12px 30px rgba(0,0,0,.24)}.hero-copy-v2 p{color:rgba(255,255,255,.86)}.hero-copy-v2 .hero-stats span{color:rgba(255,255,255,.68)}.hero-copy-v2 .button.primary{background:#ef9ba8;color:#fff}.hero-arrow{position:absolute;z-index:4;top:50%;width:52px;height:52px;border:0;border-radius:50%;background:rgba(255,255,255,.22);color:#fff;font-size:2rem;backdrop-filter:blur(12px)}.hero-arrow.prev{left:1.5rem}.hero-arrow.next{right:1.5rem}.hero-thumbnails{position:absolute;z-index:4;left:50%;bottom:2.6rem;transform:translateX(-50%);display:flex;gap:.65rem;max-width:72%;overflow-x:auto;padding:.35rem}.hero-thumbnails button{flex:0 0 82px;height:60px;padding:3px;border:2px solid transparent;border-radius:12px;background:rgba(255,255,255,.45)}.hero-thumbnails button.active{border-color:#fff;transform:translateY(-3px)}.hero-thumbnails img{width:100%;height:100%;object-fit:cover;border-radius:8px}.hero-dots{position:absolute;z-index:5;left:50%;bottom:1rem;transform:translateX(-50%);display:flex;gap:.55rem}.hero-dots button{width:8px;height:8px;padding:0;border:0;border-radius:99px;background:rgba(255,255,255,.48)}.hero-dots button.active{width:24px;background:#fff}
.home-story-strip{max-width:1280px;margin:0 auto 2rem;padding:0 2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.home-story-strip>article{min-height:290px;border-radius:26px;padding:1.6rem;border:1px solid var(--line);display:flex;gap:1rem;position:relative;overflow:hidden;background:#fff}.home-story-strip>article:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-80px;bottom:-80px;background:rgba(255,255,255,.6)}.home-card-icon{flex:0 0 48px;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.72);font-size:1.5rem;z-index:1}.home-story-strip article>div{position:relative;z-index:1;min-width:0}.home-story-strip small{display:block;font-size:.68rem;letter-spacing:.12em;color:var(--rose-dark);margin-bottom:.7rem}.home-story-strip h2{font-size:1.4rem}.home-story-strip p,.home-story-strip blockquote{font-size:.9rem;color:var(--brown-2);margin:.4rem 0 1rem;padding:0;border:0}.home-story-strip strong{display:block;font-size:.78rem;margin:.7rem 0}.home-story-strip a,.home-story-strip button{border:0;background:transparent;padding:0;color:var(--rose-dark);font-size:.78rem;font-weight:700}.home-daily-message{background:linear-gradient(145deg,#fff5f7,#f7eeff)!important}.home-next-surprise{background:linear-gradient(145deg,#fff8ee,#fff0e8)!important}.home-wish-summary{background:linear-gradient(145deg,#f6f0ff,#fff8fc)!important}.home-egg-guide{background:linear-gradient(145deg,#edf0ff,#f7efff)!important}.mini-progress{height:8px;background:rgba(90,69,100,.1);border-radius:999px;overflow:hidden}.mini-progress span{display:block;height:100%;background:linear-gradient(90deg,#d79ab1,#b5a5de)}.home-grid-v2{margin-top:2rem}.home-museum-manifesto{background:linear-gradient(145deg,#4e3932,#775c53);color:#fff;display:flex;flex-direction:column;justify-content:center}.home-museum-manifesto .eyebrow,.home-museum-manifesto p{color:rgba(255,255,255,.72)}.home-museum-manifesto>div{display:flex;gap:.5rem;flex-wrap:wrap}.home-museum-manifesto>div span{padding:.4rem .8rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:.74rem}.museum-rooms-v2{margin-top:6rem}.museum-rooms-v2 .room-grid{grid-template-columns:repeat(4,1fr)}.museum-rooms-v2 .room-card{min-height:240px;border-radius:24px}.museum-rooms-v2 .room-card>span{font-size:2rem}

.hero-photo-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.hero-photo-option{position:relative;display:grid!important;gap:.5rem;padding:.65rem;border:1px solid var(--line);border-radius:18px;background:#fff;cursor:pointer}.hero-photo-option>input[type=checkbox]{position:absolute;top:.8rem;right:.8rem;width:20px;height:20px}.hero-photo-option img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:13px}.hero-photo-option span{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-photo-option.selected{border-color:#c77c8b;box-shadow:0 12px 28px rgba(184,120,120,.16)}.hero-order-input{width:100%!important;padding:.45rem .6rem!important}.admin-subsection,.admin-preview-shell{margin:1.5rem 0;padding:1.3rem;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.6)}.responsive-preview-pair{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:1.5rem;align-items:start}.preview-browser{border:1px solid #d8cbc4;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 18px 45px rgba(60,42,37,.12)}.preview-browser-bar{height:36px;background:#f1e9e4;display:flex;align-items:center;gap:6px;padding:0 12px}.preview-browser-bar i{width:8px;height:8px;border-radius:50%;background:#d89591}.preview-browser-bar i:nth-child(2){background:#e1c179}.preview-browser-bar i:nth-child(3){background:#8bb795}.preview-browser-bar span{margin-left:auto;margin-right:auto;font-size:.62rem;color:#8b7770}.preview-phone{border:8px solid #2f2928;border-radius:34px;background:#fff;padding:.6rem;box-shadow:0 18px 45px rgba(40,29,27,.17)}.preview-phone-notch{width:80px;height:15px;border-radius:0 0 12px 12px;background:#2f2928;margin:-.6rem auto .5rem}.preview-hero{height:340px;position:relative;overflow:hidden;background:#332a28;color:#fff}.preview-hero.mobile{height:360px;border-radius:18px}.preview-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.preview-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,21,19,.72),transparent 75%),linear-gradient(0deg,rgba(31,21,19,.4),transparent)}.preview-hero>div{position:absolute;left:8%;top:28%;z-index:2;max-width:70%}.preview-hero h2{font-size:clamp(1.4rem,4vw,3rem);margin:.3rem 0}.preview-hero p{font-size:.78rem}.preview-hero button{border:0;border-radius:999px;padding:.5rem 1rem;background:#ed9aa8;color:#fff}.preview-hero nav{position:absolute;z-index:3;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:5px}.preview-hero nav i{width:6px;height:6px;border-radius:99px;background:rgba(255,255,255,.5)}.preview-hero nav i.active{width:18px;background:#fff}

.admin-gallery-groups,.grouped-admin-gallery{display:grid;gap:1.5rem}.admin-gallery-group,.grouped-admin-section{padding:1.2rem;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.62)}.admin-gallery-group-head{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1rem}.admin-gallery-group-head h2{font-size:1.6rem;margin:0}.admin-gallery-group-head p{margin:0;color:var(--muted);font-size:.78rem}.admin-grouped-photo-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.admin-photo-group-card{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.admin-photo-strip{height:150px;display:grid;grid-template-columns:2fr repeat(4,1fr);gap:3px;position:relative}.admin-photo-strip img{width:100%;height:100%;object-fit:cover}.admin-photo-strip>span{display:grid;place-items:center;background:#5a4540;color:#fff}.admin-photo-group-copy{padding:1rem}.admin-photo-group-copy>span{font-size:.68rem;color:var(--rose-dark)}.admin-photo-group-copy h3{font-size:1.15rem;margin:.25rem 0}.admin-photo-group-copy small{color:var(--muted)}

.anniversary-overview,.wish-hero-v2{max-width:1180px;margin:0 auto 2rem;padding:2rem;border-radius:28px;background:linear-gradient(145deg,#fff9f5,#fff4fa);display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:center}.anniversary-filter-chips{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.anniversary-filter-chips span{padding:.45rem .8rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.72rem}.anniversary-gallery-v2{max-width:1180px;margin:auto;padding:0 2rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem}.anniversary-card-v2{position:relative;min-height:330px;padding:2rem;border-radius:28px;border:1px solid rgba(104,76,66,.12);overflow:hidden;box-shadow:0 16px 40px rgba(80,54,45,.08);display:grid;grid-template-columns:92px 1fr;gap:1.4rem}.anniversary-card-v2.is-focused{outline:4px solid rgba(184,120,120,.25);scroll-margin-top:100px}.anniversary-decoration{font-size:3.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.anniversary-decoration i{font-style:normal;font-size:1.1rem;opacity:.55}.anniversary-card-copy h2{font-size:2rem}.anniversary-card-copy>p{color:var(--brown-2)}.anniversary-date-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px dashed rgba(80,54,45,.2)}.anniversary-date-row div{display:flex;flex-direction:column}.anniversary-date-row small{font-size:.68rem;color:var(--muted)}.anniversary-date-row strong{font-size:1.1rem}.anniversary-card-copy footer{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;font-size:.68rem}.anniversary-card-copy footer b{font-weight:600;color:var(--rose-dark)}.anniversary-pet{background:radial-gradient(circle at 95% 10%,rgba(199,151,116,.18),transparent 28%),linear-gradient(145deg,#fff9f4,#f8eee3)}.anniversary-travel{background:radial-gradient(circle at 95% 10%,rgba(94,151,187,.18),transparent 30%),linear-gradient(145deg,#f4fbff,#eaf4fb)}.anniversary-food{background:radial-gradient(circle at 95% 10%,rgba(224,166,82,.2),transparent 28%),linear-gradient(145deg,#fffdf5,#fff4df)}.anniversary-festival{background:radial-gradient(circle at 95% 10%,rgba(177,126,199,.18),transparent 28%),linear-gradient(145deg,#fff7fb,#f6efff)}.anniversary-night{color:#fff;background:radial-gradient(circle at 82% 14%,#f1dfa9 0 7%,transparent 8%),linear-gradient(145deg,#292b4c,#55496d)}.anniversary-night .eyebrow,.anniversary-night p,.anniversary-night small{color:rgba(255,255,255,.72)}.anniversary-night footer b{color:#f2d5b7}.anniversary-garden{background:radial-gradient(circle at 95% 10%,rgba(135,181,132,.17),transparent 28%),linear-gradient(145deg,#f8fff4,#fff6fa)}.anniversary-card-v2.preview{min-height:260px;max-width:680px;margin:auto}.design-live-preview{margin-top:1.5rem;padding:1.3rem;border-radius:22px;background:#f8f2ee;border:1px solid var(--line);display:grid;grid-template-columns:220px 1fr;gap:1.5rem;align-items:center}

.daily-message-v2{min-height:340px;padding:2rem;border-radius:28px;display:grid;grid-template-columns:60px 1fr;gap:1rem;position:relative;overflow:hidden}.daily-message-v2:after{content:"";position:absolute;right:-50px;bottom:-50px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.42)}.daily-message-v2>div{position:relative;z-index:2}.daily-message-v2 small{color:var(--rose-dark)}.daily-message-v2 h2{font-size:2rem}.daily-message-v2 blockquote{font-family:var(--serif);font-size:1.25rem;line-height:1.8;margin:1rem 0}.daily-message-v2 button{border:0;border-radius:999px;padding:.65rem 1rem;background:var(--rose);color:#fff}.daily-message-icon{font-size:2rem;position:relative;z-index:2}.theme-garden{background:linear-gradient(145deg,#fff4ef,#fff8f5)}.theme-letter{background:linear-gradient(145deg,#fbf4e7,#fffdf8)}.theme-night{background:linear-gradient(145deg,#2b2945,#5c4d68);color:#fff}.theme-night small,.theme-night blockquote{color:rgba(255,255,255,.8)}.theme-minimal{background:#fff}.theme-sunset{background:linear-gradient(145deg,#fce2d7,#f7c8cf)}

.wish-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.wish-stats>div{padding:1rem;border-radius:18px;background:#fff;text-align:center}.wish-stats strong{display:block;font-family:var(--serif);font-size:1.7rem}.wish-stats span{font-size:.68rem;color:var(--muted)}.wish-board-v2{max-width:1180px;margin:auto;padding:0 2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.wish-card-v2{border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 14px 35px rgba(80,54,45,.08)}.wish-card-v2.is-focused{outline:4px solid rgba(184,120,120,.23);scroll-margin-top:100px}.wish-card-cover{height:110px;padding:1rem;display:flex;align-items:flex-start;gap:.5rem;background:linear-gradient(135deg,#f8d9df,#eee3fb)}.wish-card-cover>span{font-size:2.7rem;margin-right:auto}.wish-card-cover small,.wish-card-cover b{padding:.3rem .55rem;border-radius:999px;background:rgba(255,255,255,.75);font-size:.64rem}.wish-card-body{padding:1.2rem}.wish-card-top{display:flex;justify-content:space-between;gap:1rem;font-size:.68rem;color:var(--muted)}.wish-card-body h2{font-size:1.35rem;margin-top:.5rem}.wish-card-body>p{min-height:3.5em;color:var(--brown-2);font-size:.86rem}.wish-progress-label{display:flex;justify-content:space-between;font-size:.68rem}.wish-card-body blockquote{margin:1rem 0;padding:.8rem 1rem;border-left:2px solid var(--rose);background:var(--cream);font-size:.78rem}.wish-interactions{display:flex;gap:.5rem;flex-wrap:wrap}.wish-interactions button,.wish-interactions span{border:1px solid var(--line);border-radius:999px;background:#fff;padding:.45rem .7rem;font-size:.7rem}.wish-action-status{min-height:1.3em;margin:.6rem 0 0;font-size:.68rem;color:var(--rose-dark)}.wish-done .wish-card-cover{background:linear-gradient(135deg,#dcefdc,#eff8ed)}.wish-active .wish-card-cover{background:linear-gradient(135deg,#ffe3ca,#fff1e2)}.wish-add-station{max-width:1180px;margin:2rem auto 0;padding:2rem;border-radius:28px;background:linear-gradient(145deg,#fff1f4,#f5edff);display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem}.wish-add-station form{display:flex;gap:.8rem;align-items:end}.wish-add-station label{flex:1}.wish-add-station input{width:100%;padding:.8rem 1rem;border:1px solid var(--line);border-radius:16px;background:#fff}.wish-inspiration-chips{grid-column:1/-1;display:flex;gap:.5rem;flex-wrap:wrap}.wish-inspiration-chips span{padding:.45rem .7rem;background:#fff;border-radius:999px;font-size:.7rem}

.egg-reveal-overlay{position:fixed;inset:0;z-index:15000;display:grid;place-items:center;padding:1.5rem;color:#fff;opacity:0;visibility:hidden;transition:.45s ease;overflow:hidden;background:#19172b}.egg-reveal-overlay.is-visible{opacity:1;visibility:visible}.egg-reveal-overlay.static{position:relative;inset:auto;opacity:1;visibility:visible;min-height:520px;border-radius:28px;z-index:1}.egg-reveal-sky{position:absolute;inset:0;overflow:hidden}.egg-reveal-sky:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(245,210,154,.32),transparent 28%),linear-gradient(0deg,rgba(15,13,30,.54),transparent)}.egg-reveal-sky i{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 14px #fff;animation:eggTwinkle 5s ease-in-out infinite}.egg-reveal-overlay article,.egg-reveal-page article{position:relative;z-index:2;width:min(690px,92vw);padding:3rem;text-align:center;border:1px solid rgba(255,255,255,.28);border-radius:32px;background:rgba(68,47,80,.55);backdrop-filter:blur(18px);box-shadow:0 28px 90px rgba(0,0,0,.3)}.egg-reveal-overlay article>span,.egg-main-icon{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;margin:0 auto 1rem;background:rgba(255,255,255,.16);font-size:3rem}.egg-reveal-overlay small,.egg-reveal-page small{letter-spacing:.22em}.egg-reveal-overlay h2,.egg-reveal-page h1{font-size:clamp(2.3rem,6vw,4.8rem);color:#fff}.egg-reveal-overlay p,.egg-reveal-overlay blockquote,.egg-reveal-page p,.egg-reveal-page .egg-content{color:rgba(255,255,255,.85)}.egg-reveal-overlay blockquote{white-space:pre-line;font-family:var(--serif);font-size:1.15rem;margin:1.4rem 0}.egg-reveal-close{position:absolute;right:1.5rem;top:1.5rem;z-index:4;width:46px;height:46px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:1.6rem}.egg-scene-moon{background:radial-gradient(circle at 50% 42%,#e5bd78 0 12%,transparent 13%),linear-gradient(145deg,#151729,#393154)}.egg-scene-meteor{background:linear-gradient(145deg,#111d3a,#553b78)}.egg-scene-gift{background:radial-gradient(circle at 50% 44%,rgba(255,210,189,.4),transparent 25%),linear-gradient(145deg,#6f354e,#ad6571)}.egg-scene-record{background:radial-gradient(circle at 50% 35%,rgba(245,211,132,.32),transparent 30%),linear-gradient(145deg,#131c38,#4b3475)}.egg-scene-petal{background:linear-gradient(145deg,#6b3b5a,#ad6c83)}.egg-reveal-page{min-height:calc(100vh - 88px);position:relative;display:grid;place-items:center;padding:3rem;overflow:hidden;color:#fff}.egg-reveal-actions{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}.egg-discovery-page{max-width:900px;margin:4rem auto;padding:3rem;text-align:center;border-radius:32px;background:linear-gradient(145deg,#28243d,#574665);color:#fff}.egg-discovery-page h1,.egg-discovery-page p,.egg-discovery-page .text-link{color:#fff}.egg-discovery-moon{font-size:5rem}.egg-hint-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin:2rem 0}.egg-hint-cards article{padding:1rem;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(255,255,255,.08);text-align:left}.egg-hint-cards span{font-family:Georgia,serif;color:#efcfb7}.egg-hint-cards p{font-size:.85rem;margin:.3rem 0}.egg-hint-cards small{color:rgba(255,255,255,.6)}.egg-form label{display:block;text-align:left}.egg-form input{width:100%;padding:.8rem 1rem;border:0;border-radius:16px;background:#fff;color:var(--brown);margin:.4rem 0 .8rem}@keyframes eggTwinkle{50%{opacity:.2;transform:scale(1.8)}}

.app-install-page{min-height:100vh;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 20% 20%,#f7dfe5,transparent 30%),linear-gradient(145deg,#fffaf6,#f5edff)}.app-install-card{width:min(620px,100%);padding:2.5rem;border-radius:32px;background:#fff;box-shadow:var(--shadow);text-align:center}.app-install-card>img{width:120px;height:120px;border-radius:28px;margin:0 auto 1rem}.app-install-card ol{text-align:left;padding:1.5rem 1.5rem 1.5rem 3rem;background:var(--cream);border-radius:20px}.app-install-status{margin:1rem 0;color:var(--muted);font-size:.8rem}

@media(max-width:1050px){.home-story-strip{grid-template-columns:repeat(2,1fr)}.museum-rooms-v2 .room-grid{grid-template-columns:repeat(2,1fr)}.wish-board-v2{grid-template-columns:repeat(2,1fr)}.anniversary-gallery-v2{grid-template-columns:1fr}.responsive-preview-pair{grid-template-columns:1fr}.preview-phone{max-width:260px;margin:auto}}
@media(max-width:760px){body{padding-bottom:env(safe-area-inset-bottom)}.site-header{height:68px;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));background:rgba(248,241,234,.9);backdrop-filter:blur(14px);position:sticky;top:0}.brand small{display:none}.hero-v2{min-height:590px;border-radius:0 0 28px 28px}.hero-copy-v2{width:100%;padding:5rem 1.5rem 8rem}.hero-copy-v2 h1{font-size:clamp(2.8rem,13vw,4.5rem)}.hero-copy-v2 .hero-stats{gap:1.1rem}.hero-copy-v2 .hero-stats strong{font-size:1.45rem}.hero-vignette{background:linear-gradient(0deg,rgba(38,25,23,.78),rgba(38,25,23,.12) 75%)}.hero-thumbnails{max-width:92%;bottom:2.5rem}.hero-thumbnails button{flex-basis:64px;height:48px}.hero-arrow{display:none}.home-story-strip{grid-template-columns:1fr;padding:0 1rem}.home-story-strip>article{min-height:auto}.home-grid-v2{grid-template-columns:1fr;padding:0 1rem}.museum-rooms-v2{padding:0 1rem}.museum-rooms-v2 .room-grid{grid-template-columns:repeat(2,1fr)}.museum-rooms-v2 .room-card{min-height:190px}.anniversary-overview,.wish-hero-v2{margin-left:1rem;margin-right:1rem;grid-template-columns:1fr;padding:1.4rem}.anniversary-filter-chips{justify-content:flex-start}.anniversary-gallery-v2,.wish-board-v2{padding:0 1rem;grid-template-columns:1fr}.anniversary-card-v2{grid-template-columns:58px 1fr;padding:1.4rem;min-height:auto}.anniversary-decoration{font-size:2.4rem}.anniversary-date-row{grid-template-columns:1fr}.wish-stats{grid-template-columns:repeat(2,1fr)}.wish-add-station{margin-left:1rem;margin-right:1rem;grid-template-columns:1fr;padding:1.4rem}.wish-add-station form{flex-direction:column;align-items:stretch}.design-live-preview{grid-template-columns:1fr}.egg-reveal-overlay{padding:.7rem}.egg-reveal-overlay article,.egg-reveal-page article{padding:1.6rem}.egg-reveal-close{top:.8rem;right:.8rem}.egg-discovery-page{margin:1rem;padding:1.5rem}.egg-hint-cards{grid-template-columns:1fr}.admin-grouped-photo-wall{grid-template-columns:1fr}.admin-photo-strip{height:120px}.hero-photo-selector{grid-template-columns:repeat(2,1fr)}}
@media(max-width:430px){.hero-copy-v2{padding-bottom:7.5rem}.hero-copy-v2 h1{font-size:2.65rem}.hero-copy-v2 p{font-size:1rem}.hero-copy-v2 .hero-stats span{font-size:.6rem}.home-story-strip>article{padding:1.2rem}.museum-rooms-v2 .room-card{padding:1rem;min-height:170px}.anniversary-card-v2{grid-template-columns:1fr}.anniversary-decoration{flex-direction:row}.wish-card-cover{height:92px}.responsive-preview-pair{display:block}.preview-phone{margin-top:1rem}.app-install-card{padding:1.5rem}.egg-reveal-page{padding:1rem}.egg-reveal-overlay h2,.egg-reveal-page h1{font-size:2.4rem}}
@media(prefers-reduced-motion:reduce){.hero-slide,.egg-reveal-sky i{transition:none!important;animation:none!important}.hero-slide{transform:none!important}}
.app-admin-intro{display:flex;align-items:center;gap:1.5rem}.app-admin-intro img{width:112px;height:112px;border-radius:26px;box-shadow:0 14px 34px rgba(80,54,45,.14)}.app-admin-intro h2{font-size:2rem}.app-admin-intro p{color:var(--muted)}@media(max-width:600px){.app-admin-intro{align-items:flex-start}.app-admin-intro img{width:78px;height:78px}}
.home-daily-message.theme-garden{background:linear-gradient(145deg,#fff1ec,#fff8f5)!important}.home-daily-message.theme-letter{background:linear-gradient(145deg,#fbf1dc,#fffaf1)!important}.home-daily-message.theme-night{background:linear-gradient(145deg,#31304f,#5d4f6d)!important;color:#fff}.home-daily-message.theme-night small,.home-daily-message.theme-night blockquote,.home-daily-message.theme-night button{color:rgba(255,255,255,.86)}.home-daily-message.theme-minimal{background:#fff!important}.home-daily-message.theme-sunset{background:linear-gradient(145deg,#fbd7c9,#f5c5d0)!important}

/* ===== v1.5.3 PWA installer diagnostics ===== */
.app-install-card{width:min(720px,100%);text-align:left}.app-install-identity{display:flex;align-items:center;gap:1.4rem;margin-bottom:1.4rem}.app-install-identity img{width:112px;height:112px;flex:0 0 auto;border-radius:28px;box-shadow:0 14px 34px rgba(80,54,45,.14)}.app-install-identity h1{font-size:clamp(2rem,6vw,3.4rem);margin-bottom:.25rem}.app-install-identity p{color:var(--muted);margin:0}.app-install-notice{margin:1rem 0 1.2rem;padding:1rem 1.1rem;border:1px solid rgba(184,120,120,.24);border-radius:18px;background:#fff4f5}.app-install-notice strong{display:block;color:var(--rose-dark)}.app-install-notice p{margin:.2rem 0 0;font-size:.84rem;color:var(--brown-2)}.app-install-card>.button{margin-top:.65rem}.app-install-status{min-height:3.2rem;margin:1rem 0;padding:.85rem 1rem;border-radius:16px;background:var(--cream);display:flex;align-items:center}.app-install-status[data-state="success"]{background:#edf7f0;color:#315f40}.app-install-status[data-state="warning"]{background:#fff7e6;color:#825d20}.app-install-status[data-state="error"]{background:#fff0ef;color:#8b3e3e}.pwa-diagnostics,.pwa-manual-guide,.pwa-ios-guide{margin-top:1.2rem;padding:1.25rem;border:1px solid var(--line);border-radius:22px;background:#fff}.pwa-diagnostics-heading h2,.pwa-manual-guide h2,.pwa-ios-guide h2{font-size:1.35rem;margin-bottom:.2rem}.pwa-diagnostics-heading small{color:var(--muted)}.pwa-diagnostics ul{list-style:none;padding:0;margin:1rem 0 0}.pwa-diagnostics li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem 0;border-top:1px solid var(--line)}.pwa-diagnostics li:first-child{border-top:0}.pwa-diagnostics li b{font-size:.72rem;padding:.28rem .55rem;border-radius:999px;background:var(--cream);color:var(--muted)}.pwa-diagnostics li[data-state="ok"] b{background:#e9f5ed;color:#2e6940}.pwa-diagnostics li[data-state="error"] b{background:#fff0ef;color:#9a3f3f}.pwa-diagnostics li[data-state="waiting"] b{background:#fff7e4;color:#86601f}.pwa-manual-guide{background:linear-gradient(145deg,#fff3ef,#f7efff)}.pwa-manual-guide ol,.app-install-steps{margin:.7rem 0;padding:0 0 0 1.4rem;background:transparent;border-radius:0}.pwa-ios-guide{background:#f6f0ff}.pwa-ios-guide p{margin:0;color:var(--brown-2)}.app-install-steps{margin-top:1.2rem!important;padding:1rem 1rem 1rem 2.4rem!important}.button.is-working{opacity:.7;pointer-events:none}.app-admin-alert{display:flex;flex-direction:column;gap:.2rem;margin:1.2rem 0;padding:1rem 1.1rem;border-radius:16px;background:#fff5e8;color:#765721}.app-admin-alert span{font-size:.82rem}
@media(max-width:600px){.app-install-page{padding:0;background:#fff}.app-install-card{min-height:100vh;border-radius:0;padding:calc(1.2rem + env(safe-area-inset-top)) max(1.1rem,env(safe-area-inset-right)) calc(2rem + env(safe-area-inset-bottom)) max(1.1rem,env(safe-area-inset-left));box-shadow:none}.app-install-identity{align-items:flex-start}.app-install-identity img{width:78px;height:78px;border-radius:20px}.app-install-identity h1{font-size:2rem}.pwa-diagnostics li{font-size:.82rem}.app-install-card>.button{min-height:52px}}
