@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fredoka-latin-600-normal-C4zohCW5.woff2) format("woff2"),url(/assets/fredoka-latin-600-normal-CcrEjrB4.woff) format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2) format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2) format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff")}:root{--duck: #ffd23f;--duck-deep: #f5b400;--beak: #ff8a1f;--ink-blue: #1f2e4a;--ink-deep: #141e30;--staging: #43288f;--bg: #fffbef;--surface: #ffffff;--text: #1b1b2f;--muted: #6b6b80;--line: #ece6d2;--accent: #1f2e4a;--danger: #c0392b;--bar-bg: var(--ink-blue);--bar-text: #ffffff;--tab-idle: #a9b4c6;--font-display: "Fredoka", -apple-system, system-ui, sans-serif;--font-body: "Nunito", -apple-system, system-ui, sans-serif;--tap: 44px;--radius: 18px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0e1a2b;--surface: #16263d;--text: #f4f1e6;--muted: #a9b4c6;--line: #22344f;--accent: #ffd23f;--bar-bg: #0a1220}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.45;overscroll-behavior-y:none}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;margin:0 0 .5em}button{font:inherit}.muted{color:var(--muted)}.message{color:var(--danger)}.wordmark{font-family:var(--font-display);font-weight:700;font-size:2.6rem;letter-spacing:-.02em;margin:.2em 0}.wordmark .yeah{color:var(--duck);-webkit-text-stroke:.14em var(--text);paint-order:stroke fill}@media(prefers-color-scheme:dark){.wordmark .yeah{-webkit-text-stroke:0}}.app{min-height:100dvh;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:10;background:var(--bar-bg);color:var(--bar-text);padding:calc(env(safe-area-inset-top) + 6px) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));text-align:center}.wordmark-small{font-size:1.5rem;margin:0}.appbar .wordmark .yeah{-webkit-text-stroke:0}.page{flex:1;width:100%;max-width:560px;margin:0 auto;padding:20px max(16px,env(safe-area-inset-left)) calc(96px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-right))}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;background:var(--bar-bg);padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.tab{min-height:var(--tap);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;color:var(--tab-idle);text-decoration:none;font-size:.72rem;font-weight:700}.tab.active{color:var(--duck)}.tab-icon svg{width:26px;height:26px;display:block}.tab-give .give-duck{width:58px;height:58px;margin-top:-26px;border-radius:50%;background:var(--ink-blue);border:3px solid var(--duck);display:grid;place-items:center;box-shadow:0 4px 12px #00000040}.tab-give .give-duck svg{width:38px;height:38px}.tab-give.active .give-duck{border-color:var(--bar-text);box-shadow:0 0 0 4px #ffd23f73,0 4px 12px #00000040}.placeholder{text-align:center;padding-top:8vh}.placeholder-duck{width:72px;height:72px;opacity:.85}.placeholder p{color:var(--muted);max-width:28ch;margin:12px auto 0}.install{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(env(safe-area-inset-top) + 24px) 24px calc(env(safe-area-inset-bottom) + 24px)}.install-lead{font-size:1.15rem;max-width:26ch}.install-steps{text-align:left;max-width:30ch;padding-left:1.4em;line-height:1.7}.inline-icon{width:1.25em;height:1.25em;vertical-align:-.25em;color:#0a84ff}.link-button{margin-top:24px;min-height:var(--tap);background:none;border:0;color:var(--muted);text-decoration:underline}.env-banner{background:var(--staging);color:#fff;text-align:center;font-size:.8rem;font-weight:700;padding:calc(env(safe-area-inset-top) + 2px) 12px 2px}.env-banner+.app .appbar,.env-banner+.install{padding-top:6px}.toast{position:fixed;left:12px;right:12px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:12px;background:var(--text);color:var(--bg);border-radius:var(--radius);padding:10px 10px 10px 16px;box-shadow:0 6px 20px #00000040}.toast span{flex:1}.toast button{min-height:var(--tap);border:0;border-radius:12px;background:var(--duck);color:#1b1b2f;font-weight:700;padding:0 16px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.avatar{display:inline-block;border-radius:50%;vertical-align:middle;flex:none}.avatar-none{background:var(--line);border:2px dashed var(--muted)}.duck-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.duck-choice{position:relative;display:grid;justify-items:center;gap:2px;min-height:var(--tap);padding:8px 4px;background:var(--surface);border:3px solid transparent;border-radius:var(--radius);color:var(--text)}.duck-choice.chosen{border-color:var(--duck-deep);box-shadow:0 0 0 3px #ffd23f59}.duck-choice:disabled{opacity:.45}.duck-owner{font-size:.75rem;font-weight:700;color:var(--muted)}.field{display:grid;min-width:0;gap:6px;margin:0 0 18px;border:0;padding:0}.field-label{font-weight:700;padding:0;margin-bottom:4px}.field input,.dev-switcher select{font:inherit;font-size:1.0625rem;min-height:var(--tap);padding:8px 12px;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}.field input:focus{outline:none;border-color:var(--duck-deep)}.field-error{color:var(--danger);font-size:.9rem;font-weight:700}.actions{display:flex;gap:12px;flex-wrap:wrap}.button{min-height:var(--tap);padding:0 20px;border-radius:999px;border:2px solid var(--line);background:var(--surface);color:var(--text);font-weight:700}.button.primary{background:var(--duck);border-color:var(--duck-deep);color:#1b1b2f}.button:disabled{opacity:.6}.profile{display:grid;justify-items:center;text-align:center;gap:8px}.profile h1{margin:4px 0 8px}.first-run{padding:calc(env(safe-area-inset-top) + 24px) max(16px,env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 24px) max(16px,env(safe-area-inset-left));max-width:560px;margin:0 auto}.env-banner+.first-run{padding-top:24px}.dev-switcher{margin-top:40px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:.9rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:16px}.field-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.field-head .field-label{margin-bottom:0}.all-given{font-size:1.1rem}.recipients{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 -16px;padding:0 16px}.recipients::-webkit-scrollbar{display:none}.recipient{flex:0 0 84px;display:grid;justify-items:center;gap:6px;min-height:var(--tap);padding:10px 4px 8px;background:none;border:1.5px solid var(--line);border-radius:14px;color:var(--text);font-weight:600;font-size:.95rem}.recipient.chosen,.duck-choice.chosen{border-color:var(--accent);background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}.duck-counter-row{display:flex;align-items:center;gap:14px}.duck-counter{position:relative;width:64px;height:64px;flex:none;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);touch-action:manipulation}.duck-counter:active{transform:scale(.96)}.duck-counter svg{width:40px;height:40px}.duck-count-value{position:absolute;right:-4px;bottom:-4px;min-width:26px;height:26px;padding:0 6px;border-radius:13px;background:var(--accent);color:var(--bg);font-weight:700;font-size:.9rem;line-height:26px;text-align:center}.suggestions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.chip{min-height:var(--tap);padding:0 6px;white-space:nowrap;border-radius:8px;border:1.5px solid var(--line);background:none;color:var(--muted);font-weight:600;font-size:.9rem}.field textarea{font:inherit;font-size:1.0625rem;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);resize:none}.field textarea:focus{outline:none;border-color:var(--accent)}.field-hint{font-size:.85rem;color:var(--muted)}.give-button{width:100%;min-height:52px;border-radius:14px;font-size:1.05rem}.gift-sent{text-align:center;padding-top:6vh}.sent-ducks{display:flex;justify-content:center;gap:4px;margin-bottom:8px}.sent-duck{width:44px;height:44px;animation:duck-settle .4s ease-out backwards}.sent-duck:nth-child(2){animation-delay:.06s}.sent-duck:nth-child(3){animation-delay:.12s}.sent-duck:nth-child(4){animation-delay:.18s}.sent-duck:nth-child(5){animation-delay:.24s}@keyframes duck-settle{0%{transform:translateY(8px);opacity:0}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.pull-indicator{display:grid;place-items:end center;overflow:hidden;color:var(--muted);font-size:.85rem}.feed-day+.feed-day{margin-top:18px}.feed-day-heading{font-family:var(--font-body);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}.feed-list{list-style:none;margin:0;padding:0}.feed-list>li+li{border-top:1px solid var(--line)}.gift{display:flex;gap:12px;padding:12px 0}.gift-avatars{display:flex;align-items:center;gap:2px;flex:none}.gift-arrow{color:var(--muted);font-size:.8rem}.gift-body{min-width:0;flex:1}.gift-line,.gift-reason,.gift-meta{margin:0}.gift-ducks{display:inline-flex;gap:1px;margin-left:6px;vertical-align:-3px}.gift-ducks svg{width:18px;height:18px}.gift-reason{margin-top:2px;overflow-wrap:anywhere}.gift-edited{color:var(--muted);font-size:.85rem}.gift-meta{display:flex;gap:14px;margin-top:2px}.link-quiet{min-height:32px;padding:0;background:none;border:0;color:var(--muted);font-size:.85rem}.reason-editor{display:grid;gap:8px;margin:6px 0}.reason-editor textarea{font:inherit;font-size:1.0625rem;padding:8px 10px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);resize:none}.feed-more{display:grid;place-items:center;padding:18px 0}.empty{text-align:center;padding-top:8vh;display:grid;justify-items:center;gap:10px}.empty p{color:var(--muted);margin:0}a.button{display:inline-grid;place-items:center;text-decoration:none}.auth{min-height:100dvh;max-width:420px;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top) + 32px) 20px calc(env(safe-area-inset-bottom) + 24px);text-align:center}.env-banner+.auth{padding-top:24px}.auth .wordmark{font-size:2rem}.auth h2{margin:12px 0 4px;font-size:1.3rem}.auth-lead{margin:0 0 8px;max-width:32ch}.auth-form{width:100%;margin-top:12px;text-align:left;display:grid}.auth-submit{width:100%;min-height:52px;border-radius:14px;margin-top:4px}.auth-form .link-button{margin-top:12px;justify-self:center}.sign-out{text-align:center;margin-top:28px}.notify-card{display:flex;gap:12px;align-items:flex-start;padding:14px;margin-bottom:16px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface)}.notify-duck{width:36px;height:36px;flex:none}.notify-title{margin:2px 0 10px;font-weight:700}.notify-actions{display:flex;align-items:center;gap:14px}.notify-actions .link-button{margin:0}.notify-row{margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}.notify-row h2{font-size:1.05rem;margin-bottom:4px}.notify-row p{margin:0}.notify-row .link-button{margin:0;min-height:0}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 0 18px;border-radius:14px;background:var(--line)}.segmented button{min-height:var(--tap);border:0;border-radius:10px;background:none;color:var(--muted);font:inherit;font-weight:700;touch-action:manipulation}.segmented button.chosen{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.board h2,.my-stats h2{font-size:1.15rem;margin:0 0 8px}.board+.board{margin-top:22px}.standings{list-style:none;margin:0;padding:0;display:grid;gap:6px}.standing{display:grid;grid-template-columns:26px 40px 1fr auto;align-items:center;gap:10px;min-height:56px;padding:6px 12px 6px 8px;border-radius:14px;background:var(--surface);border:1.5px solid var(--line);color:var(--text);text-decoration:none}.standing.mine{border-color:var(--accent)}.place{font-family:var(--font-display);font-weight:700;font-size:1.1rem;text-align:center;color:var(--muted)}.standing:has(.place[aria-label="Place 1"]) .place{color:var(--duck-deep)}.standing-name{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.standing-ducks{font-family:var(--font-display);font-weight:700;font-size:1.1rem;white-space:nowrap}.standing-ducks .muted{font-family:var(--font-body);font-size:.85rem;font-weight:600}.back-link{display:inline-flex;align-items:center;min-height:var(--tap);margin:-10px 0 4px -4px;padding:0 4px;color:var(--muted);font-weight:700;text-decoration:none}.stats-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.stats-head h1{margin:0}.my-stats{margin-top:28px}.stat-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.stat-tile{display:grid;gap:2px;padding:12px 14px;border-radius:16px;background:var(--surface);border:1.5px solid var(--line)}.stat-label{font-weight:700;color:var(--muted);font-size:.9rem}.stat-number{font-family:var(--font-display);font-weight:700;font-size:2.2rem;line-height:1.1}.stat-sub{font-size:.85rem;color:var(--muted)}.stat-list{margin:0 0 18px;display:grid;border-top:1px solid var(--line)}.stat-list>div{display:grid;gap:2px;padding:10px 2px;border-bottom:1px solid var(--line)}.stat-list dt{font-size:.85rem;font-weight:700;color:var(--muted)}.stat-list dd{margin:0;font-weight:600}.favourite{display:flex;align-items:center;gap:8px}.favourite .muted{margin-left:-4px}.heatmap{margin:0}.heatmap figcaption{font-weight:700;margin-bottom:8px}.heatmap-grid{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}.cell{aspect-ratio:1;border-radius:4px;background:var(--line)}.cell.future{background:none;border:1px dashed var(--line)}.cell.l1{background:color-mix(in srgb,var(--duck) 40%,var(--line))}.cell.l2{background:color-mix(in srgb,var(--duck) 75%,var(--line))}.cell.l3{background:var(--duck-deep)}.heatmap-key{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:8px;font-size:.8rem;color:var(--muted)}.heatmap-key .cell{width:12px;height:12px}.emblem.locked{filter:grayscale(1);opacity:.35}.badge-event-emblem{flex:none;width:96px;display:flex;justify-content:center}.badges{margin:0 0 20px}.badges h3{font-size:1.05rem;margin:0 0 4px}.badge-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px 8px}.badge-grid li{display:grid;justify-items:center;gap:4px;text-align:center}.badge-emblem{position:relative}.badge-count{position:absolute;right:-8px;bottom:-2px;min-width:24px;height:22px;padding:0 5px;border-radius:11px;background:var(--accent);color:var(--bg);font-size:.8rem;font-weight:700;line-height:22px}.badge-name{font-size:.78rem;font-weight:700;line-height:1.2}.badge-grid .waiting .badge-name{color:var(--muted);font-weight:600}.fame-section+.fame-section{margin-top:26px}.fame-section h2{font-size:1.15rem;margin:0 0 8px}.champions,.fame-list{list-style:none;margin:0;padding:0}.champion{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.champion-month{font-weight:700}.champion-winners{grid-column:2;display:flex;flex-wrap:wrap;gap:4px 14px}.winner{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);color:var(--text);font-weight:600;text-decoration:none}.fame-award{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.badge-event .link-quiet{display:inline-flex;align-items:center;text-decoration:none}.fame-award p{margin:0}.fame-award-for{font-size:.9rem}.line{display:block}
