@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#14101f;--color-surface:#1d1730;--color-surface-raised:#261f3d;--color-surface-hover:#302850;--color-text:#f3f0fa;--color-text-muted:#aca4c7;--color-text-on-accent:#1a1326;--color-primary:#7655e0;--color-primary-hover:#6444cc;--color-primary-soft:#2c2350;--color-accent:#f2b45a;--color-accent-soft:#3a2f26;--color-positive:#5fcf9f;--color-positive-soft:#1f3a37;--color-negative:#f2788a;--color-negative-soft:#3c2231;--color-chart-1:#a68cf5;--color-chart-2:#f2b45a;--color-chart-3:#5fcf9f;--color-chart-4:#6ab0f3;--heat-1:#342b5c;--heat-2:#4b3d8a;--heat-3:#6a52c4;--heat-4:#8c72ea;--heat-5:#b9a3fb;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:80px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-pill:999px;--font-body:"Plus Jakarta Sans Variable", system-ui, sans-serif;--font-display:"Bricolage Grotesque Variable", "Plus Jakarta Sans Variable", system-ui, sans-serif;--shadow-popover:0 16px 40px #06030e80;--ease-out:cubic-bezier(.23, 1, .32, 1);--duration-fast:.16s;--duration-base:.24s;--sidebar-width:232px;--content-width:1200px}*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.55}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.15}p{text-wrap:pretty;margin:0}a{color:var(--color-chart-1);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit;color:inherit}button{cursor:pointer}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.text-positive{color:var(--color-positive)}.text-negative{color:var(--color-negative)}.reveal{opacity:0;transition:opacity .52s var(--ease-out) var(--reveal-delay,0s), transform .52s var(--ease-out) var(--reveal-delay,0s);transform:translateY(18px)}.reveal--visible{opacity:1;transform:none}.button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:0;padding:12px 22px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.button:hover{text-decoration:none;transform:translateY(-2px)}.button:active{transform:scale(.97)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button--primary{background:var(--color-primary);color:#fff}.button--primary:hover{background:var(--color-primary-hover)}.button--secondary{background:var(--color-surface-raised);color:var(--color-text)}.button--secondary:hover{background:var(--color-surface-hover)}.button--danger{background:var(--color-negative);color:var(--color-text-on-accent)}.button--danger:hover{background:#e0606f}.button--ghost{color:var(--color-text);background:0 0}.button--ghost:hover{background:var(--color-surface-raised)}.button--small{padding:9px 16px;font-size:.9rem}.button--block{width:100%}.icon-button{border-radius:var(--radius-pill);width:40px;height:40px;color:var(--color-text-muted);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--color-surface-raised);color:var(--color-text)}.icon-button:active{transform:scale(.92)}.icon-button--danger:hover{color:var(--color-negative)}.spinner{border-radius:var(--radius-pill);background:var(--color-chart-1);width:28px;height:28px;animation:.9s ease-in-out infinite alternate pulse;display:block}.spinner--inline{background:currentColor;width:12px;height:12px;display:inline-block}.state{align-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);text-align:center;flex-direction:column;display:flex}.state .button{margin-top:var(--space-3)}.state__title{font-family:var(--font-display);font-size:1.2rem;font-weight:600}.state__text{max-width:46ch;color:var(--color-text-muted)}.state--error .state__title{color:var(--color-negative)}.logo{align-items:center;gap:var(--space-3);color:var(--color-text);font-family:var(--font-display);font-size:1.25rem;font-weight:700;display:inline-flex}.logo:hover{text-decoration:none}.logo__icon{width:36px;height:36px;color:var(--color-primary);transition:transform var(--duration-base) var(--ease-out)}.logo:hover .logo__icon{transform:rotate(-6deg)scale(1.06)}.form{gap:var(--space-4);display:grid}.form__link{justify-self:start;font-size:.9rem}.field{gap:var(--space-2);display:grid}.field__label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.field__input{border-radius:var(--radius-md);background:var(--color-surface-raised);width:100%;transition:background-color var(--duration-fast) var(--ease-out);border:0;padding:13px 16px}.field__input:hover{background:var(--color-surface-hover)}.field__input::placeholder{color:var(--color-text-muted)}.field__input--select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23aca4c7' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.field__hint{color:var(--color-text-muted);font-size:.8rem}.form-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:.92rem}.form-message--error{background:var(--color-negative-soft);color:var(--color-negative)}.form-message--success{background:var(--color-positive-soft);color:var(--color-positive)}.card{padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface)}.card--flush{padding:0;overflow:hidden}.card--flush .card__header{padding:var(--space-5) var(--space-5) var(--space-3);margin-bottom:0}.card__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.card__title{font-size:1.15rem}.segmented{border-radius:var(--radius-pill);background:var(--color-surface);gap:2px;padding:4px;display:inline-flex}.segmented__option{border-radius:var(--radius-pill);color:var(--color-text-muted);white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:0 0;border:0;padding:8px 16px;font-size:.88rem;font-weight:600}.segmented__option:hover{color:var(--color-text)}.segmented__option:active{transform:scale(.96)}.segmented__option--active{background:var(--color-primary);color:#fff}.score-pill{border-radius:var(--radius-pill);text-align:center;min-width:56px;padding:4px 12px;font-weight:700;display:inline-block}.score-pill--high{background:var(--color-positive-soft);color:var(--color-positive)}.score-pill--mid{background:var(--color-accent-soft);color:var(--color-accent)}.score-pill--low{background:var(--color-negative-soft);color:var(--color-negative)}.score-pill--none{background:var(--color-surface-raised);color:var(--color-text-muted)}.score-ring{display:inline-block;position:relative}.score-ring svg{width:100%;height:100%;display:block}.score-ring__track{fill:none;stroke:var(--color-surface-raised);stroke-width:12px}.score-ring__value{fill:none;stroke:var(--color-chart-1);stroke-width:12px;stroke-linecap:round;animation:ring-fill 1s var(--ease-out) both}.score-ring--high .score-ring__value{stroke:var(--color-positive)}.score-ring--mid .score-ring__value{stroke:var(--color-accent)}.score-ring--low .score-ring__value{stroke:var(--color-negative)}.score-ring__text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.score-ring__number{font-family:var(--font-display);font-size:2.6rem;line-height:1}.score-ring__label{color:var(--color-text-muted);margin-top:4px;font-size:.78rem}.favorite-button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);width:38px;height:38px;color:var(--color-text-muted);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:0 0;border:0;display:inline-flex}.favorite-button:hover{background:var(--color-surface-hover);color:var(--color-text)}.favorite-button:active{transform:scale(.9)}.favorite-button--active{color:var(--color-accent)}.favorite-button--active svg{fill:currentColor;animation:pop var(--duration-base) var(--ease-out)}.favorite-button--labeled{background:var(--color-surface-raised);width:auto;padding:9px 16px;font-size:.9rem;font-weight:700}.province-select{width:100%;max-width:420px;position:relative}.province-select__icon{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.province-select__input{border-radius:var(--radius-pill);background:var(--color-surface);width:100%;transition:background-color var(--duration-fast) var(--ease-out);border:0;padding:12px 16px 12px 44px}.province-select__input:hover{background:var(--color-surface-raised)}.province-select__input::placeholder{color:var(--color-text-muted)}.province-select__list{z-index:20;padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-popover);animation:rise var(--duration-base) var(--ease-out);position:absolute;top:calc(100% + 8px);left:0;right:0}.province-select__item{justify-content:space-between;align-items:baseline;gap:var(--space-3);border-radius:var(--radius-sm);text-align:left;width:100%;transition:background-color var(--duration-fast) var(--ease-out);background:0 0;border:0;padding:10px 12px;display:flex}.province-select__item:hover{background:var(--color-surface-hover)}.province-select__item small{color:var(--color-text-muted)}.public-header{z-index:30;background:var(--color-bg);position:sticky;top:0}.public-header__inner{justify-content:space-between;align-items:center;gap:var(--space-5);max-width:var(--content-width);padding:var(--space-4) var(--space-5);margin:0 auto;display:flex}.public-header__nav{gap:var(--space-5);display:flex}.public-header__nav a{color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out);font-weight:600}.public-header__nav a:hover{color:var(--color-text);text-decoration:none}.public-header__actions{align-items:center;gap:var(--space-2);display:flex}.public-header__toggle{display:none}.public-footer{margin-top:var(--space-8);background:var(--color-surface)}.public-footer__inner{justify-content:space-between;align-items:center;gap:var(--space-5);max-width:var(--content-width);padding:var(--space-6) var(--space-5);flex-wrap:wrap;margin:0 auto;display:flex}.public-footer__text{max-width:44ch;color:var(--color-text-muted);font-size:.9rem}.public-footer__links{gap:var(--space-5);display:flex}.hero{padding:var(--space-7) var(--space-5) var(--space-6)}.hero__inner{align-items:center;gap:var(--space-6);max-width:var(--content-width);grid-template-columns:1.05fr 1fr;margin:0 auto;display:grid}.hero__copy{justify-items:start;gap:var(--space-5);display:grid}.hero__copy>*{animation:rise .7s var(--ease-out) both}.hero__copy>:nth-child(2){animation-delay:80ms}.hero__copy>:nth-child(3){animation-delay:.16s}.hero__copy>:nth-child(4){animation-delay:.24s}.hero__title{letter-spacing:-.025em;font-size:clamp(2.4rem,5.2vw,4.2rem);line-height:1.04}.hero__text{max-width:52ch;color:var(--color-text-muted);font-size:1.15rem}.hero__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.pill{border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-chart-1);padding:7px 16px;font-size:.85rem;font-weight:700;display:inline-block}.hero-scene{animation:rise .8s var(--ease-out) .12s both;position:relative}.hero-scene__svg{width:100%;height:auto;display:block}.hero-scene__window{fill:var(--color-bg)}.hero-scene__window--lit{fill:var(--color-accent);animation:3.6s ease-in-out infinite alternate twinkle}.hero-scene__card{justify-items:center;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-popover);display:grid;position:absolute}.hero-scene__card--score{width:124px;animation:6s ease-in-out infinite alternate float;top:4%;right:2%}.hero-scene__card--bars{width:132px;animation:7s ease-in-out -2s infinite alternate float;bottom:18%;left:0}.hero-scene__ring{width:72px;height:72px}.hero-scene__ring circle:last-child{animation:ring-fill-small 1.4s var(--ease-out) .4s both}.hero-scene__bars{align-items:flex-end;gap:6px;width:100%;height:56px;display:flex}.hero-scene__bars span{background:var(--color-chart-1);transform-origin:bottom;animation:grow 1.1s var(--ease-out) both;border-radius:6px 6px 3px 3px;flex:1}.hero-scene__bars span:last-child{background:var(--color-chart-3)}.hero-scene__card-label{color:var(--color-text-muted);font-size:.75rem;font-weight:700}.hero-scene__chip{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);background:var(--color-positive);color:var(--color-text-on-accent);padding:8px 14px;font-size:.82rem;font-weight:700;animation:5s ease-in-out -1s infinite alternate float;display:inline-flex;position:absolute;top:36%;left:4%}.facts{padding:0 var(--space-5)}.facts__inner{gap:var(--space-4);max-width:var(--content-width);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--color-surface);grid-template-columns:repeat(4,1fr);margin:0 auto;display:grid}.facts__item{gap:var(--space-1);padding:var(--space-2) var(--space-4);display:grid}.facts__value{font-family:var(--font-display);color:var(--color-accent);font-size:2rem}.facts__label{color:var(--color-text-muted);font-size:.9rem}.section{padding:var(--space-8) var(--space-5) 0}.section--raised{margin-top:var(--space-8);padding-bottom:var(--space-8);background:var(--color-surface)}.section__inner{gap:var(--space-6);max-width:var(--content-width);margin:0 auto;display:grid}.section__title{font-size:clamp(1.8rem,3.4vw,2.6rem)}.section__lead{max-width:62ch;margin-top:var(--space-3);color:var(--color-text-muted);font-size:1.1rem}.feature-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.feature-card{height:100%;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);transition:background-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out)}.feature-card:hover{background:var(--color-surface-raised);transform:translateY(-4px)}.feature-card__icon{width:48px;height:48px;margin-bottom:var(--space-4);border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-chart-1);justify-content:center;align-items:center;display:inline-flex}.feature-card__title{margin-bottom:var(--space-2);font-size:1.2rem}.feature-card__text{color:var(--color-text-muted)}.steps{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.steps__item{align-content:start;gap:var(--space-3);height:100%;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface-raised);display:grid}.steps__number{border-radius:var(--radius-pill);background:var(--color-accent);width:40px;height:40px;color:var(--color-text-on-accent);font-family:var(--font-display);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.steps__text{color:var(--color-text-muted)}.score-explainer{grid-template-columns:1fr 1fr;align-items:center}.score-explainer .button{margin-top:var(--space-5)}.score-parts{gap:var(--space-5);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--color-surface);display:grid}.score-parts__bar{gap:var(--space-2);height:28px;display:flex}.score-parts__segment{border-radius:var(--radius-pill);flex:1}.score-parts__segment--price,.score-parts__dot--price{background:var(--color-chart-1)}.score-parts__segment--trend,.score-parts__dot--trend{background:var(--color-chart-2)}.score-parts__segment--activity,.score-parts__dot--activity{background:var(--color-chart-3)}.score-parts__list{gap:var(--space-3);color:var(--color-text-muted);display:grid}.score-parts__list strong{margin-right:var(--space-2);color:var(--color-text)}.cta{justify-items:center;gap:var(--space-4);max-width:var(--content-width);padding:var(--space-8) var(--space-5);border-radius:var(--radius-xl);background:var(--color-surface-raised);text-align:center;margin:0 auto;display:grid}.cta__title{font-size:clamp(1.8rem,3.4vw,2.6rem)}.cta__text{color:var(--color-text-muted)}.auth-layout{min-height:100dvh;padding:var(--space-4);gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.auth-layout__panel{justify-content:space-between;gap:var(--space-5);padding:var(--space-7);border-radius:var(--radius-xl);background:var(--color-surface);flex-direction:column;display:flex}.auth-layout__claim{letter-spacing:-.02em;max-width:14ch;font-size:clamp(2rem,4vw,3.2rem)}.auth-layout__text{max-width:40ch;margin-top:var(--space-4);color:var(--color-text-muted)}.auth-layout__form{padding:var(--space-5);justify-content:center;align-items:center;display:flex}.auth-card{gap:var(--space-4);width:100%;max-width:420px;animation:rise .6s var(--ease-out) both;display:grid}.auth-card__title{font-size:2rem}.auth-card__subtitle{color:var(--color-text-muted)}.auth-card__footer{color:var(--color-text-muted);font-size:.92rem}.app-layout{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);gap:var(--space-4);min-height:100dvh;padding:var(--space-4);display:grid}.app-layout__main{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.sidebar{top:var(--space-4);gap:var(--space-5);height:calc(100dvh - 2 * var(--space-4));padding:var(--space-4);border-radius:var(--radius-xl);background:var(--color-surface);flex-direction:column;display:flex;position:sticky}.sidebar__brand{padding:var(--space-2) var(--space-2) 0}.sidebar__nav{gap:var(--space-1);display:grid}.sidebar__link{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);padding:11px 14px;font-weight:600;display:flex}.sidebar__link:hover{background:var(--color-surface-raised);color:var(--color-text);text-decoration:none}.sidebar__link:active{transform:scale(.97)}.sidebar__link--active{background:var(--color-primary);color:#fff}.sidebar__link--active:hover{background:var(--color-primary-hover);color:#fff}.sidebar__profile{margin-top:auto}.sidebar__icon{display:inline-flex;position:relative}.sidebar__badge{border-radius:var(--radius-pill);background:var(--color-accent);min-width:18px;color:var(--color-text-on-accent);text-align:center;padding:0 5px;font-size:.7rem;font-weight:800;line-height:18px;position:absolute;top:-8px;right:-10px}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.topbar__user{border-radius:var(--radius-pill);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-muted);transition:background-color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.topbar__user:hover{background:var(--color-surface-raised)}.avatar{border-radius:var(--radius-pill);background:var(--color-accent);width:44px;height:44px;color:var(--color-text-on-accent);justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.avatar--small{width:24px;height:24px;font-size:.65rem}.avatar--large{width:64px;height:64px;font-size:1.3rem}.page{align-content:start;gap:var(--space-5);width:100%;max-width:var(--content-width);animation:rise .5s var(--ease-out) both;display:grid}.page--centered{margin:var(--space-8) auto}.page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.page__title{font-size:clamp(1.8rem,3vw,2.5rem)}.page__subtitle{margin-top:var(--space-1);color:var(--color-text-muted)}.page__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.toolbar{gap:var(--space-3);flex-wrap:wrap;display:flex}.grid-two{align-items:start;gap:var(--space-4);grid-template-columns:1fr 1.5fr;display:grid}.grid-two--even{grid-template-columns:1fr 1fr}.card-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.stat-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.stat{align-content:center;gap:var(--space-1);display:grid}.stat__label{color:var(--color-text-muted);font-size:.85rem;font-weight:600;display:block}.stat__value{font-family:var(--font-display);font-size:2rem;line-height:1.1}.stat__note{color:var(--color-text-muted);font-size:.82rem}.province-summary{gap:var(--space-4);grid-template-columns:1.1fr repeat(4,1fr);display:grid}.province-summary__score{justify-content:center;align-items:center;display:flex}.table-wrap{max-height:620px;overflow:auto}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.table th{padding:12px var(--space-4);background:var(--color-surface);color:var(--color-text-muted);text-align:left;white-space:nowrap;font-size:.8rem;font-weight:700;position:sticky;top:0}.table td{padding:12px var(--space-4);transition:background-color var(--duration-fast) var(--ease-out)}.table tbody tr:hover td{background:var(--color-surface-raised)}.table__sort{align-items:center;gap:var(--space-1);color:inherit;font-weight:inherit;background:0 0;border:0;padding:0;display:inline-flex}.table__sort:hover{color:var(--color-text)}.table__province{color:var(--color-text);display:grid}.table__province:hover{text-decoration:none}.table__province:hover strong{color:var(--color-chart-1)}.table__province small{color:var(--color-text-muted)}.table-search{border-radius:var(--radius-pill);background:var(--color-surface-raised);border:0;padding:9px 16px}.table-search::placeholder{color:var(--color-text-muted)}.chart{width:100%}.chart__legend{gap:var(--space-4);margin-top:var(--space-3);color:var(--color-text-muted);flex-wrap:wrap;font-size:.85rem;display:flex}.chart__swatch{width:10px;height:10px;margin-right:var(--space-2);border-radius:var(--radius-pill);display:inline-block}.chart__note{margin-top:var(--space-4);color:var(--color-text-muted)}.chart__note strong{color:var(--color-text)}.heatmap{gap:6px;display:grid}.heatmap__row{grid-template-columns:48px repeat(12,1fr);align-items:center;gap:6px;display:grid}.heatmap__month,.heatmap__year{color:var(--color-text-muted);text-align:center;font-size:.78rem}.heatmap__cell{aspect-ratio:1.6;background:var(--color-surface-raised);transition:transform var(--duration-fast) var(--ease-out);border-radius:8px;display:block}.heatmap__cell:hover{transform:scale(1.12)}.heatmap__cell--level-1{background:var(--heat-1)}.heatmap__cell--level-2{background:var(--heat-2)}.heatmap__cell--level-3{background:var(--heat-3)}.heatmap__cell--level-4{background:var(--heat-4)}.heatmap__cell--level-5{background:var(--heat-5)}.heatmap__scale{margin-top:var(--space-2);color:var(--color-text-muted);justify-content:flex-end;align-items:center;gap:6px;font-size:.78rem;display:flex}.heatmap__scale .heatmap__cell{aspect-ratio:1;width:18px}.compare-picker{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.compare-picker .province-select__input{background:var(--color-surface-raised)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);background:var(--color-primary-soft);padding:8px 8px 8px 16px;font-weight:700;display:inline-flex}.chip__remove{border-radius:var(--radius-pill);width:24px;height:24px;color:var(--color-text-muted);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.chip__remove:hover{background:var(--color-surface-hover);color:var(--color-text)}.favorite-card{gap:var(--space-4);transition:background-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);display:grid;position:relative}.favorite-card:hover{background:var(--color-surface-raised);transform:translateY(-3px)}.favorite-card__link{color:var(--color-text)}.favorite-card__link:hover{text-decoration:none}.favorite-card__name{font-size:1.4rem}.favorite-card__community{color:var(--color-text-muted);font-size:.9rem}.favorite-card__metrics{gap:var(--space-6);display:flex}.favorite-card__remove{top:var(--space-4);right:var(--space-4);position:absolute}.list{gap:var(--space-3);display:grid}.list__item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);transition:background-color var(--duration-fast) var(--ease-out);display:flex}.list__item:hover{background:var(--color-surface-raised)}.alert-form{align-items:end;gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.alert-form__actions{gap:var(--space-2);grid-column:1/-1;display:flex}.alert-form+.form-message{margin-top:var(--space-4)}.alert-item__body{flex:1;gap:2px;display:grid}.alert-item__body small{color:var(--color-text-muted)}.alert-item--paused .alert-item__body{opacity:.55}.switch{cursor:pointer;flex-shrink:0;display:inline-flex;position:relative}.switch input{opacity:0;cursor:pointer;position:absolute;inset:0}.switch__track{border-radius:var(--radius-pill);background:var(--color-surface-hover);width:46px;height:26px;transition:background-color var(--duration-fast) var(--ease-out)}.switch__track:after{content:"";border-radius:var(--radius-pill);width:20px;height:20px;transition:transform var(--duration-base) var(--ease-out);background:#fff;position:absolute;top:3px;left:3px}.switch input:checked+.switch__track{background:var(--color-primary)}.switch input:checked+.switch__track:after{transform:translate(20px)}.switch input:focus-visible+.switch__track{outline:2px solid var(--color-text);outline-offset:2px}.notification__icon{border-radius:var(--radius-pill);background:var(--color-surface-raised);width:44px;height:44px;color:var(--color-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.notification--unread .notification__icon{background:var(--color-accent);color:var(--color-text-on-accent)}.notification__body{flex:1;gap:2px;display:grid}.notification__body p,.notification__body small{color:var(--color-text-muted)}.profile-header{align-items:center;gap:var(--space-4);display:flex}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pulse{0%{opacity:.4;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes float{0%{transform:translateY(-6px)}to{transform:translateY(8px)}}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}@keyframes grow{0%{transform:scaleY(.1)}to{transform:scaleY(1)}}@keyframes ring-fill{0%{stroke-dashoffset:327px}}@keyframes ring-fill-small{0%{stroke-dashoffset:289px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}@media (width<=1024px){.hero__inner,.score-explainer,.grid-two,.grid-two--even{grid-template-columns:1fr}.hero-scene{max-width:520px;margin:0 auto}.province-summary{grid-template-columns:repeat(2,1fr)}.province-summary__score{grid-column:1/-1}.facts__inner,.steps,.feature-grid,.alert-form{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.public-header__nav{top:100%;left:var(--space-4);right:var(--space-4);gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-popover);flex-direction:column;display:none;position:absolute}.public-header__nav--open{display:flex}.public-header__toggle{display:inline-flex}.public-header__actions .button--ghost{display:none}.app-layout{padding:var(--space-3) var(--space-3) 96px;display:block}.app-layout__main{gap:var(--space-3)}.sidebar{z-index:40;top:auto;right:var(--space-3);bottom:var(--space-3);left:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-1);height:auto;padding:var(--space-2);border-radius:var(--radius-xl);background:var(--color-surface-raised);box-shadow:var(--shadow-popover);flex-direction:row;position:fixed}.sidebar__brand,.sidebar__label{display:none}.sidebar__nav{flex:1;justify-content:space-around;display:flex}.sidebar__profile{margin-top:0}.sidebar__link{padding:12px}.topbar{margin-bottom:var(--space-3)}.auth-layout{grid-template-columns:1fr}.auth-layout__panel{display:none}.stat-grid,.facts__inner,.steps,.feature-grid,.province-summary,.alert-form{grid-template-columns:1fr}.list__item{flex-wrap:wrap}.heatmap__row{grid-template-columns:36px repeat(12,1fr);gap:4px}.section{padding-top:var(--space-7)}.hero{padding-top:var(--space-5)}.hero-scene__card{transform:scale(.8)}}
