@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/393d45a2251e223a-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8715d2ed531152f4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c48b38fe8bb532f3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/48410f3df60da620-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7b89a4fd5e90ede0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/393d45a2251e223a-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8715d2ed531152f4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c48b38fe8bb532f3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/48410f3df60da620-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7b89a4fd5e90ede0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/393d45a2251e223a-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8715d2ed531152f4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c48b38fe8bb532f3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/48410f3df60da620-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7b89a4fd5e90ede0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Cormorant Garamond Fallback;src:local("Times New Roman");ascent-override:95.27%;descent-override:29.59%;line-gap-override:0.00%;size-adjust:96.98%}.__className_67a1af{font-family:Cormorant Garamond,Cormorant Garamond Fallback;font-style:normal}.__variable_67a1af{--font-cormorant:"Cormorant Garamond","Cormorant Garamond Fallback"}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/dad5af6a451969b9-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f751862dd005bbab-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/162bae04ee86dd69-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/67d172d8d0152ee1-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/536d9d896eaf4f3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/87069f06a4f1ee13-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Great Vibes Fallback;src:local("Arial");ascent-override:124.79%;descent-override:58.80%;line-gap-override:0.00%;size-adjust:68.19%}.__className_a10525{font-family:Great Vibes,Great Vibes Fallback;font-weight:400;font-style:normal}.__variable_a10525{--font-great-vibes:"Great Vibes","Great Vibes Fallback"}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b8c37bb59076c047-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/5bbac197f803cc34-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9dd75fadc5b3df29-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Jost;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b8c37bb59076c047-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Jost;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/5bbac197f803cc34-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Jost;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9dd75fadc5b3df29-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Jost;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b8c37bb59076c047-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Jost;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5bbac197f803cc34-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Jost;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9dd75fadc5b3df29-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Jost Fallback;src:local("Arial");ascent-override:111.45%;descent-override:39.06%;line-gap-override:0.00%;size-adjust:96.01%}.__className_3221f3{font-family:Jost,Jost Fallback;font-style:normal}.__variable_3221f3{--font-jost:"Jost","Jost Fallback"}:root{--bg:#faf7f2;--surface:#f3ede3;--border:#e5dcce;--text:#4a3f35;--accent:#8a6d4f;--accent2:#b8a088;--font-heading:var(--font-cormorant),Georgia,"Times New Roman",serif;--font-script:var(--font-great-vibes),cursive;--font-body:var(--font-jost),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--radius-card:18px;--radius-pill:999px;--shadow-soft:0 6px 20px rgba(74,63,53,0.08);--ease:cubic-bezier(0.22,0.61,0.36,1)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,h1,h2,h3{color:var(--text)}h1,h2,h3{font-family:var(--font-heading);font-weight:500;letter-spacing:.01em;line-height:1.2;margin:0 0 .5em}h1{font-size:clamp(2rem,6vw,3rem)}h2{font-size:clamp(1.5rem,4.5vw,2rem)}a{color:var(--accent);text-decoration:none;transition:color .2s var(--ease)}a:hover{color:var(--accent2)}.container{width:100%;max-width:900px;margin:0 auto;padding:0 1.25rem}.section{padding:2.5rem 0}.script{font-family:var(--font-script);line-height:1}.muted,.script{color:var(--accent)}.muted{opacity:.85}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.75rem 1.5rem;border-radius:var(--radius-pill);border:1px solid transparent;background:var(--accent);color:#fffdf9;font-family:var(--font-body);font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s var(--ease),transform .15s var(--ease)}.btn:hover{background:var(--accent2);color:#fffdf9}.btn:active{transform:translateY(1px)}.btn--ghost{background:transparent;color:var(--accent);border-color:var(--border)}.btn--ghost:hover{background:var(--surface);color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:0 .95rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.95rem;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.chip:hover{background:var(--surface);color:var(--text);border-color:var(--accent2)}.chip--solid{background:var(--accent);color:#fffdf9;border-color:var(--accent)}.chip--solid:hover{background:var(--accent2);border-color:var(--accent2);color:#fffdf9}.chip__count{font-size:.78rem;color:var(--accent2)}.chip--solid .chip__count{color:rgba(255,253,249,.85)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:1.25rem}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}@media (min-width:700px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1000px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}.tile{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:var(--surface);border:1px solid var(--border);animation:fade-in .25s var(--ease) both}.tile img{width:100%;height:100%;object-fit:cover;display:block}.divider{display:flex;align-items:center;justify-content:center;gap:.75rem;color:var(--accent2);margin:1.5rem 0}.divider:after,.divider:before{content:"";height:1px;flex:1 1;max-width:120px;background:linear-gradient(to right,transparent,var(--border),transparent)}.letters{column-count:1;column-gap:1rem}@media (min-width:640px){.letters{column-count:2}}@media (min-width:1000px){.letters{column-count:3}}.letter-card{page-break-inside:avoid;break-inside:avoid;width:100%;margin:0 0 1rem;padding:1.4rem 1.5rem 1.25rem;background:linear-gradient(180deg,#fffdf9 0,var(--surface) 100%);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);position:relative}.letter-name{font-family:var(--font-script);color:var(--accent);font-size:2rem;line-height:1;margin:0}.letter-rule{height:1px;border:0;margin:.75rem 0 .85rem;background:linear-gradient(to right,transparent,var(--border),transparent)}.letter-msg{font-family:var(--font-heading);font-size:1.2rem;line-height:1.55;color:var(--text);margin:0;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.letter-msg.clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.letter-date{margin:.9rem 0 0;font-size:.8rem;color:var(--accent2);letter-spacing:.02em}.success-pop{animation:success-pop .4s var(--ease) both}@keyframes success-pop{0%{opacity:0;transform:scale(.96) translateY(6px)}60%{transform:scale(1.01)}to{opacity:1;transform:scale(1) translateY(0)}}.flourish{animation:flourish-draw .9s var(--ease) both}@keyframes flourish-draw{0%{stroke-dashoffset:120;opacity:0}to{stroke-dashoffset:0;opacity:1}}.fab-wrap{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom, 0px));z-index:40;display:flex;flex-direction:column;align-items:flex-end}.fab-backdrop{position:fixed;inset:0;z-index:39;background:rgba(58,47,40,.08);animation:fade-in .15s var(--ease) both}.fab{width:56px;height:56px;border-radius:var(--radius-pill);border:none;background:var(--accent);color:#fffdf9;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 22px rgba(74,63,53,.18);transition:background .2s var(--ease),transform .15s var(--ease)}.fab:hover{background:var(--accent2)}.fab:active{transform:translateY(1px)}.fab svg{transition:transform .2s var(--ease)}.fab[aria-expanded=true] svg{transform:rotate(45deg)}.fab-menu{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;margin-bottom:.6rem}.fab-item{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:0 1rem;border-radius:var(--radius-pill);background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-soft);text-decoration:none;white-space:nowrap;font-size:.95rem;animation:fab-in .18s var(--ease) both}.fab-item:hover{color:var(--text);border-color:var(--accent2);background:#fffdf9}.fab-item:nth-child(2){animation-delay:40ms}.fab-ic{display:inline-flex;color:var(--accent)}@keyframes fab-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-btn{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0 .95rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease)}.menu-btn:hover{background:#fffdf9;border-color:var(--accent2)}.menu-backdrop{position:fixed;inset:0;z-index:55;background:rgba(58,47,40,.18);animation:fade-in .15s var(--ease) both}.menu-panel{position:fixed;top:calc(env(safe-area-inset-top, 0px) + 66px);right:12px;z-index:56;width:min(320px,calc(100vw - 24px));background:linear-gradient(180deg,#fffdf9 0,var(--surface) 100%);border:1px solid var(--border);border-radius:18px;box-shadow:0 14px 34px rgba(74,63,53,.18);padding:.6rem;transform-origin:top right;animation:menu-in .18s var(--ease) both}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-panel-head{text-align:center;color:var(--accent);font-family:var(--font-script);font-size:1.5rem;line-height:1;padding:.35rem 0 .5rem}.menu-item{display:flex;align-items:center;min-height:48px;padding:0 .9rem;border-radius:12px;color:var(--text);font-size:1.05rem;font-weight:500;text-decoration:none;transition:background .15s var(--ease),color .15s var(--ease)}.menu-item:hover{background:var(--bg);color:var(--text)}.menu-item[aria-current=page]{background:var(--accent);color:#fffdf9}.menu-section{display:flex;align-items:center;gap:.6rem;margin:.6rem .3rem .2rem;color:var(--accent2);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.menu-section:after{content:"";flex:1 1;height:1px;background:linear-gradient(to right,var(--border),transparent)}.spinner{display:inline-block;width:22px;height:22px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}.spinner--sm{width:16px;height:16px}@keyframes spin{to{transform:rotate(1turn)}}.fade-up{animation:fade-up .45s var(--ease) both}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}