:root{--bg:#f1f5f2;--surface:#fff;--surface-2:#e8eeea;--ink:#13241d;--ink-2:#4b5d54;--line:#d3ddd7;--pine:#1d4b38;--pine-hover:#163c2d;--on-pine:#f4f8f5;--berry:#a3223b;--berry-soft:#f6e3e7;--brass:#b58a2e;--focus:#2f7d5b;--shadow:0 1px 2px #13241d0f,0 6px 18px -8px #13241d24;--display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;--text:"Instrument Sans","Avenir Next","Segoe UI",system-ui,sans-serif;--radius:12px;--gutter:16px}@media (prefers-color-scheme:dark){:root{--bg:#0d1713;--surface:#14231d;--surface-2:#1b2d26;--ink:#e8f0eb;--ink-2:#9fb2a8;--line:#29413a;--pine:#58ae87;--pine-hover:#6bbd97;--on-pine:#08140e;--berry:#e4647d;--berry-soft:#3a1a22;--brass:#d6b061;--focus:#7fcaa4;--shadow:0 1px 2px #0006,0 8px 20px -10px #00000080}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 1rem/1.55 var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0}h1,h2{font-family:var(--display);letter-spacing:-.015em;margin:0;font-weight:650;line-height:1.15}h1{font-size:clamp(1.75rem,1.2rem + 2.4vw,2.6rem)}h2{font-size:1.2rem}p{margin:0}ul,ol{list-style:none;margin:0;padding:0}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.muted{color:var(--ink-2)}.small{font-size:.875rem}.offscreen{position:fixed;top:0;left:-9999px}.icon{flex:none;width:1.1em;height:1.1em}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}.ribbon{background:linear-gradient(to bottom,var(--berry)0 3px,var(--brass)3px 4px,var(--berry)4px 7px);height:7px}.topbar{display:flex;padding:14px var(--gutter);justify-content:space-between;align-items: center;gap:12px;max-width:1040px;margin:0 auto}.brand{display:inline-flex;text-decoration:none;color:var(--pine);font:650 1.1rem var(--display);letter-spacing:-.01em;align-items: center;gap:10px}.brand span{color:var(--ink)}.who{display:flex;align-items: center;gap:8px;min-width:0}.who-email{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:24ch;font-size:.875rem}.page{padding:12px var(--gutter)64px;display:flex;flex-direction:column;gap:20px;max-width:1040px;margin:0 auto}.page.narrow{max-width:520px}.page.center{text-align:center;align-items: center}.lead{color:var(--ink-2);max-width:52ch;font-size:1.125rem}.back{display:inline-flex;text-decoration:none;color:var(--ink-2);align-items: center;gap:4px;width:-moz-fit-content;width:fit-content;padding:4px 0;font-size:.9rem}.back:hover{color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;padding:20px}.card h2{display:flex;align-items:baseline;gap:8px}.count{font:500 .85rem var(--text);color:var(--ink-2);background:var(--surface-2);border-radius:999px;padding:1px 9px}.note{display:flex;align-items: flex-start;gap:8px;font-size:.9rem}.note .icon{margin-top:3px}.empty-note{font-size:.95rem}.btn{display:inline-flex;text-decoration:none;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items: center;gap:8px;min-height:44px;padding:0 18px;transition:background-color .12s,border-color .12s;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--pine);color:var(--on-pine)}.btn-primary:hover:not(:disabled){background:var(--pine-hover)}.btn-secondary{border-color:var(--line);color:var(--ink);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--ink-2);background:var(--surface-2)}.btn-quiet{color:var(--ink-2);background:0 0}.btn-quiet:hover:not(:disabled){color:var(--ink);background:var(--surface-2)}.btn-danger{background:var(--berry);color:#fff}.btn-danger-text{color:var(--berry)}.btn-block{width:100%}.btn-small{min-height:36px;padding:0 12px;font-size:.9rem}.btn-text{color:var(--ink-2);font:500 .9rem var(--text);text-decoration:underline;text-underline-offset:3px;background:0 0;border:0;padding:0 0 0 12px}.icon-btn{display:inline-flex;color:var(--ink-2);list-style:none;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items: center;width:40px;height:40px}.icon-btn::-webkit-details-marker{display:none}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.row-end{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.small-gap{margin-top:8px}.field{display:flex;flex-direction:column;flex:1;gap:6px;min-width:0}.field-label{font-size:.9rem;font-weight:600}.field-hint{color:var(--ink-2);font-size:.85rem}.field-error{color:var(--berry);font-size:.9rem;font-weight:500}.input{background:var(--surface);border:1px solid var(--line);color:var(--ink);appearance:none;-webkit-appearance:none;border-radius:10px;width:100%;min-height:46px;padding:0 14px}select.input{background-image:linear-gradient(45deg,transparent 50%,var(--ink-2)50%),linear-gradient(135deg,var(--ink-2)50%,transparent 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.input:hover{border-color:var(--ink-2)}.input:focus-visible{outline:3px solid var(--focus);outline-offset:0;border-color:var(--focus)}.input-code{font:600 1.6rem var(--display);letter-spacing:.18em;font-variant-numeric:tabular-nums;text-align:center;min-height:56px}.input-code-wide{letter-spacing:.12em}.inline-form{display:flex;align-items: flex-end;gap:10px}.inline-form .btn{flex:none}.rename{display:flex;flex-wrap:wrap;flex:1;align-items: center;gap:8px}.rename .input{flex:1;min-width:160px}.check{display:flex;cursor:pointer;align-items: center;gap:10px;font-size:.95rem}.check input{accent-color:var(--pine);width:20px;height:20px}.chip{display:inline-flex;background:var(--surface-2);color:var(--ink-2);border-radius:999px;align-items: center;padding:2px 10px;font-size:.8rem;font-weight:600}.chip-done{background:var(--pine);color:var(--on-pine)}.login{padding:20px var(--gutter)64px;display:grid;grid-template-columns:1fr;gap:28px;max-width:1040px;margin:0 auto}.login-intro{display:flex;flex-direction:column;gap:18px}.steps{display:flex;counter-reset:step;flex-direction:column;gap:10px;max-width:48ch}.steps li{counter-increment:step;display:grid;grid-template-columns:28px 1fr;color:var(--ink-2);align-items: start;gap:12px}.steps li:before{content:counter(step);display:grid;font:600 .85rem var(--display);color:var(--pine);border:1.5px solid var(--pine);border-radius:50%;place-items: center;width:28px;height:28px}.steps strong{color:var(--ink);font-weight:600}.login-card{align-self: start}@media (min-width:880px){.login{grid-template-columns:1.15fr .85fr;align-items: start;gap:64px;padding-top:56px}}.group-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.group-card{display:flex;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid var(--pine);flex-direction:column;gap:10px;padding:18px 18px 16px;transition:border-color .12s,transform .12s}.group-card:hover{border-color:var(--ink-2);border-left-color:var(--berry)}.group-card-name{font:650 1.15rem var(--display);letter-spacing:-.01em;overflow-wrap:anywhere}.group-card-meta{display:flex;color:var(--ink-2);justify-content:space-between;align-items: center;gap:8px;font-size:.9rem}.empty{max-width:560px}.group-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: center;gap:12px}.group-title{display:flex;overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline}.status{flex-direction:row;justify-content:space-between;align-items: center;gap:20px}.status>div{display:flex;flex-direction:column;gap:4px}.share{gap:12px}.share-link{display:flex;align-items:stretch;gap:10px}.link-box{display:flex;background:var(--surface-2);overflow-x:auto;white-space:nowrap;border-radius:10px;flex:1;align-items: center;min-width:0;min-height:44px;padding:0 14px;font:500 .9rem ui-monospace,SF Mono,Menlo,monospace}.cols{display:grid;grid-template-columns:1fr;align-items: start;gap:20px}@media (min-width:880px){.cols{grid-template-columns:1.35fr 1fr}}.danger-zone{display:flex;justify-content:center;margin-top:8px}.people-list{display:flex;flex-direction:column}.person{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name menu" "tag invite";border-top:1px solid var(--line);align-items: center;gap:8px 10px;padding:12px 0}.person:first-child{border-top:0}.person-name{grid-area:name;overflow-wrap:anywhere;font-weight:600}.person .tag{grid-area:tag;justify-self:start}.person .btn{grid-area:invite}.person .menu{grid-area:menu;justify-self:end}@media (min-width:560px){.person{grid-template-columns:1fr auto auto auto;grid-template-areas:"name tag invite menu"}}.tag{position:relative;display:inline-flex;color:var(--ink);background:linear-gradient(var(--berry-soft),var(--berry-soft));clip-path:polygon(14px 0,100% 0,100% 100%,14px 100%,0 50%);border:0;border-radius:4px;align-items: center;min-height:36px;padding:0 14px 0 30px}.tag:before{content:"";position:absolute;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--brass);border-radius:50%;width:7px;height:7px;margin-top:-3.5px;top:50%;left:12px}.tag-code{font:600 .95rem var(--display);letter-spacing:.08em;font-variant-numeric:tabular-nums}.tag:hover{filter:brightness(.97)}.menu{position:relative}.menu[open] .icon-btn{background:var(--surface-2);color:var(--ink)}.menu-list{position:absolute;z-index:5;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);display:flex;border-radius:10px;flex-direction:column;min-width:190px;padding:6px;top:44px;right:0}.menu-list button{text-align:left;background:0 0;border:0;border-radius:6px;padding:10px 12px}.menu-list button:hover:not(:disabled){background:var(--surface-2)}.menu-list .danger{color:var(--berry)}.rule-form{display:flex;flex-direction:column;gap:12px}.rule-selects{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width:560px) and (max-width:879px),(min-width:1100px){.rule-selects{grid-template-columns:1fr 1fr}}.rule-form .btn{align-self: flex-start}.rule-list{display:flex;flex-direction:column}.rule-list li{display:flex;border-top:1px solid var(--line);justify-content:space-between;align-items: center;gap:8px;padding:8px 0;font-size:.95rem}.rule-list strong{font-weight:600}.gift{position:relative;aspect-ratio:16/10;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);display:grid;overflow:hidden;border-radius:16px;place-items: center;width:min(100%,380px);margin:8px 0}.gift-name{font:650 clamp(2rem,1.2rem + 5vw,3rem)var(--display);letter-spacing:-.02em;overflow-wrap:anywhere;padding:0 20px;line-height:1.1}.wrap{position:absolute;display:grid;background:linear-gradient(90deg,transparent calc(50% - 26px),var(--berry)calc(50% - 26px)calc(50% - 24px),var(--berry)calc(50% - 24px)calc(50% + 24px),var(--berry)calc(50% + 24px)calc(50% + 26px),transparent calc(50% + 26px)),linear-gradient(0deg,transparent calc(50% - 22px),var(--berry)calc(50% - 22px)calc(50% + 22px),transparent calc(50% + 22px)),var(--pine);color:#fff;border:0;place-items: center;padding:0;transition:transform .7s cubic-bezier(.6,0,.2,1),opacity .5s .2s;inset:0}.wrap:hover .knot{transform:scale(1.06)}.knot{display:grid;background:var(--berry);border:3px solid var(--brass);font:650 1rem var(--display);letter-spacing:.02em;border-radius:50%;place-items: center;width:74px;height:74px;transition:transform .15s;box-shadow:0 4px 14px #00000040}.gift-open .wrap{opacity:0;pointer-events:none;transform:translateY(-105%)}.waiting{text-align:left;width:100%}.dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:16px;width:min(92vw,440px);padding:24px;box-shadow:0 24px 60px -12px #00000059}.dialog::backdrop{background:#08140e8c}.dialog h2{margin-bottom:8px}.dialog p{color:var(--ink-2);margin-bottom:20px}.toast-region{position:fixed;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;pointer-events:none;padding:0 var(--gutter);z-index:50;justify-content:center}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow);animation:.18s ease-out toast-in;border-radius:10px;max-width:480px;padding:11px 18px;font-weight:500}.toast-error{background:var(--berry);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.spinner{border:3px solid var(--line);border-top-color:var(--pine);animation:.8s linear infinite spin;border-radius:50%;width:28px;height:28px;margin:48px auto}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:559px){.status{flex-direction:column;align-items:stretch}.status .btn{width:100%}.share-link{flex-direction:column}.inline-form{flex-direction:column;align-items:stretch}.inline-form .btn{width:100%}.who-email{display:none}.card{padding:16px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);border-radius:10px;gap:4px;padding:4px}.segmented button{color:var(--ink-2);background:0 0;border:0;border-radius:7px;min-height:40px;font-weight:600}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.login-card form{display:flex;flex-direction:column;gap:14px}.saved{align-items: flex-start}.tag-large{clip-path:polygon(20px 0,100% 0,100% 100%,20px 100%,0 50%);align-self: center;min-height:56px;padding:0 22px 0 38px}.tag-large:before{width:9px;height:9px;margin-top:-4.5px;left:17px}.tag-large .tag-code{letter-spacing:.1em;font-size:1.7rem}
