:root{--bg:#f6f2ea;--stage:#efe9de;--surface:#fff;--line:#e4dccd;--line-strong:#1a1714;--text:#1a1714;--muted:#6b6359;--gold:#a2711d;--gold-ink:#85600f;--ink:#1a1714;--on-ink:#f6f2ea;--danger:#a3372b;--bar:#f6f2eaeb;--shadow:0 12px 40px #1a171424;--serif:"Cormorant Garamond", "Times New Roman", serif;--sans:"Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--radius:12px;--nav-h:64px;--panel-w:416px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#0b0b0d;--stage:#111114;--surface:#15151a;--line:#26262d;--line-strong:#d9b36a;--text:#f2f0ea;--muted:#9a978f;--gold:#d9b36a;--gold-ink:#d9b36a;--ink:#f2f0ea;--on-ink:#0b0b0d;--danger:#e07a6c;--bar:#0b0b0de6;--shadow:0 12px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45;transition:background-color .3s,color .3s}html.is-app,html.is-app body{overscroll-behavior:none;height:100%;overflow:hidden}body.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--gold-ink);outline-offset:2px}h1,h2,h3{margin:0}.wordmark,.hero-mark,.veil-mark,.charm-letter{font-variant-numeric:lining-nums;font-feature-settings:"lnum"}.wordmark{min-height:44px;color:inherit;font-family:var(--serif);align-items:baseline;gap:10px;padding:8px 0;text-decoration:none;display:flex}.wordmark b{color:var(--gold);font-size:28px;font-weight:600;line-height:1}.wordmark span{letter-spacing:.42em;font-size:17px;font-weight:500}.icon-btn{opacity:.85;border:1px solid;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;transition:opacity .2s,background-color .2s;display:grid}.icon-btn:hover{opacity:1}.icon-btn svg{width:18px;height:18px}.icon-btn-quiet{border-color:var(--line);opacity:1}.icon-btn-quiet:hover,.icon-btn-quiet[aria-expanded=true]{background:var(--surface)}.btn-ink{background:var(--ink);height:52px;color:var(--on-ink);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;border-radius:999px;flex:none;padding:0 28px;font-size:12px;font-weight:600;transition:opacity .2s}.btn-ink:hover:not(:disabled){opacity:.88}.btn-ink:disabled{opacity:.4}.btn-ghost,.btn-danger{border-radius:999px;height:44px;padding:0 20px;font-weight:500}.btn-ghost{box-shadow:inset 0 0 0 1px var(--line);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}body.is-landing{background:#0b0a09}.nav{z-index:10;height:var(--nav-h);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.nav.is-over-hero{color:#f6f2ea}.nav.is-over-hero .wordmark b{color:#d9b36a}.hero{height:100vh;text-align:center;color:#f6f2ea;background:#0b0a09;place-items:center;height:100svh;min-height:560px;display:grid;position:relative;overflow:hidden}.hero-video{object-fit:cover;opacity:.85;width:100%;height:100%;position:absolute;inset:0}.hero-inner{flex-direction:column;align-items:center;gap:20px;padding:0 24px;display:flex;position:relative}.hero-mark{font-family:var(--serif);color:#d9b36a;font-size:112px;font-weight:500;line-height:.8}.hero h1{font-family:var(--serif);text-wrap:balance;font-size:64px;font-weight:400;line-height:1.04}.hero p{letter-spacing:.32em;text-transform:uppercase;color:#f6f2eabf;margin:0;font-size:12px}.btn-light{color:#1a1714;letter-spacing:.22em;text-transform:uppercase;background:#f6f2ea;border-radius:999px;align-items:center;height:52px;margin-top:12px;padding:0 36px;font-size:12px;font-weight:600;text-decoration:none;transition:transform .2s,background-color .2s;display:inline-flex}.btn-light:hover{background:#fff;transform:translateY(-1px)}.btn-light:focus-visible{outline-color:#d9b36a}.create-app{height:100vh;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{z-index:5;height:var(--nav-h);background:var(--bar);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:16px;padding:0 20px;display:flex;position:relative}.topbar-back{flex:none;align-items:center;min-width:44px}.topbar-back svg{align-self:center;margin-right:2px}.create-body{grid-template-columns:1fr var(--panel-w);flex:1;min-height:0;display:grid;position:relative}.switcher{flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;display:flex}.switcher-pieces{scrollbar-width:none;align-items:center;gap:4px;min-width:0;display:flex;overflow-x:auto}.switcher-pieces::-webkit-scrollbar{display:none}.pgroup{border-radius:999px;flex:none;align-items:center;display:inline-flex}.pgroup.is-active{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.ptab{height:44px;color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;align-items:center;padding:0 16px;font-size:13px;font-weight:500;display:inline-flex}.pgroup.is-active .ptab,.ptab:hover{color:var(--text)}.ptab-x{justify-content:center;width:44px;margin-left:-12px;padding:0}.add{flex:none;position:relative}.add-menu{z-index:20;border-radius:var(--radius);background:var(--surface);min-width:160px;box-shadow:inset 0 0 0 1px var(--line), var(--shadow);flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.add-menu button{text-align:left;border-radius:8px;height:44px;padding:0 16px;font-weight:500}.add-menu button:hover{background:var(--bg)}.stage{background:radial-gradient(90% 80% at 50% 40%, var(--surface) 0%, var(--stage) 75%);touch-action:none;min-width:0;min-height:0;position:relative;overflow:hidden}.stage canvas{display:block}.stage-hint{left:0;right:0;bottom:calc(var(--sheet-cover,0px) + 20px);text-align:center;color:var(--muted);pointer-events:none;margin:0;font-size:12px;position:absolute}.zoom{right:16px;bottom:calc(var(--sheet-cover,0px) + 16px);z-index:2;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;flex-direction:column;padding:2px;display:flex;position:absolute}.zoom button{width:44px;height:44px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.zoom button:hover{color:var(--text);background:var(--bg)}.zoom svg{width:18px;height:18px}.veil{z-index:3;text-align:center;background:var(--stage);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:0 24px;transition:opacity .6s .1s,visibility 0s linear .7s;display:flex;position:absolute;inset:0}.veil.is-done{opacity:0;visibility:hidden;pointer-events:none}.veil-mark{font-family:var(--serif);color:var(--gold);font-size:48px;font-weight:500;line-height:1}.veil.is-loading .veil-mark{animation:1.4s ease-in-out infinite veil-pulse}.veil-text{color:var(--muted);font-size:13px}@keyframes veil-pulse{0%,to{opacity:.45;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.panel{background:var(--bg);border-left:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.grabber{display:none}.panel-tabs{border-bottom:1px solid var(--line);flex:none;gap:4px;padding:0 20px;display:flex}.panel-tab{height:52px;color:var(--muted);border-bottom:1.5px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.panel-tab:hover{color:var(--text)}.panel-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--line-strong)}.count{font-variant-numeric:tabular-nums;background:var(--surface);min-width:20px;height:20px;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);border-radius:999px;place-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-grid}.panel-body{overscroll-behavior:contain;flex:1;min-height:0;padding:20px;overflow-y:auto}.tab-body{padding-bottom:8px}.label{color:var(--muted);margin:20px 0 8px;font-size:12px;font-weight:500}.label-first{margin-top:0}.empty{color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:40px 0;display:flex}.empty p{margin:0}.opts{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.opt{border-radius:var(--radius);background:var(--surface);min-height:56px;box-shadow:inset 0 0 0 1px var(--line);text-align:left;flex-direction:column;justify-content:center;gap:2px;padding:8px 12px;font-weight:500;transition:box-shadow .15s;display:flex}.opt small{color:var(--muted);font-size:11px;font-weight:400}.opt[aria-pressed=true],.pill[aria-pressed=true]{box-shadow:inset 0 0 0 1.5px var(--line-strong)}.opt:hover,.pill:hover,.tile:hover{box-shadow:inset 0 0 0 1px var(--muted)}.opt[aria-pressed=true]:hover,.pill[aria-pressed=true]:hover{box-shadow:inset 0 0 0 1.5px var(--line-strong)}.pills{flex-wrap:wrap;gap:8px;display:flex}.pills-metal{grid-template-columns:repeat(4,1fr);display:grid}.pill{background:var(--surface);height:44px;box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:500;transition:box-shadow .15s;display:inline-flex}.pills-metal .pill{padding:0 8px}.swatch-dot{background:radial-gradient(circle at 35% 30%, #fff9 0, transparent 40%), var(--swatch);border-radius:50%;flex:none;width:18px;height:18px;box-shadow:inset 0 0 0 1px #0002}.cats{z-index:1;background:var(--bg);border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin:-20px -20px 16px;padding:8px 20px 0;display:flex;position:sticky;top:-20px;overflow-x:auto}.cat{min-width:44px;height:44px;color:var(--muted);border-bottom:1.5px solid #0000;flex:none;margin-bottom:-1px;padding:0 12px;font-size:12px;font-weight:500}.cat[aria-selected=true]{color:var(--text);border-bottom-color:var(--line-strong)}.tiles{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.tile{aspect-ratio:1;border-radius:var(--radius);background:var(--surface);min-height:56px;box-shadow:inset 0 0 0 1px var(--line);color:var(--text);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:transform .12s,box-shadow .15s;display:flex}.tile:active{transform:scale(.96)}.tile-centerpieces{color:var(--gold)}.charm-letter{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1}.tile-name{max-width:100%;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding:0 4px;font-size:10px;overflow:hidden}.rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:8px 8px 8px 12px;scroll-margin:8px;display:grid}.row.is-active{box-shadow:inset 0 0 0 1.5px var(--line-strong)}.row-icon{background:var(--bg);width:44px;height:44px;color:var(--text);border-radius:10px;place-items:center;display:grid}.row-icon.is-center{color:var(--gold)}.row-icon .charm-letter{font-size:22px}.row-text{flex-direction:column;min-width:0;display:flex}.row-name{text-align:left;align-self:flex-start;min-width:44px;min-height:44px;margin:-10px 0;padding:10px 0;font-weight:500}.row-text small{color:var(--muted);font-size:12px}.engrave{margin-top:8px;position:relative}.engrave input{border:1px solid var(--line);background:var(--bg);width:100%;height:44px;color:var(--text);font:inherit;letter-spacing:.06em;border-radius:10px;padding:0 48px 0 12px;font-size:14px}.engrave input::placeholder{color:var(--muted);letter-spacing:0}.engrave-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.row-actions{display:flex}.row-actions button{width:44px;height:44px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.row-actions button:hover{color:var(--text);background:var(--bg)}.row-actions .danger{color:var(--danger);margin-left:4px}.panel-foot{padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:var(--bar);border-top:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:16px;display:flex}.price{flex-direction:column;gap:2px;min-width:0;display:flex}.price strong{font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum", "tnum";font-size:32px;font-weight:500;line-height:1}.price small{color:var(--muted);font-size:12px}.confirm{background:var(--surface);width:min(400px,100vw - 32px);color:var(--text);box-shadow:var(--shadow);border:0;border-radius:16px;padding:24px}.confirm::backdrop{background:#1a171459}.confirm h2{font-family:var(--serif);font-size:26px;font-weight:500;line-height:1.15}.confirm p{color:var(--muted);margin:8px 0 24px}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.toast{left:calc((100vw - var(--panel-w)) / 2);z-index:11;background:var(--ink);max-width:calc(100vw - 32px);min-height:48px;color:var(--on-ink);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:12px;padding:4px 4px 4px 20px;font-size:13px;animation:.2s ease-out toast-in;display:flex;position:fixed;bottom:24px;transform:translate(-50%)}.toast:not(:has(.toast-action)){padding-right:20px}.toast-action{color:#d9b36a;border-radius:999px;height:40px;padding:0 16px;font-weight:600}[data-theme=dark] .toast-action{color:#85600f}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (max-width:899px){.nav{padding:0 16px}.hero h1{font-size:44px}.hero-mark{font-size:84px}.hero p{letter-spacing:.2em;font-size:11px}.topbar{gap:8px;padding:0 8px 0 12px}.topbar-back span{display:none}.ptab{padding:0 12px;font-size:12px}.create-body{display:block}.stage{position:absolute;inset:0}.panel{z-index:4;height:46%;box-shadow:0 -1px 0 var(--line), 0 -12px 32px #1a171414;border-left:0;border-radius:16px 16px 0 0;transition:height .3s;position:absolute;bottom:0;left:0;right:0}.panel[data-sheet=open]{height:70%}.grabber{touch-action:none;cursor:grab;flex:none;place-items:center;height:44px;margin:-10px 0 -14px;display:grid}.grabber span{background:var(--line);border-radius:999px;width:40px;height:4px}.panel-tabs{padding:0 12px}.panel-tab{height:44px}.panel-body{padding:16px}.cats{margin:-16px -16px 12px;padding:4px 16px 0;top:-16px}.tiles{grid-template-columns:repeat(4,1fr)}.pills-metal{grid-template-columns:repeat(2,1fr)}.panel-foot{padding:8px 16px calc(8px + env(safe-area-inset-bottom))}.price strong{font-size:26px}.btn-ink{letter-spacing:.14em;height:48px;padding:0 20px}.toast{left:50%;bottom:calc(var(--sheet-cover,0px) + 12px)}}@media (prefers-reduced-motion:reduce){.veil.is-loading .veil-mark,.toast{animation:none}.btn-light,.tile,.panel{transition:none}}
