:root{--brand: #a32b6b;--brand-dark: #87215a;--brand-soft: #fae7f0;--on-brand: #ffffff;--danger: #b42318;--danger-soft: #fdecea;--ok: #2f7a52;--ink: #241f22;--muted: #79696e;--bg: #f6f2f1;--surface: #ffffff;--surface-2: #faf6f5;--border: #ece3e4;--input-border: #e0d4d6;--toast-bg: #2b2226;--toast-ink: #f7f1f3;--card-radius: 14px;--control-radius: 7px;--shadow-sm: 0 3px 12px rgba(60, 35, 45, .08);--shadow-md: 0 10px 28px rgba(60, 35, 45, .15);--font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--sp-8: 4.5rem;--fs-xs: .78rem;--fs-sm: .88rem;--fs-base: 1rem;--fs-md: 1.15rem;--fs-lg: clamp(1.25rem, 2.2vw, 1.45rem);--fs-xl: clamp(1.6rem, 3.4vw, 2.1rem);--fs-2xl: clamp(2.1rem, 5.5vw, 3.2rem);--measure: 62ch}[data-bs-theme=dark]{--brand: #e884b4;--brand-dark: #f3a3c8;--brand-soft: #3a2130;--on-brand: #2a0a1a;--danger: #ff8b7f;--danger-soft: #3d1f1c;--ok: #6bbf95;--ink: #f2eaec;--muted: #a9979d;--bg: #191416;--surface: #221c1f;--surface-2: #2b2427;--border: #332a2e;--input-border: #40353a;--toast-bg: #2f2529;--toast-ink: #f5eef0;--shadow-sm: 0 3px 12px rgba(0, 0, 0, .35);--shadow-md: 0 10px 28px rgba(0, 0, 0, .5)}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);font-size:var(--fs-base);line-height:1.55;transition:background-color .2s ease,color .2s ease}h1,h2,h3,h4{font-weight:700;letter-spacing:-.025em;line-height:1.15;text-wrap:balance}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}.container{max-width:1080px;padding-left:var(--sp-4);padding-right:var(--sp-4)}@media (min-width: 768px){.container{padding-left:var(--sp-5);padding-right:var(--sp-5)}}.form-control,.form-select{padding:.6rem .8rem}.form-control-lg,.form-select-lg{font-size:var(--fs-base);padding:.8rem 1rem}.btn{padding:.55rem 1.1rem}.btn-lg{font-size:var(--fs-base);padding:.8rem 1.6rem}.btn-sm{padding:.35rem .75rem;font-size:var(--fs-sm)}#root{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1}.app-footer{border-top:1px solid var(--border);background:var(--surface);margin-top:var(--sp-8)}.app-footer-inner{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);padding-top:var(--sp-5);padding-bottom:var(--sp-5);font-size:var(--fs-sm)}.app-footer-brand{font-weight:800;letter-spacing:-.03em;color:var(--ink)}.app-footer-links{display:flex;flex-wrap:wrap;gap:var(--sp-4)}.app-footer-links a{color:var(--muted);text-decoration:none}.app-footer-links a:hover{color:var(--brand);text-decoration:underline}.app-footer-note{margin-left:auto;color:var(--muted)}@media (max-width: 560px){.app-footer-note{margin-left:0}}.legal-page{max-width:46rem;padding-top:var(--sp-6);padding-bottom:var(--sp-7)}.legal-page h1{margin:0 0 var(--sp-2)}.legal-date{color:var(--muted);font-size:var(--fs-sm);margin:0 0 var(--sp-6)}.legal-lede{font-size:var(--fs-md);color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-6)}.legal-page section{margin-bottom:var(--sp-6)}.legal-page h2{font-size:var(--fs-lg);margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.legal-page h3{font-size:var(--fs-base);margin:var(--sp-4) 0 var(--sp-2)}.legal-page p,.legal-page li{max-width:var(--measure);color:var(--ink)}.legal-page p{margin:0 0 var(--sp-3)}.legal-page ul{margin:0 0 var(--sp-3);padding-left:1.15rem}.legal-page li{margin-bottom:var(--sp-1)}.legal-note{font-size:var(--fs-sm);color:var(--muted)!important;border-left:2px solid var(--border);padding-left:var(--sp-3)}.app-navbar{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1020}.brand{display:inline-flex;align-items:center;color:var(--ink)}.brand-name{font-weight:800;font-size:1.35rem;letter-spacing:-.03em;color:var(--ink)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--control-radius);background:transparent;line-height:1;font-size:1rem}.theme-toggle:hover{background:var(--surface-2)}.btn{border-radius:var(--control-radius);font-weight:600}.btn-primary{--bs-btn-bg: var(--brand);--bs-btn-border-color: var(--brand);--bs-btn-hover-bg: var(--brand-dark);--bs-btn-hover-border-color: var(--brand-dark);--bs-btn-active-bg: var(--brand-dark);--bs-btn-active-border-color: var(--brand-dark);--bs-btn-color: var(--on-brand);--bs-btn-hover-color: var(--on-brand);--bs-btn-active-color: var(--on-brand);--bs-btn-disabled-bg: var(--brand);--bs-btn-disabled-border-color: var(--brand);--bs-btn-disabled-color: var(--on-brand)}.btn-success{--bs-btn-bg: var(--ok);--bs-btn-border-color: var(--ok);--bs-btn-hover-bg: var(--ok);--bs-btn-hover-border-color: var(--ok);--bs-btn-active-bg: var(--ok);--bs-btn-active-border-color: var(--ok);--bs-btn-color: #fff;--bs-btn-hover-color: #fff;--bs-btn-disabled-bg: var(--ok);--bs-btn-disabled-border-color: var(--ok)}[data-bs-theme=dark] .btn-success{--bs-btn-color: #08170f;--bs-btn-hover-color: #08170f;--bs-btn-disabled-color: #08170f}.text-primary,.spinner-border.text-primary{color:var(--brand)!important}a,.btn-link{color:var(--brand)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm)}.gift-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.gift-card:has(.claim-popover){position:relative;z-index:4}.gift-card:hover{transform:translateY(-2px);border-color:var(--input-border);box-shadow:var(--shadow-md)}.gift-card-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--surface-2);border-top-left-radius:var(--card-radius);border-top-right-radius:var(--card-radius)}.img-fallback{display:flex;align-items:center;justify-content:center;min-height:120px;background:var(--surface-2);color:var(--muted);font-size:2.4rem}.card-title{font-weight:600;font-size:1.1rem}.gift-card .card-title,.gift-card .card-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.gift-card .card-title,.gift-card .card-text{-webkit-line-clamp:2;line-clamp:2}.price-badge{background:var(--surface-2);color:var(--ink);border:1px solid var(--border);font-weight:600;font-size:.8rem;font-variant-numeric:tabular-nums;border-radius:var(--control-radius)}.form-control,.form-select{border-radius:var(--control-radius);border-color:var(--input-border)}.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem #a32b6b2e}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--ink);caret-color:var(--ink)}input:autofill,input:autofill:hover,input:autofill:focus{box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--ink);caret-color:var(--ink)}.editor-panel{background:var(--surface)}.editor-header{display:flex;align-items:center;gap:.75rem}.editor-header .title-input,.editor-header h2{flex:1;min-width:0}.add-panel{border:1px solid var(--input-border);box-shadow:var(--shadow-sm)}.add-panel-hint{margin:0 0 var(--sp-3);color:var(--muted);font-size:.85rem}.badge-state{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);border-radius:var(--control-radius);font-weight:600}.badge-state-public{background:var(--brand-soft);color:var(--brand);border-color:transparent}.badge-reserved{background:var(--brand-soft);color:var(--brand);border:1px solid transparent;border-radius:var(--control-radius);font-weight:700}.btn-over-media{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--control-radius);font-size:.72rem;font-weight:600;box-shadow:var(--shadow-sm)}.btn-over-media:hover,.btn-over-media:focus-visible{background:var(--surface-2);color:var(--ink);border-color:var(--input-border)}.btn-quiet-danger{background:transparent;color:var(--muted);border:1px solid var(--input-border)}.btn-quiet-danger:hover,.btn-quiet-danger:focus-visible{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.section-toggle{display:flex;align-items:center;gap:.6rem;width:100%;padding:1rem 1.25rem;background:transparent;border:0;text-align:left;color:inherit;border-radius:var(--card-radius)}.section-toggle[aria-expanded=true]{border-radius:var(--card-radius) var(--card-radius) 0 0}.section-toggle:hover{background:var(--surface-2)}.section-toggle-caret{color:var(--muted);transition:transform .15s ease;line-height:1;font-size:1.1rem}.section-toggle-caret[data-open=true]{transform:rotate(90deg)}.section-toggle-hint{margin-left:auto;font-size:.8rem;color:var(--muted)}.currency-select{max-width:260px}.illustration-drop{border:1px dashed var(--input-border);border-radius:var(--card-radius);padding:.75rem;text-align:center;transition:border-color .15s ease,background-color .15s ease}.illustration-drop.is-dragging{border-color:var(--brand);background:var(--brand-soft)}.illustration-drop.is-busy{opacity:.7}.crop-framer{position:relative;display:inline-block;line-height:0;max-width:100%;touch-action:none;-webkit-user-select:none;user-select:none}.crop-framer-img{display:block;max-width:100%;max-height:220px;width:auto;height:auto;border-radius:4px}.crop-veil{position:absolute;background:#0000008c;pointer-events:none}.crop-frame{position:absolute;border:2px solid #fff;box-shadow:0 0 0 1px #0006;cursor:grab}.crop-frame:active{cursor:grabbing}.crop-frame:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.illustration-empty{font-size:1.75rem;padding:1.1rem 0;opacity:.45}.illustration-preview-btn{display:block;padding:0;border:0;background:none;width:100%;cursor:pointer}.illustration-preview{width:100%;max-width:220px;aspect-ratio:16 / 9;object-fit:cover;border-radius:4px;background:var(--surface-2)}.illustration-preview-btn:hover .illustration-preview{outline:2px solid var(--brand);outline-offset:2px}.illustration-actions{display:flex;gap:.5rem;justify-content:center;margin-top:.65rem}.illustration-hint{margin-top:.5rem;font-size:.75rem;color:var(--muted)}.danger-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border)}.danger-link{color:var(--muted);text-decoration:none}.danger-link:hover{color:var(--danger)}.title-input{border:1px dashed transparent;background:transparent;padding-left:.25rem;font-weight:600}.title-input:hover{border-color:var(--input-border);background:var(--surface)}.auth-card{box-shadow:var(--shadow-md);border:1px solid var(--border)}.account-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface-2)}.link-offer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4);padding:var(--sp-4);background:var(--brand-soft);border-radius:var(--card-radius)}.link-offer-text{flex:1 1 260px;min-width:0}.link-offer-title{display:block;color:var(--ink);font-weight:700}.link-offer-lede,.link-offer-note{margin:var(--sp-1) 0 0;color:var(--muted);font-size:var(--fs-sm)}.link-offer-note{color:var(--ink);font-weight:600}.link-offer-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-1);flex:0 1 260px}.avatar{flex-shrink:0;border-radius:50%;object-fit:cover}.avatar-letter{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:var(--on-brand);font-weight:800;line-height:1}.account-consent{margin-bottom:var(--sp-3);padding:0;border:0}.account-consent-legend{float:none;width:auto;margin-bottom:var(--sp-2);color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.account-upload{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0 0 1.6em}.account-consent-note{margin:var(--sp-1) 0 0 1.6em;color:var(--muted);font-size:.8rem}.account-preview{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-3);border:1px dashed var(--input-border);border-radius:var(--card-radius)}.account-preview-label{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.account-preview-row{display:flex;align-items:center;gap:var(--sp-2);font-weight:600}.account-identity{display:flex;flex-direction:column;min-width:0}.account-name{font-weight:700;color:var(--ink)}.account-mail,.account-provider{color:var(--muted);font-size:.85rem}.account-mail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-provider{display:inline-flex;align-items:center;gap:.35rem;margin-top:.15rem}.account-hint{margin:var(--sp-3) 0 var(--sp-4);color:var(--muted);font-size:.85rem}.toggle-auth{cursor:pointer}.btn-google{background:var(--surface);color:var(--ink);border:1px solid var(--input-border);border-radius:var(--control-radius);font-weight:600;padding:.55rem 1rem}.btn-google:hover:not(:disabled),.btn-google:focus-visible{background:var(--surface-2);color:var(--ink)}.btn-google:disabled{opacity:.6}.auth-separator{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.85rem}.auth-separator:before,.auth-separator:after{content:"";flex:1;height:1px;background:var(--border)}.toggle-auth:hover{color:var(--brand)!important;text-decoration:underline}.section-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.11em;font-weight:700;color:var(--muted);margin-bottom:.85rem}.share-link-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;background:var(--surface-2);color:var(--muted)}.share-link-input:focus{background:var(--surface-2)}.form-switch .form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}.landing{padding-bottom:var(--sp-8)}.landing-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:var(--sp-7);align-items:center;padding-top:var(--sp-7);padding-bottom:var(--sp-8)}@media (max-width: 860px){.landing-hero{grid-template-columns:1fr;gap:var(--sp-6);padding-top:var(--sp-5);padding-bottom:var(--sp-6)}}.landing-eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin:0 0 var(--sp-3)}.landing-title{font-size:var(--fs-2xl);margin:0 0 var(--sp-4);max-width:16ch}.landing-lede{font-size:var(--fs-md);color:var(--muted);max-width:46ch;margin:0 0 var(--sp-5)}.landing-cta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-4)}.landing-cta-note{font-size:var(--fs-sm);color:var(--muted)}.landing-preview{perspective:1200px}.lp-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-md);overflow:hidden;transform:rotate(-1.2deg)}.lp-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);font-weight:700;font-size:var(--fs-sm);color:var(--ink)}.lp-head em{font-style:normal;font-weight:600;font-size:var(--fs-xs);color:var(--muted)}.lp-items{display:flex;flex-direction:column}.lp-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.lp-item:last-child{border-bottom:0}.lp-thumb{width:42px;height:42px;border-radius:var(--control-radius);background:var(--surface-2);flex-shrink:0}.lp-lines{display:flex;flex-direction:column;min-width:0;flex:1}.lp-lines b{font-size:var(--fs-sm);font-weight:600;color:var(--ink)}.lp-lines i{font-style:normal;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.lp-taken,.lp-claim{font-size:var(--fs-xs);font-weight:700;padding:.25rem .55rem;border-radius:var(--control-radius);white-space:nowrap;flex-shrink:0}.lp-taken{background:var(--brand-soft);color:var(--brand)}.lp-claim{background:var(--brand);color:var(--on-brand)}.landing-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-5);padding-bottom:var(--sp-8)}.landing-step-n{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:800;font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.landing-step-title{font-size:var(--fs-md);margin:0 0 var(--sp-2)}.landing-step-text{font-size:var(--fs-sm);color:var(--muted);margin:0}.landing-h2{font-size:var(--fs-xl);margin:0 0 var(--sp-5)}.landing-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-5);margin:0}.landing-dl dt{font-weight:700;margin-bottom:var(--sp-1)}.landing-dl dd{margin:0;color:var(--muted);font-size:var(--fs-sm);max-width:var(--measure)}.landing-answers{padding-bottom:var(--sp-8)}.landing-end{text-align:center;border-top:1px solid var(--border);padding-top:var(--sp-7)}.landing-end p{color:var(--muted);margin:0 0 var(--sp-5)}.skeleton{background:var(--surface-2);border-radius:var(--control-radius);position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.45) 50%,transparent 100%);transform:translate(-100%);animation:skeleton-sweep 1.4s ease-in-out infinite}[data-bs-theme=dark] .skeleton:after{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.07) 50%,transparent 100%)}@keyframes skeleton-sweep{to{transform:translate(100%)}}.skeleton-img{width:100%;aspect-ratio:16 / 9;border-radius:0}.skeleton-line{height:.85rem;margin-bottom:var(--sp-2)}.skeleton-line-sm{height:.6rem}.public-hero-skeleton{height:clamp(180px,34vw,300px);border-radius:var(--card-radius);margin-bottom:var(--sp-5)}.empty-state{background:var(--surface);border:1px dashed var(--input-border);border-radius:var(--card-radius);padding:var(--sp-7) var(--sp-5)}.empty-state h3{font-size:var(--fs-md);margin:0 0 var(--sp-2);color:var(--ink)}.empty-state p{max-width:42ch;margin:0 auto}.public-hero{position:relative;border-radius:var(--card-radius);overflow:hidden;margin-bottom:var(--sp-4);background:var(--surface);border:1px solid var(--border)}.public-hero-img{width:100%;height:clamp(180px,34vw,300px);object-fit:cover;display:block}.public-hero-text{padding:var(--sp-4) var(--sp-5) var(--sp-5)}.public-hero.has-image .public-hero-text{position:absolute;inset:auto 0 0 0;padding-top:var(--sp-7);background:linear-gradient(to top,#000000c7,#0000);color:#fff}.public-title{font-size:var(--fs-xl);margin:0 0 var(--sp-1)}.public-by{display:flex;align-items:center;gap:var(--sp-2);margin:0;color:var(--muted);font-size:var(--fs-sm)}.public-hero.has-image .public-by{color:#ffffffd1}.public-desc{color:var(--muted);max-width:var(--measure);margin:0 0 var(--sp-4)}.public-tally{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);padding-bottom:var(--sp-4);border-bottom:1px solid var(--border);margin-bottom:var(--sp-2)}.public-count,.public-count-taken{font-size:var(--fs-sm);font-weight:700;padding:.25rem .6rem;border-radius:var(--control-radius);background:var(--surface-2);color:var(--ink)}.public-count-taken{background:var(--brand-soft);color:var(--brand)}.public-hint{font-size:var(--fs-sm);color:var(--muted)}.public-relay{margin-top:var(--sp-8);padding:var(--sp-6) var(--sp-5);text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius)}.public-relay-title{font-size:var(--fs-lg);margin:0 0 var(--sp-2)}.public-relay-text{color:var(--muted);font-size:var(--fs-sm);max-width:44ch;margin:0 auto var(--sp-4)}.btn-claim{background:var(--brand);border:none;color:var(--on-brand);font-weight:700;border-radius:var(--control-radius);box-shadow:var(--shadow-sm)}.btn-claim:hover{background:var(--brand-dark);color:var(--on-brand)}.claim-popover{background:var(--surface);border-radius:var(--card-radius);animation:pop .12s ease-out}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.toast-stack{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:1080;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.app-toast{pointer-events:auto;background:var(--toast-bg);color:var(--toast-ink);padding:.65rem 1.1rem;border-radius:var(--card-radius);font-size:.9rem;font-weight:600;line-height:1.35;text-align:left;box-shadow:var(--shadow-md);max-width:min(90vw,380px);animation:toast-in .18s ease-out;position:relative;overflow:hidden}.app-toast:before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:var(--muted)}.app-toast-success:before{background:var(--ok)}.app-toast-error:before{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.gift-card,.app-toast,.claim-popover,.section-toggle-caret,.skeleton:after{transition:none;animation:none}}@media (hover: hover) and (pointer: fine){.gift-card .edit-actions{opacity:0;transition:opacity .18s ease}.gift-card:hover .edit-actions{opacity:1}}
