/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.hidden{display:none}}:root{--paper:#f4f0e8;--paper-deep:#e9e2d6;--ink:#21362f;--ink-soft:#56665f;--line:#21362f2b;--peach:#eaa583;--peach-soft:#f3c5ac;--sage:#9caf97;--sage-deep:#577064;--plum:#b49aa9;--sun:#e3bd65;--serif:"Iowan Old Style", "Palatino Linotype", "Songti SC", "STSong", serif;--sans:"Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 10% 2%, #eaa58321, transparent 22rem), radial-gradient(circle at 94% 17%, #9caf972b, transparent 25rem), var(--paper);color:var(--ink);font-family:var(--sans);min-width:320px;margin:0}button,input,textarea,select{color:inherit;font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--peach);outline-offset:3px}::selection{background:var(--peach-soft);color:var(--ink)}.site-shell{min-height:100vh;overflow:hidden}.auth-shell{background:radial-gradient(circle at 18% 16%, #eaa58333, transparent 24rem), radial-gradient(circle at 82% 78%, #9caf973d, transparent 28rem), var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:48px 20px 70px;display:flex;position:relative;overflow:hidden}.auth-shell:before{border:1px solid var(--line);content:"";border-radius:50%;width:min(76vw,920px);height:min(76vw,920px);position:absolute}.auth-card{border:1px solid var(--line);z-index:2;background:#fffdf8d4;width:100%;max-width:610px;padding:clamp(34px,6vw,70px);position:relative;box-shadow:0 35px 100px #21362f21}.auth-brand{margin-bottom:44px}.auth-orbits{width:142px;height:112px;position:absolute;top:33px;right:44px}.auth-orbits i{border:1px solid #21362f47;border-radius:50%;width:92px;height:92px;position:absolute;top:10px}.auth-orbits i:first-child{background:#9caf971f;left:0}.auth-orbits i:nth-child(2){background:#eaa58317;border-color:#eaa5836b;right:0}.auth-orbits span{color:var(--peach);font-size:1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.auth-card>h1{font-family:var(--serif);letter-spacing:-.055em;margin:25px 0 22px;font-size:clamp(2.7rem,6vw,4.6rem);font-weight:400;line-height:1.02}.auth-card>p{color:var(--ink-soft);font-family:var(--serif);max-width:410px;margin:0 0 30px;font-size:.88rem;line-height:1.8}.auth-form label{letter-spacing:.1em;margin-bottom:10px;font-size:.62rem;font-weight:700;display:block}.password-field{border:1px solid var(--line);background:#fffdf8;align-items:center;padding:6px;transition:border-color .18s,box-shadow .18s;display:flex}.password-field:focus-within{border-color:var(--peach);box-shadow:0 0 0 3px #eaa5831f}.password-field input{font-family:var(--serif);background:0 0;border:0;flex:1;min-width:0;padding:11px 13px;font-size:.92rem}.password-field input:focus{outline:0}.password-field button{background:var(--ink);border:1px solid var(--ink);color:#fffdf8;letter-spacing:.08em;flex:none;min-width:92px;padding:12px 15px;font-size:.68rem}.password-field button:disabled{cursor:wait;opacity:.7}.password-field button span{color:var(--peach-soft);margin-left:8px}.auth-error{color:#9f5146!important;font-family:var(--sans)!important;margin:10px 0 0!important;font-size:.66rem!important;line-height:1.5!important}.auth-checking{color:var(--ink-soft);align-items:center;gap:10px;min-height:55px;font-size:.7rem;display:flex}.auth-checking i{background:var(--peach);border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite star-drift}.auth-footnote{color:var(--ink-soft);letter-spacing:.06em;margin-top:20px;font-size:.56rem;display:block}.auth-domain{color:var(--ink-soft);letter-spacing:.2em;z-index:2;margin:0;font-size:.52rem;position:absolute;bottom:22px}.auth-constellation{width:180px;height:170px;position:absolute;top:10vh;left:7vw}.auth-constellation i{background:var(--sage-deep);border-radius:50%;width:5px;height:5px;position:absolute}.auth-constellation i:nth-child(2){top:95px;left:10px}.auth-constellation i:nth-child(3){top:28px;left:78px}.auth-constellation i:nth-child(4){top:117px;left:142px}.auth-constellation span{color:var(--peach);position:absolute;top:95px;left:70px}.topbar{border-bottom:1px solid var(--line);z-index:20;grid-template-columns:1fr auto 1fr;align-items:center;max-width:1440px;min-height:88px;margin:0 auto;padding:0 4.2vw;display:grid;position:relative}.brand{color:var(--ink);justify-self:start;align-items:center;gap:12px;text-decoration:none;display:flex}.brand>span:last-child{flex-direction:column;display:flex}.brand strong{font-family:var(--serif);letter-spacing:.08em;font-size:1.05rem;font-weight:600;line-height:1}.brand small{letter-spacing:.23em;margin-top:5px;font-size:.54rem}.brand-mark{width:45px;height:30px;display:block;position:relative}.brand-mark i{border:1.5px solid var(--ink);border-radius:50%;width:28px;height:28px;position:absolute;top:1px}.brand-mark i:first-child{left:2px}.brand-mark i:last-child{border-color:var(--peach);left:16px}.person-switch{border:1px solid var(--line);background:#ffffff5e;border-radius:999px;align-items:center;gap:5px;padding:5px;display:flex}.person-switch>span{color:var(--ink-soft);letter-spacing:.08em;padding:0 8px 0 11px;font-size:.68rem}.person-switch button{background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:6px 11px 6px 7px;font-size:.72rem;transition:background .18s,box-shadow .18s;display:flex}.person-switch button.active{background:#fffdf8;box-shadow:0 2px 10px #21362f17}.avatar{font-family:var(--serif);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.64rem;font-style:normal;display:inline-flex}.avatar-sincosx{background:var(--sage)}.avatar-meloray{background:var(--peach-soft)}.add-button{background:var(--ink);border:1px solid var(--ink);color:#fffdf8;letter-spacing:.04em;border-radius:999px;justify-self:end;align-items:center;gap:9px;padding:11px 18px;font-size:.76rem;transition:background .18s,color .18s,transform .18s;display:flex}.topbar-actions{justify-self:end;align-items:center;gap:8px;display:flex}.lock-button{color:var(--ink-soft);background:0 0;border:0;align-items:center;gap:6px;padding:9px;font-size:.64rem;display:flex}.lock-button span{color:var(--peach);font-size:.9rem}.calendar-nav-button{color:var(--ink-soft);background:0 0;border:0;align-items:center;gap:6px;padding:9px;font-size:.62rem;display:flex;position:relative}.calendar-nav-button>span{color:var(--sage-deep);font-size:.9rem}.calendar-nav-button i{background:var(--peach);border:2px solid var(--paper);color:var(--ink);border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;font-size:.46rem;font-style:normal;display:flex;position:absolute;top:1px;right:-1px}.calendar-nav-button.has-reminder>span{color:var(--peach);animation:2s ease-in-out infinite reminder-pulse}@keyframes reminder-pulse{50%{filter:drop-shadow(0 0 5px #eaa583b3);transform:scale(1.12)}}.add-button span{font-size:1rem;line-height:1}.add-button:hover{color:var(--ink);background:0 0;transform:translateY(-1px)}.hero{grid-template-columns:1.05fr .95fr;max-width:1440px;min-height:650px;margin:0 auto;padding:68px 4.2vw 90px;display:grid;position:relative}.hero:after{background:var(--line);content:"";height:1px;position:absolute;bottom:50px;left:4.2vw;right:4.2vw}.hero-copy{z-index:2;align-self:center;padding-bottom:15px;position:relative}.eyebrow,.modal-kicker{color:var(--ink-soft);letter-spacing:.2em;align-items:center;font-size:.63rem;font-weight:600;display:flex}.eyebrow span{background:var(--peach);border-radius:50%;width:7px;height:7px;margin-right:10px}.hero h1{font-family:var(--serif);letter-spacing:-.065em;margin:38px 0 34px;font-size:clamp(4.5rem,7.5vw,8.2rem);font-weight:400;line-height:.88}.hero h1 em{color:var(--peach);font-weight:400}.hero-copy>p{color:var(--ink-soft);font-family:var(--serif);margin:0 0 32px;font-size:1rem;line-height:1.9}.text-link{border:0;border-bottom:1px solid var(--ink);letter-spacing:.08em;background:0 0;padding:0 0 7px;font-size:.76rem}.text-link span{color:var(--peach);margin-left:15px;transition:transform .18s;display:inline-block}.text-link:hover span{transform:translate(3px,-3px)}.hero-orbit{aspect-ratio:1;color:inherit;cursor:pointer;background:0 0;border:0;place-self:center;width:min(38vw,500px);max-width:500px;padding:0;transition:transform .45s cubic-bezier(.2,.8,.2,1);position:relative}.hero-orbit:hover{transform:scale(1.025)rotate(.4deg)}.hero-orbit:hover .orbit-one{transform:translate(-17%)rotate(-5deg)}.hero-orbit:hover .orbit-two{transform:translate(17%)rotate(5deg)}.orbit{border:1px solid var(--line);border-radius:50%;transition:transform .55s cubic-bezier(.2,.8,.2,1),border-color .3s;position:absolute;inset:8%}.orbit-one{background:#9caf9724;transform:translate(-15%)}.orbit-two{background:#eaa5831a;border-color:#eaa5835c;transform:translate(15%)}.orbit-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:36%}.orbit-center span{font-family:var(--serif);letter-spacing:-.05em;font-size:clamp(2.5rem,4vw,4.2rem)}.orbit-center small{color:var(--ink-soft);letter-spacing:.16em;white-space:nowrap;margin-top:4px;font-size:.59rem}.orbit-hint{letter-spacing:.18em;justify-content:center;align-items:center;gap:8px;font-size:.52rem;display:flex;position:absolute;bottom:12%;left:0;right:0}.orbit-hint i{color:var(--peach);font-family:var(--serif);font-size:.9rem;font-style:normal}.hero-links{flex-wrap:wrap;align-items:center;gap:26px;display:flex}.soft-link{border-bottom-color:var(--line);color:var(--ink-soft)}.orbit-label{font-family:var(--serif);font-size:.82rem;font-style:italic;position:absolute}.orbit-label-s{top:50%;left:3%;transform:rotate(-90deg)}.orbit-label-m{top:48%;right:0;transform:rotate(90deg)}.star{color:var(--peach);font-style:normal;position:absolute}.star-one{font-size:1.2rem;animation:4s ease-in-out infinite star-drift;top:15%;left:20%}.star-two{font-size:2rem;animation:3s ease-in-out .7s infinite star-drift;top:20%;right:20%}.star-three{color:var(--sage-deep);animation:4.5s ease-in-out 1.2s infinite star-drift;bottom:17%;right:22%}@keyframes star-drift{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-7px)rotate(12deg)}}.next-note{z-index:3;background:#fffaf0;width:205px;padding:19px 22px 17px;position:absolute;bottom:67px;right:7vw;transform:rotate(2.3deg);box-shadow:0 18px 45px #393e341a}.note-pin{background:var(--peach);border-radius:50%;width:9px;height:9px;position:absolute;top:-4px;left:50%;box-shadow:0 2px 4px #21362f33}.next-note small{color:var(--peach);letter-spacing:.18em;font-size:.52rem;font-weight:700}.next-note p{font-family:var(--serif);margin:10px 0;font-size:.94rem;line-height:1.45}.next-note span{color:var(--ink-soft);font-size:.6rem}.atlas-section{border-bottom:1px solid var(--line);border-top:1px solid var(--line);background:#f9f6ef;padding:82px max(4.2vw,50vw - 660px) 105px}.section-heading{justify-content:space-between;align-items:flex-end;display:flex}.section-heading>div:first-child{align-items:baseline;gap:22px;display:flex}.section-number{color:var(--peach);font-family:var(--serif);font-size:.75rem;font-style:italic}.section-heading h2{font-family:var(--serif);letter-spacing:-.045em;margin:0;font-size:clamp(2.4rem,4vw,4.4rem);font-weight:400}.stats{gap:clamp(24px,4vw,65px);display:flex}.stats p{align-items:baseline;gap:9px;margin:0;display:flex}.stats strong{font-family:var(--serif);font-size:1.55rem;font-weight:400}.stats span{color:var(--ink-soft);letter-spacing:.09em;font-size:.62rem}.filter-rail{border-bottom:1px solid var(--line);border-top:1px solid var(--line);justify-content:space-between;align-items:center;min-height:62px;margin:45px 0 34px;display:flex}.primary-filters{align-self:stretch;gap:30px;display:flex}.primary-filters button{color:var(--ink-soft);letter-spacing:.06em;background:0 0;border:0;padding:0;font-size:.7rem;position:relative}.primary-filters button:after{background:var(--peach);content:"";height:2px;transition:left .18s,right .18s;position:absolute;bottom:-1px;left:50%;right:50%}.primary-filters button.active{color:var(--ink);font-weight:600}.primary-filters button.active:after{left:0;right:0}.category-select{color:var(--ink-soft);align-items:center;gap:9px;font-size:.65rem;display:flex}.category-select select{background:0 0;border:0;padding:8px 22px 8px 0;font-size:.68rem;font-weight:600}.wish-grid,.loading-grid{grid-template-columns:repeat(12,1fr);gap:20px;display:grid}.wish-card{--card-accent:var(--sage);border:1px solid var(--line);background:#fffdfa;flex-direction:column;grid-column:span 4;min-height:480px;transition:box-shadow .22s,transform .22s;display:flex;position:relative;overflow:hidden}.card-main{color:inherit;text-align:left;background:0 0;border:0;flex-direction:column;flex:1;width:100%;padding:0;display:flex}.card-main:focus-visible{outline:2px solid var(--peach);outline-offset:-3px}.wish-card:hover{transform:translateY(-4px);box-shadow:0 20px 50px #21362f1a}.wish-card.card-2{--card-accent:var(--peach-soft)}.wish-card.card-3{--card-accent:var(--plum)}.wish-card.card-4{--card-accent:#b7c8cc}.wish-card.card-5{--card-accent:#dbc58d}.card-topline{letter-spacing:.08em;text-transform:uppercase;align-items:center;padding:18px 20px 14px;font-size:.58rem;display:flex}.category-mark{color:var(--peach);margin-right:7px;font-size:.9rem}.card-topline i{background:var(--line);flex:1;height:1px;margin:0 12px}.card-art{background:radial-gradient(circle at 20% 20%, #fff9, transparent 25%), var(--card-accent);justify-content:center;align-items:center;height:155px;margin:0 20px;display:flex;position:relative;overflow:hidden}.card-art.has-photo{background:var(--ink)}.card-art.has-photo>img{object-fit:cover;width:100%;height:100%;transition:opacity .3s,transform .65s cubic-bezier(.2,.8,.2,1)}.wish-card:hover .card-art.has-photo>img{opacity:.87;transform:scale(1.045)}.card-open{color:var(--ink);letter-spacing:.06em;opacity:0;background:#fffdf8e6;padding:7px 9px;transition:opacity .18s,transform .18s;bottom:10px;right:10px;transform:translateY(6px);font-family:var(--sans)!important;font-size:.53rem!important;position:absolute!important}.wish-card:hover .card-open,.card-main:focus-visible .card-open{opacity:1;transform:translateY(0)}.card-art>span{color:#21362fd1;font-family:var(--serif);z-index:2;font-size:3rem;position:relative}.card-art i{border:1px solid #21362f59;border-radius:50%;width:130px;height:130px;position:absolute}.card-art i:first-of-type{left:calc(50% - 90px)}.card-art i:last-of-type{right:calc(50% - 90px)}.stage-done .card-art{filter:sepia(.16)}.stage-done .card-art:after{color:#ffffffd1;content:"MEMORY";font-family:var(--serif);letter-spacing:.2em;border:1px solid #ffffffa6;padding:7px 10px;font-size:.58rem;position:absolute;top:12px;right:12px;transform:rotate(3deg)}.card-body{flex:1;padding:20px 20px 16px}.card-season{color:var(--peach);letter-spacing:.13em;text-transform:uppercase;margin:0 0 10px;font-size:.58rem;font-weight:700;display:block}.card-title{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 11px;font-size:clamp(1.35rem,2vw,1.85rem);font-weight:400;line-height:1.3;display:block}.card-body h3{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 11px;font-size:clamp(1.35rem,2vw,1.85rem);font-weight:400;line-height:1.3}.card-description{color:var(--ink-soft);font-family:var(--serif);margin:0;font-size:.82rem;line-height:1.75;display:block}.photo-count{color:var(--ink-soft);letter-spacing:.06em;margin-top:13px;font-size:.56rem;display:block}.card-calendar-date{color:var(--sage-deep);letter-spacing:.02em;margin-top:13px;font-size:.55rem;display:block}.card-calendar-date+.photo-count{margin-top:7px}.resonance-row{border-top:1px solid var(--line);align-items:center;min-height:72px;padding:12px 14px;display:flex}.resonate-button{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.resonate-button:disabled{cursor:default}.mini-avatars{min-width:46px;display:flex}.mini-avatars i{color:#21362f73;font-family:var(--serif);background:#f2eee6;border:2px solid #fffdfa;border-radius:50%;justify-content:center;align-items:center;width:29px;height:29px;font-size:.58rem;font-style:normal;display:flex}.mini-avatars i+i{margin-left:-9px}.mini-avatars .s.lit{background:var(--sage);color:var(--ink)}.mini-avatars .m.lit{background:var(--peach-soft);color:var(--ink)}.resonate-button strong,.resonate-button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.resonate-button strong{letter-spacing:.03em;font-size:.63rem;font-weight:600}.resonate-button small{color:var(--ink-soft);margin-top:4px;font-size:.53rem}.advance-button{color:var(--ink-soft);background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;margin-left:6px;padding:5px;font-size:.56rem;display:flex}.advance-button span{color:var(--peach);font-size:1.05rem;transition:transform .18s}.advance-button:hover span{transform:translate(4px)}.memory-date{color:var(--peach);font-family:var(--serif);white-space:nowrap;margin-left:8px;font-size:.69rem;font-style:italic}.loading-grid>div{border:1px solid var(--line);background:linear-gradient(110deg,#ece7de,#f8f4ec,#ece7de);grid-column:span 4;height:480px;animation:1.6s ease-in-out infinite alternate shimmer}@keyframes shimmer{0%{opacity:.58}to{opacity:1}}.empty-state{border:1px dashed var(--line);text-align:center;padding:80px 20px}.empty-state>span{color:var(--peach);font-size:1.5rem}.empty-state h3{font-family:var(--serif);margin:14px 0 8px;font-size:1.6rem;font-weight:400}.empty-state p{color:var(--ink-soft);margin:0 0 20px;font-size:.72rem}.empty-state button{background:var(--ink);color:#fff;border:0;border-radius:999px;padding:10px 16px;font-size:.68rem}.calendar-section{background:var(--paper);padding:100px max(4.2vw,50vw - 660px) 115px}.calendar-heading{grid-template-columns:1.15fr .85fr;align-items:end;gap:80px;margin-bottom:52px;display:grid}.calendar-heading>div>p{color:var(--peach);letter-spacing:.2em;margin:0 0 20px 18px;font-size:.56rem;display:inline-block}.calendar-heading h2{font-family:var(--serif);letter-spacing:-.055em;margin:0;font-size:clamp(3rem,5vw,5.2rem);font-weight:400;line-height:1.02}.calendar-heading>p{color:var(--ink-soft);font-family:var(--serif);max-width:440px;margin:0 0 6px;font-size:.84rem;line-height:1.85}.reminder-ribbon{background:var(--ink);color:var(--paper);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-bottom:16px;padding:17px 20px;display:grid;position:relative;overflow:hidden}.reminder-ribbon:after{content:"";border:1px solid #f4f0e814;border-radius:50%;width:150px;height:150px;position:absolute;right:12%}.reminder-ribbon>span{color:var(--peach-soft);border:1px solid #f4f0e840;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.2rem;display:flex}.reminder-ribbon>div,.reminder-ribbon>button{z-index:2;position:relative}.reminder-ribbon small{color:var(--peach-soft);letter-spacing:.16em;font-size:.47rem;display:block}.reminder-ribbon strong{font-family:var(--serif);margin-top:4px;font-size:.82rem;font-weight:400;display:inline-block}.reminder-ribbon p{color:#f4f0e880;margin-left:10px;font-size:.53rem;display:inline}.reminder-ribbon>button{color:var(--paper);background:0 0;border:1px solid #f4f0e840;border-radius:999px;padding:9px 13px;font-size:.56rem}.reminder-ribbon>button i{color:var(--peach-soft);margin-left:6px;font-style:normal}.calendar-layout{grid-template-columns:minmax(0,1fr) 310px;gap:16px;display:grid}.calendar-board{border:1px solid var(--line);background:#fffdfa;min-width:0;padding:24px}.calendar-toolbar{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.calendar-toolbar small{color:var(--peach);letter-spacing:.16em;font-size:.47rem;display:block}.calendar-toolbar strong{font-family:var(--serif);margin-top:5px;font-size:1.55rem;font-weight:400;display:block}.calendar-controls{border:1px solid var(--line);align-items:center;display:flex}.calendar-controls button{color:var(--ink-soft);background:0 0;border:0;min-width:36px;min-height:34px;padding:7px 11px;font-size:.58rem}.calendar-controls button+button{border-left:1px solid var(--line)}.calendar-controls button:hover{background:var(--paper-deep);color:var(--ink)}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{border-bottom:1px solid var(--line);color:var(--ink-soft);letter-spacing:.08em;text-align:center;padding-bottom:9px;font-size:.5rem}.calendar-day{border:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink);text-align:left;background:0 0;min-height:112px;padding:9px 7px;transition:background .18s,transform .18s;position:relative;overflow:hidden}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{z-index:2;background:#eaa58314;transform:translateY(-1px)}.calendar-day.outside{color:#21362f47}.calendar-day.today{background:#9caf971a}.calendar-day.today .day-number{background:var(--ink);color:var(--paper);border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;display:flex}.calendar-day.has-items:after{background:var(--peach);content:"";border-radius:50%;width:4px;height:4px;position:absolute;top:10px;right:8px}.day-number{font-family:var(--serif);font-size:.76rem;line-height:25px}.day-events{flex-direction:column;gap:4px;margin-top:6px;display:flex}.day-event{border-left:2px solid var(--sage);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;padding:3px 4px;font-size:.45rem;display:block;overflow:hidden}.day-event.plan{background:#9caf9721}.day-event.memory{border-left-color:var(--peach);color:var(--ink);background:#eaa5831f}.day-event.anniversary{border-left-color:var(--plum);background:#b49aa926}.day-more{color:var(--peach);padding-left:5px;font-size:.43rem}.calendar-aside{flex-direction:column;gap:16px;display:flex}.anniversary-countdown{background:radial-gradient(circle at 85% 15%, #eaa58329, transparent 8rem), var(--ink);color:var(--paper);min-height:310px;padding:26px;position:relative;overflow:hidden}.anniversary-countdown:after{content:"";border:1px solid #f4f0e817;border-radius:50%;width:220px;height:220px;position:absolute;top:35px;right:-95px}.anniversary-countdown>*{z-index:2;position:relative}.anniversary-countdown>small{color:var(--peach-soft);letter-spacing:.17em;font-size:.47rem;display:block}.anniversary-countdown>span{font-family:var(--serif);letter-spacing:-.06em;margin-top:28px;font-size:5.5rem;line-height:.95;display:block}.anniversary-countdown>em{color:#f4f0e86e;letter-spacing:.14em;margin-top:5px;font-size:.47rem;font-style:normal;display:block}.anniversary-countdown h3{font-family:var(--serif);margin:22px 0 7px;font-size:1.1rem;font-weight:400}.anniversary-countdown p{color:#f4f0e87a;font-family:var(--serif);margin:0;font-size:.62rem;line-height:1.55}.anniversary-countdown>button{color:var(--paper);background:0 0;border:1px solid #f4f0e833;margin-top:21px;padding:9px 11px;font-size:.53rem}.anniversary-countdown>button:hover{border-color:var(--peach-soft)}.upcoming-list{border:1px solid var(--line);background:#fffdfa;flex:1;padding:21px}.upcoming-title{justify-content:space-between;align-items:baseline;margin-bottom:13px;display:flex}.upcoming-title strong{font-family:var(--serif);font-size:.84rem;font-weight:400}.upcoming-title small{color:var(--ink-soft);letter-spacing:.11em;font-size:.44rem}.upcoming-list>button{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;width:100%;padding:12px 0;display:grid}.upcoming-list>button>span{color:var(--peach);font-family:var(--serif);text-align:center;font-size:1rem}.upcoming-list>button>span small{color:var(--ink-soft);font-family:var(--sans);font-size:.42rem;display:block}.upcoming-list>button div{min-width:0}.upcoming-list>button strong,.upcoming-list>button div small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.upcoming-list>button strong{font-family:var(--serif);font-size:.66rem;font-weight:400}.upcoming-list>button div small{color:var(--ink-soft);margin-top:4px;font-size:.45rem}.upcoming-list>button>i{color:var(--peach);font-style:normal}.no-upcoming{border-top:1px solid var(--line);color:var(--ink-soft);align-items:center;gap:12px;min-height:110px;display:flex}.no-upcoming>span{color:var(--peach);font-family:var(--serif);font-size:1.25rem}.no-upcoming p{font-family:var(--serif);font-size:.61rem;line-height:1.6}.ritual-section{background:var(--ink);color:var(--paper);text-align:center;flex-direction:column;align-items:center;min-height:470px;padding:78px 4vw 75px;display:flex;position:relative}.ritual-section:before,.ritual-section:after{content:"";border:1px solid #f4f0e81f;border-radius:50%;width:310px;height:310px;position:absolute;top:52px}.ritual-section:before{margin-left:-180px}.ritual-section:after{margin-right:-180px}.ritual-section>*{z-index:2;position:relative}.ritual-section>p{color:var(--peach-soft);letter-spacing:.25em;margin:12px 0 29px;font-size:.55rem}.ritual-section blockquote{font-family:var(--serif);letter-spacing:-.03em;margin:0;font-size:clamp(2rem,4vw,3.7rem);font-weight:400;line-height:1.35}.ritual-actions{grid-template-columns:repeat(2,minmax(230px,320px));gap:12px;margin-top:42px;display:grid}.ritual-actions button{color:var(--paper);text-align:left;background:#f4f0e809;border:1px solid #f4f0e833;grid-template-columns:auto 1fr;align-items:center;gap:2px 13px;padding:17px 20px;transition:background .22s,border-color .22s,transform .22s;display:grid}.ritual-actions button:hover{border-color:var(--peach-soft);background:#f4f0e814;transform:translateY(-3px)}.ritual-actions button>span{color:var(--peach-soft);font-family:var(--serif);grid-row:span 2;font-size:1.2rem}.ritual-actions strong{font-family:var(--serif);font-size:.85rem;font-weight:400}.ritual-actions small{color:#f4f0e88c;font-size:.52rem}.ritual-steps{justify-content:center;align-items:center;margin-top:55px;display:flex}.ritual-steps span{letter-spacing:.08em;align-items:center;gap:8px;font-size:.61rem;display:flex}.ritual-steps i{color:var(--peach-soft);font-family:var(--serif);border:1px solid #f4f0e859;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;font-size:.63rem;font-style:italic;display:flex}.ritual-steps b{color:#f4f0e859;letter-spacing:.25em;margin:0 22px;font-weight:400}footer{grid-template-columns:1fr auto 1fr;align-items:center;max-width:1440px;min-height:120px;margin:0 auto;padding:0 4.2vw;display:grid}.footer-brand{justify-self:start}footer>p{color:var(--ink-soft);font-family:var(--serif);font-size:.71rem;font-style:italic}footer>a{color:var(--ink);justify-self:end;font-size:.62rem;text-decoration:none}.modal-backdrop{z-index:100;background:#172822a1;justify-content:center;align-items:center;padding:20px;animation:.18s both fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.wish-modal{background:var(--paper);width:100%;max-width:650px;max-height:calc(100vh - 40px);padding:clamp(32px,5vw,62px);animation:.26s cubic-bezier(.2,.8,.2,1) both modal-in;position:relative;overflow-y:auto;box-shadow:0 30px 100px #0f1a1659}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}.modal-close{border:1px solid var(--line);font-family:var(--serif);background:0 0;border-radius:50%;width:36px;height:36px;font-size:1.2rem;position:absolute;top:24px;right:24px}.modal-kicker{color:var(--peach)}.wish-modal h2{font-family:var(--serif);letter-spacing:-.045em;margin:22px 0 17px;font-size:clamp(2.4rem,6vw,4rem);font-weight:400;line-height:1.05}.wish-modal>p{color:var(--ink-soft);font-family:var(--serif);margin:0 0 28px;font-size:.82rem;line-height:1.7}.wish-modal form>label,.form-row label{flex-direction:column;gap:8px;margin-top:20px;display:flex}.wish-modal label>span{letter-spacing:.08em;font-size:.62rem;font-weight:600}.wish-modal input,.wish-modal textarea,.wish-modal select{border:0;border-bottom:1px solid var(--line);font-family:var(--serif);resize:vertical;background:#ffffff61;border-radius:0;width:100%;padding:11px 2px;font-size:.91rem;line-height:1.6}.wish-modal input::placeholder,.wish-modal textarea::placeholder{color:#56665f8c}.form-row{grid-template-columns:1fr 1fr;gap:24px;display:grid}.modal-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:30px;padding-top:22px;display:flex}.modal-footer>span{color:var(--ink-soft);font-size:.61rem}.modal-footer>span strong{color:var(--ink)}.modal-footer button{background:var(--ink);border:1px solid var(--ink);color:#fffdf8;letter-spacing:.04em;border-radius:999px;padding:12px 17px;font-size:.7rem}.modal-footer button span{color:var(--peach-soft);margin-left:8px}.toast{background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;z-index:150;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:9px;padding:12px 18px;font-size:.67rem;transition:opacity .18s,transform .18s;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px)}.toast span{color:var(--peach-soft)}.toast.visible{opacity:1;transform:translate(-50%)}.photo-wall-section{background:var(--paper-deep);padding:100px max(4.2vw,50vw - 660px) 120px}.photo-wall-heading{grid-template-columns:1.25fr .75fr;align-items:flex-end;gap:70px;margin-bottom:58px;display:grid}.photo-wall-heading>div:first-child>p{color:var(--peach);letter-spacing:.2em;margin:0 0 20px 18px;font-size:.56rem;display:inline-block}.photo-wall-heading h2{font-family:var(--serif);letter-spacing:-.055em;margin:0;font-size:clamp(3rem,5vw,5.4rem);font-weight:400;line-height:1.02}.wall-intro>p{color:var(--ink-soft);font-family:var(--serif);margin:0 0 23px;font-size:.82rem;line-height:1.8}.wall-intro button{background:var(--ink);border:1px solid var(--ink);color:var(--paper);border-radius:999px;padding:12px 17px;font-size:.68rem;transition:background .18s,color .18s}.wall-intro button:hover{color:var(--ink);background:0 0}.wall-intro button span{color:var(--peach-soft);margin-left:10px}.photo-wall-grid{columns:3;column-gap:18px}.wall-photo{break-inside:avoid;text-align:left;background:#fffdf8;border:0;width:100%;margin:0 0 18px;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 14px 38px #21362f14}.wall-photo:after{content:"";opacity:.78;pointer-events:none;background:linear-gradient(#0000 48%,#111f1ad1);transition:opacity .25s;position:absolute;inset:0}.wall-photo img{object-fit:cover;width:100%;height:auto;min-height:230px;transition:transform .7s cubic-bezier(.2,.8,.2,1);display:block}.wall-photo-2 img{min-height:330px}.wall-photo-3 img{min-height:270px}.wall-photo-4 img{min-height:390px}.wall-photo>span{color:var(--paper);z-index:2;flex-direction:column;padding:24px;transition:transform .25s;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(19px)}.wall-photo small{color:var(--peach-soft);letter-spacing:.08em;font-size:.51rem}.wall-photo strong{font-family:var(--serif);margin-top:8px;font-size:1.05rem;font-weight:400;line-height:1.4}.wall-photo i{opacity:0;margin-top:8px;font-size:.52rem;font-style:normal;transition:opacity .2s}.wall-photo:hover img{transform:scale(1.045)}.wall-photo:hover>span{transform:translateY(0)}.wall-photo:hover i{opacity:.72}.wall-photo:hover:after{opacity:1}.empty-photo-wall{color:var(--ink);background:#fffdf852;border:1px dashed #21362f40;flex-direction:column;align-items:center;width:100%;min-height:330px;padding:40px;transition:background .22s,transform .22s;display:flex}.empty-photo-wall:hover{background:#fffdf89e;transform:translateY(-3px)}.empty-photo-wall>span{color:var(--peach);font-family:var(--serif);font-size:2.4rem}.empty-photo-wall strong{font-family:var(--serif);margin:15px 0 7px;font-size:1.55rem;font-weight:400}.empty-photo-wall small{color:var(--ink-soft);font-size:.62rem}.image-drop{border:1px dashed var(--line);cursor:pointer;padding:17px 18px;transition:background .18s,border-color .18s;position:relative;overflow:hidden;margin-top:26px!important}.image-drop:hover{border-color:var(--peach);background:#ffffff4d}.image-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.image-drop>span{justify-content:space-between;align-items:center;display:flex}.image-drop small{color:var(--ink-soft);font-size:.5rem;font-weight:400}.image-drop strong{color:var(--peach);margin-top:5px;font-size:.65rem;font-weight:500}.upload-previews{grid-template-columns:repeat(6,1fr);gap:7px;margin-top:10px;display:grid}.upload-previews img{aspect-ratio:1;object-fit:cover;border-radius:2px;width:100%}.cosmos-backdrop{color:var(--paper);z-index:220;background:radial-gradient(circle at 50% 47%,#eaa58317,#0000 17%),radial-gradient(circle at 24% 68%,#9caf971f,#0000 27%),#142b25;position:fixed;inset:0;overflow:hidden}.cosmos-nebula,.cosmos-starfield,.cosmos-orbits{pointer-events:none;position:absolute;inset:0}.cosmos-nebula i{filter:blur(.2px);border:1px solid #f4f0e814;border-radius:50%;width:min(78vw,930px);height:min(78vw,930px);animation:18s ease-in-out infinite alternate nebula-drift;position:absolute;top:51%;left:50%;transform:translate(-50%,-50%)}.cosmos-nebula i:nth-child(2){width:min(57vw,680px);height:min(57vw,680px);animation-delay:-5s}.cosmos-nebula i:nth-child(3){width:min(35vw,420px);height:min(35vw,420px);animation-delay:-9s}@keyframes nebula-drift{0%{transform:translate(-50%,-50%)rotate(-5deg)scale(.97)}to{transform:translate(-50%,-50%)rotate(8deg)scale(1.04)}}.cosmos-starfield i{background:var(--paper);opacity:.35;border-radius:50%;animation:2.8s ease-in-out infinite alternate cosmos-twinkle;position:absolute;box-shadow:0 0 8px #f4f0e873}@keyframes cosmos-twinkle{50%{opacity:.12;transform:scale(.65)}to{opacity:.75;transform:scale(1.3)}}.cosmos-header{z-index:4;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:4.5vh;left:5vw;right:5vw}.cosmos-header small{color:var(--peach-soft);letter-spacing:.22em;font-size:.52rem}.cosmos-header h2{font-family:var(--serif);letter-spacing:-.045em;margin:11px 0 6px;font-size:clamp(2rem,4vw,4.3rem);font-weight:400}.cosmos-header p{color:#f4f0e885;font-family:var(--serif);margin:0;font-size:.7rem}.cosmos-header button{color:var(--paper);font-family:var(--serif);background:#f4f0e80a;border:1px solid #f4f0e83d;border-radius:50%;width:43px;height:43px;font-size:1.35rem}.cosmos-orbits i{border:1px solid #f4f0e812;border-radius:50%;width:82vw;height:52vw;animation:48s linear infinite orbit-turn;position:absolute;top:56%;left:50%;transform:translate(-50%,-50%)rotate(-12deg)}.cosmos-orbits i:nth-child(2){width:65vw;height:39vw;animation-direction:reverse;transform:translate(-50%,-50%)rotate(17deg)}.cosmos-orbits i:nth-child(3){width:45vw;height:25vw;transform:translate(-50%,-50%)rotate(-29deg)}@keyframes orbit-turn{to{transform:translate(-50%,-50%)rotate(348deg)}}.memory-constellation{z-index:3;position:absolute;inset:0}.memory-star{animation:memory-float 4.2s var(--star-delay) ease-in-out infinite;color:var(--paper);left:var(--star-x);text-align:left;top:var(--star-y);background:0 0;border:0;flex-direction:column;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.memory-star>span{justify-content:center;align-items:center;width:50px;height:50px;margin-bottom:6px;display:flex;position:relative}.memory-star>span:before,.memory-star>span:after{content:"";border:1px solid #eaa58347;border-radius:50%;transition:inset .3s,opacity .3s;position:absolute;inset:2px}.memory-star>span:after{border-color:#f4f0e824;inset:10px}.memory-star>span i{color:var(--peach-soft);filter:drop-shadow(0 0 8px #eaa583cc);font-family:var(--serif);font-size:1.2rem;font-style:normal}.memory-star strong{font-family:var(--serif);text-shadow:0 2px 10px #142b25;max-width:150px;font-size:.76rem;font-weight:400}.memory-star small{color:#f4f0e875;margin-top:4px;font-size:.48rem}.memory-star:hover>span:before{opacity:.5;inset:-8px}.memory-star:hover>span:after{inset:5px}.memory-star:hover strong{color:var(--peach-soft)}@keyframes memory-float{0%,to{transform:translate(-50%,-50%)translateY(0)}50%{transform:translate(-50%,-50%)translateY(-8px)}}.memory-star.star-born>span:before{animation:1.6s ease-out 2 star-birth}.memory-star.star-born>span i{animation:1.1s ease-out 2 star-flare}@keyframes star-birth{0%{opacity:1;inset:15px;box-shadow:0 0 #eaa583d9}to{opacity:0;inset:-28px;box-shadow:0 0 40px 8px #eaa58300}}@keyframes star-flare{50%{filter:drop-shadow(0 0 25px #f3c5ac);transform:scale(2.1)rotate(20deg)}}.cosmos-legend{z-index:4;justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:4.5vh;left:5vw;right:5vw}.cosmos-legend span{letter-spacing:.12em;font-size:.56rem}.cosmos-legend span i{background:var(--peach);border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.cosmos-legend p{color:#f4f0e85c;font-family:var(--serif);font-size:.6rem;font-style:italic}.empty-cosmos{text-align:center;z-index:4;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.empty-cosmos>span{color:var(--peach);font-size:3rem}.empty-cosmos h3{font-family:var(--serif);margin:10px 0;font-size:1.6rem;font-weight:400}.empty-cosmos p{color:#f4f0e87a;font-size:.65rem}.detail-backdrop{padding:0}.wish-detail{background:var(--paper);grid-template-columns:minmax(300px,.88fr) minmax(430px,1.12fr);width:calc(100vw - 60px);max-width:1120px;height:min(88vh,820px);animation:.42s cubic-bezier(.2,.8,.2,1) both detail-in;display:grid;position:relative;overflow:hidden}@keyframes detail-in{0%{opacity:0;transform:translateY(22px)scale(.98)}}.detail-close{z-index:8;background:#f4f0e8d1}.detail-visual{background:var(--sage);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.detail-visual:after{content:"";background:radial-gradient(circle at 30% 20%,#ffffff73,#0000 28%);position:absolute;inset:0}.detail-visual>img{object-fit:cover;width:100%;height:100%}.detail-visual>i{border:1px solid #21362f4d;border-radius:50%;width:46%;height:46%;position:absolute}.detail-visual>i:first-child{transform:translate(-27%)}.detail-visual>i:nth-child(2){transform:translate(27%)}.detail-visual>span{font-family:var(--serif);z-index:2;font-size:5rem;position:relative}.memory-seal{color:#fff;font-family:var(--serif);letter-spacing:.2em;text-align:center;z-index:3;border:1px solid #ffffff9e;padding:11px 13px;font-size:.62rem;position:absolute;bottom:30px;right:27px;transform:rotate(2deg)}.memory-seal small{letter-spacing:.04em;margin-top:5px;font-size:.48rem;display:block}.detail-content{padding:clamp(42px,5vw,74px);overflow-y:auto}.detail-kicker{color:var(--peach);letter-spacing:.13em;align-items:center;gap:11px;font-size:.56rem;display:flex}.detail-kicker i{background:var(--line);width:42px;height:1px}.detail-content h2{font-family:var(--serif);letter-spacing:-.05em;margin:23px 0 20px;font-size:clamp(2.5rem,4vw,4.6rem);font-weight:400;line-height:1.06}.detail-description{color:var(--ink-soft);font-family:var(--serif);margin:0;font-size:.88rem;line-height:1.85}.detail-content dl{border-bottom:1px solid var(--line);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:30px 0;padding:18px 0;display:grid}.detail-content dl div+div{border-left:1px solid var(--line);padding-left:18px}.detail-content dt{color:var(--ink-soft);letter-spacing:.08em;font-size:.51rem}.detail-content dd{font-family:var(--serif);margin:7px 0 0;font-size:.72rem}.detail-progress{align-items:center;margin:26px 0 32px;display:flex}.detail-progress span{color:#21362f59;letter-spacing:.06em;white-space:nowrap;font-size:.5rem}.detail-progress span.active{color:var(--ink)}.detail-progress i{background:var(--line);flex:1;height:1px;margin:0 8px;position:relative}.detail-progress i.active{background:var(--peach)}.detail-progress i.active:after{background:var(--peach);content:"";border-radius:50%;width:5px;height:5px;position:absolute;top:-2px;right:0}.detail-schedule-card{background:#9caf971c;border:1px solid #57706433;margin:30px 0;padding:18px;position:relative}.detail-schedule-card>div:first-child{align-items:center;gap:11px;margin-bottom:15px;display:flex}.detail-schedule-card>div:first-child>span{color:var(--sage-deep);border:1px solid #5770644d;border-radius:50%;justify-content:center;align-items:center;width:31px;height:31px;display:flex}.detail-schedule-card small{color:var(--sage-deep);letter-spacing:.13em;font-size:.43rem;display:block}.detail-schedule-card strong{font-family:var(--serif);margin-top:3px;font-size:.7rem;font-weight:400;display:block}.detail-schedule-card form{grid-template-columns:1.1fr .8fr auto;align-items:end;gap:8px;display:grid}.detail-schedule-card label{flex-direction:column;gap:6px;display:flex}.detail-schedule-card label>span{font-size:.48rem}.detail-schedule-card input,.detail-schedule-card select{font-family:var(--serif);background:#ffffff73;border:0;border-bottom:1px solid #57706440;width:100%;min-width:0;padding:8px 5px;font-size:.58rem}.detail-schedule-card form>button{background:var(--ink);color:#fff;white-space:nowrap;border:0;padding:10px 12px;font-size:.52rem}.detail-schedule-card form>button i{color:var(--peach-soft);margin-left:5px;font-style:normal}.remove-schedule{color:var(--ink-soft);text-underline-offset:3px;background:0 0;border:0;margin-top:9px;padding:0;font-size:.46rem;text-decoration:underline}.detail-gallery{margin:35px 0}.detail-gallery-title{justify-content:space-between;align-items:baseline;margin-bottom:13px;display:flex}.detail-gallery-title strong{font-family:var(--serif);font-size:.84rem;font-weight:400}.detail-gallery-title small{color:var(--ink-soft);letter-spacing:.12em;font-size:.48rem}.detail-gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.detail-gallery figure{background:var(--paper-deep);margin:0;position:relative;overflow:hidden}.detail-gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.detail-gallery figcaption{color:var(--ink-soft);font-family:var(--serif);padding:9px 10px;font-size:.59rem;line-height:1.5}.detail-gallery figure button{color:#fff;opacity:0;background:#142b25b8;border:0;border-radius:50%;width:23px;height:23px;transition:opacity .18s;position:absolute;top:7px;right:7px}.detail-gallery figure:hover button{opacity:1}.detail-upload{border-top:1px solid var(--line);grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;margin-top:28px;padding-top:23px;display:grid}.detail-upload label{flex-direction:column;gap:7px;display:flex}.detail-upload label>span{font-size:.53rem;font-weight:600}.detail-upload input{border:0;border-bottom:1px solid var(--line);font-family:var(--serif);background:0 0;min-width:0;padding:8px 2px;font-size:.65rem}.detail-upload input[type=file]{font-family:var(--sans);font-size:.5rem}.detail-upload button{background:var(--ink);color:#fff;border:0;padding:10px 12px;font-size:.55rem}.detail-upload button span{color:var(--peach-soft)}.detail-actions{justify-content:flex-end;gap:9px;margin-top:22px;display:flex}.detail-actions button{border-radius:999px;padding:11px 16px;font-size:.61rem}.detail-resonate{border:1px solid var(--line);color:var(--ink);background:0 0}.detail-advance{background:var(--ink);border:1px solid var(--ink);color:#fff}.detail-advance span{color:var(--peach-soft);margin-left:7px}.calendar-form-row small{color:var(--ink-soft);font-size:.48rem;font-weight:400}.day-detail-modal{max-width:720px}.day-detail-modal>h2{font-size:clamp(2.6rem,5vw,4.4rem)}.day-detail-groups{flex-direction:column;gap:25px;display:flex}.day-detail-groups>section{border-top:1px solid var(--line);padding-top:15px}.day-group-title{align-items:center;gap:9px;margin-bottom:10px;display:flex}.day-group-title>span{font-family:var(--serif);border-radius:50%;justify-content:center;align-items:center;width:23px;height:23px;display:flex}.day-group-title>strong{font-family:var(--serif);font-size:.72rem;font-weight:400}.anniversary-dot{color:#806777;background:#b49aa940}.plan-dot{color:var(--sage-deep);background:#9caf9740}.memory-dot{color:var(--peach);background:#eaa58333}.day-anniversary{background:#b49aa91a;justify-content:space-between;align-items:center;padding:14px;display:flex}.day-anniversary strong{font-family:var(--serif);font-size:.76rem;font-weight:400}.day-anniversary p{color:var(--ink-soft);margin:5px 0;font-size:.56rem}.day-anniversary small{color:var(--ink-soft);font-size:.45rem}.day-anniversary>button{color:var(--ink-soft);background:0 0;border:0;font-size:.48rem;text-decoration:underline}.day-wish-row,.day-memory-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:12px 0;display:grid}.day-wish-row{grid-template-columns:58px 1fr auto}.day-wish-row>span{color:var(--peach);font-family:var(--serif);font-size:.7rem}.day-wish-row strong,.day-memory-row strong{font-family:var(--serif);font-size:.73rem;font-weight:400;display:block}.day-wish-row small,.day-memory-row small{color:var(--ink-soft);margin-top:4px;font-size:.51rem;line-height:1.45;display:block}.day-wish-row>i,.day-memory-row>i{color:var(--peach);font-style:normal}.day-memory-row{grid-template-columns:68px 1fr auto}.day-memory-row>img,.day-memory-row>span{aspect-ratio:4/3;object-fit:cover;width:68px}.day-memory-row>span{background:var(--sage);font-family:var(--serif);justify-content:center;align-items:center;font-size:1.3rem;display:flex}.day-memory-row em{color:var(--peach);margin-top:5px;font-size:.45rem;font-style:normal;display:block}.empty-day-detail{border:1px dashed var(--line);text-align:center;padding:45px 20px}.empty-day-detail>span{color:var(--peach);font-size:1.7rem}.empty-day-detail h3{font-family:var(--serif);margin:12px 0 7px;font-size:1.15rem;font-weight:400}.empty-day-detail p{color:var(--ink-soft);max-width:340px;margin:0 auto;font-size:.58rem;line-height:1.6}.day-detail-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:28px;padding-top:18px;display:flex}.day-detail-footer button{background:var(--ink);color:#fff;border:0;border-radius:999px;padding:10px 14px;font-size:.55rem}.day-detail-footer small{color:var(--ink-soft);font-size:.47rem}@media (width<=1050px){.topbar{grid-template-columns:1fr auto}.person-switch{position:absolute;bottom:-55px;right:4.2vw}.hero{min-height:680px;padding-top:95px}.wish-card,.loading-grid>div{grid-column:span 6}.stats{gap:22px}.stats p{flex-direction:column;align-items:flex-start;gap:1px}.photo-wall-grid{columns:2}.wish-detail{grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr)}.calendar-layout{grid-template-columns:1fr}.calendar-aside{grid-template-columns:1fr 1fr;display:grid}.calendar-day{min-height:96px}}@media (width<=760px){.auth-shell{align-items:flex-start;padding-top:28px}.auth-shell:before,.auth-constellation{display:none}.auth-card{padding:32px 25px 38px}.auth-brand{margin-bottom:72px}.auth-orbits{top:78px;right:18px;transform:scale(.82)}.auth-domain{letter-spacing:.12em;white-space:nowrap;bottom:13px}.topbar{min-height:74px;padding:0 20px}.brand small,.add-button,.lock-button{font-size:0}.lock-button span{font-size:1rem}.calendar-nav-button{padding:8px 5px;font-size:0}.calendar-nav-button>span{font-size:1rem}.add-button{justify-content:center;width:40px;height:40px;padding:0}.add-button span{font-size:1.2rem}.person-switch{bottom:-52px;left:20px;right:auto}.person-switch>span{display:none}.hero{min-height:790px;padding:110px 20px 80px;display:block}.hero h1{margin-top:30px;font-size:clamp(4.2rem,20vw,6.2rem)}.hero-copy>p{font-size:.88rem}.desktop-break{display:none}.hero-orbit{width:min(88vw,390px);margin:35px auto 0}.hero-links{flex-direction:column;align-items:flex-start;gap:18px}.next-note{width:175px;bottom:56px;right:24px}.hero:after{bottom:38px;left:20px;right:20px}.atlas-section{padding:60px 20px 75px}.calendar-section{padding:70px 20px 80px}.calendar-heading{grid-template-columns:1fr;align-items:start;gap:28px;margin-bottom:35px}.calendar-heading h2{font-size:clamp(3rem,15vw,4.6rem)}.reminder-ribbon{grid-template-columns:auto 1fr;gap:12px;padding:14px}.reminder-ribbon p{margin:4px 0 0;display:block}.reminder-ribbon>button{display:none}.calendar-board{padding:14px 9px}.calendar-toolbar{padding:0 5px}.calendar-toolbar strong{font-size:1.25rem}.calendar-controls button{min-width:31px;padding:6px 8px}.calendar-weekdays{font-size:.43rem}.calendar-day{min-height:75px;padding:6px 4px}.calendar-day.today .day-number{width:22px;height:22px}.day-number{font-size:.65rem;line-height:22px}.day-events{flex-flow:wrap;align-items:flex-start;gap:3px;margin-top:7px}.day-event{border:0;border-radius:50%;width:6px;height:6px;padding:0;font-size:0}.day-event.plan{background:var(--sage)}.day-event.memory{background:var(--peach)}.day-event.anniversary{background:var(--plum)}.day-more{padding:0;font-size:.38rem}.calendar-aside{display:flex}.anniversary-countdown{min-height:300px}.section-heading{flex-direction:column;align-items:flex-start;gap:30px}.section-heading>div:first-child{gap:12px}.stats{width:100%}.stats p{flex:1}.filter-rail{border-top:0;flex-direction:column;align-items:stretch}.primary-filters{gap:22px;min-height:55px;overflow-x:auto}.primary-filters button{flex:none}.category-select{border-top:1px solid var(--line);justify-content:space-between;min-height:48px}.wish-card,.loading-grid>div{grid-column:span 12}.wish-card{min-height:460px}.ritual-section{min-height:550px}.ritual-actions{grid-template-columns:1fr;width:100%}.ritual-section:before,.ritual-section:after{width:250px;height:250px}.ritual-steps{flex-direction:column;align-items:stretch;gap:8px;margin-top:42px}.ritual-steps b{height:12px;margin:0;overflow:hidden;transform:rotate(90deg)}footer{grid-template-columns:1fr auto;gap:18px;padding:25px 20px}footer>p{display:none}.form-row{grid-template-columns:1fr;gap:0}.modal-footer{flex-direction:column;align-items:stretch;gap:15px}.modal-footer button{width:100%}.photo-wall-section{padding:70px 20px 85px}.photo-wall-heading{grid-template-columns:1fr;align-items:start;gap:35px;margin-bottom:38px}.photo-wall-heading h2{font-size:clamp(3rem,15vw,4.8rem)}.photo-wall-grid{columns:1}.wall-photo img,.wall-photo-2 img,.wall-photo-3 img,.wall-photo-4 img{min-height:280px}.upload-previews{grid-template-columns:repeat(3,1fr)}.cosmos-header{top:24px;left:20px;right:20px}.cosmos-header h2{max-width:260px;font-size:2.45rem}.cosmos-header p{max-width:245px}.cosmos-nebula i{width:125vw;height:125vw}.cosmos-nebula i:nth-child(2){width:92vw;height:92vw}.cosmos-nebula i:nth-child(3){width:58vw;height:58vw}.cosmos-orbits i{width:145vw;height:110vw}.cosmos-orbits i:nth-child(2){width:120vw;height:82vw}.cosmos-orbits i:nth-child(3){width:90vw;height:55vw}.memory-star{left:clamp(12%, var(--star-x), 82%)}.memory-star strong{max-width:110px;font-size:.67rem}.memory-star>span{width:42px;height:42px}.cosmos-legend{bottom:20px;left:20px;right:20px}.cosmos-legend p{display:none}.detail-backdrop{align-items:stretch}.wish-detail{width:100vw;height:100vh;display:block;overflow-y:auto}.detail-visual{height:39vh;min-height:270px}.detail-content{padding:38px 22px 60px;overflow:visible}.detail-content h2{font-size:clamp(2.65rem,14vw,4rem)}.detail-content dl{grid-template-columns:1fr;gap:15px}.detail-content dl div+div{border-left:0;border-top:1px solid var(--line);padding-top:13px;padding-left:0}.detail-upload,.detail-schedule-card form{grid-template-columns:1fr;align-items:stretch}.detail-schedule-card form>button{padding:11px}.detail-upload button{padding:12px}.detail-actions{flex-direction:column;align-items:stretch}.detail-actions button{width:100%}.day-detail-footer{flex-direction:column;align-items:stretch;gap:12px}.day-detail-footer button{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
