@font-face{font-family:Fraunces;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/f3deaf8281908ff2-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:Fraunces;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/c62081b071647022-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:Fraunces;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/6ba5f591ae6c56f6-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:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/f3deaf8281908ff2-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:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/c62081b071647022-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:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/6ba5f591ae6c56f6-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:Fraunces;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/f3deaf8281908ff2-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:Fraunces;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/c62081b071647022-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:Fraunces;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/6ba5f591ae6c56f6-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:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-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:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-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:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_0d86af{font-family:Fraunces,Fraunces Fallback}.__variable_0d86af{--font-display:"Fraunces","Fraunces Fallback"}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e44cdba7d0878bc5-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:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/07fccecd6728972a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/486fce9f36bc8f45-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:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/46bdd75a3ff56824-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:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e44cdba7d0878bc5-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:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/07fccecd6728972a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/486fce9f36bc8f45-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:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/46bdd75a3ff56824-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:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e44cdba7d0878bc5-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:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/07fccecd6728972a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/486fce9f36bc8f45-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:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/46bdd75a3ff56824-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:Caveat Fallback;src:local("Arial");ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.00%;size-adjust:76.94%}.__className_6bb45d{font-family:Caveat,Caveat Fallback;font-style:normal}.__variable_6bb45d{--font-hand:"Caveat","Caveat Fallback"}:root{--paper:#faf6ec;--paper-2:#f3ebda;--surface:#fffcf6;--ink:#2b2824;--ink-soft:#6b625b;--ink-faint:#a69c90;--line:#e6dbc9;--line-strong:#d7c9ae;--accent:#d6543c;--accent-deep:#b6422f;--accent-ink:#fffbf4;--sea:#316e6a;--theme:#f4ce5a;--theme-deep:#e5b83f;--good:#2f8a59;--bad:#be3a2d;--radius:5px;--radius-sm:3px;--grid-ink:#24211d;--shadow-sm:0 1px 1px rgba(43,40,36,0.07);--shadow:0 1px 2px rgba(43,40,36,0.09);--shadow-lift:0 8px 24px -12px rgba(43,40,36,0.34);--font-body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"SF Mono","SFMono-Regular",Menlo,Consolas,monospace;--display:var(--font-display,"Iowan Old Style",Georgia,serif);--hand:var(--font-hand,"Bradley Hand","Segoe Script",cursive)}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden}body{color:var(--ink);background-color:var(--paper);background-image:radial-gradient(rgba(120,95,60,.035) 1px,transparent 0),radial-gradient(rgba(120,95,60,.025) 1px,transparent 0);background-size:22px 22px,22px 22px;background-position:0 0,11px 11px;font-family:var(--font-body);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.1;letter-spacing:-.01em;text-wrap:balance}.fine,.lead,.muted,figcaption,li,p{text-wrap:pretty}a{color:inherit;text-decoration:none}::selection{background:var(--theme);color:var(--ink)}:focus-visible{outline:2.5px solid var(--sea);outline-offset:2px}.page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;gap:1.75rem;padding:2rem 1.1rem 4rem;text-align:center}.page>*{min-width:0;max-width:100%}.stack{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%;min-width:0}.measure{max-width:34rem}.eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:700;color:var(--accent)}.title{font-size:clamp(2.1rem,9vw,3rem)}.subtitle{font-size:clamp(1.4rem,6vw,1.85rem)}.lead{font-size:1.02rem}.lead,.muted{color:var(--ink-soft)}.fine{font-size:.8rem;color:var(--ink-faint)}.card{border:1px solid var(--line);padding:1.5rem 1.35rem;width:100%}.card,.postcard{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.postcard{position:relative;padding:1.4rem}.postcard:before{content:"";position:absolute;inset:7px;border:1.5px dashed var(--line-strong);border-radius:calc(var(--radius) - 6px);pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1.15rem;border-radius:var(--radius-sm);border:1.5px solid var(--ink);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;transition:transform .06s ease,background .15s ease}.btn:hover{background:var(--paper-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink-soft)}.btn-ghost:hover{border-color:var(--ink-soft);color:var(--ink)}.btn-sm{padding:.4rem .8rem;font-size:.9rem}.btn-icon{padding:.4rem .55rem}.btn-row{gap:.6rem}.btn-row,.chips{display:flex;flex-wrap:wrap;justify-content:center}.chips{gap:.5rem}.chip{padding:.38rem .8rem;border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;font-size:.92rem;letter-spacing:.02em;cursor:pointer;transition:background .12s ease,border-color .12s ease}.chip:hover:not(:disabled){background:var(--theme);border-color:var(--theme-deep)}.chip:disabled{opacity:.5;cursor:not-allowed}.field{width:100%;min-width:0;padding:.6rem .7rem;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.field:focus{border-color:var(--sea);outline:none}.field::placeholder{color:var(--ink-faint)}.row{display:flex;gap:.5rem;width:100%;min-width:0}.alert{width:100%;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.92rem;text-align:left}.alert-error{background:#fcefec;border:1px solid #f1c7bd;color:var(--accent-deep)}.stepper{display:flex;align-items:center;gap:.5rem}.step-dot{width:1.6rem;height:1.6rem;border-radius:2px;display:grid;place-items:center;font-size:.8rem;font-weight:700;border:1.5px solid var(--line-strong);color:var(--ink-faint);background:var(--surface)}.step-dot.done{border-color:var(--sea);background:var(--sea);color:#fff}.step-dot.current{border-color:var(--accent);color:var(--accent)}.step-line{width:1.1rem;height:1.5px;background:var(--line-strong)}.photo-zoom-badge{position:absolute;right:3px;bottom:3px;display:grid;place-items:center;width:1.15rem;height:1.15rem;border-radius:2px;background:rgba(37,32,27,.55);color:#fff;font-size:.7rem;line-height:1;pointer-events:none}.lightbox{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1.5rem;background:rgba(20,17,14,.82);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .18s ease both;cursor:zoom-out}.lightbox-img{max-width:100%;max-height:100%;box-shadow:var(--shadow-lift);cursor:default}.lightbox-close,.lightbox-img{border-radius:var(--radius-sm)}.lightbox-close{position:absolute;top:1rem;right:1rem;width:2.4rem;height:2.4rem;border:none;background:rgba(255,255,255,.92);color:var(--ink);font-size:1.1rem;cursor:pointer}.photo-adjust{display:flex;flex-direction:column;gap:.6rem;width:100%;max-width:18rem;align-items:stretch}.photo-adjust-frame{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius-sm);border:2px solid var(--line-strong);background:var(--paper-2);cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.photo-adjust-frame:active{cursor:-webkit-grabbing;cursor:grabbing}.photo-adjust-frame img{display:block;pointer-events:none}.photo-adjust-hint{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);padding:.1rem .5rem;border-radius:2px;background:rgba(37,32,27,.55);color:#fff;font-size:.7rem;letter-spacing:.04em;pointer-events:none}.photo-adjust-uploading{position:absolute;inset:0;display:grid;place-items:center;background:rgba(37,32,27,.35);pointer-events:none}.photo-adjust-controls{display:flex;align-items:center;gap:.5rem}.photo-adjust-slider{flex:1 1;min-width:0;accent-color:var(--sea)}.photo-adjust-change{align-self:center}.reveal{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;max-width:30rem;animation:greeting-pop .5s cubic-bezier(.2,.9,.3,1.2) both}.reveal-kicker{font-family:var(--display);font-size:1.5rem}.flipcard{--rev-hold:0.45s;--rev-grow:1.4s;--rev-resize:0.85s;display:block;width:100%;aspect-ratio:var(--grid-ar,3/2);padding:0;border:none;background:none;perspective:1400px;cursor:pointer;animation:card-resize var(--rev-resize) cubic-bezier(.65,0,.35,1) calc(var(--rev-hold) + var(--rev-grow)) both}@keyframes card-resize{to{aspect-ratio:3/2}}.flipcard-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s ease-in-out}.flipcard.is-flipped .flipcard-inner{transform:rotateX(180deg)}.flipcard.is-flipped .flipcard-front{opacity:0}.flipcard.is-flipped .flipcard-back{opacity:1}.flipcard-face{position:absolute;inset:0;display:block;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-lift);backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:opacity 0s linear .35s}.flipcard-front{display:grid;place-items:center;background:var(--surface)}.postcard-crossword{width:100%;height:100%;display:grid;place-items:center;z-index:1}.postcard-crossword [role=grid]{height:100%}.postcard-photo-expand{position:absolute;top:var(--p-top,0);left:var(--p-left,0);right:var(--p-right,0);bottom:var(--p-bottom,0);overflow:hidden;z-index:2;animation:photo-expand var(--rev-grow,1.4s) cubic-bezier(.4,0,.2,1) var(--rev-hold,.45s) both}.postcard-photo-expand>img,.postcard-photo-expand>svg{width:100%;height:100%;display:block;object-fit:cover}@keyframes photo-expand{to{inset:0}}@media (prefers-reduced-motion:reduce){.flipcard{animation:none;aspect-ratio:3/2}.postcard-photo-expand{animation:none;inset:0}.postcard-crossword{display:none}}.flipcard-back{transform:rotateX(180deg);opacity:0;background:var(--surface);display:grid;grid-template-columns:1.25fr 1fr;grid-gap:.5rem;gap:.5rem;padding:1rem 1.05rem;text-align:left}.postcard-message{font-family:var(--hand);font-size:clamp(1.1rem,5.5vw,1.7rem);line-height:1.25;color:#34507a;overflow-wrap:anywhere;align-self:stretch;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.postcard-text{white-space:pre-line}.postcard-sign{align-self:flex-end;margin-top:.6rem;font-size:.85em}.postcard-divider{position:absolute;top:12%;bottom:12%;left:58%;width:1.5px;background:var(--line-strong)}.postcard-address{display:flex;flex-direction:column;gap:.7rem;padding-left:.5rem}.postcard-stampbox{align-self:flex-end;width:2.2rem;height:2.6rem;border:1.5px dashed var(--line-strong);border-radius:3px}.postcard-postmark{align-self:flex-end;margin-top:-.2rem;font-size:.6rem;letter-spacing:.18em;color:var(--ink-faint);border:1.5px solid var(--line-strong);border-radius:2px;padding:.05rem .4rem;transform:rotate(-8deg)}.postcard-line{height:1.5px;margin-top:.35rem;background:var(--line)}@keyframes greeting-pop{0%{opacity:0;transform:translateY(10px) scale(.96) rotate(-1deg)}to{opacity:1;transform:none}}.confetti{position:fixed;inset:0;z-index:50;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:0;left:0;display:block;will-change:transform,opacity;animation:confetti-rain var(--dur,3s) cubic-bezier(.3,.1,.5,1) var(--delay,0s) both}@keyframes confetti-rain{0%{transform:translateY(-12vh) rotate(0deg);opacity:0}8%{opacity:1}90%{opacity:1}to{transform:translate(var(--drift,0),112vh) rotate(var(--cr,1turn));opacity:0}}@media (prefers-reduced-motion:reduce){.confetti{display:none}}.hero{gap:.9rem;max-width:34rem}.hero,.section{display:flex;flex-direction:column;align-items:center;width:100%}.section{gap:1.4rem;max-width:52rem}.section-head{display:flex;flex-direction:column;align-items:center;gap:.35rem}.steps{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem;width:100%;list-style:none;counter-reset:step}@media (min-width:42rem){.steps{grid-template-columns:repeat(3,1fr)}}.step{counter-increment:step;position:relative;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.15rem 1.15rem}.step,.step:before{box-shadow:var(--shadow-sm)}.step:before{content:counter(step);position:absolute;top:-.85rem;left:1rem;width:1.7rem;height:1.7rem;display:grid;place-items:center;border-radius:2px;background:var(--accent);color:var(--accent-ink);font-family:var(--display);font-weight:700;font-size:1rem}.step-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--sea)}.step-title{font-family:var(--display);font-size:1.2rem;margin:.15rem 0 .4rem}.step-body{font-size:.95rem;color:var(--ink-soft)}.clue-grid{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem;width:100%;max-width:42rem;list-style:none}@media (min-width:42rem){.clue-grid{grid-template-columns:repeat(3,1fr)}}.clue-card{display:flex;flex-direction:column;gap:.7rem;text-align:left;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.1rem}.clue-answer,.clue-card{background:var(--surface)}.clue-answer{align-self:flex-start;font-weight:700;letter-spacing:.22em;text-transform:uppercase;font-size:.8rem;color:var(--ink);border:2px solid var(--grid-ink);border-radius:2px;padding:.2rem .5rem .2rem .62rem}.clue-line{display:flex;flex-direction:column;gap:.15rem}.clue-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700}.clue-label.plain{color:var(--ink-faint)}.clue-label.themed{color:var(--accent)}.clue-plain{font-size:.9rem;color:var(--ink-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.clue-themed{font-size:1.02rem;font-weight:500;color:var(--ink)}.rule{width:100%;max-width:34rem;border:none;height:1.5px;background:var(--line-strong);position:relative;overflow:visible;margin:.5rem 0}.spinner{width:1.05em;height:1.05em;border-radius:999px;border:2.5px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentcolor;animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(1turn)}}.working{display:inline-flex;align-items:center;gap:.6rem;color:var(--sea);font-weight:600;font-size:.95rem}.working .msg{animation:fade-in .35s ease both}.progress{position:relative;width:100%;max-width:22rem;height:4px;border-radius:1px;background:var(--paper-2);overflow:hidden}.progress:after{content:"";position:absolute;inset:0;width:38%;border-radius:1px;background:var(--sea);animation:sweep 1.15s ease-in-out infinite}@keyframes sweep{0%{transform:translateX(-110%)}to{transform:translateX(320%)}}@keyframes fade-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.step-enter{animation:step-in .32s ease both}@keyframes step-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.hero-flip-in{display:inline-block;transform-origin:center;animation:hero-flip-in .44s cubic-bezier(.34,1.15,.4,1) both}@keyframes hero-flip-in{0%{opacity:0;transform:rotateX(90deg)}to{opacity:1;transform:none}}.hero-reveal{display:inline-block;animation:hero-reveal .28s cubic-bezier(.22,1,.36,1) both}@keyframes hero-reveal{0%{opacity:0;transform:translateY(.16em)}to{opacity:1;transform:none}}.hero-chips{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:.6rem;opacity:0;transition:opacity .4s ease;pointer-events:none}.hero-chips[data-visible="1"]{opacity:1}.hero-chips-panel{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:.9rem 1rem;background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow-lift);transform:translateY(8px) scale(.97);transition:transform .4s cubic-bezier(.2,.9,.3,1.2),opacity .4s ease}.hero-chips[data-visible="1"] .hero-chips-panel{transform:none}.hero-chips-label{font-family:var(--display,inherit);font-size:clamp(.85rem,3.6vw,1.05rem);font-weight:600;color:var(--ink)}.hero-chip{transition:background .25s ease,border-color .25s ease,opacity .25s ease,transform .25s cubic-bezier(.2,.9,.3,1.2)}.hero-chip[data-state=on]{background:var(--theme);border-color:var(--theme-deep);transform:scale(1.06)}.hero-chip[data-state=off]{opacity:.4}.hero-send{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:.6rem;opacity:0;transition:opacity .4s ease;pointer-events:none}.hero-send[data-visible="1"]{opacity:1}.hero-send-panel{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:.9rem 1rem;background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow-lift);transform:translateY(8px) scale(.97);transition:transform .4s cubic-bezier(.2,.9,.3,1.2),opacity .4s ease}.hero-send[data-visible="1"] .hero-send-panel{transform:none}.hero-send-label{font-family:var(--display,inherit);font-size:clamp(.85rem,3.6vw,1.05rem);font-weight:600;color:var(--ink)}.hero-send-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border:1.5px solid var(--line-strong);border-radius:999px;background:var(--surface);font-size:.78rem;font-weight:600;color:var(--ink-soft);transition:border-color .3s ease,background .3s ease}.hero-send[data-sent="1"] .hero-send-pill{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.hero-send-plane{width:1rem;height:1rem;color:var(--accent);transition:transform .6s cubic-bezier(.5,0,.75,.6),opacity .6s ease}.hero-send[data-sent="1"] .hero-send-plane{transform:translate(1.6rem,-1.6rem) rotate(8deg) scale(.8);opacity:0}.hero-stage-depart{animation:hero-stage-depart .6s cubic-bezier(.5,0,.75,.6) both}@keyframes hero-stage-depart{to{transform:translateX(118%) rotate(2.5deg);opacity:0}}.hero-stage-arrive{animation:hero-stage-arrive .65s cubic-bezier(.22,1,.36,1) both}@keyframes hero-stage-arrive{0%{transform:translateX(-118%) rotate(-2.5deg);opacity:0}to{transform:none;opacity:1}}.hero-kicker{display:block;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;font-size:.66rem;font-weight:700;color:var(--sea);margin:0 0 .9rem}.hero-card{width:100%;max-width:27rem;overflow:hidden}.hero-stage{position:relative;perspective:1400px;width:min(100%,23rem);margin:0 auto}.hero-flip{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .7s ease-in-out}.hero-flip.is-flipped{transform:rotateX(180deg)}.hero-face{position:absolute;inset:0;border-radius:3px;overflow:hidden;box-shadow:var(--shadow);backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:opacity 0s linear .35s}.hero-front{background:var(--grid-ink)}.hero-flip.is-flipped .hero-front{opacity:0}.hero-back{transform:rotateX(180deg);opacity:0;background:var(--surface);display:grid;grid-template-columns:1.25fr 1fr;grid-gap:.5rem;gap:.5rem;padding:1rem 1.05rem;text-align:left}.hero-flip.is-flipped .hero-back{opacity:1}.hero-grid{position:relative;border-radius:3px}.hero-solved{animation:hero-solved .6s ease-out both}@keyframes hero-solved{40%{filter:brightness(1.07)}}.hero-caret{display:inline-block;width:.11em;height:1.05em;background:var(--accent);border-radius:1px;animation:hero-caret 1s step-end infinite}@keyframes hero-caret{0%,50%{opacity:1}50.01%,to{opacity:0}}.hero-cluecard{position:absolute;left:50%;bottom:6%;z-index:5;width:74%;transform:translate(-50%,10px);display:flex;flex-direction:column;gap:.1rem;padding:.45rem .7rem;background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow-lift);text-align:left;opacity:0;transition:opacity .32s ease,transform .32s cubic-bezier(.2,.9,.3,1.2);pointer-events:none}.hero-cluecard[data-visible="1"]{opacity:1;transform:translate(-50%)}.hero-cluecard-label{font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.hero-cluecard-text{font-family:var(--hand,inherit);font-size:clamp(.9rem,3.9vw,1.15rem);line-height:1.2;color:var(--ink)}.hero-cluecard-pointer{position:absolute;bottom:100%;left:50%;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:8px solid var(--paper);transform:translateX(-50%);filter:drop-shadow(0 -1px 1px rgba(0,0,0,.06))}.hero-upload{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:7%;background:var(--surface);border-radius:3px;transition:opacity .45s ease,transform .45s ease}.hero-upload[data-state=hidden]{opacity:0;transform:scale(1.05);pointer-events:none}.hero-upload-box{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;width:82%;height:66%;border:1.5px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-soft);transition:border-color .3s ease,background .3s ease}.hero-upload[data-state=picked] .hero-upload-box{border-style:solid;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.hero-upload-icon{width:1.9rem;height:1.9rem;transition:opacity .25s ease}.hero-upload-label{font-size:.8rem;font-weight:600;transition:opacity .25s ease}.hero-upload[data-state=picked] .hero-upload-icon,.hero-upload[data-state=picked] .hero-upload-label{opacity:0}.hero-upload-thumb{position:absolute;inset:11%;border-radius:5px;overflow:hidden;box-shadow:var(--shadow-sm);opacity:0;transform:scale(.7) translateY(6%);transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1)}.hero-upload-thumb>svg{width:100%;height:100%;display:block}.hero-upload[data-state=picked] .hero-upload-thumb{opacity:1;transform:scale(1) translateY(0)}@media (prefers-reduced-motion:reduce){.hero-upload{display:none}}.hero-caption{min-height:3em;margin:.8rem 0 0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.92rem;color:var(--ink-soft);text-wrap:pretty}.hero-caption-line{display:inline-block;animation:hero-caption-in .4s cubic-bezier(.22,1,.36,1) both}@keyframes hero-caption-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.spinner{animation:spin .7s linear infinite!important}.progress:after{animation:sweep 1.15s ease-in-out infinite!important}}