@font-face{font-family:Moul;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/moul-khmer-400-normal-BGpNh90c.woff2) format("woff2"),url(/assets/moul-khmer-400-normal-Lf6ZT74W.woff) format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kantumruy-pro-khmer-400-normal-B-rMTF1Y.woff2) format("woff2"),url(/assets/kantumruy-pro-khmer-400-normal-D_zYNomk.woff) format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/kantumruy-pro-khmer-500-normal-1eIPPIWN.woff2) format("woff2"),url(/assets/kantumruy-pro-khmer-500-normal-Bi0Q88jo.woff) format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kantumruy-pro-latin-400-normal-CjZAwuY-.woff2) format("woff2"),url(/assets/kantumruy-pro-latin-400-normal-Bxtv0w9f.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff")}:root{--olive-950: #1d2010;--olive-900: #2a2f16;--olive-800: #3a4120;--olive-700: #4f5a26;--olive-500: #6b7536;--olive-300: #a3aa72;--foil-hi: #fbefc0;--foil: #d9b15a;--foil-lo: #9c7124;--cream: #f5efdd;--cream-dim: #d9d2bb;--cream-ink: #3b3418;--night: #120f0b;--candle: #ffb65c;--lotus: #c72c6a;--wax-hi: #e7c97a;--wax-mid: #b98c35;--wax-lo: #6e4c14;--bg: var(--olive-800);--ink: var(--cream);--ink-dim: color-mix(in oklab, var(--cream) 70%, transparent);--foil-grad: linear-gradient(105deg, #c2923a 0%, var(--foil) 18%, var(--foil-hi) 34%, #e8c978 50%, #c2923a 64%, var(--foil) 78%, var(--foil-hi) 92%, var(--foil) 100%);--f-moul: "Moul", "Noto Serif Khmer", serif;--f-moulpali: "Moulpali", "Moul", serif;--f-kh: "Kantumruy Pro", system-ui, sans-serif;--f-kh-serif: "Noto Serif Khmer", "Kantumruy Pro", serif;--f-serif: "Cormorant Garamond", "Noto Serif Khmer", serif;--f-script: "Pinyon Script", cursive;--t-xl: clamp(2.6rem, 9vw, 7rem);--t-l: clamp(1.9rem, 5vw, 4rem);--t-m: clamp(1.3rem, 2.6vw, 2.1rem);--t-body: clamp(.98rem, .92rem + .3vw, 1.12rem);--t-micro: .7rem;--ease-silk: cubic-bezier(.22, 1, .36, 1);--ease-curtain: cubic-bezier(.77, 0, .175, 1);--gutter: clamp(1rem, 4vw, 4rem);--radius: 22px;--hud-h: 64px}@media(max-width:420px){:root{--gutter: 1rem}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}html{overflow-x:hidden}html,body{margin:0;max-width:100%}body{overflow-x:clip}body{background:var(--bg);color:var(--ink);font-family:var(--f-kh);font-size:var(--t-body);line-height:1.8;-webkit-font-smoothing:antialiased;min-height:100svh}body.is-locked{overflow:hidden;height:100svh}img,svg,canvas,video{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.kh{line-height:1.85;letter-spacing:0;font-variant-numeric:normal}[data-lang=km] .display,[data-lang=km] .kicker{font-family:var(--f-moul)}[data-lang=en] .display{font-family:var(--f-serif);font-weight:400}[data-lang=en] .kicker{font-family:var(--f-serif);font-style:italic;letter-spacing:.12em}.display{font-size:var(--t-l);line-height:1.6;padding:.3em 0 .2em}.kicker{font-size:clamp(.85rem,.8rem + .4vw,1.1rem);color:var(--foil);line-height:1.9;display:block}.caps{font-family:var(--f-serif);text-transform:uppercase;letter-spacing:.24em;font-size:var(--t-micro);color:var(--ink-dim)}[data-lang=km] .caps.kh{font-family:var(--f-kh);text-transform:none;letter-spacing:0;font-size:.82rem}.script{font-family:var(--f-script);font-weight:400}.foil{background:var(--foil-grad);background-size:220% 100%;background-position:var(--foil-x, 50%) 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding:.3em .12em .22em;margin:-.3em -.12em -.22em;display:inline-block;line-height:inherit}.foil.shimmer{animation:foil-shimmer 7s ease-in-out infinite}@keyframes foil-shimmer{0%,to{background-position:0% 0}50%{background-position:100% 0}}.line{display:block;overflow:hidden;padding:.4em 0;margin:-.4em 0}.line>span{display:block}.kb-fill{fill:url(#g-foil)}.kb-line{fill:none;stroke:url(#g-foil);stroke-width:1.6;stroke-linecap:round}.kb-flat{stroke:var(--foil)}.orn{width:100%;height:auto;overflow:visible}.orn-crest{width:clamp(90px,22vw,150px)}.orn-divider{width:clamp(180px,50vw,320px);margin:1rem auto}.orn-corner{position:absolute;width:clamp(64px,14vw,120px);pointer-events:none}.orn-corner--tl{top:0;left:0}.orn-corner--tr{top:0;right:0}.orn-corner--bl{bottom:0;left:0}.orn-corner--br{bottom:0;right:0}.emboss .kb-fill,.emboss .kb-line{filter:drop-shadow(0 1px 0 rgba(255,255,255,.08)) drop-shadow(0 -1px 0 rgba(0,0,0,.35))}.deboss{opacity:.55;filter:drop-shadow(0 1px 0 rgba(255,255,255,.12)) drop-shadow(0 -1px 1px rgba(0,0,0,.45))}.grain{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.tx-olive{background-color:var(--olive-700);background-image:url(/kit/paper-olive.webp);background-size:320px}.tx-cream{background-color:var(--cream);background-image:url(/kit/paper-cream.webp);background-size:320px;color:var(--cream-ink)}.tx-lining{background-color:#efe4c6;background-image:url(/kit/paper-lining.webp);background-size:320px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;padding:.55rem 1.4rem;border:1px solid color-mix(in oklab,var(--foil) 60%,transparent);border-radius:999px;color:var(--foil-hi);background:color-mix(in oklab,var(--olive-950) 55%,transparent);backdrop-filter:blur(8px);transition:background .3s,border-color .3s,transform .3s var(--ease-silk);font-size:.95rem}.btn:hover{background:color-mix(in oklab,var(--foil) 18%,var(--olive-950));border-color:var(--foil);transform:translateY(-1px)}.chip{display:inline-flex;align-items:center;gap:.3rem;height:38px;padding:0 .9rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--foil) 50%,transparent);background:color-mix(in oklab,var(--night) 45%,transparent);backdrop-filter:blur(10px);color:var(--foil-hi);font-size:.82rem;line-height:1}.chip__sep{opacity:.5}[data-lang=km] .chip__km,[data-lang=en] .chip__en{color:var(--foil);font-weight:600}.chip--music{width:38px;padding:0;justify-content:center}.bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.bars i{width:2px;height:4px;background:var(--foil);border-radius:1px;transition:height .3s}.chip--music[aria-pressed=true] .bars i{animation:bar 1s ease-in-out infinite}.chip--music[aria-pressed=true] .bars i:nth-child(2){animation-delay:.15s}.chip--music[aria-pressed=true] .bars i:nth-child(3){animation-delay:.3s}.chip--music[aria-pressed=true] .bars i:nth-child(4){animation-delay:.45s}@keyframes bar{0%,to{height:4px}50%{height:14px}}.hud{position:fixed;inset:0 0 auto;z-index:40;height:var(--hud-h);display:flex;align-items:center;justify-content:space-between;padding:0 max(var(--gutter),env(safe-area-inset-left)) 0 max(var(--gutter),env(safe-area-inset-left));opacity:0;pointer-events:none;transition:opacity .8s}.hud:before{content:"";position:absolute;inset:-1px 0 -40px;background:linear-gradient(to bottom,rgba(10,12,6,.85),rgba(10,12,6,.55) 55%,transparent);opacity:0;transition:opacity .5s;pointer-events:none}.hud.is-on{opacity:1;pointer-events:auto}.hud.is-scrolled:before{opacity:1}.hud__mono{position:relative;display:block;width:clamp(84px,24vw,120px)}.hud__right{position:relative;display:flex;gap:.5rem}.chip--menu{gap:.45rem}.burger{display:inline-grid;gap:3px;width:16px}.burger i{height:1.5px;background:var(--foil);border-radius:1px;transition:transform .3s,opacity .3s}.chip--menu[aria-expanded=true] .burger i:nth-child(1){transform:translateY(4.5px) rotate(45deg)}.chip--menu[aria-expanded=true] .burger i:nth-child(2){opacity:0}.chip--menu[aria-expanded=true] .burger i:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}@media(max-width:420px){.chip__menu-label{display:none}.chip--menu{width:38px;padding:0;justify-content:center}}.menu{position:absolute;top:calc(var(--hud-h) - 6px);right:var(--gutter);min-width:210px;display:grid;padding:.5rem;border-radius:16px;background:color-mix(in oklab,var(--night) 88%,transparent);backdrop-filter:blur(14px);border:1px solid color-mix(in oklab,var(--foil) 40%,transparent);box-shadow:0 24px 50px -16px #000c;opacity:0;transform:translateY(-8px) scale(.98);transform-origin:top right;pointer-events:none;transition:opacity .25s,transform .3s var(--ease-silk)}.menu.is-open{opacity:1;transform:none;pointer-events:auto}.menu__item{display:block;padding:.5rem .9rem;border-radius:10px;color:var(--cream);font-size:.95rem;line-height:1.8}.menu__item:hover{background:color-mix(in oklab,var(--foil) 18%,transparent);color:var(--foil-hi)}[data-lang=km] .menu__item{font-family:var(--f-kh)}.pill-loc{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(1.1rem + env(safe-area-inset-bottom));z-index:40;display:inline-flex;align-items:center;gap:.45rem;height:46px;padding:0 1.1rem 0 .9rem;border-radius:999px;background:var(--foil-grad);background-size:220% 100%;color:#2a1f08;font-weight:600;font-size:.92rem;line-height:1;box-shadow:0 12px 30px -8px #000000b3,0 0 0 1px #ffffff40 inset;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .5s,transform .5s var(--ease-silk);animation:foil-shimmer 7s ease-in-out infinite}.pill-loc svg{width:18px;height:18px}.pill-loc.is-on{opacity:1;transform:none;pointer-events:auto}.pill-loc.is-hidden{opacity:0;transform:translateY(16px);pointer-events:none}.btn--gold{background:var(--foil-grad);background-size:220% 100%;color:#2a1f08;border-color:transparent;font-weight:600}.btn--gold:hover{background:var(--foil-grad);background-size:220% 100%;color:#2a1f08}.pill-time{position:fixed;left:50%;bottom:calc(1.1rem + env(safe-area-inset-bottom));z-index:40;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:color-mix(in oklab,var(--night) 75%,transparent);backdrop-filter:blur(10px);color:var(--foil-hi);border:1px solid color-mix(in oklab,var(--foil) 70%,transparent);box-shadow:0 12px 30px -8px #000000b3;opacity:0;transform:translate(-50%,16px);pointer-events:none;transition:opacity .5s,transform .5s var(--ease-silk),background .3s}.pill-time svg{width:22px;height:22px}.pill-time.is-on{opacity:1;transform:translate(-50%);pointer-events:auto}.pill-time:hover,.pill-time[aria-expanded=true]{background:var(--foil-grad);background-size:220% 100%;color:#2a1f08}.sheet{position:fixed;inset:0;z-index:45;background:#080a048c;backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .3s;display:grid;align-items:end;justify-items:center}.sheet.is-open{opacity:1;pointer-events:auto}.sheet__panel{width:min(100%,520px);max-height:78svh;display:grid;grid-template-rows:auto 1fr auto;border-radius:22px 22px 0 0;background:var(--olive-900);border:1px solid color-mix(in oklab,var(--foil) 40%,transparent);border-bottom:0;box-shadow:0 -20px 60px #0009;transform:translateY(30px);transition:transform .45s var(--ease-silk);padding-bottom:env(safe-area-inset-bottom)}.sheet.is-open .sheet__panel{transform:none}.sheet__head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.2rem .4rem}.sheet__title{font-size:1.3rem}.sheet__close{width:36px;height:36px;border-radius:50%;background:#ffffff14;color:var(--cream);display:grid;place-items:center}.sheet__body{overflow-y:auto;padding:.2rem 1.2rem .6rem;text-align:left}.sheet__day{font-family:var(--f-moul);color:var(--foil);font-size:.95rem;line-height:1.8;margin:.8rem 0 .3rem}[data-lang=en] .sheet__day{font-family:var(--f-serif);font-style:italic;font-size:1.05rem}.sheet__row{display:grid;grid-template-columns:minmax(6.4em,auto) 1fr;gap:.6rem;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.9rem;color:var(--cream)}.sheet__row b{font-weight:500;color:var(--foil-hi);white-space:nowrap}.sheet__row.is-main span{color:var(--foil-hi)}.sheet__more{margin:.6rem 1.2rem .9rem}@media(min-width:861px){.sheet{align-items:center}.sheet__panel{border-radius:22px;border-bottom:1px solid color-mix(in oklab,var(--foil) 40%,transparent)}}.pill-qr{position:fixed;left:max(1rem,env(safe-area-inset-left));bottom:calc(1.1rem + env(safe-area-inset-bottom));z-index:40;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:color-mix(in oklab,var(--night) 75%,transparent);backdrop-filter:blur(10px);color:var(--foil-hi);border:1px solid color-mix(in oklab,var(--foil) 70%,transparent);box-shadow:0 12px 30px -8px #000000b3;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .5s,transform .5s var(--ease-silk),background .3s}.pill-qr svg{width:22px;height:22px}.pill-qr.is-on{opacity:1;transform:none;pointer-events:auto}.pill-qr:hover,.pill-qr[aria-expanded=true]{background:var(--foil-grad);background-size:220% 100%;color:#2a1f08}.sheet__actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.6rem 1.2rem .9rem}.sheet__actions .btn{margin:0;font-size:.88rem;padding:.5rem .8rem}.sheet__note{font-size:.86rem;color:var(--cream-dim);text-align:center;margin:0 0 .8rem}.gift__cards--sheet{gap:.6rem;margin-bottom:.6rem}.qr-view{position:fixed;inset:0;z-index:57;background:#080a04e6;backdrop-filter:blur(6px);display:grid;place-items:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .3s}.qr-view.is-open{opacity:1;pointer-events:auto}.qr-view__close{position:absolute;top:max(1rem,env(safe-area-inset-top));right:1rem;width:44px;height:44px;border-radius:50%;background:#ffffff1a;color:var(--cream);font-size:1.1rem;display:grid;place-items:center}.qr-view__card{width:min(92vw,420px,80svh * .62);background:#fff;border-radius:18px;padding:1rem 1rem 1.1rem;display:grid;justify-items:center;gap:.5rem;box-shadow:0 40px 80px #000000b3;transform:scale(.94);transition:transform .4s var(--ease-silk)}.qr-view.is-open .qr-view__card{transform:none}.qr-view__bank{font-family:var(--f-serif);font-weight:600;letter-spacing:.14em;font-size:.8rem;color:var(--foil-lo)}.qr-view__card img{width:100%;height:auto;border-radius:10px}.qr-view__name{font-size:.88rem;color:#333;text-align:center;white-space:pre-line}.qr-view__hint{font-size:.78rem;color:#777;text-align:center}.qr-view .btn--gold{width:100%}.gcard__qr{cursor:zoom-in}.toast{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom));transform:translate(-50%,20px);z-index:70;opacity:0;background:var(--cream);color:var(--cream-ink);padding:.5rem 1.1rem;border-radius:999px;font-size:.9rem;transition:.4s var(--ease-silk);pointer-events:none;max-width:calc(100vw - 2rem)}.toast.is-on{opacity:1;transform:translate(-50%)}.preloader{position:fixed;inset:0;z-index:100;background:var(--olive-950);display:grid;place-items:center}.preloader__inner{display:grid;justify-items:center;gap:.5rem}#pre-lotus{width:84px}#pre-lotus .draw{stroke-dasharray:400;stroke-dashoffset:400;animation:lotus-draw 2.2s var(--ease-silk) infinite alternate}@keyframes lotus-draw{to{stroke-dashoffset:0}}.preloader__count{font-family:var(--f-serif);color:var(--foil);font-size:1.1rem;letter-spacing:.2em}.admin [hidden]{display:none!important}.admin{background:var(--olive-950);min-height:100svh}.login{min-height:100svh;display:grid;place-items:center;padding:1rem}.login__card{width:min(100%,380px);border-radius:18px;padding:1.6rem 1.4rem;display:grid;gap:.8rem;box-shadow:0 40px 80px #0009}.login__title{font-family:var(--f-moul);font-size:1.2rem;color:var(--foil-lo);text-align:center;line-height:1.8}.login__sub{font-family:var(--f-serif);text-align:center;color:var(--cream-ink);opacity:.7;font-size:.95rem;margin-top:-.5rem}.field{display:grid;gap:.25rem;font-size:.85rem;color:var(--cream-ink)}.field input,.search,textarea{width:100%;padding:.55rem .9rem;border-radius:10px;border:1px solid #c9bc8e;background:#fffdf5;color:#222;font:inherit}.login__err{color:#a12d2d;font-size:.85rem;text-align:center}.login .btn--gold{justify-self:stretch}.app{max-width:1200px;margin:0 auto;padding:1rem var(--gutter) 3rem}.app__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0 1rem}.app__brand{font-family:var(--f-moul);color:var(--foil);font-size:1.1rem;line-height:1.8}.app__actions{display:flex;gap:.5rem}.panel{background:var(--olive-900);border:1px solid color-mix(in oklab,var(--foil) 30%,transparent);border-radius:16px;padding:.9rem 1rem;margin-bottom:1rem;display:grid;gap:.7rem}.panel__row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.panel__row--paste{display:grid}.panel .btn{min-height:40px;padding:.4rem 1rem;font-size:.88rem}.file-btn{cursor:pointer}.btn--danger{border-color:#8a3a3a;color:#f0b0b0}.spacer{flex:1}.search{max-width:320px;background:var(--olive-800);border-color:color-mix(in oklab,var(--foil) 40%,transparent);color:var(--cream)}textarea{background:var(--olive-800);border-color:color-mix(in oklab,var(--foil) 40%,transparent);color:var(--cream);line-height:1.8}.check{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--cream-dim)}.check input{width:18px;height:18px;accent-color:var(--foil)}.muted{color:var(--ink-dim);font-size:.82rem}.foot{max-width:70ch}.panel--table{padding:0;overflow:hidden}.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl th,.tbl td{padding:.55rem .7rem;border-bottom:1px solid rgba(255,255,255,.07);text-align:left;vertical-align:middle}.tbl th{color:var(--foil);font-weight:500;font-size:.8rem;background:var(--olive-800);position:sticky;top:0}.tbl .name{min-width:200px}.tbl .latin{min-width:150px;color:var(--cream-dim)}.tbl .u{font-size:.8rem;max-width:320px;overflow-wrap:anywhere}.tbl .u a{color:var(--olive-300)}.tbl [contenteditable]:focus{outline:1px solid var(--foil);border-radius:4px;padding:0 .2rem;background:#0003}.tbl tr.is-sent td{opacity:.6}.tbl tr.is-sent .acts{opacity:1}.acts{white-space:nowrap}@media(max-width:760px){.acts{white-space:normal;min-width:150px}.mini{padding:.25rem .55rem;font-size:.74rem}.tbl td,.tbl th{padding:.45rem .4rem}}.mini{display:inline-block;margin:.1rem .25rem .1rem 0;padding:.3rem .7rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--foil) 60%,transparent);color:var(--foil-hi);font-size:.78rem;text-decoration:none}.mini:hover{background:color-mix(in oklab,var(--foil) 18%,transparent)}.mini--tg{background:#2aabee;border-color:#2aabee;color:#fff}.mini--x{border-color:#8a3a3a;color:#f0b0b0}.empty{padding:2rem;text-align:center;color:var(--ink-dim)}.empty[hidden]{display:none}@media(max-width:760px){.tbl .u{display:none}.tbl th:nth-child(4){display:none}.tbl .latin,.tbl th:nth-child(3){display:none}.app__brand{font-size:.95rem}}.paste{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.paste__left,.paste__right{display:grid;gap:.5rem;align-content:start}.paste__table{max-height:320px;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:10px}.tbl--mini{font-size:.84rem}.tbl--mini th,.tbl--mini td{padding:.35rem .5rem}.tbl--mini .u{font-size:.74rem;color:var(--olive-300)}@media(max-width:760px){.paste{grid-template-columns:1fr}.tbl--mini .u,.tbl--mini th:nth-child(4){display:none}.tbl--mini .latin,.tbl--mini th:nth-child(3){display:table-cell}}.chip--lang{height:34px;font-size:.78rem}.login__card .chip--lang{justify-self:end;margin-bottom:-.4rem}.seg{display:inline-flex;border:1px solid color-mix(in oklab,var(--foil) 40%,transparent);border-radius:999px;overflow:hidden}.seg__b{padding:.4rem .8rem;font-size:.82rem;color:var(--cream-dim);border-right:1px solid rgba(255,255,255,.08)}.seg__b:last-child{border-right:0}.seg__b b{font-weight:500;color:var(--foil-hi)}.seg__b.is-on{background:color-mix(in oklab,var(--foil) 22%,transparent);color:var(--foil-hi)}select{padding:.3rem .5rem;border-radius:8px;border:1px solid color-mix(in oklab,var(--foil) 40%,transparent);background:var(--olive-800);color:var(--cream);font:inherit;font-size:.85rem}.badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.72rem;background:#ffffff14;color:var(--cream-dim)}.badge--ok{background:color-mix(in oklab,#4caf50 35%,transparent);color:#d8f5d8}.pager{display:flex;align-items:center;justify-content:center;gap:.8rem;padding:.8rem}.pager[hidden]{display:none}.pager .mini:disabled{opacity:.35;cursor:default}[data-lang=en] .app__brand,[data-lang=en] .login__title{font-family:var(--f-serif);font-weight:600;font-size:1.3rem}@media(max-width:760px){.badge{display:none}.seg__b{padding:.35rem .55rem;font-size:.76rem}.search{max-width:100%}}.toolbar{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.group{display:grid;gap:.35rem}.group__title{font-family:var(--f-moul);color:var(--foil);font-size:.95rem;line-height:1.8}[data-lang=en] .group__title{font-family:var(--f-serif);font-weight:600;font-size:1.1rem}.group__help{font-size:.8rem;color:var(--ink-dim);line-height:1.7}.group__btns{display:flex;flex-wrap:wrap;gap:.5rem}.cards{display:none}.gcard-row{padding:.8rem .9rem;border-bottom:1px solid rgba(255,255,255,.07);display:grid;gap:.4rem}.gcard-row__top{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:center}.gcard-row__n{color:var(--ink-dim);font-size:.8rem}.gcard-row__name{font-size:1rem;color:var(--cream);overflow-wrap:anywhere}.gcard-row__latin{font-size:.8rem;color:var(--cream-dim);padding-left:1.5rem}.gcard-row__acts{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.4rem}.gcard-row__acts .mini{margin:0;text-align:center;padding:.45rem .3rem;font-size:.78rem}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:44;display:grid;grid-template-columns:1fr 1fr 1fr;background:color-mix(in oklab,var(--night) 92%,transparent);backdrop-filter:blur(14px);border-top:1px solid color-mix(in oklab,var(--foil) 35%,transparent);padding-bottom:env(safe-area-inset-bottom)}.tabbar[hidden]{display:none}.tabbar__b{display:grid;justify-items:center;gap:.15rem;padding:.55rem 0 .5rem;color:var(--cream-dim);font-size:.72rem}.tabbar__b svg{width:22px;height:22px}.tabbar__b.is-on{color:var(--foil-hi)}.tabbar__b:nth-child(2) svg{background:var(--foil-grad);background-size:220% 100%;color:#2a1f08;border-radius:50%;padding:5px;width:32px;height:32px;margin-top:-4px}#tab-sheet .sheet__title{font-family:var(--f-moul);color:var(--foil);font-size:1.05rem}#tab-sheet .group__btns{display:grid}#tab-sheet .group__title{display:none}#tab-sheet .paste{grid-template-columns:1fr}#tab-sheet .paste__table{max-height:200px}@media(max-width:760px){.app{padding-bottom:5.5rem}.toolbar,.panel--table .tbl,.panel__row--paste{display:none}.cards{display:block}.app__bar{flex-wrap:wrap}.app__actions{width:100%;justify-content:space-between}.pager{padding-bottom:1rem}}.ib{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;border:1px solid color-mix(in oklab,var(--foil) 45%,transparent);color:var(--foil-hi);margin:0 .15rem 0 0}.ib svg{width:16px;height:16px}.ib:hover{background:color-mix(in oklab,var(--foil) 18%,transparent)}.ib--tg{background:#2aabee;border-color:#2aabee;color:#fff}.ib--more{border-color:#fff3;color:var(--cream-dim)}.gcard-row{grid-template-columns:auto 1fr auto;gap:.6rem;align-items:center;padding:.65rem .7rem}.gcard-row__chk input{width:20px;height:20px}.gcard-row__main{min-width:0}.gcard-row__name{font-size:.95rem;line-height:1.6}.gcard-row__n{color:var(--ink-dim);font-size:.78rem}.gcard-row__latin{font-size:.76rem;color:var(--cream-dim);padding-left:0}.gcard-row__acts{display:flex;gap:.2rem}.gcard-row__acts .ib{width:32px;height:32px;margin:0}.gcard-row.is-sent .gcard-row__name{color:var(--cream-dim)}@media(max-width:400px){.gcard-row__acts .ib{width:30px;height:30px}.gcard-row__acts .ib svg{width:14px;height:14px}}.modal{position:fixed;inset:0;z-index:60;background:#080a04b3;backdrop-filter:blur(6px);display:grid;place-items:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .25s}.modal.is-open{opacity:1;pointer-events:auto}.modal__card{position:relative;width:min(100%,400px);border-radius:18px;padding:1.4rem 1.2rem 1.2rem;display:grid;gap:.7rem;box-shadow:0 40px 80px #0009}.modal__close{position:absolute;top:.6rem;right:.6rem;width:32px;height:32px;border-radius:50%;background:#0000000f;color:var(--cream-ink);display:grid;place-items:center}.modal__title{font-family:var(--f-moul);color:var(--foil-lo);font-size:1.05rem;line-height:1.8}[data-lang=en] .modal__title{font-family:var(--f-serif);font-weight:600;font-size:1.25rem}.modal__check{color:var(--cream-ink)}.modal__actions{display:grid;gap:.5rem;margin-top:.3rem}.modal__actions--row{grid-template-columns:1fr 1fr}.btn--plain{background:transparent;color:var(--cream-ink);border-color:var(--foil-lo);backdrop-filter:none}.modal .btn--danger{background:#8a3a3a;border-color:#8a3a3a;color:#fff}#tab-sheet .group__help,#tab-sheet #g-add .group__help,#tab-sheet .paste .muted{display:none}#tab-sheet textarea{min-height:150px}@font-face{font-family:Moulpali;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/moulpali-khmer-400-normal-DIPgrvVR.woff2) format("woff2"),url(/assets/moulpali-khmer-400-normal-BG1eP2AQ.woff) format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/kantumruy-pro-khmer-300-normal-UrRlk4Fx.woff2) format("woff2"),url(/assets/kantumruy-pro-khmer-300-normal-wjzpi3_c.woff) format("woff")}@font-face{font-family:"Noto Serif Khmer";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-khmer-khmer-400-normal-D2X040PW.woff2) format("woff2"),url(/assets/noto-serif-khmer-khmer-400-normal-CjTb7bJ8.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-italic-Dc_OZ8oc.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-400-italic-BLh7T8o8.woff) format("woff")}@font-face{font-family:Pinyon Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pinyon-script-latin-400-normal-HCoaxbyT.woff2) format("woff2"),url(/assets/pinyon-script-latin-400-normal-3W0BoeAr.woff) format("woff")}.gate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;overflow:hidden;background:var(--olive-950)}.gate__bg{position:absolute;inset:-4%}.gate__bg img{width:100%;height:100%;object-fit:cover;filter:blur(14px) brightness(.42) saturate(.85);transform:scale(1.06)}.gate__bg:after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 40%,transparent 30%,rgba(8,10,4,.75))}.gate__dim{position:absolute;inset:0;background:var(--night);opacity:0;pointer-events:none}.gate__stage{position:relative;display:grid;justify-items:center;align-content:center;gap:clamp(.8rem,2.5svh,1.6rem);width:100%;height:100svh;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom))}.gate__invite{text-align:center}.gate__kicker{font-family:var(--f-moul);font-size:clamp(1.15rem,4.6vw,1.9rem);line-height:1.8}[data-lang=en] .gate__kicker{font-family:var(--f-serif);font-weight:400;font-size:clamp(1.4rem,5vw,2.2rem)}.gate__sub{font-family:var(--f-script);color:var(--cream-dim);font-size:clamp(1.1rem,4vw,1.6rem);line-height:1.3;margin-top:.2rem}.gate__guest{margin-top:.6rem;display:grid;justify-items:center;gap:.1rem;width:min(92vw,520px)}.gate__guest[hidden]{display:none}.gate__guest-label{font-size:.82rem;color:var(--cream-dim);line-height:1.7;letter-spacing:.02em}.gate__guest-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.7rem;width:100%}.gate__guest-rule{height:1px;background:linear-gradient(90deg,transparent,var(--foil));position:relative}.gate__guest-rule--r{background:linear-gradient(90deg,var(--foil),transparent)}.gate__guest-rule:after{content:"";position:absolute;right:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--foil);box-shadow:0 0 6px var(--foil)}.gate__guest-rule--r:after{right:auto;left:-3px}.gate__guest-name{font-family:var(--f-moul);font-size:clamp(1.15rem,4.8vw,1.7rem);line-height:1.9;max-width:72vw;text-align:center;overflow-wrap:anywhere;padding-inline:.3em;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6)) drop-shadow(0 0 12px rgba(0,0,0,.4))}[data-lang=en] .gate__guest-name{font-family:var(--f-serif);font-weight:600;font-size:clamp(1.3rem,5vw,1.9rem)}.gate__guest-name.is-couple{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:.35em;row-gap:0}.gamp{font-family:var(--f-script);font-size:1.25em;line-height:1;padding:0 .1em}.gname{white-space:nowrap}.gate__guest-orn{width:clamp(150px,42vw,220px);margin-top:-.2rem;opacity:.9}.gate__guest-orn .orn-divider{width:100%;margin:0}@media(max-height:460px)and (orientation:landscape){.gate__guest{margin-top:.2rem}.gate__guest-name.is-couple{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:.35em;row-gap:0}.gamp{font-family:var(--f-script);font-size:1.25em;line-height:1;padding:0 .1em}.gname{white-space:nowrap}.gate__guest-orn{display:none}.gate__guest-name{font-size:1rem}}.gate__hint{color:var(--cream-dim);font-size:.85rem;text-align:center;opacity:.85;animation:hint-pulse 2.6s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:.55}50%{opacity:1}}.env{--w: min(88vw, 440px, 62svh * 1.5);--h: calc(var(--w) / 1.5);--flap: calc(var(--h) * .56);width:var(--w);height:var(--h);perspective:1400px;position:relative}.env__stage{position:absolute;inset:0;transform-style:preserve-3d}.env__shadow{position:absolute;left:6%;right:6%;bottom:-6%;height:16%;border-radius:50%;background:#0000008c;filter:blur(18px);transform:translateZ(-1px)}.env__back{position:absolute;inset:0;border-radius:6px;transform:translateZ(0);box-shadow:0 30px 60px -20px #000000b3,0 2px 6px #0000004d}.env__back:after{content:"";position:absolute;inset:0;border-radius:6px;background:linear-gradient(180deg,#00000038,#0000000d 40%,#00000040)}.env__card{position:absolute;inset:4% 5%;border-radius:4px;transform:translateZ(1px);box-shadow:0 4px 14px #00000059;overflow:hidden;display:grid;place-items:center;text-align:center}.env__card-inner{display:grid;justify-items:center;gap:.2em;padding:6% 8%;width:100%}.env__card .orn-crest{width:22%}.env__card-title{font-family:var(--f-moul);font-size:clamp(.6rem,calc(var(--w) * .034),1rem);color:var(--cream-ink);line-height:1.9}.env__card-sub{font-family:var(--f-script);font-size:clamp(.75rem,calc(var(--w) * .045),1.2rem);color:var(--foil-lo);line-height:1.3}.env__card-lockup{width:56%;margin:2% 0}.env__card-guest{display:grid;justify-items:center;gap:.05em;margin-top:1%;width:100%}.env__card-guest[hidden]{display:none}.env__card-invite{font-size:clamp(.45rem,calc(var(--w) * .026),.75rem);color:var(--cream-ink);opacity:.75;line-height:1.8}.env__card-name{font-family:var(--f-moul);font-size:clamp(.55rem,calc(var(--w) * .036),1rem);line-height:1.9;color:var(--foil-lo);width:max-content;max-width:92%;text-align:center;overflow-wrap:break-word}[data-lang=en] .env__card-name{font-family:var(--f-serif);font-weight:600}.env__card-name .gamp{font-size:1.1em}.env__shine{position:absolute;inset:-10% -30%;pointer-events:none;opacity:0;mix-blend-mode:screen;background:linear-gradient(105deg,transparent 38%,rgba(255,244,210,0) 42%,rgba(255,240,200,.75) 50%,rgba(255,244,210,0) 58%,transparent 62%)}.env__card-rule{width:40%;height:1px;background:linear-gradient(90deg,transparent,var(--foil-lo),transparent)}.env__pocket{position:absolute;inset:0;transform:translateZ(2px);border-radius:6px;overflow:hidden}.env__panel{position:absolute;inset:0}.env__panel:after{content:"";position:absolute;inset:0;pointer-events:none}.env__panel--l{clip-path:polygon(0 0,52% 50%,0 100%)}.env__panel--l:after{background:linear-gradient(to right,rgba(255,255,255,.07),transparent 25%,rgba(0,0,0,.12) 100%)}.env__panel--r{clip-path:polygon(100% 0,48% 50%,100% 100%)}.env__panel--r:after{background:linear-gradient(to left,rgba(255,255,255,.07),transparent 25%,rgba(0,0,0,.12) 100%)}.env__panel--b{clip-path:polygon(0 100%,50% 42%,100% 100%)}.env__panel--b:after{background:linear-gradient(to top,rgba(255,255,255,.06),transparent 30%,rgba(0,0,0,.18) 100%)}.env__crease{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom right,transparent 49.4%,rgba(0,0,0,.28) 49.8%,rgba(255,255,255,.1) 50.3%,transparent 50.8%) left top / 52% 50% no-repeat,linear-gradient(to bottom left,transparent 49.4%,rgba(0,0,0,.28) 49.8%,rgba(255,255,255,.1) 50.3%,transparent 50.8%) right top / 52% 50% no-repeat,linear-gradient(to top right,transparent 49.4%,rgba(0,0,0,.22) 49.8%,rgba(255,255,255,.08) 50.3%,transparent 50.8%) left bottom / 50% 58% no-repeat,linear-gradient(to top left,transparent 49.4%,rgba(0,0,0,.22) 49.8%,rgba(255,255,255,.08) 50.3%,transparent 50.8%) right bottom / 50% 58% no-repeat;opacity:.9}.env__flap-shadow{position:absolute;left:0;right:0;top:0;height:var(--flap);transform:translateZ(2.5px);clip-path:url(#clip-flap);background:#0000006b;filter:blur(6px);transform-origin:top;pointer-events:none}.env__flap-shadow{transform:translateZ(2.5px) translateY(6px) scaleY(1.02)}.env__flap{position:absolute;left:0;right:0;top:0;height:var(--flap);transform-origin:50% 0;transform-style:preserve-3d;transform:translateZ(3px)}.env__face{position:absolute;inset:0;clip-path:url(#clip-flap);backface-visibility:hidden;-webkit-backface-visibility:hidden}.env__face--front{display:grid;place-items:center}.env__face--front:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff0f,#00000024);pointer-events:none}.env__face--back{transform:rotateY(180deg)}.env__face--back:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.12),transparent 40%)}.env__flap-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.env__flap-line path{fill:none;stroke:url(#g-foil);stroke-width:1.3;vector-effect:non-scaling-stroke}.env__flap-lockup{position:relative;width:38%;margin-top:-20%;z-index:1}.env__flap-lockup .lockup__crest{display:none}.env__seal{position:absolute;left:50%;top:var(--flap);width:calc(var(--w) * .2);aspect-ratio:1;transform:translate(-50%,-50%) translateZ(6px);transform-origin:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.env__seal .orn-seal{width:100%;height:100%;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45));transition:filter .4s}.env__seal:hover .orn-seal{filter:drop-shadow(0 10px 16px rgba(0,0,0,.5))}.env__seal:before{content:"";position:absolute;inset:-22%;border-radius:50%}.env__seal:after{content:"";position:absolute;inset:-14%;border-radius:50%;border:2px solid var(--foil-hi);opacity:0;animation:seal-ring 2.4s ease-out infinite;pointer-events:none}.env__hand{position:absolute;left:50%;top:var(--flap);width:calc(var(--w) * .11);transform:translate(10%,10%) translateZ(8px);pointer-events:none;animation:hand-tap 1.6s ease-in-out infinite;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.env__hand svg{width:100%;height:auto}@keyframes seal-ring{0%{transform:scale(.8);opacity:.9}70%{transform:scale(1.45);opacity:0}to{transform:scale(1.45);opacity:0}}@keyframes hand-tap{0%,to{transform:translate(10%,10%) translateZ(8px) scale(1)}50%{transform:translate(4%) translateZ(8px) scale(.9)}}.env.is-opening .env__seal:after,.env.is-opening .env__hand{display:none}.gate__fx{position:absolute;inset:0;pointer-events:none;overflow:hidden}.spark{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fff8dc,var(--foil) 60%,transparent 70%);box-shadow:0 0 10px var(--foil);opacity:0}.spark--star{width:10px;height:10px;border-radius:0;background:none;box-shadow:none}.spark--star:before,.spark--star:after{content:"";position:absolute;inset:0;background:var(--foil-hi);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 4px var(--foil))}.flare{position:absolute;left:50%;top:50%;width:60vmin;height:60vmin;transform:translate(-50%,-50%) scale(0);border-radius:50%;background:radial-gradient(circle,rgba(255,240,200,.55),rgba(217,177,90,.25) 40%,transparent 70%);opacity:0}.fx-butterfly{position:absolute;width:36px;opacity:0;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}.env.is-opening .env__seal{pointer-events:none}.gate.is-done{display:none}@media(max-height:460px)and (orientation:landscape){.env{--w: min(88vw, 440px, 78svh )}.gate__stage{gap:.5rem}.gate__kicker{font-size:1rem}.gate__sub{display:none}.gate__guest{margin-top:.5rem;display:grid;justify-items:center;gap:0}.gate__guest[hidden]{display:none}.gate__guest-label{font-size:.85rem;color:var(--cream-dim);line-height:1.7}.gate__guest-name{font-family:var(--f-moul);font-size:clamp(1.05rem,4.2vw,1.5rem);line-height:1.9;max-width:88vw;text-align:center;overflow-wrap:anywhere}[data-lang=en] .gate__guest-name{font-family:var(--f-serif);font-weight:600;font-size:clamp(1.2rem,4.6vw,1.7rem)}.gate__hint{font-size:.75rem}}.lockup{position:relative;container-type:inline-size;aspect-ratio:320 / 170;overflow:visible}.lockup__crest{position:absolute;left:50%;top:0;width:20cqw;transform:translate(-50%)}.lockup__crest .orn-crest{width:100%}.lockup__flourish{position:absolute;left:4%;top:42%;width:92%;height:30%}.lockup__flourish .orn-flourish{width:100%;height:100%}.lockup__name{position:absolute;font-family:var(--f-moulpali);font-size:11.5cqw;line-height:1.6;white-space:nowrap}.lockup__name--groom{left:3cqw;top:23%}.lockup__name--bride{right:3cqw;bottom:-2%}.lockup__heart{position:absolute;left:50%;top:58%;width:5cqw;transform:translate(-50%,-50%)}.lockup__butterfly{position:absolute;left:63%;top:34%;width:10cqw}.lockup--small{aspect-ratio:320 / 130}.lockup--small .lockup__crest{display:none}.lockup--small .lockup__name{font-size:13cqw}.lockup--small .lockup__name--groom{top:6%}.lockup--small .lockup__flourish{top:36%}.lockup--small .lockup__heart{top:52%}.lockup--small .lockup__butterfly{top:20%}.lockup .orn-butterfly{overflow:visible}.chapter{position:relative;padding:clamp(4rem,10vw,7rem) var(--gutter);text-align:center;overflow:hidden}.chapter__head{display:grid;justify-items:center;gap:.4rem;margin-bottom:clamp(1.6rem,4vw,3rem)}.chapter__head .orn-divider{margin:.4rem auto 0}.tbc{font-size:.78rem;color:var(--ink-dim);margin-top:.4rem;display:none}.tbc.is-on{display:block}.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;text-align:center;padding:calc(var(--hud-h) + .5rem) var(--gutter) 2.5rem}.hero__media{position:absolute;inset:0}.hero__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.55) saturate(.9)}.hero__fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,#080a048c,#080a0440 35%,#080a044d 65%,#080a04d9)}.hero__corners{position:absolute;inset:clamp(.6rem,2vw,1.6rem);pointer-events:none}.hero__corners .orn-corner{width:clamp(56px,12vw,130px);opacity:.9}.hero__inner{position:relative;display:grid;justify-items:center;gap:.1rem;max-width:760px;width:100%}.hero__left,.hero__right{display:contents}.hero__crest{width:clamp(80px,18vw,130px)}.hero__crest .orn-crest{width:100%}.hero__kicker{font-family:var(--f-moul);font-size:clamp(1.15rem,4.4vw,2rem);line-height:1.8}[data-lang=en] .hero__kicker{font-family:var(--f-serif);font-weight:400}.hero__sub{font-family:var(--f-script);color:var(--cream-dim);font-size:clamp(1.1rem,3.6vw,1.7rem);line-height:1.3}.hero__lockup{width:min(78vw,360px,42svh * 2.1);margin:.4rem 0 .2rem}.hero__en{font-family:var(--f-serif);font-size:clamp(1.05rem,3.4vw,1.6rem);letter-spacing:.14em;color:var(--cream);text-transform:uppercase}.hero__en .script{text-transform:none;letter-spacing:0;font-size:1.25em;color:var(--foil)}.hero__invite{margin-top:.6rem;color:var(--cream-dim);font-size:clamp(.9rem,2.8vw,1.05rem)}.hero__guest{font-family:var(--f-moul);font-weight:400;font-size:1.15em}.hero__guest[hidden]{display:none}.hero__guest .gamp{font-family:var(--f-script);font-size:1.2em;padding:0 .1em}.hero__guest .gname{white-space:nowrap}[data-lang=en] .hero__guest{font-family:var(--f-serif);font-weight:600}.hero__chips{display:flex;gap:clamp(.5rem,2vw,1rem);margin:.5rem 0 .3rem}.chip-d{display:grid;justify-items:center;min-width:clamp(58px,16vw,86px);padding:.45rem .5rem .35rem;border:1px solid color-mix(in oklab,var(--foil) 55%,transparent);border-radius:12px;background:#080a044d;backdrop-filter:blur(6px)}.chip-d small{font-size:.7rem;color:var(--ink-dim);line-height:1.6}.chip-d b{font-family:var(--f-moul);font-weight:400;font-size:clamp(.95rem,3vw,1.25rem);color:var(--foil-hi);line-height:1.8}[data-lang=en] .chip-d b{font-family:var(--f-serif);font-weight:500}.hero__lunar{color:var(--cream-dim);font-size:clamp(.82rem,2.5vw,.98rem);max-width:60ch}.hero__venue{color:var(--ink-dim);font-size:clamp(.78rem,2.4vw,.95rem);max-width:56ch}.hero__cue{margin-top:1rem;display:grid;justify-items:center;gap:.3rem;color:var(--ink-dim);font-size:.78rem}.hero__cue i{width:1px;height:34px;background:linear-gradient(var(--foil),transparent);animation:cue 2.2s ease-in-out infinite}@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}@media(max-height:640px)and (orientation:portrait){.hero__crest{width:64px}.hero__sub{display:none}.hero__lockup{width:min(62vw,260px);margin:.1rem 0 0}.hero__kicker{font-size:1.1rem}.hero__chips{margin:.3rem 0 .2rem}.chip-d{padding:.3rem .4rem .25rem;min-width:56px}.hero__lunar,.hero__venue{font-size:.76rem}.hero__cue{margin-top:.5rem}.hero__cue i{height:20px}}@media(max-height:460px)and (orientation:landscape){.hero{padding:calc(var(--hud-h) - .8rem) var(--gutter) .8rem}.hero__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:1.2rem;align-items:center;max-width:100%}.hero__left,.hero__right{display:grid;justify-items:center;gap:.05rem;min-width:0}.hero__crest{width:44px}.hero__sub{display:none}.hero__kicker{font-size:1.05rem;line-height:1.7}.hero__lockup{width:min(34vw,230px);margin:0}.hero__en{font-size:.82rem;letter-spacing:.1em}.hero__invite{margin-top:0;font-size:.8rem}.hero__chips{gap:.35rem;margin:.15rem 0;flex-wrap:wrap;justify-content:center}.chip-d{min-width:50px;padding:.15rem .4rem .1rem;border-radius:8px}.chip-d small{font-size:.58rem}.chip-d b{font-size:.82rem}.hero__lunar,.hero__venue{font-size:.68rem;line-height:1.6}.tbc{font-size:.64rem;margin-top:0}.hero__cue{margin-top:.15rem;font-size:.66rem}.hero__cue i{height:12px}.hero__corners .orn-corner{width:40px}}.words{background:radial-gradient(90% 60% at 50% 0%,color-mix(in oklab,var(--olive-700) 70%,transparent),transparent),var(--olive-800)}.words__grid{display:grid;gap:clamp(1.6rem,4vw,3rem);max-width:1080px;margin:0 auto;align-items:center}@media(min-width:861px){.words__grid{grid-template-columns:36% 1fr}}.arch{position:relative;width:min(78vw,360px);margin:0 auto;aspect-ratio:3 / 4;border-radius:999px 999px 18px 18px;overflow:hidden;box-shadow:0 30px 60px -20px #0009,0 0 0 1px color-mix(in oklab,var(--foil) 40%,transparent),0 0 0 8px var(--olive-800),0 0 0 9px color-mix(in oklab,var(--foil) 40%,transparent)}.arch img{width:100%;height:118%;object-fit:cover}.paper{position:relative;border-radius:10px;padding:clamp(1.6rem,5vw,3rem) clamp(1.2rem,4vw,2.6rem);box-shadow:0 40px 70px -30px #000000b3,0 2px 4px #00000040,inset 0 0 0 1px #ffffff4d;text-align:center}.paper:before{content:"";position:absolute;inset:10px;border:1px solid color-mix(in oklab,var(--foil-lo) 45%,transparent);border-radius:6px;pointer-events:none}.paper__corners{position:absolute;inset:14px;pointer-events:none}.paper__corners .orn-corner{width:clamp(42px,9vw,70px);opacity:.9}.paper__crest{width:clamp(70px,14vw,100px);margin:0 auto .6rem}.paper__crest .orn-crest{width:100%}.paper__parents{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:1rem}.paper__family small{display:block;font-family:var(--f-moul);font-size:.72rem;color:var(--foil-lo);line-height:1.9}[data-lang=en] .paper__family small{font-family:var(--f-serif);font-style:italic;font-size:.85rem}.paper__family p{font-size:clamp(.8rem,2.4vw,.95rem);line-height:1.85;color:var(--cream-ink)}.paper__honor{font-family:var(--f-moul);font-size:clamp(1.05rem,3.4vw,1.5rem);line-height:1.8;margin:.4rem 0}[data-lang=en] .paper__honor{font-family:var(--f-serif);font-weight:500;font-size:clamp(1.2rem,3.6vw,1.7rem)}.paper__body{font-size:clamp(.86rem,2.5vw,1rem);max-width:46ch;margin:0 auto .8rem;color:color-mix(in oklab,var(--cream-ink) 88%,transparent)}.paper__couple{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6rem;margin:.4rem 0}.paper__person small{display:block;font-size:.72rem;color:var(--foil-lo)}.paper__person b{font-family:var(--f-moul);font-weight:400;font-size:clamp(.95rem,3vw,1.3rem);line-height:1.8}[data-lang=en] .paper__person b{font-family:var(--f-serif);font-weight:500}.paper__amp .script{font-size:2rem;color:var(--foil-lo);line-height:1}.paper__thanks{font-size:.86rem;color:color-mix(in oklab,var(--cream-ink) 75%,transparent);max-width:40ch;margin:0 auto}.paper .orn-divider{width:60%;margin:.6rem auto .4rem}@media(max-width:400px){.paper__parents{grid-template-columns:1fr}}.couple{background:var(--olive-900)}.couple__stage{display:grid;gap:2rem;max-width:1100px;margin:0 auto;align-items:center}@media(min-width:861px){.couple__stage{grid-template-columns:1fr minmax(260px,36%) 1fr}}.person{display:grid;justify-items:center;gap:.2rem}.person__name{font-family:var(--f-moul);font-size:clamp(1.25rem,4vw,1.9rem);line-height:1.8}[data-lang=en] .person__name{font-family:var(--f-serif);font-weight:500;font-size:clamp(1.5rem,4.2vw,2.2rem)}.person__en{font-family:var(--f-serif);font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-dim)}.person__parents{font-size:.88rem;color:var(--ink-dim);margin-top:.5rem;display:grid}.couple__photo{position:relative;width:min(80vw,380px);margin:0 auto}.scallop-frame{position:relative;aspect-ratio:4 / 5;clip-path:url(#clip-scallop);background:var(--foil);padding:6px}.scallop-frame img{width:100%;height:100%;object-fit:cover;clip-path:url(#clip-scallop)}.couple__amp{position:absolute;left:50%;bottom:-10px;transform:translate(-50%);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--olive-950);box-shadow:0 0 0 2px var(--foil),0 10px 30px #00000080}.couple__amp .script{font-size:2rem;line-height:1;padding:.2em .2em .1em}.couple__butterfly{position:absolute;width:54px;right:-8px;top:6%}.countdown{background:var(--olive-800)}.marquee{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}.marquee__track{display:inline-flex;white-space:nowrap;font-family:var(--f-moul);font-size:clamp(2.2rem,7vw,5rem);color:color-mix(in oklab,var(--foil) 9%,transparent);line-height:2;will-change:transform}[data-lang=en] .marquee__track{font-family:var(--f-serif);font-style:italic}.marquee__track span{padding:0 1.5em}.count{position:relative;display:flex;justify-content:center;gap:clamp(.6rem,3vw,2rem);flex-wrap:wrap}.count__unit{display:grid;justify-items:center;min-width:clamp(60px,18vw,120px)}.count__num{font-family:var(--f-moul);font-size:clamp(2rem,8vw,4.6rem);line-height:1.6;font-variant-numeric:tabular-nums}[data-lang=en] .count__num{font-family:var(--f-serif);font-weight:500}.count__label{margin-top:-.2rem}.count__date{position:relative;margin-top:2rem;display:grid;gap:.2rem;justify-items:center;color:var(--cream-dim)}.programme{background:var(--olive-900)}.programme__wrap{position:relative;max-width:640px;margin:0 auto;text-align:left}.programme__thread{position:absolute;left:22px;top:0;width:2px;height:100%;overflow:visible}.programme__thread path{stroke:var(--foil);stroke-width:2;fill:none;opacity:.8}.programme__day{font-family:var(--f-moul);font-size:clamp(.95rem,3vw,1.15rem);color:var(--foil);line-height:1.8;margin:1.6rem 0 .8rem 60px}[data-lang=en] .programme__day{font-family:var(--f-serif);font-style:italic;font-size:1.2rem}.programme__day:first-child{margin-top:0}.prow{position:relative;display:grid;grid-template-columns:46px 1fr;gap:.8rem;align-items:start;padding:.55rem 0}.prow__icon{position:relative;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--olive-800);box-shadow:0 0 0 1px color-mix(in oklab,var(--foil) 40%,transparent);transition:box-shadow .5s}.prow__icon .icon{width:24px;height:24px}.prow.is-lit .prow__icon{box-shadow:0 0 0 1px var(--foil),0 0 24px color-mix(in oklab,var(--foil) 50%,transparent)}.prow__time{font-family:var(--f-serif);font-size:.95rem;letter-spacing:.08em;color:var(--foil-hi);line-height:1.7}[data-lang=km] .prow__time{font-family:var(--f-kh);letter-spacing:0}.prow__text{font-size:clamp(.9rem,2.6vw,1rem);color:var(--cream)}.prow--main .prow__text{color:var(--foil-hi)}.story{position:relative;background:var(--olive-950)}.story__pin{position:relative;height:100svh;overflow:hidden}.story__sky{position:absolute;inset:0;background:linear-gradient(180deg,#4f5a26,#2a2f16 60%,#120f0b);transition:none}.story__embers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.story__track{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;gap:clamp(1.5rem,5vw,4rem);padding:0 var(--gutter);will-change:transform}.story__intro{flex:0 0 auto;width:min(78vw,420px);display:grid;gap:.4rem;text-align:left}.story__intro .display{padding-left:0}.scard{flex:0 0 auto;width:min(66vw,340px);display:grid;gap:.8rem}.scard--wide{width:min(80vw,480px)}.scard__img{aspect-ratio:3 / 4;border-radius:12px;overflow:hidden;box-shadow:0 30px 60px -20px #000c,0 0 0 1px color-mix(in oklab,var(--foil) 35%,transparent);background:var(--olive-900)}.scard--wide .scard__img{aspect-ratio:4 / 3}.scard__img img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}.scard__cap{font-size:clamp(.9rem,2.6vw,1.05rem);color:var(--cream-dim);text-align:left}.scard__cap:before{content:"";display:block;width:28px;height:1px;background:var(--foil);margin-bottom:.5rem}.story__end{flex:0 0 auto;width:var(--gutter)}@media(max-height:460px){.scard{width:min(44vh,300px)}.scard__img{aspect-ratio:3 / 3.6}.scard--wide{width:min(60vh,400px)}}.gallery{background:var(--olive-900)}.gallery__grid{columns:2;column-gap:.6rem;max-width:1100px;margin:0 auto}@media(min-width:640px){.gallery__grid{columns:3;column-gap:1rem}}@media(min-width:1100px){.gallery__grid{columns:4}}.gallery__item{display:block;width:100%;margin:0 0 .6rem;border-radius:8px;overflow:hidden;break-inside:avoid;background:var(--olive-800);box-shadow:0 10px 30px -10px #0009;cursor:zoom-in}@media(min-width:640px){.gallery__item{margin-bottom:1rem}}.gallery__item img{width:100%;height:auto;transition:transform .8s var(--ease-silk)}.gallery__item:hover img{transform:scale(1.04)}.lightbox{border:0;padding:0;background:#080a04f5;width:100vw;height:100svh;max-width:none;max-height:none;color:var(--cream)}.lightbox::backdrop{background:#0009}.lightbox__track{display:flex;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.lightbox__track::-webkit-scrollbar{display:none}.lightbox__slide{flex:0 0 100%;height:100%;scroll-snap-align:center;display:grid;place-items:center;padding:3.5rem 1rem}.lightbox__slide img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 30px 80px #0009}.lb-btn{position:absolute;width:44px;height:44px;border-radius:50%;background:#ffffff14;color:var(--cream);font-size:1.5rem;line-height:1;display:grid;place-items:center}.lb-close{top:max(1rem,env(safe-area-inset-top));right:1rem;font-size:1.1rem}.lb-prev,.lb-next{top:50%;transform:translateY(-50%)}.lb-prev{left:.6rem}.lb-next{right:.6rem}.lb-count{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-family:var(--f-serif);letter-spacing:.2em;font-size:.85rem;color:var(--cream-dim)}@media(max-width:640px){.lb-prev,.lb-next{display:none}}.venue{background:var(--olive-800);display:grid;justify-items:center;gap:.3rem}.venue__crest{width:clamp(90px,18vw,130px)}.venue__crest .orn-crest{width:100%}.venue__name{font-family:var(--f-moul);font-size:clamp(1.3rem,4.5vw,2.2rem);line-height:1.8}[data-lang=en] .venue__name{font-family:var(--f-serif);font-weight:500}.venue__meta{color:var(--cream-dim);max-width:50ch;font-size:.95rem}.venue__when{display:grid;gap:.1rem;margin:.8rem 0 1.4rem;color:var(--cream)}.venue__maps{display:grid;gap:1.4rem;width:min(100%,760px);margin-top:.4rem}.vmap{margin:0;display:grid;gap:.8rem;justify-items:center}.vmap__label{font-family:var(--f-moul);color:var(--foil);font-size:1.05rem;line-height:1.8}[data-lang=en] .vmap__label{font-family:var(--f-serif);font-style:italic;font-size:1.15rem}.venue__map{width:min(100%,760px);aspect-ratio:16 / 10;border-radius:var(--radius);overflow:hidden;box-shadow:0 30px 60px -20px #000000b3,0 0 0 1px color-mix(in oklab,var(--foil) 45%,transparent);background:var(--olive-900)}.venue__map iframe{width:100%;height:100%;border:0;filter:saturate(.85) contrast(1.05)}.venue__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1.4rem}.venue__contacts{margin-top:1.6rem;display:grid;gap:.3rem}.venue__tels{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.2rem}.venue__tels a{font-family:var(--f-serif);font-size:1.15rem;letter-spacing:.08em;color:var(--foil-hi)}.gift{background:var(--olive-900)}.gift__note{max-width:46ch;margin:0 auto 1.6rem;color:var(--cream-dim);font-size:.95rem}.gift__cards{display:grid;grid-template-columns:1fr 1fr;justify-content:center;gap:.7rem;max-width:640px;margin:0 auto}@media(min-width:640px){.gift__cards{gap:1.2rem}}.gcard{width:100%;min-width:0;border-radius:16px;padding:clamp(.6rem,2.5vw,1.1rem) clamp(.5rem,2.5vw,1.1rem) clamp(.8rem,3vw,1.2rem);display:grid;gap:.6rem;justify-items:center;box-shadow:0 30px 60px -24px #000000b3}.gcard__bank{font-family:var(--f-serif);font-weight:600;letter-spacing:.12em;font-size:clamp(.66rem,2.2vw,.78rem);color:var(--foil-lo)}.gcard__qr{width:100%;border-radius:10px;background:#fff;padding:6px;box-shadow:inset 0 0 0 1px #00000014;overflow:hidden}.gcard__qr img{width:100%;height:auto;border-radius:6px}.gcard__name{font-size:clamp(.72rem,2.4vw,.9rem);color:var(--cream-ink);overflow-wrap:anywhere}.gcard__name b{display:block;font-size:.8rem;letter-spacing:.1em}.gcard__name small{display:block;font-family:var(--f-serif);font-size:.8rem;letter-spacing:.04em;color:color-mix(in oklab,var(--cream-ink) 70%,transparent)}.gcard .btn{color:var(--cream-ink);background:transparent;border-color:var(--foil-lo);backdrop-filter:none;min-height:38px;font-size:clamp(.74rem,2.4vw,.88rem);padding:.4rem .9rem}.gcard .btn:hover{background:color-mix(in oklab,var(--foil) 25%,transparent)}.finale{background:radial-gradient(80% 60% at 50% 100%,#3b2d0f,var(--night) 70%);min-height:90svh;display:grid;align-content:center;justify-items:center;gap:.6rem}.finale__candles{display:flex;align-items:flex-end;justify-content:center;gap:clamp(10px,3vw,22px);height:90px;margin-bottom:1rem}.candle{position:relative;width:10px;height:var(--ch, 40px);background:linear-gradient(180deg,#f3e3c0,#d9c79b);border-radius:3px 3px 2px 2px}.candle:before{content:"";position:absolute;left:50%;top:-14px;width:10px;height:16px;transform:translate(-50%) scale(0);transform-origin:bottom;border-radius:50%/60% 60% 40% 40%;background:radial-gradient(ellipse at 50% 70%,#fff6d0,var(--candle) 55%,rgba(255,120,40,0) 100%);filter:blur(.3px);transition:transform .6s var(--ease-silk)}.candle:after{content:"";position:absolute;left:50%;top:-30px;width:70px;height:70px;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,182,92,.45),transparent 60%);opacity:0;transition:opacity .8s}.candle.is-lit:before{transform:translate(-50%) scale(1);animation:flicker 1.6s ease-in-out infinite alternate}.candle.is-lit:after{opacity:1}@keyframes flicker{0%{transform:translate(-50%) scale(1) rotate(-2deg)}to{transform:translate(-50%) scale(1.08,.94) rotate(2deg)}}.finale__line{max-width:44ch;color:var(--cream-dim)}.finale__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1.4rem 0}.share{display:inline-flex;align-items:center;gap:.6rem;padding:.5rem 1rem .5rem .6rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:var(--cream);font-size:.9rem;line-height:1.2;transition:.3s}.share:hover{background:#ffffff1a;transform:translateY(-1px)}.share i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff}.share i svg{width:18px;height:18px}.share--tg i{background:#2aabee}.share--ms i{background:linear-gradient(135deg,#00b2ff,#a033ff)}.share--fb i{background:#1877f2}.share--copy i{background:var(--foil-lo)}.share span{display:grid;text-align:left}.share small{font-size:.68rem;color:var(--ink-dim);line-height:1.5}.finale__lockup{width:min(70vw,300px);margin-top:1rem}.footer{padding:1.5rem var(--gutter) calc(1.5rem + env(safe-area-inset-bottom));text-align:center;font-size:.78rem;color:var(--ink-dim);background:var(--night);display:grid;gap:.3rem}.footer__credit{color:var(--foil-lo);font-family:var(--f-serif);letter-spacing:.05em;font-size:.85rem}.footer__credit:hover{color:var(--foil)}@media(prefers-reduced-motion:reduce){.foil.shimmer,.gate__hint,.hero__cue i,.candle.is-lit:before{animation:none}}body.is-lite .grain{display:none}.lockup__name,.hero__kicker,.gate__kicker,.person__name,.venue__name,.finale .display,.paper__honor,.paper__person b,.count__num,.programme .display,.gallery .display,.story .display{animation:foil-shimmer 5.5s ease-in-out infinite}.hero .foil,.gate .foil,.story .foil,.finale .foil{filter:drop-shadow(0 1px 1px rgba(0,0,0,.55)) drop-shadow(0 0 10px rgba(0,0,0,.35))}@media(prefers-reduced-motion:reduce){.lockup__name,.hero__kicker,.gate__kicker,.person__name,.venue__name,.finale .display,.paper__honor,.paper__person b,.count__num,.programme .display,.gallery .display,.story .display{animation:none}}
