.ambience{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.blush{position:absolute;border-radius:50%;filter:blur(110px);opacity:.14}:root[data-theme=night] .blush{opacity:.22}.blush-1{width:38vmax;height:38vmax;top:-14vmax;right:-10vmax;background:radial-gradient(circle,var(--accent),transparent 68%);animation:float-a 24s var(--ease-soft) infinite alternate}.blush-2{width:32vmax;height:32vmax;bottom:-12vmax;left:-9vmax;background:radial-gradient(circle,var(--accent-2),transparent 68%);animation:float-b 30s var(--ease-soft) infinite alternate}@keyframes float-a{to{transform:translate3d(-8vw,8vh,0) scale(1.15)}}@keyframes float-b{to{transform:translate3d(9vw,-7vh,0) scale(1.1)}}.grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.22;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}:root[data-theme=night] .grain{mix-blend-mode:screen;opacity:.1}.hearts{position:absolute;top:0;right:0;bottom:0;left:0}.heart{position:absolute;bottom:-8vh;color:var(--accent);opacity:.28;animation:rise linear infinite}@keyframes rise{0%{transform:translateZ(0) rotate(-8deg) scale(.9);opacity:0}12%{opacity:.3}88%{opacity:.22}to{transform:translate3d(var(--drift, 20px),-112vh,0) rotate(14deg) scale(1.1);opacity:0}}.scroll-progress{position:fixed;top:calc(var(--nav-h) + env(safe-area-inset-top) - 2px);left:0;z-index:90;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--scroll-progress, 0));background:linear-gradient(90deg,var(--accent),var(--accent-2))}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:0 1.5rem;font-size:.86rem;font-weight:600;letter-spacing:.01em;white-space:nowrap;border-radius:var(--r-pill);border:1.5px solid transparent;color:var(--ink);background:var(--paper-2);transition:transform .4s var(--spring),box-shadow .4s var(--ease),background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(0) scale(.97)}.btn-primary{color:var(--on-accent);background:var(--accent);box-shadow:0 12px 26px -16px var(--accent)}.btn-primary:hover{box-shadow:0 18px 34px -16px var(--accent)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-ghost{background:transparent;border-color:var(--rule-2);color:var(--ink-2)}.btn-ghost:hover{color:var(--ink);border-color:var(--accent);background:var(--accent-soft)}.btn-ghost.is-active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.btn-quiet{background:transparent;color:var(--ink-2)}.btn-quiet:hover{color:var(--accent);background:var(--accent-soft);box-shadow:none}.btn-sm{min-height:40px;padding:0 1.1rem;font-size:.78rem}.btn-block{display:flex;width:100%}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;font-size:.85rem;color:var(--ink-2);background:var(--paper-2);border-radius:50%;transition:all .35s var(--spring)}.icon-btn:hover{color:var(--on-accent);background:var(--accent);transform:scale(1.1) rotate(6deg)}.icon-btn.is-danger:hover{background:#e0526e;color:#fff}.field-label{display:block;margin-bottom:.5rem;font-size:.74rem;font-weight:600;letter-spacing:.02em;color:var(--ink-3)}.field input,.field textarea{width:100%;padding:.85rem 1.1rem;font-size:16px;color:var(--ink);background:var(--paper-2);border:1.5px solid transparent;border-radius:var(--r-sm);transition:border-color .35s var(--ease),background .35s var(--ease)}.field textarea{resize:vertical;min-height:110px;line-height:1.65;border-radius:var(--r)}.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}.field input:focus,.field textarea:focus{outline:none;background:var(--card);border-color:var(--accent)}.field input[type=date]{color-scheme:light}:root[data-theme=night] .field input[type=date]{color-scheme:dark}.field-row{display:grid;grid-template-columns:92px 1fr;gap:.9rem}.form{display:grid;gap:1.3rem}.form-error{padding:.8rem 1.1rem;font-size:.85rem;color:#c2405c;background:#e0526e1f;border-radius:var(--r-sm)}.eyebrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.76rem;font-weight:600;letter-spacing:.04em;color:var(--accent)}.nav{position:fixed;top:0;left:0;right:0;z-index:80;height:calc(var(--nav-h) + env(safe-area-inset-top));display:flex;align-items:center;padding-top:env(safe-area-inset-top);border-bottom:1px solid transparent;transition:background .45s var(--ease),border-color .45s var(--ease)}.nav.is-scrolled{background:color-mix(in srgb,var(--paper) 84%,transparent);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-bottom-color:var(--rule)}.nav-inner{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:1rem}.brand{display:flex;align-items:center;gap:.6rem;color:var(--ink);transition:transform .4s var(--spring)}.brand:hover{transform:translate(2px)}.brand-mark{display:grid;place-items:center;width:38px;height:38px;font-size:.95rem;color:var(--on-accent);background:var(--accent);border-radius:50%;animation:beat 3.6s var(--ease-soft) infinite}@keyframes beat{0%,72%,to{transform:scale(1)}12%{transform:scale(1.14)}26%{transform:scale(1)}38%{transform:scale(1.09)}}.brand-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.brand-text strong{font-family:var(--serif);font-size:1.12rem;font-weight:400;letter-spacing:-.02em}.brand-text small{font-size:.68rem;color:var(--ink-3)}.nav-links{display:flex;align-items:center;gap:.2rem;margin:0 auto}.nav-link{position:relative;padding:.5rem .95rem;font-size:.86rem;font-weight:500;color:var(--ink-3);border-radius:var(--r-pill);transition:color .35s var(--ease),background .35s var(--ease)}.nav-link:hover{color:var(--ink);background:var(--accent-soft)}.nav-link.is-active{color:var(--on-accent);background:var(--accent)}.nav-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.theme-btn{display:inline-flex;align-items:center;gap:.5rem;height:42px;padding:0 1rem;font-size:.8rem;font-weight:600;color:var(--ink-2);background:var(--paper-2);border-radius:var(--r-pill);transition:all .4s var(--spring)}.theme-btn:hover{color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.theme-swatch{width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.burger{display:none;position:relative;width:44px;height:44px;background:var(--paper-2);border-radius:50%}.burger span{position:absolute;left:13px;width:18px;height:1.8px;border-radius:2px;background:var(--ink);transition:transform .5s var(--spring),opacity .3s var(--ease)}.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:26px}.burger.is-open span:nth-child(1){transform:translateY(5px) rotate(45deg)}.burger.is-open span:nth-child(2){opacity:0}.burger.is-open span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:75;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + 2rem) var(--gutter) 2.5rem;background:var(--paper);opacity:0;visibility:hidden;clip-path:circle(0% at calc(100% - 44px) 44px);transition:clip-path .8s var(--ease),opacity .4s var(--ease),visibility .4s}.menu-overlay.is-open{opacity:1;visibility:visible;clip-path:circle(150% at calc(100% - 44px) 44px)}.menu-list{display:grid;gap:.3rem}.menu-item{display:flex;align-items:center;gap:1rem;width:100%;padding:clamp(.7rem,2.4vw,1.1rem) 1.1rem;text-align:left;border-radius:var(--r);opacity:0;transform:translateY(26px);transition:background .4s var(--ease),color .4s var(--ease),padding-left .45s var(--ease)}.menu-overlay.is-open .menu-item,.menu-overlay.is-open .menu-foot{animation:menu-in .85s var(--ease) forwards;animation-delay:calc(.24s + var(--i) * .07s)}@keyframes menu-in{to{opacity:1;transform:none}}.menu-item:hover{background:var(--accent-soft);color:var(--accent);padding-left:1.7rem}.menu-item-index{font-family:var(--mono);font-size:.7rem;color:var(--ink-3)}.menu-item-label{font-family:var(--serif);font-size:clamp(2rem,9vw,3.2rem);line-height:1}.menu-foot{display:flex;align-items:center;justify-content:space-between;margin-top:2rem;padding-top:1.3rem;border-top:1px solid var(--rule);font-size:.85rem;color:var(--ink-3);opacity:0;transform:translateY(26px)}.app{position:relative;z-index:1}.content{counter-reset:sec;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter) calc(3rem + env(safe-area-inset-bottom))}.section{padding-block:var(--gap);scroll-margin-top:var(--nav-h)}.sec-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1.5rem;margin-bottom:clamp(2rem,5vw,3.2rem)}.sec-head .eyebrow:before{counter-increment:sec;content:"♥ " counter(sec,decimal-leading-zero)}.sec-title{margin-top:.7rem;font-family:var(--serif);font-size:var(--t-h2);line-height:.98}.sec-title em{font-style:italic;color:var(--accent)}.sec-sub{margin-top:.7rem;max-width:38ch;font-size:var(--t-sm);color:var(--ink-2)}.sec-actions{display:flex;gap:.5rem;flex-wrap:wrap}.empty{display:grid;place-items:center;gap:.4rem;padding:clamp(2.5rem,8vw,4.5rem);text-align:center;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.empty p{font-family:var(--serif);font-size:var(--t-h3);color:var(--ink-2)}.empty span{font-size:.85rem;color:var(--ink-3)}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + 2.5rem) 0 2rem}.hero-meta{display:flex;align-items:center;gap:.6rem;font-size:.8rem;font-weight:600;color:var(--ink-3)}.hero-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--accent)}.hero-title{margin-top:clamp(1rem,3vw,1.8rem);font-family:var(--serif);font-size:var(--t-h1);line-height:.88}.hero-title .line-2{padding-left:.1em}.hero-title em{font-style:normal;color:var(--accent);animation:beat 3.6s var(--ease-soft) infinite;display:inline-block}.hero-surname{margin-top:1rem;font-family:var(--serif);font-size:var(--t-h3);font-style:italic;color:var(--ink-3)}.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;align-items:end;gap:clamp(1.5rem,5vw,4rem);margin-top:clamp(2.2rem,6vw,4rem)}.hero-lede{max-width:40ch;font-family:var(--serif);font-size:var(--t-lede);line-height:1.4;color:var(--ink-2);text-wrap:pretty}.counter{padding:clamp(1.3rem,3vw,2rem);text-align:center;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow)}.counter-value{display:block;font-family:var(--serif);font-size:clamp(3.6rem,11vw,7rem);line-height:.85;color:var(--accent);font-variant-numeric:tabular-nums}.counter-caption{display:block;margin-top:.7rem;font-size:.84rem;font-weight:600;color:var(--ink-2)}.counter-clock{display:flex;justify-content:center;gap:.5rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--ink-3)}.counter-clock span{padding:.25rem .55rem;background:var(--paper-2);border-radius:var(--r-pill)}.marquee{margin-top:clamp(2.2rem,5vw,3.5rem);padding:.9rem 0;overflow:hidden;white-space:nowrap;background:var(--accent-soft);border-radius:var(--r-pill);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.marquee-track{display:inline-flex;gap:2rem;padding-right:2rem;animation:marquee 32s linear infinite}.marquee-track span{font-family:var(--serif);font-size:clamp(1.05rem,2.4vw,1.7rem);font-style:italic;color:var(--accent)}@keyframes marquee{to{transform:translate(-50%)}}.letter{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);gap:clamp(1.5rem,5vw,4rem);padding:clamp(1.8rem,5vw,3.5rem);background:var(--card);border-radius:var(--r-xl);box-shadow:var(--shadow)}.letter-side{position:sticky;top:calc(var(--nav-h) + 2rem);align-self:start}.letter-title{margin-top:.8rem;font-family:var(--serif);font-size:var(--t-h3)}.letter-body p{font-family:var(--serif);font-size:var(--t-lede);line-height:1.55;color:var(--ink-2)}.letter-body p+p{margin-top:1.1rem}.letter-body p:first-child:first-letter{float:left;margin:.06em .1em 0 0;font-size:3.2em;line-height:.82;color:var(--accent)}.letter-sign{margin-top:1.5rem!important;font-style:italic;color:var(--accent)!important}.letter-secret{display:grid;grid-template-rows:0fr;transition:grid-template-rows .75s var(--ease),margin-top .5s var(--ease)}.letter-secret.is-open{grid-template-rows:1fr;margin-top:1.5rem}.letter-secret-inner{overflow:hidden}.letter-secret p{padding:1.3rem 1.5rem;background:var(--accent-soft);border-radius:var(--r);font-style:italic;color:var(--ink)!important}.letter-actions{margin-top:1.8rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,1.6vw,1.1rem)}.photo-item{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:var(--paper-2);border-radius:var(--r);cursor:pointer;transition:transform .5s var(--spring),box-shadow .5s var(--ease)}.photo-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}.photo-item:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:var(--shadow)}.photo-item:hover img{transform:scale(1.07)}.photo-index{position:absolute;left:12px;bottom:12px;padding:.3rem .7rem;font-family:var(--mono);font-size:.65rem;color:var(--on-accent);background:var(--accent);border-radius:var(--r-pill);opacity:0;transform:translateY(10px);transition:opacity .4s var(--ease),transform .45s var(--spring)}.photo-item:hover .photo-index{opacity:1;transform:none}.photo-item.dragging{opacity:.45}.is-edit-mode .photo-item{cursor:default;animation:wobble 2.6s var(--ease-soft) infinite}.is-edit-mode .photo-item:nth-child(2n){animation-delay:-1.3s}@keyframes wobble{0%,to{transform:rotate(-.7deg)}50%{transform:rotate(.7deg)}}.order-controls{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:.5rem;background:color-mix(in srgb,var(--paper) 72%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.order-btn{width:46px;height:46px;font-size:1.05rem;color:var(--on-accent);background:var(--accent);border-radius:50%;box-shadow:var(--shadow-sm);transition:transform .35s var(--spring),opacity .3s var(--ease)}.order-btn:hover{transform:scale(1.12)}.order-btn:disabled{opacity:.28;cursor:not-allowed}.notes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(.9rem,2.2vw,1.3rem)}.note-card{position:relative;padding:clamp(1.3rem,3vw,1.9rem);background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .45s var(--spring),box-shadow .45s var(--ease)}.note-card:after{content:"";position:absolute;top:0;left:clamp(1.3rem,3vw,1.9rem);right:clamp(1.3rem,3vw,1.9rem);height:3px;border-radius:0 0 4px 4px;background:var(--card-accent, var(--accent))}.note-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.note-card.is-baha{--card-accent: var(--him)}.note-card.is-aysenur{--card-accent: var(--her)}.note-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1rem}.note-who{display:flex;align-items:center;gap:.6rem}.avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;font-family:var(--serif);font-size:1.05rem;color:#fff;background:var(--card-accent, var(--accent));border-radius:50%}.note-meta strong{font-size:.92rem;font-weight:600}.note-top time{font-size:.7rem;color:var(--ink-3);text-align:right}.note-body{font-family:var(--serif);font-size:var(--t-lede);line-height:1.5;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere}.card-tools{display:flex;gap:.4rem;margin-top:1.2rem}.audio-title{margin-bottom:.9rem;font-family:var(--serif);font-size:var(--t-h3)}.player{display:flex;align-items:center;gap:.9rem;padding:.8rem;background:var(--paper-2);border-radius:var(--r)}.player-play{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;font-size:.8rem;color:#fff;background:var(--card-accent, var(--accent));border-radius:50%;transition:transform .35s var(--spring)}.player-play:hover{transform:scale(1.09)}.is-playing .player-play{animation:pulse 2s var(--ease-soft) infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--card-accent, var(--accent)) 55%,transparent)}70%{box-shadow:0 0 0 14px transparent}to{box-shadow:0 0 0 0 transparent}}.player-body{flex:1;min-width:0}.wave{position:relative;display:flex;align-items:center;gap:2px;height:30px;overflow:hidden}.wave>span:not(.wave-mask){flex:1;height:var(--h);min-height:3px;border-radius:2px;background:var(--card-accent, var(--accent));opacity:.6}.is-playing .wave>span:not(.wave-mask){animation:wave-jump 1.1s var(--ease-soft) infinite;animation-delay:calc(var(--b) * 40ms)}@keyframes wave-jump{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1.12)}}.wave-mask{position:absolute;top:0;right:0;height:100%;background:color-mix(in srgb,var(--paper-2) 80%,transparent);transition:width .25s linear}.player-row{display:flex;align-items:center;gap:.7rem;margin-top:.45rem}.player-time{font-family:var(--mono);font-size:.64rem;font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap}.player-seek{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:22px;padding-block:9px;border-radius:99px;background:var(--rule-2);background-clip:content-box;cursor:pointer}.player-seek::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:var(--card-accent, var(--accent))}.player-seek::-moz-range-thumb{width:13px;height:13px;border:none;border-radius:50%;background:var(--accent)}.jars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:clamp(.9rem,2.2vw,1.4rem)}.jar-card{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:clamp(1.4rem,3vw,2rem) clamp(1rem,2.4vw,1.5rem);background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .45s var(--spring),box-shadow .45s var(--ease)}.jar-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.jar-name{font-family:var(--serif);font-size:var(--t-h3)}.jar-svg{width:100%;max-width:168px;height:auto;overflow:visible}.jar-ball{transform-box:fill-box;transform-origin:center;animation:ball-drop .7s var(--spring) backwards}@keyframes ball-drop{0%{transform:translateY(-90px) scale(.4);opacity:0}}.jar-cta{width:100%}.jar-stats{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;width:100%}.jar-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.6rem .4rem;background:var(--paper-2);border-radius:var(--r-sm)}.jar-stat span{font-size:.72rem;color:var(--ink-3)}.jar-stat b{font-family:var(--serif);font-size:1.7rem;font-weight:400;font-variant-numeric:tabular-nums}.jar-stat:first-child b{color:var(--him)}.jar-stat:last-child b{color:var(--her)}.music-frame{padding:.6rem;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.music-frame iframe{border-radius:var(--r)}.places-list{display:grid;gap:.8rem}.place-card{position:relative;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:clamp(.8rem,2.5vw,1.8rem);padding:clamp(1.1rem,2.6vw,1.6rem);background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .45s var(--spring),box-shadow .45s var(--ease)}.place-card:hover{transform:translate(6px);box-shadow:var(--shadow)}.place-num{display:grid;place-items:center;width:42px;height:42px;font-family:var(--mono);font-size:.72rem;color:var(--accent);background:var(--accent-soft);border-radius:50%}.place-body h3{font-family:var(--serif);font-size:var(--t-h3)}.place-body p{margin-top:.35rem;max-width:52ch;font-size:var(--t-sm);color:var(--ink-2);overflow-wrap:anywhere}.place-date{font-size:.74rem;color:var(--ink-3);white-space:nowrap}.place-card .card-tools{margin-top:0}.timeline{position:relative;display:grid;gap:.9rem;padding-left:34px}.timeline:before{content:"";position:absolute;top:12px;bottom:12px;left:11px;width:2px;border-radius:2px;background:linear-gradient(var(--accent),var(--accent-2),transparent)}.tl-item{position:relative;padding:clamp(1.2rem,3vw,1.8rem);background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .45s var(--spring),box-shadow .45s var(--ease)}.tl-item:before{content:"";position:absolute;top:26px;left:-29px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--paper)}.tl-item:hover{transform:translate(6px);box-shadow:var(--shadow)}.tl-aside{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.tl-glyph{font-size:1.15rem}.tl-date{font-size:.74rem;font-weight:600;color:var(--accent)}.tl-card h3{font-family:var(--serif);font-size:var(--t-h3)}.tl-card p{margin-top:.5rem;max-width:62ch;font-size:var(--t-sm);line-height:1.7;color:var(--ink-2);overflow-wrap:anywhere}.pagination{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:2rem}.page-btn{display:grid;place-items:center;width:44px;height:44px;font-size:1.1rem;color:var(--ink);background:var(--paper-2);border-radius:50%;transition:all .35s var(--spring)}.page-btn:hover:not(:disabled){color:var(--on-accent);background:var(--accent);transform:scale(1.08)}.page-btn:disabled{opacity:.3;cursor:not-allowed}.page-count{font-family:var(--mono);font-size:.78rem;color:var(--ink-3)}.footer{display:grid;place-items:center;gap:.8rem;padding:clamp(3rem,8vw,5rem) 0 2rem;text-align:center}.footer-heart{font-size:1.7rem;animation:beat 3.6s var(--ease-soft) infinite}.footer-line{font-family:var(--serif);font-size:var(--t-h2);line-height:1}.footer-line em{font-style:italic;color:var(--accent)}.footer-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center;margin-top:.6rem;font-size:.78rem;color:var(--ink-3)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:70;display:none;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 -1px 0 var(--rule)}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.66rem;font-weight:600;color:var(--ink-3);transition:color .35s var(--ease)}.tab-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:0;transform:scale(.5);transition:all .4s var(--spring)}.tab.is-active{color:var(--accent)}.tab.is-active .tab-dot{opacity:1;transform:none}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;background:color-mix(in srgb,var(--paper) 96%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);animation:fade-in .35s var(--ease)}@keyframes fade-in{0%{opacity:0}}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem var(--gutter)}.lightbox-count{font-family:var(--mono);font-size:.78rem;color:var(--ink-3)}.lightbox-bar-actions{display:flex;gap:.5rem}.lightbox-stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 clamp(.5rem,4vw,4.5rem)}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r);box-shadow:var(--shadow);animation:pop .55s var(--spring)}@keyframes pop{0%{opacity:0;transform:scale(.95)}}.lightbox-arrow{position:absolute;top:50%;translate:0 -50%;display:grid;place-items:center;width:50px;height:50px;font-size:1.6rem;color:var(--ink);background:var(--card);border-radius:50%;box-shadow:var(--shadow-sm);transition:all .35s var(--spring)}.lightbox-arrow:hover{color:var(--on-accent);background:var(--accent);transform:translateY(-50%) scale(1.08)}.lightbox-arrow.prev{left:max(.5rem,1.5vw)}.lightbox-arrow.next{right:max(.5rem,1.5vw)}.lightbox-hint{padding:1rem var(--gutter) 1.3rem;text-align:center;font-size:.74rem;color:var(--ink-3)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;display:flex;align-items:center;justify-content:center;padding:var(--gutter);background:color-mix(in srgb,var(--ink) 32%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fade-in .3s var(--ease)}.modal{position:relative;width:min(540px,100%);max-height:min(88vh,800px);overflow-y:auto;overscroll-behavior:contain;padding:clamp(1.7rem,4vw,2.5rem);background:var(--paper);border-radius:var(--r-xl);box-shadow:var(--shadow);animation:modal-in .55s var(--spring)}@keyframes modal-in{0%{opacity:0;transform:translateY(24px) scale(.97)}}.modal-grip{display:none}.modal-close{position:absolute;top:1.1rem;right:1.1rem;display:grid;place-items:center;width:38px;height:38px;font-size:.85rem;color:var(--ink-2);background:var(--paper-2);border-radius:50%;transition:all .35s var(--spring);z-index:2}.modal-close:hover{color:#fff;background:#e0526e;transform:rotate(90deg)}.modal-head{margin-bottom:1.6rem;padding-right:3rem}.modal-head h2{font-family:var(--serif);font-size:var(--t-h3)}.modal-head p{margin-top:.4rem;font-size:var(--t-sm);color:var(--ink-2)}.recorder{padding:1.2rem;background:var(--paper-2);border-radius:var(--r)}.rec-start{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;min-height:54px;font-size:.9rem;font-weight:600;color:var(--ink);background:var(--card);border-radius:var(--r-pill);transition:all .4s var(--spring)}.rec-start:hover{color:var(--on-accent);background:var(--accent);transform:translateY(-2px)}.rec-dot{width:11px;height:11px;border-radius:50%;background:#e0526e}.rec-live{display:grid;gap:1rem;justify-items:center}.rec-status{display:flex;align-items:center;gap:.55rem;font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums}.rec-pulse{width:10px;height:10px;border-radius:50%;background:#e0526e;animation:rec-blink 1.1s var(--ease-soft) infinite}@keyframes rec-blink{0%,to{opacity:1}50%{opacity:.25}}.rec-bars{display:flex;align-items:center;gap:3px;height:40px;width:100%}.rec-bars span{flex:1;height:100%;border-radius:2px;background:var(--accent);animation:rec-wave .9s var(--ease-soft) infinite;animation-delay:calc(var(--b) * 55ms)}@keyframes rec-wave{0%,to{transform:scaleY(.15)}50%{transform:scaleY(1)}}.rec-actions{display:flex;gap:.6rem}.rec-preview{display:grid;gap:.9rem;justify-items:center}.rec-preview audio{width:100%}.dropzone{display:grid;place-items:center;gap:.6rem;padding:clamp(2.2rem,7vw,3.5rem);text-align:center;cursor:pointer;background:var(--paper-2);border:2px dashed var(--rule-2);border-radius:var(--r-lg);transition:all .45s var(--ease)}.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone-icon{display:grid;place-items:center;width:62px;height:62px;font-size:1.7rem;color:var(--on-accent);background:var(--accent);border-radius:50%;transition:transform .5s var(--spring)}.dropzone:hover .dropzone-icon{transform:rotate(90deg) scale(1.08)}.dropzone-title{font-family:var(--serif);font-size:var(--t-h3)}.dropzone-hint{font-size:.75rem;color:var(--ink-3)}.dropzone.is-busy{pointer-events:none;opacity:.65}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--rule-2);border-top-color:var(--accent);animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;padding:0 var(--gutter)}.auth-bar{display:flex;align-items:center;justify-content:space-between;height:calc(var(--nav-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.auth-main{flex:1;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(2rem,7vw,5rem);padding:clamp(2rem,7vw,4rem) 0}.auth-title{font-family:var(--serif);font-size:clamp(3rem,8.5vw,6.5rem);line-height:.9}.auth-title em{font-style:normal;color:var(--accent);display:inline-block;animation:beat 3.6s var(--ease-soft) infinite}.auth-lede{margin-top:1.5rem;max-width:34ch;font-family:var(--serif);font-size:var(--t-lede);line-height:1.45;color:var(--ink-2)}.auth-rule{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.8rem;padding:.5rem 1.1rem;font-size:.8rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill)}.auth-card{padding:clamp(1.6rem,3.5vw,2.4rem);background:var(--card);border-radius:var(--r-xl);box-shadow:var(--shadow)}.auth-card-head{margin-bottom:1.6rem}.auth-card-head h2{margin-top:.5rem;font-family:var(--serif);font-size:var(--t-h3)}.auth-form{display:grid;gap:1.3rem}.auth-foot{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--rule);font-size:.78rem;line-height:1.6;text-align:center;color:var(--ink-3)}@media (max-width: 1000px){.nav-links{display:none}.burger{display:block}.nav-logout{display:none}.letter{grid-template-columns:1fr}.letter-side{position:static}.auth-main{grid-template-columns:1fr;align-items:start;gap:2.2rem}}@media (max-width: 820px){:root{--nav-h: 62px}.tabbar{display:flex}.content{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 1.5rem)}.brand-text small,.theme-btn-name{display:none}.theme-btn{width:42px;padding:0;justify-content:center}.hero-grid{grid-template-columns:1fr;align-items:start;gap:1.8rem}.place-card{grid-template-columns:42px 1fr;row-gap:.5rem}.place-date{grid-column:2}.modal-overlay{align-items:flex-end;padding:0}.modal{width:100%;max-height:92svh;padding:1.4rem 1.2rem calc(1.8rem + env(safe-area-inset-bottom));border-radius:var(--r-xl) var(--r-xl) 0 0;animation:sheet-in .5s var(--ease)}@keyframes sheet-in{0%{transform:translateY(100%)}}.modal-grip{display:block;width:42px;height:4px;margin:0 auto 1.1rem;background:var(--rule-2);border-radius:99px}.modal-close{top:1rem;right:1rem;width:34px;height:34px}}@media (max-width: 560px){.sec-head{grid-template-columns:1fr;align-items:start}.sec-actions .btn{flex:1}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.55rem}.photo-item{border-radius:var(--r-sm)}.letter{padding:1.4rem 1.2rem}.lightbox-hint{display:none}.lightbox-arrow{width:42px;height:42px;font-size:1.25rem}}@media (hover: none){.photo-item:hover{transform:none;box-shadow:none}.photo-item:hover img{transform:none}.photo-index{opacity:1;transform:none}.note-card:hover,.jar-card:hover,.btn:hover,.place-card:hover,.tl-item:hover{transform:none}}:root{--serif: "Instrument Serif", "Times New Roman", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--t-xs: .72rem;--t-sm: clamp(.85rem, .82rem + .12vw, .92rem);--t-base: clamp(.97rem, .92rem + .22vw, 1.07rem);--t-lede: clamp(1.18rem, 1.02rem + .7vw, 1.6rem);--t-h3: clamp(1.35rem, 1.15rem + 1vw, 2rem);--t-h2: clamp(2.3rem, 1.5rem + 3.3vw, 4.4rem);--t-h1: clamp(3.2rem, 1rem + 10.5vw, 10rem);--r-sm: 12px;--r: 20px;--r-lg: 30px;--r-xl: 40px;--r-pill: 999px;--gutter: clamp(1.15rem, 4.5vw, 4rem);--gap: clamp(4rem, 9vw, 8rem);--maxw: 1320px;--ease: cubic-bezier(.19, 1, .22, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1);--spring: cubic-bezier(.34, 1.45, .44, 1);--nav-h: 68px;--tabbar-h: 64px}:root,:root[data-theme=blush]{--paper: #fdf5f1;--paper-2: #f8e7e0;--card: #fffaf7;--ink: #33212a;--ink-2: rgba(51, 33, 42, .66);--ink-3: rgba(51, 33, 42, .42);--rule: rgba(51, 33, 42, .1);--rule-2: rgba(51, 33, 42, .2);--accent: #e0708c;--accent-2: #eab04d;--accent-soft: rgba(224, 112, 140, .12);--on-accent: #fff8fa;--him: #6b8fc7;--her: #e0708c;--shadow: 0 24px 50px -30px rgba(51, 33, 42, .4);--shadow-sm: 0 10px 24px -18px rgba(51, 33, 42, .5)}:root[data-theme=vanilla]{--paper: #fbf6ea;--paper-2: #f3e8d3;--card: #fffdf7;--ink: #3a2d21;--ink-2: rgba(58, 45, 33, .66);--ink-3: rgba(58, 45, 33, .42);--rule: rgba(58, 45, 33, .1);--rule-2: rgba(58, 45, 33, .2);--accent: #d98a46;--accent-2: #c96a7a;--accent-soft: rgba(217, 138, 70, .13);--on-accent: #fffaf2;--him: #6e92b8;--her: #de7c93;--shadow: 0 24px 50px -30px rgba(58, 45, 33, .4);--shadow-sm: 0 10px 24px -18px rgba(58, 45, 33, .5)}:root[data-theme=turquoise]{--paper: #eef8f7;--paper-2: #d8ecea;--card: #f9fdfd;--ink: #123338;--ink-2: rgba(18, 51, 56, .66);--ink-3: rgba(18, 51, 56, .42);--rule: rgba(18, 51, 56, .1);--rule-2: rgba(18, 51, 56, .2);--accent: #1ea79c;--accent-2: #f0a868;--accent-soft: rgba(30, 167, 156, .13);--on-accent: #f2fbfa;--him: #3f86b5;--her: #e0708c;--shadow: 0 24px 50px -30px rgba(18, 51, 56, .4);--shadow-sm: 0 10px 24px -18px rgba(18, 51, 56, .5)}:root[data-theme=night]{--paper: #17131a;--paper-2: #211a26;--card: #221b28;--ink: #f6eaf0;--ink-2: rgba(246, 234, 240, .68);--ink-3: rgba(246, 234, 240, .42);--rule: rgba(246, 234, 240, .14);--rule-2: rgba(246, 234, 240, .26);--accent: #ff9db5;--accent-2: #f3c677;--accent-soft: rgba(255, 157, 181, .14);--on-accent: #24141b;--him: #8fb6e8;--her: #ff9db5;--shadow: 0 24px 60px -30px rgba(0, 0, 0, .85);--shadow-sm: 0 10px 26px -16px rgba(0, 0, 0, .8)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{min-height:100%;scroll-behavior:smooth;overflow-x:hidden;background:var(--paper);-webkit-text-size-adjust:100%}body{min-height:100svh;overflow-x:hidden;font-family:var(--sans);font-size:var(--t-base);line-height:1.65;letter-spacing:-.006em;color:var(--ink);background:var(--paper);transition:background-color .6s var(--ease-soft),color .6s var(--ease-soft);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.is-locked{overflow:hidden}#root{position:relative;z-index:1;min-height:100svh}img,svg,video,iframe{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;letter-spacing:inherit}button{cursor:pointer}h1,h2,h3,h4{font-weight:400;line-height:1.05;letter-spacing:-.028em}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}@media (min-width: 900px){::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--accent);border:3px solid var(--paper);border-radius:99px}}[data-reveal]{opacity:0;transform:translate3d(0,22px,0);transition:opacity .95s var(--ease) calc(var(--i, 0) * 80ms),transform .95s var(--ease) calc(var(--i, 0) * 80ms)}[data-reveal].in{opacity:1;transform:none}[data-mask]{display:block;overflow:hidden;padding-bottom:.08em}[data-mask]>*{display:block;transform:translate3d(0,105%,0);transition:transform 1.1s var(--ease) calc(var(--i, 0) * 90ms)}[data-mask].in>*{transform:none}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}[data-reveal],[data-mask]>*{opacity:1;transform:none}}
