:root{--color-ink:#15213b;--color-ink-soft:#5a6782;--color-ground:#fff;--color-pool-tint:#e8f5fd;--color-line:#d7e6f2;--color-pool:#1474d4;--color-pool-deep:#0d5bae;--color-night:#0b2d5b;--color-night-deep:#071e3f;--color-flame:#f2542d;--color-flame-shade:#d23d1e;--color-mango:#ffb627;--color-melon:#ff7aa2;--color-gum:#3f8f65;--color-sand:#fff3dc;--color-mint:#dff4e8;--color-melon-tint:#ffe6ee;--font-display:"Fraunces", Georgia, serif;--display-weight:650;--display-settings:"SOFT" 100, "WONK" 1;--display-tracking:-.02em;--font-ui:"Figtree", system-ui, sans-serif;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--spring:cubic-bezier(.3, 1.4, .5, 1);--surface:#fff;--badge-space:0px;--surface-shadow:0 1px 2px #15213b0d, 0 6px 18px #15213b0f}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--scene-base,var(--color-ground));min-height:100dvh;color:var(--color-ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.4;overflow-x:clip}#app{max-width:480px;margin:0 auto;padding:20px 20px 120px}button,input,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--color-mango);outline-offset:2px}.display{font-family:var(--font-display);font-weight:var(--display-weight);font-variation-settings:var(--display-settings);letter-spacing:var(--display-tracking);line-height:1.04}.kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--color-pool);font-size:13px;font-weight:700}.muted{color:var(--color-ink-soft)}.topbar{z-index:2;justify-content:space-between;align-items:center;height:48px;margin-bottom:8px;display:flex;position:relative}.mark.character{--size:38px;background:0 0;border:0;padding:0;display:block}.stack{flex-direction:column;gap:12px;display:flex}.footnote{text-align:center;color:var(--color-ink-soft);margin-top:24px;font-size:15px}.btn{letter-spacing:-.005em;width:100%;height:58px;transition:transform .18s var(--spring), box-shadow .18s, background .2s;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex;position:relative}.btn:disabled,.btn.is-disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary{color:#fff;background:linear-gradient(180deg, #2b8af0 0%, var(--color-pool) 100%);box-shadow:inset 0 2px 0 #ffffff47, 0 5px 0 var(--color-pool-deep), 0 14px 30px #1474d447}.btn-primary:hover:not(:disabled),.btn-primary.is-hover{box-shadow:inset 0 2px 0 #ffffff47, 0 7px 0 var(--color-pool-deep), 0 18px 34px #1474d452;transform:translateY(-2px)}.btn-primary:active:not(:disabled),.btn-primary.is-pressed{box-shadow:inset 0 2px 0 #fff3, 0 1px 0 var(--color-pool-deep), 0 6px 14px #1474d440;transform:translateY(4px)scale(.99)}.btn-primary.is-success{background:linear-gradient(180deg, #4ea676 0%, var(--color-gum) 100%);box-shadow:inset 0 2px #ffffff47,0 5px #2c6b4a,0 14px 30px #3f8f6547}.btn-secondary{height:52px;color:var(--color-pool);background:var(--surface);box-shadow:var(--surface-shadow)}.btn-secondary:hover:not(:disabled),.btn-secondary.is-hover{transform:translateY(-1px);box-shadow:0 2px 4px #15213b0f,0 10px 24px #15213b17}.btn-secondary:active:not(:disabled),.btn-secondary.is-pressed{transform:scale(.97)}.btn-quiet{height:44px;color:var(--color-pool);background:0 0;font-size:15px;font-weight:700}.btn-quiet:hover,.btn-quiet.is-hover{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}.btn-quiet:active,.btn-quiet.is-pressed{transform:scale(.96)}html.has-host-badge{--badge-space:76px}:root{--footer-space:calc(92px + env(safe-area-inset-bottom) + var(--badge-space))}.dock{z-index:10;padding:12px 20px calc(14px + env(safe-area-inset-bottom) + var(--badge-space));-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);background:#ffffffc7;border-top:1px solid #15213b0f;position:fixed;bottom:0;left:0;right:0}.dock>*{max-width:440px;margin:0 auto}.dock .alert{margin-bottom:10px}.setup-hero{text-align:center;flex-direction:column;align-items:center;margin:0 0 36px;display:flex}.setup-hero .character{--size:176px;margin-bottom:8px}.setup-hero h1{margin:0 0 10px;font-size:38px;line-height:1.02}.setup-hero p{max-width:320px;color:var(--color-ink-soft);margin:0;font-size:15px;line-height:21px}.section{margin-bottom:32px}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.section-head h2{letter-spacing:-.005em;margin:0;font-size:17px;font-weight:700}.section-head span{color:var(--color-ink-soft);font-size:13px}.hint-text{color:var(--color-ink-soft);margin:-6px 0 12px;font-size:15px}.field{background:var(--color-pool-tint);background:var(--surface);width:100%;min-width:0;height:52px;box-shadow:var(--surface-shadow);border:2px solid #0000;border-radius:12px;padding:0 16px;font-size:17px;transition:border-color .15s,background .15s}.field::placeholder{color:#8a97ad}.field:focus,.field.is-focus{border-color:var(--color-pool);background:#fff;outline:none}.field.is-error{border-color:var(--color-flame);background:#fff}.field:disabled,.field.is-disabled{opacity:.5}.field-error{color:#c2361a;margin:6px 0 0 4px;font-size:13px;font-weight:600;display:block}select.field{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-ink-soft) 50%), linear-gradient(135deg, var(--color-ink-soft) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 14px);background-repeat:no-repeat;background-size:6px 6px;padding-right:36px}.person-row{border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--surface-shadow);border:2px solid #0000;grid-template-columns:1fr 40px;column-gap:4px;margin-bottom:8px;padding:4px 4px 4px 0;transition:border-color .15s,background .15s;display:grid}.person-row:focus-within,.person-row.is-focus{border-color:var(--color-pool)}.person-row .field{height:42px;box-shadow:none;background:0 0;border:0;border-radius:0}.person-row .field:focus{background:0 0}.person-row .name{font-weight:700}.person-row .email{height:38px;color:var(--color-ink-soft);border-top:1px solid #15213b0f;grid-column:1;font-size:15px}.person-row .remove{color:#8a97ad;background:0 0;border:0;border-radius:50%;grid-area:1/2/3;align-self:center;width:40px;height:40px;font-size:22px}.person-row .remove:hover{background:var(--color-pool-tint);color:var(--color-flame)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface);min-height:40px;box-shadow:var(--surface-shadow);border:2px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:600;transition:all .15s;display:inline-flex;position:relative}.chip input{opacity:0;pointer-events:none;position:absolute}.chip:hover,.chip.is-hover{border-color:color-mix(in srgb, var(--color-pool) 30%, transparent)}.chip.on{background:var(--color-pool);border-color:var(--color-pool);color:#fff}.chip button{color:inherit;opacity:.6;background:0 0;border:0;padding:0 0 0 2px;font-size:18px;line-height:1}.pair-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.pair-row .x{color:var(--color-flame);font-weight:800}.pair-add{margin-top:10px}.pairs{margin-top:12px}.chip-pair:before{content:"";background:var(--color-flame);border-radius:50%;width:8px;height:8px;margin-left:-2px}.details{grid-template-columns:1fr 1fr;gap:10px;display:grid}.details .full{grid-column:1/-1}.label{color:var(--color-ink-soft);margin:0 0 6px 4px;font-size:13px;font-weight:700;display:block}.alert{background:var(--surface);box-shadow:var(--surface-shadow);color:var(--color-ink);border-radius:14px;align-items:baseline;gap:10px;margin-bottom:12px;padding:12px 16px;font-size:15px;font-weight:600;display:flex}.alert:before{content:"";background:var(--color-flame);border-radius:50%;flex-shrink:0;width:8px;height:8px;transform:translateY(-1px)}.ceremony{z-index:50;padding:24px 20px calc(24px + env(safe-area-inset-bottom) + var(--badge-space));-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);text-align:center;background:#fff8ecd1;flex-direction:column;justify-content:center;align-items:center;gap:4px;animation:.25s both fade;display:flex;position:fixed;inset:0;overflow:hidden}.ceremony.static{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;min-height:100dvh;position:relative;inset:auto}.cer-copy{min-height:84px}.cer-copy h2{font-family:var(--font-display);font-weight:var(--display-weight);font-variation-settings:var(--display-settings);letter-spacing:var(--display-tracking);margin:0 0 6px;font-size:34px;line-height:1.05}.cer-copy p{max-width:300px;color:var(--color-ink-soft);margin:0 auto;font-size:15px;line-height:21px}.cer-stage{flex-shrink:0;width:240px;height:220px;position:relative}.cer-ground{background:#15213b1a;border-radius:50%;width:140px;height:15px;margin-left:-70px;position:absolute;bottom:8px;left:50%}.cer-hat.character{transform-origin:50% 90%;width:220px;height:220px;position:absolute;bottom:6px;left:10px}.cer-hat-back,.cer-hat-front,.cer-drop{position:absolute;inset:0}.cer-hat-back svg,.cer-hat-front svg{width:100%;height:100%;display:block;overflow:visible}.cer-drop{pointer-events:none}.cer-faller.character{opacity:0;width:64px;position:absolute;top:118px;left:78px}.cer-crowd{visibility:hidden;flex-wrap:wrap;justify-content:center;width:min(360px,100%);margin-top:8px;display:flex}.cer-member{z-index:var(--i);flex-direction:column;align-items:center;width:33.33%;margin-bottom:2px;display:flex;position:relative}.cer-member:nth-child(3n+2){margin-top:14px}.cer-member .character{--size:min(68px, 8dvh)}.cer-member .name-tag{margin-top:-6px}.cer-done{width:min(360px,100%);margin-top:16px}.cer-done a{text-decoration:none;display:block}.cer-done .text-link{font:inherit;color:var(--color-pool);cursor:pointer;background:0 0;border:0;margin:18px auto 0;padding:0;font-size:15px;font-weight:700}.board-head{text-align:center;margin:8px 0}.board-head h1{color:var(--color-ink);margin:0 0 6px;font-size:clamp(28px,4.2dvh,36px)}.board-head p{color:var(--color-ink-soft);margin:0;font-size:15px}.topbar .kicker{text-overflow:ellipsis;white-space:nowrap;max-width:60%;overflow:hidden}.mob-scene{padding:24px 0 var(--footer-space);margin:4px -8px 0;position:relative}.lawn{pointer-events:none;background:radial-gradient(at 50% 40%,#b0e4c873,#b0e4c800 70%);border-radius:50%;position:absolute;inset:12% -10% 0}.mob,.crowd{flex-wrap:wrap;justify-content:center;row-gap:2px;display:flex;position:relative}.mob-member{z-index:var(--i);width:33.33%;color:inherit;animation:rise .5s var(--spring) both;animation-delay:calc(var(--i) * 50ms);background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:relative}.mob-member:nth-child(3n+2),.crowd-member:nth-child(3n+2){margin-top:22px}.mob-member .character{--size:min(104px, 27vw, 11.5dvh)}.name-tag{background:var(--surface);box-shadow:var(--surface-shadow);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:100%;margin-top:-8px;padding:3px 10px;font-size:12px;font-weight:700;overflow:hidden}.is-asleep .character{animation:3.8s ease-in-out infinite snooze;animation-delay:calc(var(--i) * -.6s)}.is-asleep .character .lid{transform:scaleY(.12)}.is-asleep .character svg{filter:saturate(.8)}.is-asleep .name-tag{color:var(--color-ink-soft)}.is-awake .character{animation:5s ease-in-out infinite hop;animation-delay:calc(var(--i) * -.9s)}.zzz{z-index:2;pointer-events:none;font-family:var(--font-display);color:var(--color-ink-soft);font-style:italic;position:absolute;top:-6px;right:8%}.zzz i{opacity:0;font-size:15px;animation:3s ease-out infinite zzz;position:absolute}.zzz i:nth-child(2){font-size:12px;animation-delay:1s}.zzz i:nth-child(3){font-size:10px;animation-delay:2s}.mob-flag{z-index:2;background:var(--color-flame);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:grid;position:absolute;top:4px;right:16%;box-shadow:0 4px 10px #f2542d59}.member-note-anchor{z-index:30;pointer-events:none;position:absolute;transform:translate(-50%,calc(-100% - 2px))}.member-note{background:var(--surface);border-radius:16px;flex-direction:column;gap:2px;width:max-content;max-width:220px;padding:10px 14px;font-size:14px;line-height:1.3;display:flex;position:relative;box-shadow:0 8px 26px #15213b24}.member-note:after{content:"";background:inherit;clip-path:polygon(0 0,100% 0,50% 100%);width:14px;height:8px;margin-left:-7px;position:absolute;bottom:-7px;left:50%}.member-note b{font-size:15px}.member-note span{color:var(--color-ink-soft)}.member-note.is-awake b{color:var(--color-gum)}.member-note.is-bounced b{color:#c2361a}a:has(>.btn){text-decoration:none;display:block}.text-link{text-align:center;color:var(--color-pool);margin:24px auto 0;font-size:15px;font-weight:700;text-decoration:none;display:block}.text-link:hover{text-underline-offset:4px;text-decoration:underline}.return-mob{justify-content:center;align-items:flex-end;height:112px;margin-bottom:8px;display:flex}.return-mob .character{--size:56px;margin:0 -6px}.return-mob .character:nth-child(2){--size:70px;z-index:1}.return-tile b{font-size:17px}.return-tile>span:last-child{color:var(--color-ink-soft);font-size:13px}.intro{min-height:calc(100dvh - 48px);padding-bottom:var(--footer-space);flex-direction:column;display:flex}.intro-hero{text-align:center;flex-direction:column;align-items:center;margin:auto 0 28px;display:flex}.intro-hero .character{--size:min(168px, 22dvh)}.intro-hero h1{margin:10px 0 0;font-size:clamp(36px,6dvh,46px)}.intro-hero p{color:var(--color-ink-soft);margin:8px 0 0;font-size:17px}.intro-steps{flex-direction:column;gap:14px;margin:0 0 auto;padding:0;list-style:none;display:flex}.intro-steps li{align-items:center;gap:14px;display:flex}.intro-steps b{font-size:17px;display:block}.intro-steps div>span{color:var(--color-ink-soft);font-size:14px;line-height:19px;display:block}.intro-art{flex-shrink:0;justify-content:center;align-items:flex-end;width:72px;height:60px;display:flex}.intro-art>.character{--size:56px}.intro-crowd{align-items:flex-end;display:flex}.intro-crowd .character{--size:34px;margin:0 -5px}.intro-crowd .character:nth-child(2){--size:42px;z-index:1}.intro-invite{text-align:center;color:var(--color-ink-soft);margin:10px 0 0;font-size:14px}.back{background:var(--surface);height:40px;box-shadow:var(--surface-shadow);color:var(--color-ink);border:0;border-radius:999px;align-items:center;gap:6px;padding:0 16px 0 12px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.back-arrow{width:20px;height:20px;color:var(--color-pool);transition:transform .25s var(--spring)}.back:hover .back-arrow{transform:translate(-3px)}.back:active{transform:scale(.96)}.setup-step{padding-bottom:var(--footer-space)}.host-prompt{align-items:center;gap:14px;margin:4px 0 24px;display:flex}.host-pressie{--size:min(84px, 10dvh);flex-shrink:0}.host-say{flex:1;min-width:0}.host-hint{color:var(--color-ink-soft);margin:10px 0 0 4px;font-size:14px;line-height:19px}.add-name{margin-bottom:18px;position:relative}.add-name .field{border-radius:16px;height:56px;padding-right:76px;font-size:18px;font-weight:600}.add-btn{width:auto;height:44px;padding:0 16px;position:absolute;top:6px;right:6px}.empty-crowd{text-align:center;color:var(--color-ink-soft);margin-top:32px;font-size:15px}.crowd-member{z-index:var(--i);width:33.33%;animation:rise .45s var(--spring) both;animation-delay:calc(var(--i) * 35ms);justify-content:center;display:flex;position:relative}.crowd-pick{color:inherit;background:0 0;border:0;border-radius:24px;flex-direction:column;align-items:center;padding:6px 4px;transition:background .2s;display:flex;position:relative}.crowd .character{--size:min(92px, 24vw, 10dvh)}.crowd-remove{z-index:3;background:var(--surface);width:26px;height:26px;box-shadow:var(--surface-shadow);color:var(--color-ink-soft);border:0;border-radius:50%;font-size:17px;line-height:1;position:absolute;top:4px;right:10%}.crowd-remove:hover{color:var(--color-flame)}.crowd-member.is-selected .crowd-pick,.crowd-member.is-me .crowd-pick{box-shadow:0 0 0 3px var(--color-pool), var(--surface-shadow);background:#fffc}.crowd-member.is-me .name-tag{background:var(--color-pool);color:#fff}.pair-badge{background:var(--pair);border-radius:50%;width:18px;height:18px;position:absolute;top:8px;right:14%;box-shadow:0 0 0 3px #fff}.done-badge{background:var(--color-gum);border-radius:50%;width:16px;height:16px;position:absolute;bottom:-2px;right:-2px;box-shadow:0 0 0 2px #fff}.done-badge:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:7px;position:absolute;top:3px;left:5px;transform:rotate(45deg)}.email-strip{flex-wrap:wrap;justify-content:center;gap:2px;margin:18px 0 0;padding:4px 2px 10px;display:flex}.strip-member{opacity:.55;background:0 0;border:0;border-radius:16px;flex-shrink:0;width:44px;height:48px;padding:4px;transition:opacity .2s,background .2s;position:relative}.strip-member .character{--size:36px}.strip-member.is-done{opacity:1}.strip-member.is-done:after{content:"";background:var(--color-gum) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M4 7.2 6 9.2 10 4.8' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");border-radius:50%;width:14px;height:14px;position:absolute;bottom:4px;right:2px;box-shadow:0 0 0 2px #fff}.strip-member.is-current{opacity:1;background:var(--surface);box-shadow:0 0 0 3px var(--color-pool), var(--surface-shadow)}.email-card{background:var(--surface);box-shadow:var(--surface-shadow);border-radius:28px;flex-direction:column;align-items:center;gap:6px;padding:18px 18px 20px;display:flex}.email-count{letter-spacing:.1em;text-transform:uppercase;color:var(--color-pool);font-size:12px;font-weight:800}.email-card h2{margin:2px 0 10px;font-size:clamp(28px,4dvh,34px)}.email-form{width:100%}.email-form .label{text-align:center;margin:0 0 6px}.email-form .field{text-align:center;background:var(--color-pool-tint);height:56px;box-shadow:none;border-radius:16px;font-size:18px}.reuse{justify-content:center;gap:16px;display:flex}.email-card{position:relative}.me-toggle{font:inherit;color:var(--color-ink-soft);cursor:pointer;background:0 0;border:1.5px solid #15213b24;border-radius:999px;padding:5px 11px;font-size:13px;font-weight:700;position:absolute;top:12px;right:12px}.me-toggle.is-on{background:var(--color-gum);color:#fff;border-color:#0000}.me-toggle.is-on:before{content:"✓ "}.reuse .text-link{font:inherit;color:var(--color-pool);cursor:pointer;background:0 0;border:0;margin:10px 0 0;padding:0;font-size:14px;font-weight:700}.madlib{background:var(--surface);box-shadow:var(--surface-shadow);letter-spacing:-.01em;border-radius:24px;padding:22px 20px;font-size:22px;font-weight:600;line-height:1.7}.madlib p{margin:0}.blank{font:inherit;color:var(--color-pool);border:0;border-bottom:3px dashed color-mix(in srgb, var(--color-pool) 40%, transparent);field-sizing:content;background:0 0;border-radius:0;min-width:2ch;max-width:100%;margin:0 2px;padding:0 2px}.blank:focus{border-bottom-style:solid;border-bottom-color:var(--color-pool);outline:none}.blank-date{color:var(--color-pool);border-bottom:3px dashed color-mix(in srgb, var(--color-pool) 40%, transparent);cursor:pointer;padding:0 2px;position:relative}.blank-date input{opacity:0;cursor:pointer;border:0;width:100%;position:absolute;inset:0}.in-the-hat{color:var(--color-ink-soft);flex-direction:column;align-items:center;gap:8px;margin-top:28px;font-size:14px;display:flex}.hat-row{flex-wrap:wrap;justify-content:center;display:flex}.hat-row .character{--size:40px;margin:0 -4px}.sheet-backdrop{z-index:55;background:#15213b38;position:fixed;inset:0}.sheet{z-index:60;max-width:480px;max-height:82dvh;padding:8px 20px calc(24px + env(safe-area-inset-bottom) + var(--badge-space));background:var(--surface);border-radius:28px 28px 0 0;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 40px #15213b29}.sheet[hidden],.sheet-backdrop[hidden]{display:none}.sheet-handle{touch-action:none;background:0 0;border:0;place-items:center;width:100%;height:28px;display:grid}.sheet-handle i{background:#d5dce6;border-radius:3px;width:40px;height:5px}.sheet h2{margin:4px 0 16px;font-size:28px}.roster{margin:20px 0 0;padding:0;list-style:none}.roster li{border-bottom:1px solid #15213b0f;align-items:center;gap:12px;padding:8px 0;display:flex}.roster li:last-child{border-bottom:0}.roster .character{--size:40px;flex-shrink:0}.roster li>div{flex:1;min-width:0}.roster b{font-size:15px;display:block}.roster li>div span{color:var(--color-ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.roster li>div .roster-empty{color:#b2301a}.roster-error{color:#b2301a;margin-top:2px;font-size:12px;font-style:normal;line-height:1.35;display:block}.resend{background:var(--color-melon-tint);border-radius:18px;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;display:flex}.resend p{margin:0;font-size:15px;line-height:21px}.status-pill{color:var(--color-ink-soft);background:#f1f4f8;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:700}.status-pill.is-awake{background:var(--color-mint);color:#23704c}.status-pill.is-bounced{background:var(--color-melon-tint);color:#a3203f}.progress{background:var(--surface);border-radius:999px;height:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #15213b0d}.progress div{background:var(--color-gum);height:100%;transition:width .8s var(--spring);border-radius:999px}.progress-label{color:var(--color-ink-soft);justify-content:space-between;margin-top:8px;font-size:15px;display:flex}.progress-label b{color:var(--color-ink)}.envelopes{grid-template-columns:1fr 1fr;gap:8px 12px;margin-top:28px;display:grid}.envelope{animation:rise .4s var(--spring) both;flex-direction:column;align-items:center;padding:8px 8px 14px;display:flex}.envelope .character{--size:128px}.envelope .who{margin-top:4px;font-weight:800}.envelope .status{color:var(--color-ink-soft);font-size:13px;font-weight:600}.envelope.opened .status{color:var(--color-gum)}.envelope.bounced .status{color:#c2361a}.facts{grid-template-columns:1fr 1.35fr;gap:10px;display:grid}.fact{align-items:center;gap:12px;display:flex}.fact-glyph{flex-shrink:0;width:30px;height:30px}.fact{border-radius:var(--radius-md);text-align:left;background:var(--surface);box-shadow:var(--surface-shadow);padding:12px 14px}.fact span{color:var(--color-ink-soft);font-size:12px;font-weight:600;display:block}.fact b{color:var(--color-ink);font-size:19px;font-weight:700;line-height:26px;display:block}body.unwrap-page #app{max-width:none;padding:0}body.night{background:var(--color-night-deep)}.unwrap{color:#fff;text-align:center;flex-direction:column;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.lights{pointer-events:none;width:520px;position:absolute;top:0;left:50%;transform:translate(-50%)}.lights svg{width:100%;display:block}.lights .bulb{animation:2.4s ease-in-out infinite twinkle}.stars{pointer-events:none;position:absolute;inset:0}.stars i{opacity:.5;background:#fff;border-radius:50%;width:3px;height:3px;position:absolute}.unwrap-copy{max-width:420px;padding:120px 24px 0;position:relative}.unwrap-copy .kicker{color:#9fc4ee}.unwrap-copy h1{color:#fff;margin:10px 0;font-size:44px}.unwrap-copy p{color:#c9dcf3;margin:0;font-size:17px;line-height:24px}.stage{flex:1;place-items:center;width:100%;min-height:340px;display:grid;position:relative}.stage .glow{pointer-events:none;background:radial-gradient(circle,#ffb6273d 0%,#ffb62700 65%);border-radius:50%;width:320px;height:320px;position:absolute}.gift-btn{z-index:2;touch-action:manipulation;background:0 0;border:0;padding:0;transition:rotate .5s ease-out;position:relative}.gift-btn svg{width:min(300px,76vw);display:block;overflow:visible}.gift-btn svg g{transform-box:fill-box;transform-origin:50%}.gift-btn svg .p-lid{transform-origin:0 100%}.gift-btn svg .figure,.gift-btn svg .p-body,.gift-btn svg .p-feet{transform-origin:50% 100%}.shards{pointer-events:none;z-index:3;position:absolute;inset:0}.shard{background:var(--color-flame);position:absolute}.shard.alt{background:var(--color-mango)}.shard.dark{background:var(--color-flame-shade)}.gift-wrap{display:inline-block;position:relative}.bubble-anchor{z-index:4;pointer-events:none;position:absolute;top:22px;left:58%;transform:translateY(-100%)}.bubble{letter-spacing:-.01em;white-space:nowrap;transform-origin:10% 100%;border-radius:20px;max-width:210px;padding:11px 16px 12px;font-size:17px;font-weight:800;line-height:1.2;display:inline-block;position:relative;rotate:-3deg}.bubble:after{content:"";background:inherit;position:absolute}.tail-down:after{clip-path:polygon(0 0,100% 0,10% 100%);width:18px;height:14px;bottom:-9px;left:18px}.tail-side:after{clip-path:polygon(100% 0,100% 100%,0 60%);width:14px;height:18px;margin-top:-9px;top:50%;left:-10px}.bubble-lg{white-space:normal;max-width:100%;font-family:var(--font-display);font-weight:var(--display-weight);font-variation-settings:var(--display-settings);letter-spacing:var(--display-tracking);border-radius:22px;padding:14px 18px 15px;font-size:clamp(21px,3.1dvh,26px);line-height:1.08;rotate:-1.5deg}.bubble-night{color:var(--color-ink);background:#fff;box-shadow:0 10px 30px #030e2459}.bubble-day{color:var(--color-ink);box-shadow:var(--surface-shadow);background:#fff}.poke{z-index:3;opacity:0;pointer-events:none;width:128px;position:absolute;top:48%;right:-128px}.poke svg{filter:drop-shadow(0 6px 10px #030e2459);width:100%;display:block}.unwrap{padding-bottom:calc(40px + env(safe-area-inset-bottom) + var(--badge-space))}.daylight{z-index:4;color:var(--color-ink);opacity:0;pointer-events:none;flex-direction:column;align-items:center;padding:24px 20px 0;display:flex;position:absolute;inset:0;overflow:hidden}.unwrap.is-open .daylight{opacity:1;pointer-events:auto}.daylight .topbar{width:100%;max-width:440px}.daylight-inner{z-index:1;width:100%;max-width:440px;min-height:0;padding-bottom:calc(var(--footer-space) + 12px);flex-direction:column;flex:1;align-items:center;display:flex;position:relative;overflow-y:auto}.daylight-inner[data-view=reveal]{justify-content:center}.reveal-char{margin-top:4px;position:relative}.reveal-char .character{--size:min(236px, 30dvh)}.reveal-for{color:var(--color-ink-soft);margin-top:8px;font-size:17px}.reveal-name{color:var(--color-ink);text-align:center;margin:2px 0 10px;font-size:clamp(56px,18vw,80px)}.reveal-name.mid{font-size:clamp(48px,14vw,64px)}.reveal-name.long{font-size:clamp(40px,11vw,52px)}.reveal-name .word{white-space:nowrap;display:inline-block}.reveal-name .ch{display:inline-block}.sticker{background:var(--color-flame);color:#fff;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:800;display:inline-flex;transform:rotate(-5deg);box-shadow:0 6px 16px #f2542d4d}.daylight .facts{width:100%;margin-top:auto;padding-top:24px}.daylight .dock .text-link{font:inherit;color:var(--color-pool);cursor:pointer;background:0 0;border:0;margin:10px auto 0;padding:0;font-size:15px;font-weight:700}.idea-head{text-align:center;flex-direction:column;align-items:center;padding-top:4px;display:flex}.idea-head .character{--size:min(120px, 15dvh)}.idea-head h1{margin:8px 0 0;font-size:clamp(32px,5dvh,42px)}.idea-head p{color:var(--color-ink-soft);margin:6px 0 0;font-size:16px}.idea-empty{text-align:center;color:var(--color-ink-soft);margin:22px 8px 0;font-size:17px;line-height:1.5}.idea-empty p{margin:0}.nudge-slot{flex-direction:column;align-items:center;margin-top:16px;display:flex}.nudge-slot .btn{width:auto;height:50px;padding:0 26px}.nudge-note{color:var(--color-ink-soft);font-size:14px;margin:10px 0 0!important}.daylight-inner[data-view=home]{justify-content:center}.home-cards{grid-template-columns:1fr 1fr;gap:12px;width:100%;display:grid}.home-card{text-align:center;background:var(--surface);box-shadow:var(--surface-shadow);color:var(--color-ink);transition:transform .2s var(--spring);border:0;border-radius:24px;flex-direction:column;align-items:center;gap:2px;padding:18px 10px 16px;text-decoration:none;display:flex}.home-card:active{transform:scale(.97)}.home-card>.character{--size:min(128px, 17dvh);margin-bottom:6px}.home-card-kicker{color:var(--color-ink-soft);font-size:12px;font-weight:600}.home-card b{font-size:21px;font-weight:700;line-height:1.2}.home-card-meta{color:var(--color-pool);margin-top:2px;font-size:14px;font-weight:700}[data-view=home] .facts{justify-content:center;gap:28px;margin-top:20px;padding-top:0;display:flex}[data-view=home] .fact{box-shadow:none;background:0 0;gap:8px;padding:0}[data-view=home] .fact-glyph{width:22px;height:22px}[data-view=home] .fact b{font-size:16px;line-height:21px}.host-card{text-align:left;flex-direction:row;justify-content:flex-start;gap:14px;width:100%;margin-top:20px;padding:14px 16px}.host-card .return-mob{flex-shrink:0;height:64px;margin:0}.host-card .return-mob .character{--size:40px}.host-card .return-mob .character:nth-child(2){--size:50px}.host-card b{font-size:17px;display:block}.daylight-inner .text-link{margin-top:16px}.tags{flex-wrap:wrap;justify-content:center;gap:12px 10px;margin:22px 0 0;padding:0;list-style:none;display:flex}.tag{rotate:var(--tilt);min-height:46px;color:var(--color-ink);text-align:left;filter:drop-shadow(0 1px 1.5px #15213b1a)drop-shadow(0 6px 12px #15213b14);background:#fff;border-radius:6px 14px 14px 6px;align-items:center;gap:6px;margin-left:16px;padding:9px 16px 9px 14px;font-size:16px;font-weight:700;line-height:1.25;display:inline-flex;position:relative}.tag:after{content:"";z-index:-1;background:#fff;border-radius:7px;width:30px;height:30px;position:absolute;top:50%;left:1px;transform:translate(-50%,-50%)rotate(45deg)}.tag:before{content:"";border:2.5px solid var(--hole);box-sizing:border-box;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;position:absolute;top:50%;left:-8px}.tag button{width:28px;height:28px;color:var(--color-ink-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;margin:-4px -8px -4px 0;font-size:20px;line-height:1}.tag button:hover{color:var(--color-ink);background:#15213b0f}.tag-words{flex-direction:column;display:flex}.tag small{color:var(--color-pool);font-size:13px;font-weight:600}.tag a{color:inherit;text-decoration:none}.tag.has-link{cursor:pointer}.tag.has-link:hover small{text-underline-offset:3px;text-decoration:underline}.tag.has-link:active{scale:.97}.idea-add{flex-direction:column;gap:8px;width:100%;margin-top:20px;display:flex}.idea-add[hidden],.idea-link[hidden]{display:none}.idea-row{gap:8px;display:flex}.idea-row .field{flex:1;min-width:0}.idea-add .btn{flex-shrink:0;width:auto;height:52px;padding:0 20px}.confetti-bits{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-bits i{border-radius:3px;position:absolute}.unwrap.was-open .unwrap-copy,.unwrap.was-open .stage,.unwrap.was-open .tap-prompt{visibility:hidden}.lost{text-align:center;padding-top:6vh}.lost-art{background:#6ec8ffb3;border-radius:40px;margin:16px 0 28px;overflow:hidden}.lost-art .character{--size:300px;max-width:100%;margin:0 auto;display:block}.lost h1{margin:0 0 8px;font-size:34px}.lost p{color:var(--color-ink-soft);margin:0}.mail{border-top:1px solid var(--color-line);padding:14px 0;font-size:15px}.mail a{color:var(--color-pool);word-break:break-all;font-weight:700}.character{width:var(--size,auto);transform-origin:50% 90%;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:rotate .5s ease-out;display:inline-block}.character>svg{width:100%;height:auto;display:block;overflow:visible}.character .lid{transform-box:fill-box;transform-origin:50%}.character .figure{transform-box:fill-box;transform-origin:50% 100%;transition:rotate .5s ease-out}.character .shadow{transform-box:fill-box;transform-origin:50%}.ambient{z-index:-1;pointer-events:none;background:var(--scene-base);transition:background .8s;position:fixed;inset:0;overflow:hidden}.ambient.local{z-index:0;position:absolute}.ambient i{width:75vmax;height:75vmax;filter:blur(var(--ambient-blur,80px));opacity:var(--ambient-opacity,.75);will-change:transform;border-radius:50%;transition:background .8s;position:absolute}.ambient i:first-child{background:var(--b1);animation:drift-a calc(70s * var(--ambient-speed,1)) ease-in-out infinite alternate;top:-30vmax;left:-30vmax}.ambient i:nth-child(2){background:var(--b2);animation:drift-b calc(90s * var(--ambient-speed,1)) ease-in-out infinite alternate;top:-10vmax;right:-35vmax}.ambient i:nth-child(3){background:var(--b3);animation:drift-c calc(80s * var(--ambient-speed,1)) ease-in-out infinite alternate;bottom:-40vmax;left:-20vmax}.ambient i:nth-child(4){background:var(--b4);width:55vmax;height:55vmax;animation:drift-a calc(110s * var(--ambient-speed,1)) ease-in-out infinite alternate-reverse;bottom:-35vmax;right:-30vmax}html[data-ambient=still] .ambient i{animation-play-state:paused}html[data-ambient=off] .ambient i{display:none}[data-scene=arvo]{--scene-base:#fffbf6;--b1:#ffe8c8;--b2:#ffe3ec;--b3:#e4f1ff;--b4:#fff2d6}[data-scene=shallow]{--scene-base:#f8fcfc;--b1:#dff4ea;--b2:#e3f0ff;--b3:#fff8e0;--b4:#e8f8f4}[data-scene=morning]{--scene-base:#f9fbff;--b1:#e3f0ff;--b2:#ffeee2;--b3:#ffe9f0;--b4:#edf8f1}[data-scene=sand]{--scene-base:#fffaf1;--b1:#ffeac6;--b2:#ffe4d6;--b3:#fff2d8;--b4:#fbefdc}[data-scene=pool]{--scene-base:#f3faff;--b1:#d9efff;--b2:#e7f8ff;--b3:#fff3d9;--b4:#e0f3fb}[data-scene=night]{--scene-base:#0b2d5b;--b1:#1f5cad;--b2:#3a2f86;--b3:#0e6a78;--b4:#18438a}body[data-scene=night]{background:var(--color-night-deep)}@keyframes drift-a{0%{transform:translate(0)rotate(0)scale(1)}50%{transform:translate(18vmax,12vmax)rotate(90deg)scale(1.12)}to{transform:translate(6vmax,26vmax)rotate(180deg)scale(.95)}}@keyframes drift-b{0%{transform:translate(0)rotate(0)scale(1)}50%{transform:translate(-22vmax,16vmax)rotate(-120deg)scale(.9)}to{transform:translate(-8vmax,30vmax)rotate(-200deg)scale(1.1)}}@keyframes drift-c{0%{transform:translate(0)rotate(0)scale(1.05)}50%{transform:translate(20vmax,-18vmax)rotate(140deg)scale(.92)}to{transform:translate(30vmax,-6vmax)rotate(240deg)scale(1.08)}}html.show-grid body:after{content:"";z-index:9999;pointer-events:none;background-image:linear-gradient(#f2542d1f 1px,#0000 1px),linear-gradient(90deg,#f2542d1f 1px,#0000 1px);background-size:8px 8px;position:fixed;inset:0}@keyframes snooze{0%,to{transform:translateY(0)scaleY(1)}50%{transform:translateY(2px)scaleY(.97)}}@keyframes hop{0%,86%,to{transform:translateY(0)}90%{transform:translateY(-10px)}94%{transform:translateY(0)}97%{transform:translateY(-4px)}}@keyframes zzz{0%{opacity:0;transform:translate(0)}20%{opacity:1}to{opacity:0;transform:translate(14px,-30px)}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.45}}@keyframes shake-hat{0%,to{transform:rotate(0)}25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}@keyframes toss{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-26px)rotate(12deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html.reduce-motion *,html.reduce-motion :before,html.reduce-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
