:root{--paper:#faf8f4;--paper-2:#f3efe7;--ink:#241e19;--ink-70:#4d453e;--ink-45:#8c8177;--ink-30:#b7aea3;--line:#e6e0d6;--gold:#9a7b54;--accent:#c4713f;--accent-2:#8a9a5b;--accent-soft:#f0e2d3;--wash1:#c4713f1f;--wash2:#8a9a5b1f;--radius:14px;--ease:cubic-bezier(.22, 1, .36, 1);--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", Georgia, serif;--sans:"PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Cormorant Garamond", "EB Garamond", "Baskerville", Georgia, "Times New Roman", serif}html[data-season=spring]{--accent:#d4728b;--accent-2:#a8c6a1;--accent-soft:#f7e5e8;--wash1:#d4728b24;--wash2:#a8c6a126}html[data-season=summer]{--accent:#3e8fa8;--accent-2:#e0b84e;--accent-soft:#e3f0f2;--wash1:#3e8fa824;--wash2:#e0b84e24}html[data-season=autumn]{--accent:#c4713f;--accent-2:#8a9a5b;--accent-soft:#f0e2d3;--wash1:#c4713f24;--wash2:#8a9a5b24}html[data-season=winter]{--accent:#7f94b8;--accent-2:#b9c7d9;--accent-soft:#e6ecf3;--wash1:#7f94b826;--wash2:#b9c7d926}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--paper);background-image:radial-gradient(1100px 720px at 88% -12%, var(--wash1), transparent 62%), radial-gradient(950px 640px at -12% 42%, var(--wash2), transparent 58%);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color .8s var(--ease);background-attachment:fixed;margin:0;font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%;display:block}::selection{background:var(--accent-soft);color:var(--ink)}.grain{z-index:1;pointer-events:none;opacity:.045;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");position:fixed;inset:0}.particles{z-index:4;pointer-events:none;position:fixed;inset:0}.site-header{z-index:40;background:linear-gradient(to bottom, color-mix(in srgb, var(--paper) 92%, transparent), transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:space-between;align-items:center;gap:24px;padding:16px clamp(20px,4vw,56px);display:flex;position:fixed;top:0;left:0;right:0}.brand{font-family:var(--serif);letter-spacing:.3em;white-space:nowrap;font-size:15px}.brand:before{content:"";background:var(--accent);vertical-align:2px;border-radius:999px;width:7px;height:7px;margin-right:12px;display:inline-block}.nav{letter-spacing:.16em;color:var(--ink-70);gap:clamp(14px,2.4vw,34px);font-size:13px;display:flex}.nav a{transition:color .5s var(--ease);padding:4px 0;position:relative}.nav a:after{content:"";background:var(--accent);height:1px;transition:right .6s var(--ease);position:absolute;bottom:0;left:0;right:100%}.nav a:hover{color:var(--ink)}.nav a:hover:after{right:0}.nav .nav-admin{color:var(--accent)}.hero{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:130px 24px 90px;display:flex;position:relative}.hero:before{content:"";z-index:-1;aspect-ratio:1;background:radial-gradient(circle, var(--accent-soft), transparent 64%);opacity:.65;filter:blur(26px);border-radius:50%;width:min(76vw,680px);animation:9s ease-in-out infinite halo;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}@keyframes halo{0%,to{opacity:.5;transform:translate(-50%,-50%)scale(1)}50%{opacity:.8;transform:translate(-50%,-50%)scale(1.07)}}.hero-eyebrow{letter-spacing:.46em;text-transform:uppercase;color:var(--ink-45);margin:0 0 clamp(20px,4vh,40px);font-size:11px}.hero-day{font-family:var(--display);letter-spacing:-.035em;font-variant-numeric:lining-nums tabular-nums;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;margin:0;font-size:clamp(112px,21vw,258px);font-weight:400;line-height:.8;animation:7s ease-in-out infinite dayFloat}@keyframes dayFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.hero-day.pulse{animation:dayPulse .75s var(--ease)}@keyframes dayPulse{0%{transform:scale(1)}35%{transform:scale(1.045)}to{transform:scale(1)}}.hero-day-label{font-family:var(--sans);letter-spacing:.55em;text-indent:.55em;color:var(--accent);margin-bottom:clamp(10px,2vh,18px);font-size:12px;font-weight:400;display:block}.hero-day-hit{letter-spacing:.3em;color:var(--accent-2);opacity:0;transition:opacity .6s var(--ease);margin-top:22px;font-size:12px}.hero-day-hit.show{opacity:1}.hero-names{font-family:var(--serif);letter-spacing:.24em;text-indent:.24em;margin:clamp(28px,5vh,46px) 0 0;font-size:clamp(17px,2.1vw,24px);font-weight:400}.hero-rule{background:linear-gradient(to bottom, var(--accent), transparent);width:1px;height:clamp(40px,7vh,70px);margin:clamp(24px,4vh,38px) auto}.hero-tagline{max-width:34ch;font-family:var(--serif);letter-spacing:.14em;color:var(--ink-70);margin:0;font-size:15px}.hero-scroll{letter-spacing:.4em;text-transform:uppercase;color:var(--ink-30);flex-direction:column;align-items:center;gap:10px;font-size:10px;display:flex;position:absolute;bottom:clamp(22px,4vh,42px);left:50%;transform:translate(-50%)}.hero-scroll:after{content:"";background:linear-gradient(to bottom, var(--accent), transparent);width:1px;height:34px;animation:drop 2.6s var(--ease) infinite}@keyframes drop{0%{transform-origin:top;opacity:0;transform:scaleY(0)}40%{transform-origin:top;opacity:1;transform:scaleY(1)}70%{transform-origin:bottom;opacity:1;transform:scaleY(1)}to{transform-origin:bottom;opacity:0;transform:scaleY(0)}}.section{z-index:2;max-width:1320px;margin:0 auto;padding:clamp(56px,8vw,110px) clamp(20px,5vw,72px);position:relative}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:clamp(28px,4vw,48px);padding-bottom:18px;display:flex}.section-title{font-family:var(--serif);letter-spacing:.12em;margin:0;font-size:clamp(20px,2.6vw,30px);font-weight:400}.section-title:before{content:"";vertical-align:-.14em;background:var(--accent);width:3px;height:.95em;margin-right:14px;display:inline-block}.section-meta{letter-spacing:.32em;text-transform:uppercase;color:var(--accent);font-size:11px}.bento{grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(22px,3vw,34px);padding:6px 10px;display:grid}.card{border:1px solid color-mix(in srgb, var(--line) 88%, var(--accent) 12%);border-radius:var(--radius);min-height:210px;transform:rotate(var(--rot,0deg)) translateY(var(--ty,0px));transition:transform .7s var(--ease), border-color .7s var(--ease), box-shadow .7s var(--ease);background:#fffdf9e0;flex-direction:column;justify-content:space-between;gap:22px;padding:26px;display:flex;position:relative;box-shadow:0 20px 44px -30px #241e1966,0 3px 8px -4px #241e191a}.card:hover{border-color:color-mix(in srgb, var(--accent) 62%, var(--line));z-index:3;transform:rotate(0)translateY(-6px)scale(1.008);box-shadow:0 34px 64px -34px #241e1980,0 6px 14px -6px #241e1924}.card--album{grid-area:span 2/span 4;min-height:0;padding:0;overflow:hidden}.card--date,.card--quote{grid-column:span 2}.card--timeline,.card--map{grid-column:span 3}.card--music,.card--messages,.card--wishes{grid-column:span 2}.taped:before{content:"";background:color-mix(in srgb, var(--accent) 22%, #fff9);z-index:2;border-left:1px dashed #ffffffbf;border-right:1px dashed #ffffffbf;width:88px;height:22px;position:absolute;top:-11px;left:50%;transform:translate(-50%)rotate(-2.4deg);box-shadow:0 1px 2px #241e1914}.taped-alt:before{width:70px;transform:translate(-50%)rotate(2.1deg)}.card-num{font-family:var(--display);letter-spacing:.18em;color:var(--accent);opacity:.85;font-size:13px;position:absolute;top:22px;right:24px}.card-label{letter-spacing:.34em;text-transform:uppercase;color:var(--accent);margin:0;font-size:10px}.card-heading{font-family:var(--serif);letter-spacing:.08em;margin:8px 0 0;font-size:21px;font-weight:400}.card-body{color:var(--ink-70);font-size:13.5px}.card-link{letter-spacing:.24em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;font-size:11px;display:inline-flex}.card-link:after{content:"";width:18px;height:1px;transition:width .5s var(--ease);background:currentColor}.card:hover .card-link:after{width:30px}.album-cover{background:radial-gradient(120% 100% at 18% 8%, var(--accent-soft), transparent 58%), radial-gradient(90% 90% at 92% 88%, color-mix(in srgb, var(--accent-2) 30%, transparent), transparent 55%), var(--paper-2);flex-direction:column;justify-content:flex-end;height:100%;min-height:360px;padding:28px;display:flex;position:relative}.album-grid{grid-template-columns:repeat(3,1fr);gap:6px;height:100%;padding:8px;display:grid}.album-tile{background:linear-gradient(135deg, var(--accent-soft), color-mix(in srgb, var(--accent-2) 34%, var(--paper-2)));border:1px solid #ffffffa6;border-radius:8px}.album-meta{background:linear-gradient(#faf8f400,#faf8f4f2);justify-content:space-between;align-items:flex-end;gap:16px;padding:22px 26px;display:flex;position:relative}.mini-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.mini-row{border-bottom:1px solid #e6e0d6b3;justify-content:space-between;align-items:baseline;gap:14px;padding-bottom:10px;display:flex}.mini-row:last-child{border-bottom:0;padding-bottom:0}.mini-name{font-family:var(--serif);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.mini-value{font-family:var(--display);letter-spacing:.12em;color:var(--accent);white-space:nowrap;font-size:13px}.quote-text{font-family:var(--serif);letter-spacing:.06em;color:var(--ink-70);margin:0;font-size:16px;line-height:1.9}.quote-author{letter-spacing:.3em;color:var(--accent);margin:14px 0 0;font-size:11px}.count-line{align-items:baseline;gap:10px;display:flex}.count-big{font-family:var(--display);letter-spacing:-.02em;color:var(--accent);font-size:42px;line-height:1}.count-unit{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-45);font-size:11px}.empty{font-family:var(--serif);letter-spacing:.1em;color:var(--ink-45);margin:0;font-size:13.5px}.empty-frame{border:1px dashed color-mix(in srgb, var(--accent) 45%, var(--line));background:radial-gradient(80% 80% at 50% 20%, var(--accent-soft), transparent 70%), #ffffff40;border-radius:10px;place-items:center;min-height:180px;display:grid}.footer{z-index:2;border-top:1px solid var(--line);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:54px clamp(20px,5vw,72px) 66px;display:flex;position:relative}.footer-mark{font-family:var(--display);letter-spacing:.3em;color:var(--accent);font-size:22px}.footer-text{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-45);font-size:11px}.season-dock{z-index:50;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#faf8f4e6;border-radius:999px;gap:3px;padding:5px;display:flex;position:fixed;bottom:clamp(14px,2vw,26px);right:clamp(14px,2vw,26px);box-shadow:0 14px 30px -18px #241e1966}.season-dock button{width:34px;height:34px;font-family:var(--serif);letter-spacing:.1em;color:var(--ink-45);cursor:pointer;transition:background .5s var(--ease), color .5s var(--ease), transform .5s var(--ease);background:0 0;border:0;border-radius:999px;font-size:13px}.season-dock button:hover{color:var(--ink);transform:scale(1.12)}.season-dock button.is-active{background:var(--accent);color:#fff;transform:scale(1.08)}.intro{z-index:100;transition:opacity .9s var(--ease), visibility .9s;background:#fff8f3;place-items:center;display:grid;position:fixed;inset:0}.intro.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.intro-inner{text-align:center;animation:introIn 1.4s var(--ease) both;flex-direction:column;align-items:center;gap:26px;display:flex}@keyframes introIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.intro-seal{border:1px solid var(--gold);width:92px;height:92px;color:var(--gold);font-family:var(--display);letter-spacing:.06em;animation:sealIn 1.6s var(--ease) both;border-radius:999px;place-items:center;font-size:30px;display:grid;position:relative}.intro-seal:after{content:"";border:1px solid #b49a6a59;border-radius:999px;position:absolute;inset:7px}@keyframes sealIn{0%{opacity:0;transform:scale(.86)}60%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.intro-names{font-family:var(--serif);letter-spacing:.34em;text-indent:.34em;animation:introIn 1.4s .5s var(--ease) both;margin:0;font-size:clamp(18px,2.4vw,26px)}.intro-date{font-family:var(--display);letter-spacing:.42em;color:var(--ink-45);animation:introIn 1.4s 1s var(--ease) both;margin:0;font-size:13px}.intro-skip{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-30);cursor:pointer;background:0 0;border:0;font-size:10px;position:absolute;bottom:clamp(18px,3vw,36px);right:clamp(18px,3vw,36px)}.intro-skip:hover{color:var(--ink-70)}.login-wrap{background:radial-gradient(90% 70% at 50% 0%, var(--accent-soft), transparent 62%), var(--paper);place-items:center;min-height:100svh;padding:40px 20px;display:grid;position:relative}.login-grain{opacity:.04;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");position:absolute;inset:0}.login-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#ffffffbd;border-radius:18px;width:min(420px,100%);padding:clamp(34px,6vw,52px) clamp(26px,5vw,44px);position:relative;box-shadow:0 40px 80px -60px #241e1999}.eyebrow{letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;color:var(--accent);margin:0;font-size:10px}.login-title{font-family:var(--serif);letter-spacing:.16em;text-indent:.16em;margin:18px 0 8px;font-size:30px;font-weight:400}.login-sub{letter-spacing:.2em;color:var(--ink-45);margin:0 0 30px;font-size:12px}.login-form{text-align:left;flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field span{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-45);font-size:10px}.field input{border:1px solid var(--line);width:100%;color:var(--ink);letter-spacing:.04em;transition:border-color .4s var(--ease), background .4s var(--ease);background:#fff9;border-radius:10px;outline:none;padding:12px 14px;font-size:14px}.field input:focus{border-color:color-mix(in srgb, var(--accent) 70%, var(--line));background:#fff}.btn-primary{border:1px solid var(--ink);background:var(--ink);color:var(--paper);letter-spacing:.32em;text-indent:.32em;cursor:pointer;transition:background .5s var(--ease), transform .5s var(--ease), opacity .3s;border-radius:10px;margin-top:8px;padding:13px 18px;font-size:12px}.btn-primary:hover{background:color-mix(in srgb, var(--accent) 55%, var(--ink));transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:default}.login-error{letter-spacing:.08em;color:#a4604f;margin:0;font-size:12px}.login-foot{letter-spacing:.34em;text-transform:uppercase;color:var(--ink-30);margin:26px 0 0;font-size:10px}.reveal{opacity:0}.reveal.is-in{animation:riseIn .9s var(--ease) backwards;animation-delay:var(--d,0s)}@keyframes riseIn{0%{opacity:0;transform:translateY(22px) rotate(var(--rot,0deg))}}.bento>.card:nth-child(2){--d:70ms}.bento>.card:nth-child(3){--d:.14s}.bento>.card:nth-child(4){--d:.21s}.bento>.card:nth-child(5){--d:.28s}.bento>.card:nth-child(6){--d:.35s}.bento>.card:nth-child(7){--d:.42s}.bento>.card:nth-child(8){--d:.49s}@media (max-width:900px){.bento{grid-template-columns:1fr}.card--album,.card--date,.card--quote,.card--timeline,.card--map,.card--music,.card--messages,.card--wishes{grid-area:auto/span 1}.album-cover{min-height:280px}.nav{letter-spacing:.1em;gap:14px;font-size:12px}.brand{letter-spacing:.2em;font-size:13px}}@media (max-width:600px){.nav{display:none}.site-header{justify-content:center}.hero-day{font-size:clamp(92px,30vw,150px)}.season-dock{bottom:12px;right:12px}}.note-form{flex-direction:column;gap:12px;max-width:620px;margin-bottom:40px;display:flex}.note-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font-family:var(--serif);letter-spacing:.05em;resize:vertical;transition:border-color .4s var(--ease);background:#ffffffa6;border-radius:12px;outline:none;padding:14px 16px;font-size:15px;line-height:1.8}.note-form textarea:focus{border-color:color-mix(in srgb, var(--accent) 70%, var(--line))}.note-form-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.notes{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:26px;margin:0;padding:10px 4px 40px;list-style:none;display:grid}.note{border:1px solid var(--line);transform:rotate(var(--r,0deg));transition:transform .6s var(--ease), box-shadow .6s var(--ease);background:#fffdf6;border-radius:3px;padding:24px 22px 18px;position:relative;box-shadow:0 14px 28px -20px #241e1973}.note:hover{z-index:2;transform:rotate(0)translateY(-4px);box-shadow:0 24px 44px -24px #241e1980}.note:before{content:"";background:color-mix(in srgb, var(--accent) 20%, #ffffffa6);width:64px;height:18px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(-3deg)}.note-text{font-family:var(--serif);letter-spacing:.05em;white-space:pre-wrap;word-break:break-word;margin:0 0 16px;font-size:15px;line-height:1.85}.note-meta{border-top:1px dashed var(--line);letter-spacing:.14em;color:var(--ink-45);align-items:center;gap:12px;padding-top:12px;font-size:11px;display:flex}.note-author{color:var(--accent)}.note-date{margin-left:auto}.btn-mini{border:1px solid var(--line);letter-spacing:.1em;color:var(--ink-45);cursor:pointer;transition:all .4s var(--ease);background:0 0;border-radius:999px;padding:2px 10px;font-size:11px}.btn-mini:hover{color:#a4604f;border-color:#a4604f}.btn-mini:disabled{opacity:.4;cursor:default}.progress{background:var(--accent-soft);border-radius:999px;height:6px;margin-bottom:26px;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;transition:width .9s var(--ease);border-radius:999px}.inline-form{flex-wrap:wrap;align-items:center;gap:10px;max-width:680px;margin-bottom:30px;display:flex}.inline-form input{border:1px solid var(--line);min-width:180px;transition:border-color .4s var(--ease);background:#ffffffa6;border-radius:10px;outline:none;flex:1;padding:11px 14px;font-size:14px}.inline-form input:focus{border-color:color-mix(in srgb, var(--accent) 70%, var(--line))}.wish-list{flex-direction:column;gap:12px;max-width:720px;margin:0;padding:0;list-style:none;display:flex}.wish-row{border:1px solid var(--line);transition:border-color .5s var(--ease), transform .5s var(--ease);background:#fffdf9cc;border-radius:12px;align-items:center;gap:16px;padding:16px 20px;display:flex}.wish-row:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));transform:translate(4px)}.wish-dot{border:1.5px solid var(--accent);cursor:pointer;width:22px;height:22px;transition:all .4s var(--ease);background:0 0;border-radius:999px;flex:none}.wish-dot:hover{transform:scale(1.15)}.wish-dot.is-done{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 4px #fffdf9e6}.wish-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wish-title{font-family:var(--serif);letter-spacing:.06em;font-size:15px}.wish-row.is-done .wish-title{color:var(--ink-45);text-decoration:line-through}.wish-note{color:var(--ink-45);letter-spacing:.04em;font-size:12px}.timeline{max-width:720px;margin:0;padding:10px 0 40px;list-style:none;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--accent), var(--line));width:1px;position:absolute;top:0;bottom:0;left:108px}.tl-item{opacity:0;animation:riseIn .8s var(--ease) forwards;animation-delay:calc(var(--i) * 90ms);gap:30px;padding:0 0 40px;display:flex;position:relative;transform:translateY(16px)}.tl-date{text-align:right;flex:none;width:78px;padding-top:6px}.tl-year{font-family:var(--display);color:var(--accent);font-size:20px;display:block}.tl-md{letter-spacing:.18em;color:var(--ink-45);font-size:11px;display:block}.tl-dot{background:var(--paper);border:2px solid var(--accent);width:13px;height:13px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);border-radius:999px;flex:none;margin-top:12px;margin-left:-6.5px}.tl-card{border:1px solid var(--line);transition:transform .5s var(--ease);background:#fffdf9d1;border-radius:12px;flex:1;padding:18px 22px;transform:rotate(-.4deg);box-shadow:0 14px 30px -24px #241e1966}.tl-card:hover{transform:rotate(0)translateY(-3px)}.tl-title{font-family:var(--serif);letter-spacing:.08em;margin:0;font-size:18px;font-weight:400}.tl-body{color:var(--ink-70);white-space:pre-wrap;margin:10px 0 0;font-size:13.5px;line-height:1.85}.player{flex-wrap:wrap;align-items:center;gap:40px;display:flex}.disc{background:radial-gradient(circle at center, var(--accent) 0 22px, transparent 23px), repeating-radial-gradient(circle, var(--ink) 0 2px, transparent 2px 5px);background-color:var(--paper-2);border:1px solid var(--line);border-radius:999px;flex:none;place-items:center;width:150px;height:150px;display:grid;box-shadow:0 18px 40px -22px #241e1980}.disc span{background:var(--accent);border-radius:999px;width:44px;height:44px}.disc[data-spinning=true]{animation:5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.song-list{flex-direction:column;flex:1;gap:8px;min-width:260px;margin:0;padding:0;list-style:none;display:flex}.song-list li{border:1px solid var(--line);transition:border-color .4s var(--ease), transform .4s var(--ease);background:#fffdf9b3;border-radius:10px;align-items:center;gap:16px;padding:12px 16px;display:flex}.song-list li:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));transform:translate(4px)}.song-list li.is-current{border-color:var(--accent)}.song-play{border:1px solid var(--accent);width:34px;height:34px;color:var(--accent);font-family:var(--display);cursor:pointer;transition:background .4s var(--ease), color .4s var(--ease);background:0 0;border-radius:999px;flex:none;font-size:12px}.song-play:hover:not(:disabled){background:var(--accent);color:#fff}.song-play:disabled{opacity:.35;cursor:default}.song-title{font-family:var(--serif);letter-spacing:.05em;font-size:15px}.song-title em{color:var(--ink-45);letter-spacing:.1em;margin-left:8px;font-size:12px;font-style:normal}.map-panel{border:1px solid var(--line);background:radial-gradient(90% 80% at 20% 10%, var(--accent-soft), transparent 55%), radial-gradient(80% 70% at 85% 90%, color-mix(in srgb, var(--accent-2) 26%, transparent), transparent 55%), var(--paper-2);border-radius:14px;margin-bottom:36px;padding:18px;position:relative;overflow:hidden}.map-panel svg{width:100%;height:clamp(220px,34vw,380px);display:block}.map-line{stroke:color-mix(in srgb, var(--accent) 55%, var(--line));stroke-width:.5px;stroke-dasharray:2 1.6;vector-effect:non-scaling-stroke}.map-dot{fill:var(--accent)}.map-ring{fill:none;stroke:var(--accent);stroke-width:.35px;vector-effect:non-scaling-stroke;animation:ringPulse 2.8s var(--ease) infinite}@keyframes ringPulse{0%,to{r:2.2;opacity:.9}50%{r:4.4;opacity:.2}}.map-labels{flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:12px;display:flex}.map-label{font-family:var(--serif);letter-spacing:.14em;color:var(--ink-70);font-size:12px}.map-label:before{content:"";background:var(--accent);vertical-align:1px;border-radius:999px;width:6px;height:6px;margin-right:7px;display:inline-block}.place-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.place-card{border:1px solid var(--line);transition:transform .5s var(--ease);background:#fffdf9cc;border-radius:12px;padding:22px 24px;transform:rotate(-.5deg)}.place-card:hover{transform:rotate(0)translateY(-3px)}.place-date{letter-spacing:.16em;color:var(--accent);font-size:11px}.upload-form{border:1px dashed color-mix(in srgb, var(--accent) 50%, var(--line));background:#fffdf999;border-radius:14px;flex-wrap:wrap;align-items:center;gap:14px;max-width:720px;margin-bottom:34px;padding:20px 22px;display:flex}.upload-drop{flex:1;min-width:220px}.upload-drop input{display:none}.upload-drop span{border:1px solid var(--line);text-align:center;font-family:var(--serif);letter-spacing:.1em;color:var(--ink-70);cursor:pointer;transition:border-color .4s var(--ease), background .4s var(--ease);background:#ffffff80;border-radius:10px;padding:26px 18px;font-size:14px;display:block}.upload-drop:hover span{border-color:var(--accent);background:#ffffffd9}.album-wall{columns:3 240px;column-gap:18px}.photo{break-inside:avoid;border:1px solid var(--line);transform:rotate(calc(var(--r2,0deg) * .6deg));background:#fffdf9cc;border-radius:8px;margin:0 0 18px;position:relative;overflow:hidden;box-shadow:0 14px 30px -22px #241e1973}.photo:nth-child(3n+1){--r2:.7}.photo:nth-child(3n+2){--r2:-.6}.photo:nth-child(3n+3){--r2:.4}.photo img{width:100%;height:auto;transition:transform .7s var(--ease)}.photo:hover img{transform:scale(1.03)}.photo figcaption{font-family:var(--serif);letter-spacing:.06em;color:var(--ink-70);padding:10px 14px;font-size:13px}.photo-missing{text-align:center;color:var(--ink-45);padding:60px 20px;font-size:13px}.photo-del{position:absolute;top:8px;right:8px}.photo-del .btn-mini{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#faf8f4d9}.admin{max-width:860px}.admin-block{border:1px solid var(--line);background:#fffdf9a8;border-radius:14px;margin-bottom:46px;padding:26px 28px}.admin-title{font-family:var(--serif);letter-spacing:.22em;color:var(--accent);margin:0 0 18px;font-size:16px;font-weight:400}.admin-form{grid-template-columns:1fr 1fr;align-items:end;gap:14px 18px;display:grid}.admin-form button{grid-column:1/-1}.admin-form .field:has(textarea){grid-column:1/-1}.admin-form .btn-primary{width:fit-content}.field textarea,.field select{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;transition:border-color .4s var(--ease);background:#fff9;border-radius:10px;outline:none;padding:11px 14px;font-family:inherit;font-size:14px}.field textarea:focus,.field select:focus{border-color:color-mix(in srgb, var(--accent) 70%, var(--line))}.field .check{color:var(--ink-70);letter-spacing:.06em;align-items:center;gap:10px;padding:11px 0;font-size:13px;display:flex}.field .check input{width:auto}.admin-list{flex-direction:column;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.admin-list li{border:1px solid var(--line);letter-spacing:.05em;background:#ffffff73;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:9px 14px;font-size:13px;display:flex}.admin-hint{letter-spacing:.08em;color:var(--ink-45);margin:14px 0 0;font-size:12px}@media (max-width:640px){.admin-form{grid-template-columns:1fr}.admin-form button{grid-column:auto}.admin-form .field:has(textarea){grid-column:auto}.timeline:before{left:84px}.tl-date{width:56px}.tl-dot{margin-left:-6.5px}}.card--weather{grid-column:span 6}.weather-home{flex-wrap:wrap;gap:14px 40px;display:flex}.wh-home{align-items:baseline;gap:10px;display:flex}.wh-home em{font-style:normal;font-family:var(--serif);letter-spacing:.1em;color:var(--ink-70);font-size:13px}.wh-home b{font-family:var(--display);font-size:28px;line-height:1}.wh-home i{letter-spacing:.2em;color:var(--ink-45);font-size:11px;font-style:normal}.mood-grid{grid-template-columns:1fr 1fr;gap:22px;max-width:920px;display:grid}.mood-card{border:1px solid var(--line);background:#fffdf9db;border-radius:16px;flex-direction:column;align-items:center;gap:14px;padding:28px 26px;display:flex;box-shadow:0 20px 44px -32px #241e1966}.mood-card.is-mine{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.mood-head{justify-content:space-between;align-items:baseline;width:100%;display:flex}.mood-name{font-family:var(--serif);letter-spacing:.12em;font-size:16px}.mood-tag{letter-spacing:.3em;color:var(--accent);font-size:10px}.mood-circle{border:1px solid var(--line);width:78px;height:78px;font-family:var(--serif);color:var(--ink-45);transition:border-color .5s var(--ease), color .5s var(--ease);border-radius:999px;place-items:center;font-size:26px;display:grid}.mood-weather{letter-spacing:.2em;color:var(--ink-45);margin:0;font-size:12px}.weather-pick{gap:8px;display:flex}.weather-opt{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex}.weather-opt span{border:1px solid var(--line);width:36px;height:36px;font-family:var(--serif);color:var(--ink-45);transition:all .4s var(--ease);border-radius:999px;place-items:center;font-size:14px;display:grid}.weather-opt em{letter-spacing:.12em;color:var(--ink-45);font-size:10px;font-style:normal}.weather-opt:hover span{border-color:var(--accent);transform:translateY(-2px)}.weather-opt.is-on span{background:#fffffff2;box-shadow:0 6px 14px -10px #241e1980}.weather-opt.is-on em{color:var(--ink-70)}.mood-note{border:1px solid var(--line);width:100%;color:var(--ink);letter-spacing:.03em;transition:border-color .4s var(--ease);background:#ffffff8c;border-radius:10px;outline:none;padding:10px 14px;font-size:13px}.mood-note:focus{border-color:color-mix(in srgb, var(--accent) 65%, var(--line))}.mood-note-text{font-family:var(--serif);letter-spacing:.06em;color:var(--ink-45);text-align:center;min-height:2.6em;margin:0;font-size:13.5px}.weather-history{max-width:900px;margin:0;padding:0;list-style:none}.wh-row{border-bottom:1px solid var(--line);align-items:baseline;gap:26px;padding:15px 0;display:flex}.wh-row:last-child{border-bottom:0}.wh-date{letter-spacing:.12em;width:150px;color:var(--ink-45);flex:none;font-size:12px}.wh-people{flex-wrap:wrap;gap:36px;display:flex}.wh-chip{align-items:baseline;gap:8px;display:flex}.wh-chip em{letter-spacing:.1em;color:var(--ink-70);font-size:12px;font-style:normal}.wh-chip b{font-family:var(--display);font-size:20px;line-height:1}.wh-note{color:var(--ink-45);text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:12px;overflow:hidden}@media (max-width:760px){.mood-grid{grid-template-columns:1fr}.wh-row{flex-direction:column;gap:8px}.wh-date{width:auto}.wh-people{gap:16px}}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}}.section{animation:pageIn .8s var(--ease) both}.lightbox{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:lbIn .35s var(--ease);background:#14100ceb;place-items:center;display:grid;position:fixed;inset:0}@keyframes lbIn{0%{opacity:0}}.lb-img{object-fit:contain;max-width:min(92vw,1400px);max-height:84vh;animation:lbImg .5s var(--ease);border-radius:6px;box-shadow:0 40px 90px -40px #000000e6}@keyframes lbImg{0%{opacity:0;transform:scale(.96)}}.lb-close{color:#ffffffb3;cursor:pointer;background:0 0;border:0;font-size:30px;line-height:1;position:absolute;top:18px;right:24px}.lb-close:hover{color:#fff}.lb-nav{color:#ffffff8c;cursor:pointer;transition:color .3s var(--ease), transform .3s var(--ease);background:0 0;border:0;padding:12px 22px;font-size:44px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lb-nav:hover{color:#fff;transform:translateY(-50%)scale(1.08)}.lb-prev{left:8px}.lb-next{right:8px}.lb-caption{color:#ffffffc7;font-family:var(--serif);letter-spacing:.14em;margin:0;font-size:13px;position:absolute;bottom:24px}.photo{transition:transform .6s var(--ease), box-shadow .6s var(--ease);cursor:zoom-in}.photo:hover{z-index:3;transform:rotate(0)translateY(-4px)scale(1.012);box-shadow:0 26px 50px -28px #241e198c}.map-line{stroke-dasharray:100;stroke-dashoffset:100px;animation:drawPath 2.6s var(--ease) forwards .25s}@keyframes drawPath{to{stroke-dashoffset:0}}.tl-dot{animation:dotPulse 3.4s var(--ease) infinite}@keyframes dotPulse{0%,to{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent)}50%{box-shadow:0 0 0 10px color-mix(in srgb, var(--accent) 5%, transparent)}}.wish-dot{position:relative}.wish-dot.is-done:after{content:"";border:1px solid var(--accent);animation:ripple .8s var(--ease) forwards;border-radius:999px;position:absolute;inset:-2px}@keyframes ripple{0%{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(2)}}.player.is-playing .disc{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent), 0 0 70px -12px color-mix(in srgb, var(--accent) 55%, transparent), 0 18px 40px -22px #241e1980}.mood-circle{animation:moodPop .65s var(--ease)}@keyframes moodPop{0%{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 35%, transparent);transform:scale(.88)}55%{transform:scale(1.05);box-shadow:0 0 0 12px #0000}to{transform:scale(1)}}.note{animation:pageIn .7s var(--ease) both}.checkin-hero{border:1px solid var(--line);background:#fffdf9db;border-radius:16px;align-items:center;gap:26px;max-width:780px;padding:30px 32px;display:flex;box-shadow:0 22px 48px -34px #241e1973}.checkin-hero.is-checked{border-color:color-mix(in srgb, var(--accent) 48%, var(--line))}.checkin-seal{border:1px solid var(--accent);width:86px;height:86px;font-family:var(--serif);color:var(--accent);border-radius:999px;flex:none;place-items:center;font-size:32px;display:grid}@keyframes sealPop{0%{opacity:.35;transform:scale(.8)}60%{transform:scale(1.08)}to{transform:scale(1)}}.checkin-main{flex-direction:column;flex:1;align-items:flex-start;gap:8px;display:flex}.checkin-label{letter-spacing:.34em;text-transform:uppercase;color:var(--accent);margin:0;font-size:10px}.checkin-title{font-family:var(--serif);letter-spacing:.08em;margin:0;font-size:20px;font-weight:400}.checkin-note{font-family:var(--serif);letter-spacing:.05em;color:var(--ink-70);margin:0;font-size:14px}.checkin-input{border:1px solid var(--line);width:100%;transition:border-color .4s var(--ease);background:#fff9;border-radius:10px;outline:none;padding:10px 14px;font-size:13px}.checkin-input:focus{border-color:color-mix(in srgb, var(--accent) 65%, var(--line))}.stats{flex-wrap:wrap;gap:20px 52px;margin-top:32px;display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat b{font-family:var(--display);color:var(--accent);font-size:42px;font-weight:400;line-height:1}.stat span{letter-spacing:.26em;text-transform:uppercase;color:var(--ink-45);font-size:10px}.calendar-wrap{padding:4px 2px 8px;overflow-x:auto}.calendar{grid-template-rows:repeat(7,13px);grid-auto-flow:column;gap:4px;width:max-content;display:grid}.cal-cell{width:13px;height:13px;transition:background .5s var(--ease);background:#e6e0d6b3;border-radius:3px}.cal-cell.is-on{background:var(--accent)}.cal-cell.is-today{box-shadow:0 0 0 1.5px var(--ink-45)}.checkin-list{max-width:780px;margin:0;padding:0;list-style:none}.checkin-row{border-bottom:1px solid var(--line);align-items:baseline;gap:18px;padding:12px 0;display:flex}.checkin-row:last-child{border-bottom:0}.checkin-date{letter-spacing:.1em;width:150px;color:var(--ink-45);flex:none;font-size:12px}.checkin-text{font-family:var(--serif);letter-spacing:.04em;flex:1;font-size:14px}.checkin-seal{position:relative}.checkin-hero.just-now .checkin-seal{animation:stampDown .9s var(--ease)}@keyframes stampDown{0%{opacity:0;transform:scale(2.1)rotate(-14deg)}45%{opacity:1;transform:scale(.92)rotate(3deg)}65%{transform:scale(1.04)rotate(-1deg)}to{transform:scale(1)rotate(0)}}.heart-burst{color:var(--accent);pointer-events:none;--dx:calc((var(--h) - 2.5) * 15px);animation:heartUp 1.5s var(--ease) forwards;animation-delay:calc(var(--h) * 70ms);font-size:13px;position:absolute;top:50%;left:50%}@keyframes heartUp{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}25%{opacity:.9}to{transform:translate(calc(-50% + var(--dx)), -120px) scale(1);opacity:0}}.cal-cell{animation:cellIn .55s var(--ease) both;animation-delay:calc(var(--i,0) * 5ms)}@keyframes cellIn{0%{opacity:0;transform:scale(.3)}}.stat b{animation:statIn .9s var(--ease) both}@keyframes statIn{0%{opacity:0;transform:translateY(8px)}}.note:nth-child(5n+1){background:#fffcf3;border-left:3px solid #d9b071}.note:nth-child(5n+2){background:#fdf6f2;border-left:3px solid #d99a8e}.note:nth-child(5n+3){background:#f5f9f4;border-left:3px solid #94b08c}.note:nth-child(5n+4){background:#f5f8fc;border-left:3px solid #88a3c4}.note:nth-child(5n+5){background:#fbf7fa;border-left:3px solid #b394b5}.cal-cell.is-on{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 45%, #fff), var(--accent));box-shadow:0 2px 6px -4px color-mix(in srgb, var(--accent) 70%, transparent)}.stat:first-child b{color:var(--accent)}.stat:nth-child(2) b{color:color-mix(in srgb, var(--accent-2) 72%, #3d4a33)}.stat:nth-child(3) b{color:var(--gold)}.mood-card.is-mine{background:linear-gradient(165deg, #ffffffeb, var(--accent-soft))}.mood-card:not(.is-mine){background:linear-gradient(165deg, #ffffffeb, color-mix(in srgb, var(--accent-2) 22%, #fff))}.tl-item:nth-child(3n+2) .tl-dot{border-color:var(--accent-2)}.tl-item:nth-child(3n+3) .tl-dot{border-color:var(--gold)}.tl-item:nth-child(3n+2) .tl-card{border-top:2px solid color-mix(in srgb, var(--accent-2) 55%, transparent)}.tl-item:nth-child(3n+3) .tl-card{border-top:2px solid color-mix(in srgb, var(--gold) 55%, transparent)}.tl-item:nth-child(3n+1) .tl-card{border-top:2px solid color-mix(in srgb, var(--accent) 55%, transparent)}.card:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(158deg, color-mix(in srgb, var(--accent) 6%, transparent), transparent 42%);position:absolute;inset:0}.card--music:after{background:linear-gradient(158deg, color-mix(in srgb, var(--accent-2) 12%, transparent), transparent 42%)}.card--map:after{background:linear-gradient(158deg, color-mix(in srgb, var(--gold) 10%, transparent), transparent 42%)}.card--weather:after{background:linear-gradient(158deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 55%)}.song-list li.is-current{background:color-mix(in srgb, var(--accent-soft) 70%, #fff)}.wish-row.is-done{background:color-mix(in srgb, var(--accent-2) 12%, #fff)}.hero:after{content:"";z-index:-1;aspect-ratio:1;background:radial-gradient(circle, color-mix(in srgb, var(--accent-2) 30%, transparent), transparent 68%);filter:blur(30px);opacity:.75;border-radius:50%;width:min(40vw,340px);animation:11s ease-in-out infinite reverse halo;position:absolute;top:30%;right:6%}.footer-mark{background:linear-gradient(90deg, var(--accent), var(--gold), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.section-meta{color:color-mix(in srgb, var(--accent) 78%, var(--ink-70))}.atmos{z-index:1;pointer-events:none;opacity:0;transition:opacity 1.2s var(--ease);background-position:50%;background-size:cover;position:fixed;inset:0}html[data-page=home] .atmos-home{opacity:.13;mix-blend-mode:multiply;filter:grayscale()contrast(1.05)}html[data-page=weather] .atmos-weather{opacity:.45;mix-blend-mode:soft-light;filter:blur(10px)saturate(.9)}html[data-page=album] .atmos-album{opacity:.4;mix-blend-mode:soft-light;filter:blur(9px)saturate(.95)}html[data-page=timeline] .atmos-timeline{opacity:.17;mix-blend-mode:multiply;filter:grayscale(.85)sepia(.5)contrast(1.02)}html[data-page=map] .atmos-map{opacity:.32;mix-blend-mode:soft-light;filter:blur(10px)saturate(.85)}html[data-page=music] .atmos-music{opacity:.32;mix-blend-mode:screen;filter:blur(6px)saturate(1.05)}html[data-page=messages] .atmos-messages{opacity:.34;mix-blend-mode:soft-light;filter:blur(10px)saturate(.95)}html[data-page=wishes] .atmos-wishes{opacity:.36;mix-blend-mode:soft-light;filter:blur(8px)saturate(.9)}html[data-page=checkin] .atmos-checkin{opacity:.35;mix-blend-mode:soft-light;filter:blur(10px)saturate(.95)}.scene-photo{opacity:0;transition:opacity 1.8s var(--ease);filter:blur(14px)saturate(.92);mix-blend-mode:soft-light;background-position:50%;background-size:cover;position:absolute;inset:-4%}html[data-season=spring] .scene-photo--spring{opacity:.5}html[data-season=summer] .scene-photo--summer{opacity:.45}html[data-season=autumn] .scene-photo--autumn,html[data-season=winter] .scene-photo--winter{opacity:.5}.vignette{z-index:5;pointer-events:none;background:radial-gradient(130% 100% at 50% 42%,#0000 58%,#241e190f 100%);position:fixed;inset:0}.scene{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.scene-layer{opacity:0;transition:opacity 1.4s var(--ease);position:absolute;inset:0}.scene-layer svg{width:100%;height:100%;display:block}html[data-season=spring] .scene-spring,html[data-season=summer] .scene-summer,html[data-season=autumn] .scene-autumn,html[data-season=winter] .scene-winter{opacity:1}html[data-season=spring]{--wash1:#d4728b2e;--wash2:#a8c6a133}html[data-season=summer]{--wash1:#3e8fa82e;--wash2:#e0b84e33}html[data-season=autumn]{--wash1:#c4713f2e;--wash2:#8a9a5b33}html[data-season=winter]{--wash1:#7f94b833;--wash2:#b9c7d938}.rain{transform-box:fill-box;transform-origin:50%;animation:2.8s linear infinite rainFall}.rain.r2{animation-duration:3.3s;animation-delay:.5s}.rain.r3{animation-duration:2.4s;animation-delay:1.1s}.rain.r4{animation-duration:3.7s;animation-delay:.2s}.rain.r5{animation-duration:2.9s;animation-delay:1.6s}.rain.r6{animation-duration:3.1s;animation-delay:.9s}@keyframes rainFall{0%{opacity:0;transform:translate(10px,-300px)}12%{opacity:.9}to{opacity:0;transform:translate(-30px,380px)}}.sun-rays{transform-box:fill-box;transform-origin:50%;animation:120s linear infinite spin}.leaf{animation:7s ease-in-out infinite alternate leafFloat}.leaf.l2{animation-duration:8.5s;animation-delay:1.2s}.leaf.l3{animation-duration:6.8s;animation-delay:2.4s}.leaf.l4{animation-duration:9.2s;animation-delay:.8s}@keyframes leafFloat{0%{transform:translate(0)}to{transform:translate(-34px,30px)}}.snow{animation:12s linear infinite snowDrift}.snow.s1{animation-delay:0s}.snow.s2{animation-delay:2.2s}.snow.s3{animation-delay:4.5s}.snow.s4{animation-delay:1.1s}.snow.s5{animation-delay:6.3s}.snow.s6{animation-delay:3.4s}.snow.s7{animation-delay:7.7s}.snow.s8{animation-delay:5.2s}@keyframes snowDrift{0%{opacity:0;transform:translateY(-160px)}12%{opacity:.9}to{opacity:0;transform:translate(70px,320px)}}.page-ornament{z-index:6;pointer-events:none;width:100px;height:100px;position:fixed}.orn-tr{top:74px;right:6px}.orn-bl{bottom:16px;left:6px}.orn{opacity:0;transition:opacity 1.2s var(--ease);position:absolute;inset:0}.orn svg{width:100%;height:100%;display:block}html[data-season=spring] .orn-spring{opacity:.55}html[data-season=summer] .orn-summer{opacity:.5}html[data-season=autumn] .orn-autumn,html[data-season=winter] .orn-winter{opacity:.55}.section-title:after{content:"❦";color:var(--accent);vertical-align:.32em;margin-left:14px;font-size:.48em}.login-wrap:before,.login-wrap:after{content:"♥";font-family:var(--serif);color:var(--accent);opacity:.22;pointer-events:none;animation:16s ease-in-out infinite floatHeart;position:absolute}.login-wrap:before{font-size:30px;top:14%;left:9%}.login-wrap:after{font-size:22px;animation-delay:7s;top:64%;right:8%}@keyframes floatHeart{0%,to{transform:translateY(0)rotate(-8deg)}50%{transform:translateY(-42px)rotate(10deg)}}.btn-primary:active{transform:translateY(0)scale(.97)}.song-play:active{transform:scale(.92)}.weather-opt:active span,.season-dock button:active{transform:scale(.9)}@media (max-width:760px){.page-ornament{display:none}}.nav-logout{letter-spacing:.16em;color:var(--ink-45);cursor:pointer;transition:color .4s var(--ease);background:0 0;border:0;padding:4px 0;font-size:11px}.nav-logout:hover{color:#a4604f}.menu-btn{cursor:pointer;background:0 0;border:0;flex-direction:column;gap:5px;padding:8px;display:none}.menu-btn span{background:var(--ink);width:21px;height:1.5px;transition:transform .4s var(--ease)}.mobile-menu{z-index:90;background:color-mix(in srgb, var(--paper) 93%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:opacity .5s var(--ease), visibility .5s;position:fixed;inset:0}.mobile-menu.is-open{opacity:1;visibility:visible}.mobile-menu nav{flex-direction:column;height:100%;padding:96px clamp(28px,8vw,60px) 40px;display:flex;position:relative;overflow-y:auto}.menu-close{color:var(--ink-70);cursor:pointer;background:0 0;border:0;font-size:32px;line-height:1;position:absolute;top:20px;right:22px}.menu-eyebrow{letter-spacing:.46em;text-transform:uppercase;color:var(--accent);margin:0 0 24px;font-size:10px}.menu-links{flex-direction:column;gap:2px;display:flex}.menu-links a{border-bottom:1px solid var(--line);font-family:var(--serif);letter-spacing:.12em;color:var(--ink);opacity:0;transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s;align-items:baseline;gap:16px;padding:13px 0;font-size:21px;display:flex;transform:translateY(14px)}.mobile-menu.is-open .menu-links a{opacity:1;transition-delay:calc(var(--i,0) * 45ms + 60ms);transform:none}.menu-links a em{font-style:normal;font-family:var(--display);letter-spacing:.1em;color:var(--accent);min-width:24px;font-size:12px}.menu-links a.is-current{color:var(--accent)}.menu-foot{justify-content:center;margin-top:auto;padding-top:28px;display:flex}.logout-btn{border:1px solid var(--line);letter-spacing:.3em;text-indent:.3em;color:var(--ink-70);cursor:pointer;transition:all .4s var(--ease);background:0 0;border-radius:999px;padding:8px 28px;font-size:11px}.logout-btn:hover{color:#a4604f;border-color:#a4604f}.upload-note{letter-spacing:.08em;color:var(--accent);margin:0;font-size:12px}@media (max-width:600px){.menu-btn{display:flex}.site-header{justify-content:space-between}}.export-link{display:inline-block}.video-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;display:grid}.video-card{border:1px solid var(--line);transition:transform .6s var(--ease), box-shadow .6s var(--ease);background:#fffdf9db;border-radius:14px;margin:0;position:relative;overflow:hidden;box-shadow:0 20px 44px -32px #241e1973}.video-card:hover{transform:translateY(-4px);box-shadow:0 30px 60px -34px #241e198c}.video-frame{aspect-ratio:16/9;background:#241e19}.video-frame video{object-fit:contain;width:100%;height:100%}.video-card figcaption{flex-direction:column;gap:4px;padding:14px 16px;display:flex}.video-title{font-family:var(--serif);letter-spacing:.06em;font-size:15px}.video-desc{color:var(--ink-45);letter-spacing:.04em;font-size:12px}.card-wall{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:26px;padding:14px 4px;display:grid}.lovecard{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:linear-gradient(170deg, #fffdf8, var(--accent-soft));cursor:pointer;min-height:240px;transform:rotate(var(--r,0deg));transition:transform .6s var(--ease), box-shadow .6s var(--ease);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 22px 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 38px -26px #241e1973}.lovecard:before{content:"";background:color-mix(in srgb, var(--accent) 16%, #fff);clip-path:polygon(0 0,100% 0,50% 100%);border-bottom:1px solid var(--line);height:62px;position:absolute;top:0;left:0;right:0}.lovecard:hover{z-index:2;transform:rotate(0)translateY(-6px)scale(1.02);box-shadow:0 30px 60px -30px #241e198c}.lovecard-seal{background:var(--accent);color:#fff;width:34px;height:34px;box-shadow:0 8px 16px -8px color-mix(in srgb, var(--accent) 80%, transparent);border-radius:999px;place-items:center;margin-bottom:6px;font-size:13px;display:grid}.lovecard em{font-style:normal;font-family:var(--serif);letter-spacing:.1em;font-size:17px}.lovecard small{letter-spacing:.3em;text-transform:uppercase;color:var(--accent);font-size:10px}.card-overlay{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:lbIn .35s var(--ease);background:#14100ce6;place-items:center;display:grid;position:fixed;inset:0}.card-sheet{text-align:center;width:min(560px,90vw);max-height:84vh;animation:sheetIn .6s var(--ease);background:#fffdf8;border-radius:14px;padding:56px 46px;position:relative;overflow-y:auto;box-shadow:0 50px 100px -40px #000000d9}@keyframes sheetIn{0%{opacity:0;transform:scale(.92)rotate(-1deg)}}.card-sheet-seal{background:var(--accent);color:#fff;text-align:center;border-radius:999px;width:40px;height:40px;margin:0 auto 22px;font-size:15px;line-height:40px;display:block}.card-sheet h3{font-family:var(--serif);letter-spacing:.16em;margin:0 0 22px;font-size:24px;font-weight:400}.card-sheet p{font-family:var(--serif);letter-spacing:.05em;white-space:pre-wrap;color:var(--ink-70);margin:0 0 22px;font-size:15.5px;line-height:2.1}.card-sheet em{color:var(--accent);letter-spacing:.1em;font-style:italic}.page-fade{animation:.45s both pageFadeIn}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}}::view-transition-old(root){animation:.26s both vtOut}::view-transition-new(root){animation:.38s both vtIn}@keyframes vtOut{to{opacity:0;transform:scale(.996)}}@keyframes vtIn{0%{opacity:0;transform:scale(1.004)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}.card{-webkit-backdrop-filter:blur(16px)saturate(1.08);backdrop-filter:blur(16px)saturate(1.08);background:#fffdf97a;border:1px solid #ffffff8c;box-shadow:0 1px 2px #241e1908,0 20px 50px -32px #241e1961}.card:hover{border-color:color-mix(in srgb, var(--accent) 42%, #ffffff8c)}.section{padding-top:clamp(80px,11vw,150px);padding-bottom:clamp(80px,11vw,150px)}.section-title:after{color:var(--gold)}.footer{background:#241e19;border-top:1px solid #9a7b5473}.footer-mark{color:var(--gold);-webkit-text-fill-color:var(--gold);background:0 0}.footer-text{color:#faf8f480}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:#352d26}.doodle{z-index:6;pointer-events:none;color:var(--ink-45);opacity:.5;position:fixed}.doodle svg{width:100%;height:100%;display:block}.doodle-d1{width:46px;height:31px;top:82px;left:16px}.doodle-d2{width:34px;height:34px;top:46%;left:9px}.doodle-d3{width:34px;height:26px;top:48%;right:11px}.doodle-d4{width:40px;height:25px;bottom:80px;right:16px}.doodle svg{animation:6.5s ease-in-out infinite doodleFloat}.doodle-d2 svg{animation-duration:7.5s;animation-delay:1.2s}.doodle-d3 svg{animation-duration:8s;animation-delay:2.4s}.doodle-d4 svg{animation-duration:6.8s;animation-delay:.6s}@keyframes doodleFloat{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-8px)rotate(3deg)}}@media (max-width:760px){.doodle{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
