:root{color:#5f3344;background:#fff7fb;font-family:Inter,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.72}.gate,.site-shell{min-height:100vh;position:relative}.gate{align-items:center;background:radial-gradient(circle at 18% 18%,rgba(255,202,222,.82),transparent 31%),radial-gradient(circle at 80% 12%,rgba(255,240,173,.72),transparent 25%),linear-gradient(145deg,#fff7fb,#ffe3ee 54%,#fff3db);display:grid;justify-items:center;padding:24px}.gate__ambient{border-radius:999px;filter:blur(2px);opacity:.7;position:absolute}.gate__ambient--one{background:#ffd5e4;height:180px;left:9%;top:12%;width:180px}.gate__ambient--two{background:#fff1a8;bottom:16%;height:150px;right:11%;width:150px}.gate-card{background:#ffffffad;border:1px solid rgba(255,255,255,.88);border-radius:28px;box-shadow:0 28px 90px #d5638933;max-width:440px;padding:34px;position:relative;text-align:center;width:min(100%,440px)}.gate-card__icon{align-items:center;background:#ff7fac;border-radius:22px;color:#fff;display:inline-flex;height:58px;justify-content:center;margin-bottom:16px;width:58px}.eyebrow{color:#d86992;font-size:.76rem;font-weight:800;letter-spacing:0;margin:0 0 10px;text-transform:uppercase}.gate-card h1,.hero h1,.section-heading h2{color:#5f243c;letter-spacing:0;line-height:1.1;margin:0}.gate-card h1{font-size:clamp(2rem,8vw,3.4rem)}.gate-card p{color:#865369;margin:16px auto 0}.gate-form{display:grid;gap:12px;margin-top:24px}.gate-form input{background:#ffffffd1;border:1px solid #f7b6cd;border-radius:18px;color:#5f243c;outline:none;padding:15px 18px;text-align:center}.add-panel{background:#ffffff75;border:1px solid rgba(255,255,255,.84);border-radius:24px;box-shadow:0 18px 42px #d6698f1f;margin:0 0 22px;padding:8px;position:relative;z-index:2}.add-panel summary{align-items:center;border-radius:18px;color:#b84b73;cursor:pointer;display:flex;font-weight:900;gap:10px;list-style:none;padding:12px 14px}.add-panel summary::-webkit-details-marker{display:none}.add-panel summary span{align-items:center;background:#fff;border-radius:999px;display:inline-flex;height:34px;justify-content:center;width:34px}.add-panel[open] summary{background:#fff0f6db}.add-form{display:grid;gap:12px;padding:8px 10px 12px}.add-form input,.add-form select,.add-form textarea{background:#ffffffdb;border:1px solid #f4b4cb;border-radius:16px;color:#5f243c;outline:none;padding:13px 14px;width:100%}.add-form textarea{min-height:96px;resize:vertical}.add-form input:focus,.add-form select:focus,.add-form textarea:focus{border-color:#ee6f9d;box-shadow:0 0 0 4px #ee6f9d24}.add-form button{background:linear-gradient(135deg,#ff7fac,#ff9cc0);border:0;border-radius:999px;color:#fff;font-weight:900;padding:13px 18px;width:fit-content}.gate-form input:focus{border-color:#ee6f9d;box-shadow:0 0 0 4px #ee6f9d24}.gate-form button,.soft-link,.secret-button{align-items:center;background:linear-gradient(135deg,#ff7fac,#ff9cc0);border:0;border-radius:999px;color:#fff;display:inline-flex;font-weight:800;gap:8px;justify-content:center;padding:14px 20px;box-shadow:0 16px 30px #eb689638}.gate-form__error{color:#c83767!important;font-size:.92rem}.save-message,.music-credit{color:#b84b73;font-size:.9rem;font-weight:800;margin:0}.gate-card__hint{color:#aa7184!important;font-size:.82rem}.site-shell{background:radial-gradient(circle at 12% 3%,rgba(255,197,221,.78),transparent 28%),radial-gradient(circle at 88% 8%,rgba(255,235,162,.62),transparent 24%),linear-gradient(180deg,#fff7fb,#ffe9f1 45%,#fff8e8);overflow:hidden}.site-shell:before{background-image:radial-gradient(circle,rgba(255,132,174,.42) 1.5px,transparent 1.5px),radial-gradient(circle,rgba(240,194,88,.32) 1.2px,transparent 1.2px);background-position:0 0,34px 42px;background-size:76px 76px,92px 92px;content:"";inset:0;opacity:.55;pointer-events:none;position:fixed}.top-nav{align-items:center;background:#fff9;border:1px solid rgba(255,255,255,.86);border-radius:999px;display:flex;gap:6px;justify-content:center;left:50%;padding:8px;position:fixed;top:16px;transform:translate(-50%);width:min(calc(100% - 28px),430px);z-index:20}.top-nav a{border-radius:999px;color:#7a4058;flex:1;font-size:.9rem;font-weight:800;padding:9px 8px;text-align:center;text-decoration:none}.top-nav button{align-items:center;background:#fff;border:0;border-radius:999px;color:#d95887;display:inline-flex;height:36px;justify-content:center;min-width:36px}.top-nav a:hover{background:#fff0f6}.hero{align-items:center;display:grid;gap:42px;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);margin:0 auto;min-height:100vh;padding:108px 24px 70px;position:relative;width:min(1120px,100%)}.hero__copy,.hero__keepsake,.section,.footer{position:relative;z-index:1}.hero h1{font-size:clamp(3.1rem,8vw,6.7rem);max-width:780px}.hero__copy>p:not(.eyebrow){color:#805067;font-size:clamp(1rem,2vw,1.22rem);max-width:620px}.hero__names{align-items:center;color:#df5f8b;display:flex;flex-wrap:wrap;font-size:clamp(1.4rem,4vw,2.1rem);font-weight:900;gap:14px;margin-top:26px}.hero__actions{align-items:center;display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.music-control{align-items:center;background:#ffffff9e;border:1px solid rgba(255,255,255,.9);border-radius:999px;display:inline-flex;gap:10px;padding:8px 16px 8px 8px}.music-control span{color:#7a4058;font-size:.92rem;font-weight:700}.icon-button{align-items:center;background:#fff;border:0;border-radius:999px;color:#d95887;display:inline-flex;height:42px;justify-content:center;width:42px}.soft-link{background:#fff;color:#d95887}.hero__keepsake{display:grid;gap:16px}.keepsake-card,.stat-card,.timeline-item,.gallery-card,.letter-card,.wish-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff9e;border:1px solid rgba(255,255,255,.82);box-shadow:0 22px 54px #d6698f29}.keepsake-card{border-radius:30px;color:#d65f8b;min-height:260px;padding:34px}.keepsake-card span{color:#9b6376;display:block;font-weight:800;margin-top:44px}.keepsake-card strong{color:#5f243c;display:block;font-size:clamp(2rem,5vw,4rem);margin-top:8px}.stat-row{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{border-radius:24px;padding:22px}.stat-card strong{color:#d95887;font-size:clamp(2.1rem,5vw,3.7rem);line-height:1}.stat-card span{color:#d95887;font-weight:900;margin-left:5px}.stat-card p{color:#855469;font-weight:700;margin:10px 0 0}.section{margin:0 auto;padding:70px 24px;width:min(1120px,100%)}.section-heading{margin-bottom:28px}.section-heading h2{font-size:clamp(2rem,5vw,3.8rem)}.timeline{display:grid;gap:18px}.timeline-item{align-items:flex-start;border-radius:26px;display:grid;gap:18px;grid-template-columns:auto 1fr;padding:22px}.timeline-item__pin{align-items:center;background:linear-gradient(135deg,#ff86b2,#f3c85c);border-radius:18px;color:#fff;display:inline-flex;font-weight:900;height:44px;justify-content:center;width:44px}.timeline-item span,.gallery-card span{color:#d65f8b;font-size:.86rem;font-weight:900}.timeline-item h3,.wish-card h3,.modal h3{color:#5f243c;margin:4px 0 8px}.timeline-item p,.gallery-card p,.wish-card p,.modal p,.letter-card p{color:#805067;margin:0}.gallery-grid,.wish-grid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-card{border-radius:26px;color:inherit;padding:14px;text-align:left}.gallery-card img{aspect-ratio:4 / 3;border-radius:20px;display:block;margin-bottom:14px;object-fit:cover;width:100%}.modal{align-items:center;background:#5f243c59;display:grid;inset:0;justify-items:center;padding:22px;position:fixed;z-index:40}.modal__content{background:#fff8fb;border-radius:28px;max-width:660px;padding:18px;position:relative;width:min(100%,660px)}.modal__content button{background:#ff7fac;border:0;border-radius:999px;color:#fff;height:36px;position:absolute;right:14px;top:14px;width:36px}.modal__content img{border-radius:22px;display:block;max-height:62vh;object-fit:cover;width:100%}.section--letter{padding-bottom:44px}.section--secrets{padding-top:28px}.empty-state{background:#ffffff85;border:1px dashed rgba(216,88,135,.42);border-radius:20px;color:#9b6376;font-weight:800;margin:0 0 18px;padding:18px}.gallery-wrap,.text-entry{position:relative}.text-entry{background:#ffffff6b;border:1px solid rgba(255,255,255,.7);border-radius:20px;padding:16px}.secret-list{display:grid;gap:14px}.item-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.gallery-wrap .item-actions{padding:0 14px 14px}.item-actions button{align-items:center;background:#fff;border:1px solid rgba(235,104,150,.22);border-radius:999px;color:#c94e7d;display:inline-flex;height:34px;justify-content:center;width:34px}.settings-drawer{background:#fff8fbf5;border-left:1px solid rgba(255,255,255,.9);bottom:0;box-shadow:-24px 0 70px #5f243c2e;max-width:480px;overflow-y:auto;padding:22px;position:fixed;right:0;top:0;width:min(100%,480px);z-index:60}.settings-drawer__head{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.settings-drawer__head h2,.admin-form h3{color:#5f243c;margin:0}.admin-form{background:#ffffffad;border:1px solid rgba(255,255,255,.88);border-radius:22px;display:grid;gap:12px;margin-bottom:16px;padding:16px}.admin-form label{color:#7a4058;display:grid;font-size:.88rem;font-weight:900;gap:7px}.admin-form input,.admin-form select,.admin-form textarea{background:#ffffffe6;border:1px solid #f4b4cb;border-radius:14px;color:#5f243c;outline:none;padding:11px 12px;width:100%}.admin-form .music-select{background:linear-gradient(135deg,#fffffff5,#ffeef6f5);border-color:#ee6f9d;box-shadow:0 0 0 4px #ee6f9d1a;color:#5f243c;font-weight:900}.admin-form textarea{min-height:92px;resize:vertical}.admin-form button,.edit-modal button[type=submit]{align-items:center;background:linear-gradient(135deg,#ff7fac,#ff9cc0);border:0;border-radius:999px;color:#fff;display:inline-flex;font-weight:900;gap:8px;justify-content:center;padding:12px 16px;width:fit-content}.admin-form .danger-button{background:#fff;border:1px solid rgba(202,45,91,.24);color:#c83767}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.edit-modal{display:grid;gap:12px}.edit-modal label{color:#7a4058;display:grid;font-weight:900;gap:7px}.edit-modal input,.edit-modal select,.edit-modal textarea{border:1px solid #f4b4cb;border-radius:14px;color:#5f243c;padding:11px 12px}.theme-night{background:radial-gradient(circle at 12% 3%,rgba(255,183,213,.42),transparent 28%),radial-gradient(circle at 88% 8%,rgba(255,224,141,.28),transparent 24%),linear-gradient(180deg,#25152f,#53304a 45%,#9b5571);color:#fff1f7}.theme-night .hero h1,.theme-night .section-heading h2,.theme-night .timeline-item h3,.theme-night .wish-card h3,.theme-night .modal h3{color:#fff7fb}.theme-night .hero__copy>p:not(.eyebrow),.theme-night .timeline-item p,.theme-night .gallery-card p,.theme-night .wish-card p,.theme-night .modal p,.theme-night .letter-card p{color:#ffe1ec}.theme-cream{background:radial-gradient(circle at 12% 3%,rgba(255,220,160,.72),transparent 28%),radial-gradient(circle at 88% 8%,rgba(255,174,203,.46),transparent 24%),linear-gradient(180deg,#fff8e8,#ffe9d2 48%,#fff3f7)}.letter-card{border-radius:32px;padding:clamp(24px,5vw,48px)}.letter-card__body{display:grid;gap:18px;max-width:760px}.letter-card__body p{font-size:clamp(1rem,2vw,1.18rem)}.wish-card{border-radius:26px;min-height:210px;padding:22px;position:relative}.wish-card svg{color:#d95887}.wish-status{border-radius:999px;font-size:.76rem;font-weight:900;padding:6px 10px;position:absolute;right:18px;top:18px}.wish-status--planned{background:#ffe4ef;color:#d65384}.wish-status--dreaming{background:#fff1c5;color:#ad7a10}.wish-status--done{background:#e8fff1;color:#2a8a5c}.footer{align-items:center;color:#9c5d74;display:flex;gap:8px;justify-content:center;padding:38px 20px 76px;text-align:center}.footer svg{color:#df5f8b}.secret-button{bottom:22px;position:fixed;right:22px;z-index:30}.floating-notes{inset:0;pointer-events:none;position:fixed;z-index:35}.floating-notes span{animation:floatSecret 3.6s ease-in forwards;background:#ffffffd1;border:1px solid rgba(255,255,255,.9);border-radius:999px;bottom:74px;color:#d95887;font-weight:900;padding:10px 14px;position:absolute;transform:translate(-50%);white-space:nowrap}.toast{animation:toastIn 1.8s ease forwards;background:#ffffffeb;border:1px solid rgba(255,255,255,.9);border-radius:999px;box-shadow:0 18px 48px #d858873d;color:#b84b73;font-weight:900;left:50%;padding:14px 22px;position:fixed;top:84px;transform:translate(-50%);z-index:90}.cursor-effects{inset:0;pointer-events:none;position:fixed;z-index:100}.cursor-heart,.cursor-love-text{animation:cursorFloat .95s ease-out forwards;font-weight:900;position:absolute;text-shadow:0 6px 18px rgba(95,36,60,.18);transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none}.cursor-love-text{font-size:22px;white-space:nowrap}.petal-field{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.petal-field i{animation:fall 11s linear infinite;background:#ff9fc1;border-radius:80% 0;height:18px;opacity:.42;position:absolute;top:-40px;transform:rotate(45deg);width:14px}.petal-field i:nth-child(1){animation-delay:0s;left:8%}.petal-field i:nth-child(2){animation-delay:2s;left:22%}.petal-field i:nth-child(3){animation-delay:4s;left:44%}.petal-field i:nth-child(4){animation-delay:1s;left:66%}.petal-field i:nth-child(5){animation-delay:5s;left:80%}.petal-field i:nth-child(6){animation-delay:7s;left:92%}@keyframes fall{0%{transform:translateY(-40px) translate(0) rotate(45deg)}to{transform:translateY(110vh) translate(48px) rotate(255deg)}}@keyframes floatSecret{0%{opacity:0;transform:translate(-50%,18px) scale(.94)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-160px) scale(1.04)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-12px)}16%,78%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}@keyframes cursorFloat{0%{opacity:0;transform:translate(-50%,-20%) scale(.72) rotate(0)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-150%) scale(1.25) rotate(18deg)}}@media(max-width:820px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:96px}.gallery-grid,.wish-grid,.stat-row{grid-template-columns:1fr}.secret-button{bottom:16px;left:auto;padding:12px 16px;right:16px;width:auto}.footer{padding-bottom:92px}}@media(max-width:520px){.gate-card{border-radius:24px;padding:26px 20px}.top-nav{top:10px}.top-nav a{font-size:.82rem;padding-inline:4px}.hero,.section{padding-left:16px;padding-right:16px}.hero h1{font-size:3.25rem}.music-control{width:100%}}
