@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-wght-italic-xAqemagA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-wght-italic-DFS986qL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-wght-italic-Bxi8ein9.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--velvet:#f6e2dc;--velvet-light:#fdf3ef;--ink:#4a3a3a;--ink-soft:#8a726c;--peach:#ec9a7f;--peach-deep:#c86e52;--peach-light:#ffd2c1;--paper:#f3ece0;--paper-fold:#ddd3c3;--newsprint:#171515;--metal-light:#f4f1ef;--metal-dark:#8a8380;--charm-shadow:#8c463238;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--velvet:#231b1a;--velvet-light:#3a2c2a;--ink:#f6e7e0;--ink-soft:#c2a79f;--paper:#efe7da;--paper-fold:#d4c9b8;--charm-shadow:#00000073}}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:radial-gradient(120% 70% at 55% 18%, var(--velvet-light), transparent 70%), var(--velvet);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-family:ui-rounded,SF Pro Rounded,system-ui,sans-serif;overflow:hidden}.stage{height:100svh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid}.bracelet{min-height:0;position:relative}.chain{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.chain-links,.chain-shadow,.key-ring{fill:none;stroke-linecap:round}.chain-links{stroke-width:5px;stroke-dasharray:7 4}.chain-shadow{stroke:var(--charm-shadow);stroke-width:5px;stroke-dasharray:7 4;filter:blur(2px);transform:translateY(6px)}.key-ring{stroke-width:6px}.charms{margin:0;padding:0;list-style:none}.pendulum{--drop:4rem;transform-origin:50% 0;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;flex-direction:column;align-items:center;display:flex;position:absolute}.pendulum:before{content:"";width:3px;height:var(--drop);background:repeating-linear-gradient(to bottom, var(--metal-light) 0 5px, var(--metal-dark) 5px 7px, transparent 7px 9px);border-radius:2px}.jump-ring{border:3px solid var(--metal-dark);border-top-color:var(--metal-light);border-radius:50%;width:16px;height:16px;margin-bottom:-4px}.pendulum-ancre{--drop:clamp(2rem, 9svh, 9rem)}.pendulum-xoxo{--drop:clamp(5rem, 25svh, 20rem)}.pendulum-plante{--drop:clamp(3rem, 13svh, 12rem)}.pendulum-toile{--drop:clamp(4rem, 19svh, 16rem)}.pendulum-coeur{--drop:clamp(6rem, 36svh, 24rem)}.charm{color:inherit;filter:drop-shadow(0 16px 14px var(--charm-shadow));-webkit-user-drag:none;place-items:center;text-decoration:none;display:grid;position:relative}.charm:focus-visible{outline:3px solid var(--peach-deep);outline-offset:6px}.charm-ancre{aspect-ratio:1/.92;background:radial-gradient(60% 50% at 32% 28%, var(--peach-light), transparent 70%), radial-gradient(80% 80% at 70% 80%, var(--peach-deep), transparent 70%), var(--peach);border-radius:58% 42% 52% 48%/48% 56% 44% 52%;width:clamp(5.75rem,min(25vw,19svh),15rem)}.charm-shine{filter:blur(1px);background:#ffffff8c;border-radius:50%;width:26%;height:14%;position:absolute;top:14%;left:20%;transform:rotate(-24deg)}.charm-label{color:#4a2418;letter-spacing:-.01em;text-shadow:0 1px #ffd2c1b3;font-size:clamp(1.05rem,min(4.4vw,3.4svh),2.6rem);font-weight:800;position:relative}.charm-xoxo{aspect-ratio:3/4;background:linear-gradient(90deg, transparent 47%, var(--paper-fold) 50%, transparent 53%), var(--paper);width:clamp(5rem,min(21vw,15svh),12rem);color:var(--newsprint);border-radius:4px;align-content:start;gap:.4rem;padding:18% 12% 0;transform:rotate(-3deg)}.xoxo-masthead{font-family:Didot,"Bodoni 72",Newsreader Variable,Georgia,serif;font-size:clamp(1.3rem,min(5.6vw,4svh),3.2rem);font-weight:700;line-height:1}.xoxo-rule{background:var(--newsprint);width:100%;height:2px}.xoxo-lines{aspect-ratio:2;background:repeating-linear-gradient(#1715158c 0 2px,#0000 2px 7px);width:100%;-webkit-mask-image:linear-gradient(90deg,#000 70%,#0000);mask-image:linear-gradient(90deg,#000 70%,#0000)}.charm-plante{width:clamp(6.5rem,min(28vw,21svh),15rem)}.charm-plante svg{width:100%;height:auto;display:block;overflow:visible}.orchid-stake{fill:none;stroke:#c9a46a;stroke-width:1.6px;stroke-linecap:round}.orchid-clip{fill:#7fa36e}.orchid-spike{fill:none;stroke:#6b7d4e;stroke-width:1.8px;stroke-linecap:round}.orchid-petal{fill:#f6cadc}.orchid-lip{fill:#b8336f}.orchid-bud{fill:#e9a7c6}.orchid-leaf{fill:#4f8a4a}.orchid-pot-rim{fill:#f8faf9}.orchid-pot{fill:#eef1f1}.orchid-pot-band{fill:#5d87a6}.charm-toile{width:clamp(5rem,min(21vw,17svh),12.5rem)}.charm-toile svg{width:100%;height:auto;display:block}.hoop-clasp{fill:#b8924a}.hoop-screw{fill:#e6cf8f}.hoop-cloth{fill:#efe7d6}.hoop-ring{fill:none;stroke:#c99a5e;stroke-width:4px}.hoop-ring-inner{fill:none;stroke:#a77b43;stroke-width:1.2px}.hoop-stitch{fill:none;stroke-width:1.5px;stroke-linecap:round}.hoop-cap{stroke:#c62f37}.hoop-dot{stroke:#fbf8f1}.hoop-stem{stroke:#b39a72}.charm-coeur{width:clamp(4.75rem,min(20vw,15svh),11rem)}.charm-coeur svg{width:100%;height:auto;display:block}.heart-bail{fill:none;stroke:var(--metal-dark);stroke-width:2.2px}.heart-rim{fill:url(#metal)}.heart-face{fill:#000}.heart-gloss{fill:#fff;opacity:.16}.heart-glow,.heart-words{fill:none;stroke:#ed82a6;stroke-linecap:round}.heart-glow{stroke-width:3px;opacity:.28}.heart-words{stroke-width:1.3px;stroke-dasharray:4.2 1.5 3.3 1.5}.heart-spark{fill:#ed82a6;opacity:.6}.signature{padding:0 1.5rem clamp(1.5rem,5svh,3rem)}.signature h1{text-wrap:balance;letter-spacing:-.03em;margin:0;font-family:Newsreader Variable,Georgia,serif;font-size:clamp(3.75rem,19vw,9rem);font-style:italic;font-weight:500;line-height:.9}.signature p{text-wrap:balance;max-width:30ch;color:var(--ink-soft);margin:.75rem 0 0;font-size:clamp(.95rem,2.6vw,1.15rem);line-height:1.4}.tilt-button,.notify-button{border:2px solid var(--peach-deep);color:var(--peach-deep);font:inherit;cursor:pointer;background:0 0;border-radius:999px;margin-top:1rem;padding:.7rem 1.2rem;font-weight:700;display:block}.notify-button:disabled{opacity:.7;cursor:default}.tilt-button[hidden],.notify-button[hidden],.notify-hint[hidden]{display:none}@media (orientation:landscape){.stage{grid-template-rows:1fr;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:end}.bracelet{height:100%}.signature h1{font-size:clamp(3rem,9vw,8rem)}}@media (orientation:landscape) and (height<=32rem){.pendulum-ancre{--drop:1.5rem}.pendulum-xoxo{--drop:4rem}.pendulum-plante{--drop:2.5rem}.pendulum-toile{--drop:3.5rem}.pendulum-coeur{--drop:5rem}.charm-ancre{width:clamp(5.5rem,26svh,8rem)}.charm-xoxo{width:clamp(5rem,22svh,7rem)}.charm-plante,.charm-toile{width:clamp(4rem,18svh,5.5rem)}.charm-coeur{width:clamp(3.75rem,16svh,5rem)}}.pendulum-lock{--drop:clamp(3rem, 14svh, 10rem)}.charm-lock{width:clamp(6.5rem,min(30vw,20svh),12rem);height:auto;overflow:visible}.code-form{gap:.5rem;max-width:26rem;margin-top:1.25rem;display:flex}.code-form input[type=password]{background:var(--velvet-light);min-width:0;color:var(--ink);font:inherit;border:2px solid #0000;border-radius:999px;flex:1;padding:.85rem 1.1rem;font-size:1.05rem}.code-form input[type=password]:focus{border-color:var(--peach-deep);outline:none}.code-form button{background:var(--peach);color:#4a2418;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.85rem 1.4rem;font-size:1.05rem;font-weight:800}.code-form button:focus-visible,.code-form input:focus-visible{outline:3px solid var(--peach-deep);outline-offset:3px}.signature .code-error{text-wrap:pretty;max-width:none;color:var(--peach-deep);margin:.75rem 0 0;font-weight:700}.code-error[hidden]{display:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
