@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-ext-400-normal-Xqov12YL.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-400-normal-DRPPeomZ.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-400-normal-BPq32Q8K.woff2) format("woff2"),url(/assets/montserrat-cyrillic-400-normal-jEs4Tk-Z.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-vietnamese-400-normal-D4oHqQTd.woff2) format("woff2"),url(/assets/montserrat-vietnamese-400-normal-BeEscFYY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-ext-400-normal-B8bwfy6Y.woff2) format("woff2"),url(/assets/montserrat-latin-ext-400-normal-BffdBkAA.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2) format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-ext-500-normal-11xBT7e1.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-500-normal-DOzfAZ45.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2) format("woff2"),url(/assets/montserrat-cyrillic-500-normal-CyGtXmN9.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-vietnamese-500-normal-NT-t8RG1.woff2) format("woff2"),url(/assets/montserrat-vietnamese-500-normal-DpeZlV_K.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-ext-500-normal-BKtbrd6n.woff2) format("woff2"),url(/assets/montserrat-latin-ext-500-normal-DWPqqZgs.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2) format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-ext-600-normal-BtBW-rpm.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-600-normal-wReYPmz2.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-600-normal-CQEPC0hM.woff2) format("woff2"),url(/assets/montserrat-cyrillic-600-normal-DUglwBrH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-vietnamese-600-normal-DKe6qT_E.woff2) format("woff2"),url(/assets/montserrat-vietnamese-600-normal-SJ-HTWuM.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-ext-600-normal-DSkTqI9L.woff2) format("woff2"),url(/assets/montserrat-latin-ext-600-normal-CSDhkhgS.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2) format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-ext-700-normal-MyDreaeu.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-700-normal-D-Mk2xRJ.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-700-normal-D-Pqjtdp.woff2) format("woff2"),url(/assets/montserrat-cyrillic-700-normal-BvLYcGP1.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-vietnamese-700-normal-C0x1De3p.woff2) format("woff2"),url(/assets/montserrat-vietnamese-700-normal-DnwGT2D9.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-ext-700-normal-BOP2Nhf0.woff2) format("woff2"),url(/assets/montserrat-latin-ext-700-normal-DdDFr05Z.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2) format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand-cream: #FEF2D8;--brand-ink: #3D2213;--brand-gold: #FBB13C;--brand-gold-light: #FDCD72;--brand-tan: #EAAC62;--brand-grey: #C8B8A3;--brand-blush: #F2A79C;--brand-sage: #9AA184;--paper: #FDF3DE;--surface: #FFFBF0;--surface-sunk: #F6E9CE;--line: #EADCC0;--line-strong: #DCC9A6;--text: #3D2213;--text-soft: #7A5B44;--text-faint: #A1907C;--text-on-gold: #3D2213;--text-on-ink: #FDF3DE;--accent: var(--brand-gold);--accent-hover: #F0A02A;--accent-sunk: #FFF0D4;--love: #F0897B;--love-sunk: #FDE6E2;--pass: #B9A78E;--status-reached: #E9A02C;--status-pending: #C98A45;--status-match: #6F9351;--status-nomatch: #A89684;--trait-energy: #F0932B;--trait-social: #E8A33D;--trait-cuddle: #F0897B;--trait-volume: #C98A45;--trait-upkeep: #9AA184;--trait-adventure: #8C9BB0;--trait-experience:#B08968;--font: "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--fs-display: 1.75rem;--fs-h1: 1.375rem;--fs-h2: 1.125rem;--fs-body: 1rem;--fs-small: .875rem;--fs-label: .75rem;--lh-tight: 1.15;--lh-snug: 1.3;--lh-body: 1.5;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--tracking-label: .06em;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.25rem;--s-6: 1.5rem;--s-8: 2rem;--s-10: 2.5rem;--s-12: 3rem;--s-16: 4rem;--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-xl: 32px;--r-full: 999px;--shadow-1: 0 1px 2px rgba(61, 34, 19, .06);--shadow-2: 0 2px 8px rgba(61, 34, 19, .08);--shadow-3: 0 8px 24px rgba(61, 34, 19, .12);--shadow-card: 0 4px 16px rgba(61, 34, 19, .1);--ease: cubic-bezier(.32, .72, 0, 1);--dur-fast: .14s;--dur: .24s;--dur-slow: .42s;--ease-in-out-quad: cubic-bezier(.45, 0, .55, 1);--dur-progress: .5s;--dur-question: 1.5s;--app-max: 480px;--tap-min: 44px}@media (prefers-color-scheme: dark){:root{--paper: #241408;--surface: #33200F;--surface-sunk: #1B0F06;--line: #4A3220;--line-strong: #5E422C;--text: #FDF3DE;--text-soft: #D8C3A6;--text-faint: #9C866C;--accent-sunk: #4A3318;--love-sunk: #4A2A24;--shadow-1: 0 1px 2px rgba(0, 0, 0, .3);--shadow-2: 0 2px 8px rgba(0, 0, 0, .36);--shadow-3: 0 8px 24px rgba(0, 0, 0, .44);--shadow-card: 0 4px 16px rgba(0, 0, 0, .4)}}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur: 0ms;--dur-slow: 0ms;--dur-progress: 0ms;--dur-question: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body{min-height:100svh;padding-bottom:env(safe-area-inset-bottom)}img{max-width:100%;display:block}.brand-mark{border-radius:22%}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}:focus-visible{outline:3px solid var(--brand-gold);outline-offset:2px;border-radius:var(--r-sm)}#app{max-width:var(--app-max);margin-inline:auto;min-height:100svh;position:relative}.screen{padding:var(--s-6) var(--s-5) var(--s-10);display:flex;flex-direction:column;gap:var(--s-5);min-height:100svh;animation:screen-in var(--dur) var(--ease)}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.screen[data-screen=map]{padding:0;gap:0}.display{font-size:var(--fs-display);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:-.01em}.h1{font-size:var(--fs-h1);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.h2{font-size:var(--fs-h2);font-weight:var(--fw-semibold);line-height:var(--lh-snug)}.small{font-size:var(--fs-small);font-weight:var(--fw-medium)}.muted{color:var(--text-soft)}.label{font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--tap-min);padding:var(--s-3) var(--s-6);border:none;border-radius:var(--r-full);background:var(--surface-sunk);color:var(--text);font-weight:var(--fw-semibold);font-size:var(--fs-body);cursor:pointer;transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:var(--brand-gold);color:var(--text-on-gold);box-shadow:var(--shadow-2)}.btn.primary:not(:disabled):hover{background:var(--accent-hover)}.btn.ghost{background:transparent;border:2px solid var(--line-strong)}.btn.block{width:100%}.btn.big{min-height:56px;font-size:var(--fs-h2)}.btn-icon{display:inline-grid;place-items:center;width:var(--tap-min);height:var(--tap-min);border:none;border-radius:var(--r-full);background:transparent;color:var(--text);cursor:pointer}.btn-icon:active{transform:scale(.92)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-1)}.topbar{display:flex;align-items:center;gap:var(--s-3);min-height:var(--tap-min)}.topbar .title{flex:1;font-weight:var(--fw-semibold);font-size:var(--fs-h2)}.dots{display:flex;gap:var(--s-2);justify-content:center}.dots i{width:8px;height:8px;border-radius:var(--r-full);background:var(--line-strong);transition:all var(--dur) var(--ease)}.dots i.on{background:var(--brand-gold);width:24px}.progress-track{height:6px;background:var(--surface-sunk);border-radius:var(--r-full);overflow:hidden}.progress-fill{height:100%;background:var(--brand-gold);border-radius:var(--r-full);transition:width var(--dur-progress) var(--ease-in-out-quad)}.choices{display:flex;flex-direction:column;gap:var(--s-3)}.choice{display:flex;align-items:center;gap:var(--s-4);width:100%;min-height:56px;padding:var(--s-3) var(--s-4);text-align:left;background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);cursor:pointer;font-size:var(--fs-body);font-weight:var(--fw-medium);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.choice:active{transform:scale(.99)}.choice[aria-checked=true]{border-color:var(--brand-gold);background:var(--accent-sunk)}.choice .tick{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-full);border:2px solid var(--line-strong);color:transparent}.choice[aria-checked=true] .tick{background:var(--brand-gold);border-color:var(--brand-gold);color:var(--text-on-gold)}.chips{display:flex;gap:var(--s-3);justify-content:space-around}.chip{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);flex:1;min-width:0}.chip .bubble{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-full);background:var(--surface-sunk);color:var(--chip-color, var(--text))}.chip .name{font-size:var(--fs-label);font-weight:var(--fw-semibold);text-align:center;line-height:1.2}.chip .value{font-size:var(--fs-label);color:var(--text-soft);text-align:center;line-height:1.2}.matrix{display:flex;flex-direction:column;gap:var(--s-4)}.matrix-row{display:grid;grid-template-columns:28px 1fr;gap:var(--s-3);align-items:center}.matrix-row .glyph{color:var(--row-color);display:grid;place-items:center}.matrix-row .head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s-2)}.matrix-row .head .who{font-size:var(--fs-label);color:var(--text-soft)}.bar{position:relative;height:10px;background:var(--surface-sunk);border-radius:var(--r-full)}.bar.near{background:color-mix(in srgb,var(--row-color) 28%,var(--surface-sunk))}.bar .dot,.bar .ring{position:absolute;top:50%;width:18px;height:18px;margin-left:-9px;border-radius:var(--r-full);transform:translateY(-50%);transition:left var(--dur) var(--ease)}.bar .dot{background:var(--row-color);border:2px solid var(--surface);z-index:2}.bar .ring{background:var(--surface);border:3px solid var(--text-soft);z-index:1}.matrix-key{display:flex;gap:var(--s-4);font-size:var(--fs-label);color:var(--text-soft)}.matrix-key span{display:flex;align-items:center;gap:var(--s-2)}.matrix-key i{width:12px;height:12px;border-radius:var(--r-full);display:inline-block}.matrix-key i.pet{background:var(--text-soft)}.matrix-key i.person{background:var(--surface);border:3px solid var(--text-soft)}.pet-list{display:flex;flex-direction:column;gap:var(--s-3)}.pet-row{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-areas:"img meta" "img score";gap:var(--s-2) var(--s-4);align-items:center;width:100%;padding:var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;text-align:left;transition:transform var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.pet-row:active{transform:scale(.99)}.pet-row img{grid-area:img;align-self:center;width:72px;height:72px;border-radius:var(--r-sm);object-fit:cover;background:var(--surface-sunk)}.pet-row .meta{grid-area:meta;min-width:0}.pet-row .score{grid-area:score;justify-self:start}.pet-row .meta .name{font-weight:var(--fw-bold);font-size:var(--fs-h2)}.pet-row .meta .sub{font-size:var(--fs-small);color:var(--text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3);border-radius:var(--r-full);font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;background:var(--surface-sunk);color:var(--text);white-space:nowrap}.score.best{background:var(--brand-gold);color:var(--text-on-gold)}.score.great{background:var(--brand-gold-light);color:var(--text-on-gold)}.score.ok{background:var(--surface-sunk)}.score.low{background:transparent;color:var(--text-soft);border:1px solid var(--line-strong)}.status{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-small);font-weight:var(--fw-medium)}.status i{width:10px;height:10px;border-radius:var(--r-full);flex:none}.status.reached i{background:var(--status-reached)}.status.pending i{background:var(--status-pending)}.status.match i{background:var(--status-match)}.status.nomatch i{background:var(--status-nomatch)}.tags{display:flex;flex-wrap:wrap;gap:var(--s-2)}.tag{padding:var(--s-1) var(--s-3);border-radius:var(--r-full);background:var(--surface-sunk);font-size:var(--fs-label);font-weight:var(--fw-semibold);color:var(--text-soft)}.empty{text-align:center;padding:var(--s-10) var(--s-4);display:flex;flex-direction:column;align-items:center;gap:var(--s-4)}.empty .art{width:120px;opacity:.9}.row{display:flex;align-items:center;gap:var(--s-3)}.col{display:flex;flex-direction:column;gap:var(--s-3)}.grow{flex:1}.center{text-align:center}.spacer{flex:1}.stack-tight{display:flex;flex-direction:column;gap:var(--s-2)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.field{width:100%;min-height:var(--tap-min);padding:var(--s-3) var(--s-4);background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-body);transition:border-color var(--dur-fast) var(--ease)}.field:focus{border-color:var(--brand-gold);outline:none}textarea.field{resize:vertical;min-height:84px;line-height:var(--lh-body)}.field-label{font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-soft)}.form-error{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--love-sunk);border:1px solid var(--love);font-size:var(--fs-small);color:var(--text)}.form-error[hidden]{display:none}.boot{min-height:100svh;display:grid;place-items:center}.boot img{width:96px;height:96px;animation:boot-pulse 1.2s ease-in-out infinite}@keyframes boot-pulse{0%,to{opacity:.45;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.account-strip{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface)}.account-strip.nudge{background:var(--accent-sunk);border-color:var(--brand-gold-light)}.divider{display:flex;align-items:center;gap:var(--s-3);color:var(--text-soft);font-size:var(--fs-small)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line-strong)}.screen[data-screen=intro]{text-align:center;gap:var(--s-5)}.intro-top{display:flex;align-items:center;gap:var(--s-2)}.btn.compact{min-height:38px;padding:var(--s-2) var(--s-4);font-size:var(--fs-small)}.intro-stage{flex:1;display:grid;place-items:center;overflow-x:clip;touch-action:pan-y;outline-offset:8px;cursor:grab;user-select:none;-webkit-user-select:none}.intro-stage:active{cursor:grabbing}.intro-stage img{-webkit-user-drag:none;user-drag:none;pointer-events:none}.intro-panel{display:flex;flex-direction:column;gap:var(--s-6);width:100%}.intro-panel.from-right{animation:slide-from-right var(--dur-slow) var(--ease-in-out-quad)}.intro-panel.from-left{animation:slide-from-left var(--dur-slow) var(--ease-in-out-quad)}@keyframes slide-from-right{0%{transform:translate(60%);opacity:0}to{transform:none;opacity:1}}@keyframes slide-from-left{0%{transform:translate(-60%);opacity:0}to{transform:none;opacity:1}}.intro-controls{display:flex;flex-direction:column;gap:var(--s-3)}.intro-art{display:grid;place-items:center;min-height:220px}.intro-art img{width:200px;height:200px;filter:drop-shadow(var(--shadow-3))}.intro-glyph{display:grid;place-items:center;width:140px;height:140px;border-radius:var(--r-full);background:var(--accent-sunk);color:var(--brand-gold)}.intro-copy{display:flex;flex-direction:column;gap:var(--s-3)}.survey-stage{display:grid;overflow-x:clip;overflow-y:visible}.survey-stage>.q-slide{grid-area:1 / 1}.q-slide{display:flex;flex-direction:column;gap:var(--s-5);transition:transform var(--dur-question) var(--ease-in-out-quad),opacity var(--dur-question) var(--ease-in-out-quad)}.survey-stage>.q-slide:not(:last-child){pointer-events:none}.survey-footer{display:flex;flex-direction:column;gap:var(--s-3)}.species-card{display:flex;align-items:center;gap:var(--s-4);width:100%;padding:var(--s-4);text-align:left;background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.species-card:active{transform:scale(.99)}.species-card[aria-checked=true]{border-color:var(--brand-gold);background:var(--accent-sunk)}.species-emoji{font-size:40px;line-height:1}.dash-head{display:flex;align-items:center;gap:var(--s-4)}.dash-logo{box-shadow:var(--shadow-2)}.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-3);text-align:center}.stat-n{font-size:var(--fs-h1);font-weight:var(--fw-bold);line-height:1.1}.radius-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2)}.radius{min-height:var(--tap-min);border:2px solid var(--line);border-radius:var(--r-full);background:var(--surface);font-weight:var(--fw-semibold);font-size:var(--fs-small);cursor:pointer}.radius[aria-checked=true]{border-color:var(--brand-gold);background:var(--accent-sunk)}.screen[data-screen=map]{position:relative;overflow:hidden}.map-bar{position:absolute;inset:0 0 auto;z-index:3;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);padding-top:calc(var(--s-3) + env(safe-area-inset-top));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.screen[data-screen=map] .map-canvas{position:absolute;inset:0;z-index:1}.map-fab{position:absolute;left:0;right:0;bottom:0;z-index:3;display:grid;place-items:center;padding:var(--s-4);padding-bottom:calc(var(--s-4) + env(safe-area-inset-bottom));pointer-events:none}.map-fab .btn{pointer-events:auto;box-shadow:var(--shadow-3)}.paw-pin{border:none;background:none;padding:0;cursor:pointer;transition:transform var(--dur-fast) var(--ease);filter:drop-shadow(var(--shadow-2))}.paw-pin:active{transform:scale(.92)}.paw-pin.selected{transform:scale(1.15)}.me-pin{width:18px;height:18px;border-radius:var(--r-full);background:var(--brand-sage);border:3px solid var(--surface);box-shadow:var(--shadow-2)}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:4;max-height:62%;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-3);transform:translateY(100%);transition:transform var(--dur) var(--ease);padding-bottom:env(safe-area-inset-bottom)}.sheet.open{transform:none}.sheet-grab{width:40px;height:4px;border-radius:var(--r-full);background:var(--line-strong);margin:var(--s-3) auto var(--s-2)}.sheet-head{display:flex;align-items:flex-start;gap:var(--s-3);padding:0 var(--s-5) var(--s-3)}.sheet-head .h2{flex:1}.sheet-body{overflow-y:auto;padding:0 var(--s-4) var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}.sheet-pet{display:flex;gap:var(--s-4);align-items:center;width:100%;padding:var(--s-3);text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer}.sheet-pet img{width:64px;height:64px;border-radius:var(--r-sm);object-fit:cover;flex:none}.sheet-pet .chips{margin-top:var(--s-2)}.sheet-pet .chip .bubble{width:34px;height:34px}.sheet-pet .chip .value{display:none}.other-pets summary{cursor:pointer;padding:var(--s-3) 0;font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--text-soft)}.blocked{opacity:.72}.blocked .pet-row{border-style:dashed}.blocked p{padding:var(--s-1) var(--s-3) 0}.deck{position:relative;min-height:62svh;display:grid}.deck>*{grid-area:1 / 1}.swipe-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-card);transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease);touch-action:pan-y;user-select:none;-webkit-user-select:none}.swipe-card.under{transform:scale(.96) translateY(10px);opacity:.6;pointer-events:none}.swipe-card.top{cursor:grab;z-index:2}.swipe-card.top:active{cursor:grabbing}.swipe-photo{position:relative;aspect-ratio:4 / 3;background:var(--surface-sunk)}.swipe-photo img{width:100%;height:100%;object-fit:cover;pointer-events:none}.swipe-overlay{position:absolute;inset:auto 0 0;padding:var(--s-8) var(--s-4) var(--s-4);color:#fff8e9;background:linear-gradient(to top,#231308e0,#23130800)}.swipe-overlay .display{color:inherit}.stamp{position:absolute;top:var(--s-4);display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);border-radius:var(--r-full);font-weight:var(--fw-bold);font-size:var(--fs-small);text-transform:uppercase;letter-spacing:var(--tracking-label);opacity:0;transition:opacity var(--dur-fast) linear;pointer-events:none}.stamp.yes{right:var(--s-4);background:var(--brand-gold);color:var(--text-on-gold)}.stamp.no{left:var(--s-4);background:var(--pass);color:#fff8e9}.swipe-body{padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3)}.swipe-body .note{padding:var(--s-2) var(--s-3);background:var(--accent-sunk);border-radius:var(--r-sm);color:var(--text)}.swipe-actions{display:flex;justify-content:center;align-items:center;gap:var(--s-5)}.btn-round{display:grid;place-items:center;width:64px;height:64px;border:none;border-radius:var(--r-full);background:var(--surface);box-shadow:var(--shadow-2);cursor:pointer;transition:transform var(--dur-fast) var(--ease)}.btn-round:active{transform:scale(.92)}.btn-round:disabled{opacity:.4}.btn-round.pass{color:var(--pass)}.btn-round.save{color:var(--love)}.btn-round.undo{width:48px;height:48px;color:var(--text-soft)}.gallery{display:flex;gap:var(--s-2);overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--s-5) * -1);padding-inline:var(--s-5);scrollbar-width:none}.gallery::-webkit-scrollbar{display:none}.gallery img{width:82%;flex:none;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--r-lg);scroll-snap-align:center;background:var(--surface-sunk)}.card.warn{background:var(--accent-sunk);border-color:var(--brand-gold-light)}.card.warn ul{margin:var(--s-2) 0 0;padding-left:var(--s-5)}.screen[data-screen=tada]{justify-content:center;align-items:center;text-align:center}.tada-burst{position:relative;display:grid;place-items:center;width:240px;height:240px}.tada-logo{width:200px;height:200px;filter:drop-shadow(var(--shadow-3));animation:pop var(--dur-slow) var(--ease) both}@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.spark{position:absolute;top:50%;left:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:2px;background:var(--brand-gold);transform:rotate(calc(var(--i) * 45deg)) translateY(-118px);animation:spark .9s var(--ease) both;animation-delay:calc(var(--i) * 45ms + .18s)}@keyframes spark{0%{opacity:0;transform:rotate(calc(var(--i) * 45deg)) translateY(-40px) scale(.3)}60%{opacity:1}to{opacity:0;transform:rotate(calc(var(--i) * 45deg)) translateY(-130px) scale(1)}}@media (prefers-reduced-motion: reduce){.tada-logo,.spark{animation:none}.spark{opacity:0}.screen{animation:none}}
