@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/fraunces-vietnamese-400-normal-CvGt0Ybw.woff2) format("woff2"),url(/build/assets/fraunces-vietnamese-400-normal-B65MOf9T.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:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/fraunces-latin-ext-400-normal-D8gbi3Gu.woff2) format("woff2"),url(/build/assets/fraunces-latin-ext-400-normal-UihxqfOe.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:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/fraunces-latin-400-normal-6IfK1voy.woff2) format("woff2"),url(/build/assets/fraunces-latin-400-normal-NUPT2cO8.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/fraunces-vietnamese-500-normal-GOH_-EGq.woff2) format("woff2"),url(/build/assets/fraunces-vietnamese-500-normal-B-KbxExq.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/fraunces-latin-ext-500-normal-Z5DV8IzT.woff2) format("woff2"),url(/build/assets/fraunces-latin-ext-500-normal-BMcFk1Xs.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/build/assets/fraunces-latin-500-normal-BTR4KCeb.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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/fraunces-vietnamese-600-normal-BjlAJixd.woff2) format("woff2"),url(/build/assets/fraunces-vietnamese-600-normal-DlAl5EAR.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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2"),url(/build/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/build/assets/fraunces-latin-600-normal-DL5QCzvS.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:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/build/assets/fraunces-vietnamese-600-italic-DkyY-g7b.woff2) format("woff2"),url(/build/assets/fraunces-vietnamese-600-italic-BV4E0YjK.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:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/build/assets/fraunces-latin-ext-600-italic-BwNYOmL7.woff2) format("woff2"),url(/build/assets/fraunces-latin-ext-600-italic-CZUOs6oU.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:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/build/assets/fraunces-latin-600-italic-O70d2LGK.woff2) format("woff2"),url(/build/assets/fraunces-latin-600-italic-BlP2rMdV.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.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{--bg: #1b1713;--surface: #242019;--accent: #c8722e;--accent-dim: #c8722e26;--ink: #f2ece2;--ink-muted: #a89c8b;--ink-faint: #6c6154;--line: #3a3126;--line-soft: #2a251d;--good: #869c72;--warn: #c99a4a;--bad: #b2604b;--neutral: #6c6154;--font-display: "Fraunces", "Iowan Old Style", serif;--font-body: "IBM Plex Mono", ui-monospace, monospace;--sp-3xs: .4rem;--sp-2xs: .7rem;--sp-xs: 1.1rem;--sp-sm: 1.6rem;--sp-md: 2.5rem;--sp-lg: 3.2rem;--sp-xl: 4.6rem;--radius: 3px;--shadow-sm: 0 1px 0 rgba(0, 0, 0, .4);--shadow-md: 0 6px 16px -6px rgba(0, 0, 0, .5), 0 18px 34px -14px rgba(0, 0, 0, .45);--shadow-lg: 0 10px 28px -8px rgba(0, 0, 0, .55), 0 30px 60px -18px rgba(0, 0, 0, .5);color-scheme:dark}:root[data-theme=light]{--bg: #f2ece0;--surface: #e8ded0;--accent-dim: #c8722e1f;--ink: #251f16;--ink-muted: #6d6250;--ink-faint: #9b8f7a;--line: #d7c9ae;--line-soft: #ded2b9;--good: #5d7a49;--warn: #97701f;--bad: #9c4632;--neutral: #9b8f7a;--shadow-sm: 0 1px 0 rgba(37, 31, 22, .08);--shadow-md: 0 6px 16px -6px rgba(37, 31, 22, .16), 0 18px 34px -14px rgba(37, 31, 22, .12);--shadow-lg: 0 10px 28px -8px rgba(37, 31, 22, .18), 0 30px 60px -18px rgba(37, 31, 22, .14);color-scheme:light}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,p,ul,ol{margin:0}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit}.psi-noscript{padding:var(--sp-sm);margin:var(--sp-md) 3.5vw 0;border:1px solid var(--warn);color:var(--ink);font-size:.85rem}[x-cloak]{display:none!important}.psi-page{max-width:68rem;margin:0 auto;padding:var(--sp-xl) 5vw var(--sp-lg);border-left:1px solid var(--line);padding-left:var(--sp-lg)}@media(min-width:900px){.psi-page{margin-left:clamp(2rem,9vw,11rem);margin-right:auto}}@media(max-width:640px){.psi-page{border-left:none;padding-left:0;margin:0 1.25rem;padding-top:2.8rem}}.psi-masthead{margin-bottom:var(--sp-lg)}.psi-masthead__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-sm) var(--sp-md)}.psi-eyebrow{display:inline-block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-2xs)}.psi-theme-toggle{display:inline-flex;gap:var(--sp-sm);flex-shrink:0}.psi-theme-toggle button{background:none;border:none;padding:.25rem 0 .4rem;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;position:relative}.psi-theme-toggle button.is-active{color:var(--accent)}.psi-theme-toggle button.is-active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent)}.psi-title{font-family:var(--font-display);font-weight:600;font-size:2.4rem;line-height:1.1;letter-spacing:-.01em}.psi-title em{font-style:italic;color:var(--accent);font-weight:600}.psi-tagline{margin-top:var(--sp-2xs);max-width:38rem;color:var(--ink-muted);font-size:.85rem}.psi-why{margin:var(--sp-xl) 0;padding-top:var(--sp-lg);border-top:1px solid var(--line-soft)}.psi-why__title{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--sp-md)}.psi-why__list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--sp-md)}.psi-why__item{display:grid;grid-template-columns:3.2rem 1fr;gap:var(--sp-sm)}@media(max-width:640px){.psi-why__item{grid-template-columns:2.2rem 1fr}}.psi-why__num{font-family:var(--font-display);font-style:italic;font-size:1.6rem;color:var(--accent);line-height:1.3}.psi-why__problem{font-weight:600;font-size:.92rem;color:var(--ink)}.psi-why__solution{margin-top:.35rem;font-size:.82rem;line-height:1.6;color:var(--ink-muted);max-width:40rem}.psi-why__solution code{font-family:var(--font-body);background:var(--surface);padding:.05rem .35rem;border-radius:var(--radius)}.psi-callout{margin-top:var(--sp-lg);padding:var(--sp-sm) var(--sp-md);border:1px solid var(--accent);background:var(--accent-dim)}.psi-callout__label{display:block;margin-bottom:.4rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:600}.psi-callout p{font-size:.85rem;line-height:1.6;color:var(--ink);max-width:42rem}.psi-footer{margin-top:var(--sp-xl);padding-top:var(--sp-sm);border-top:1px solid var(--line-soft);color:var(--ink-faint);font-size:.72rem;letter-spacing:.01em}.psi-banner{margin-bottom:var(--sp-md);padding:var(--sp-xs) var(--sp-sm);border-left:3px solid var(--bad);background:var(--surface);font-size:.85rem;color:var(--ink)}.psi-banner--warn{border-left-color:var(--warn);color:var(--ink)}.psi-form{display:flex;flex-direction:column;gap:var(--sp-md)}.psi-label{display:block;margin-bottom:var(--sp-2xs);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.psi-label small{text-transform:none;letter-spacing:normal;color:var(--ink-faint)}.psi-textarea,.psi-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);padding:var(--sp-2xs) .1rem;font-size:.9rem;color:var(--ink);transition:border-color .15s ease;resize:vertical}.psi-textarea::placeholder,.psi-input::placeholder{color:var(--ink-faint)}.psi-textarea:focus,.psi-input:focus{outline:none;border-bottom-color:var(--accent)}.psi-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-md)}.psi-row>.grow{flex:1 1 14rem}.psi-segmented{display:inline-flex;gap:var(--sp-md);border-bottom:1px solid var(--line);padding-bottom:.1rem}.psi-segmented__btn{background:none;border:none;padding:.3rem 0 .6rem;font-size:.8rem;letter-spacing:.03em;color:var(--ink-faint);cursor:pointer;position:relative}.psi-segmented__btn.is-active{color:var(--ink)}.psi-segmented__btn.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent)}.psi-check{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--ink-muted);cursor:pointer;padding-bottom:.6rem}.psi-check input{accent-color:var(--accent);width:.95rem;height:.95rem}.psi-file{font-size:.8rem;color:var(--ink-faint)}.psi-file::file-selector-button{margin-right:var(--sp-xs);padding:.5rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink-muted);font-size:.75rem;cursor:pointer}.psi-file::file-selector-button:hover{border-color:var(--accent);color:var(--ink)}.psi-error-text{margin-top:.4rem;font-size:.78rem;color:var(--bad)}.psi-confirm{border-left:3px solid var(--warn);background:var(--surface);padding:var(--sp-sm)}.psi-confirm p{font-size:.82rem;color:var(--ink);margin-bottom:var(--sp-xs)}.psi-confirm .psi-row{align-items:center;gap:var(--sp-xs)}.psi-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.85rem 1.8rem;font-size:.82rem;letter-spacing:.02em;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.psi-btn--primary{background:var(--accent);color:#1b1713;font-weight:600;box-shadow:var(--shadow-sm)}.psi-btn--primary:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.psi-btn--primary:disabled{opacity:.6;cursor:wait;transform:none}.psi-btn--ghost{background:transparent;border-color:var(--line);color:var(--ink-muted)}.psi-btn--ghost:hover{border-color:var(--accent);color:var(--ink)}.psi-btn--outline{background:transparent;border-color:var(--accent);color:var(--accent)}.psi-btn--outline:hover{background:var(--accent-dim)}.psi-link{font-size:.8rem;color:var(--ink-faint);text-decoration:underline;text-underline-offset:3px}.psi-link:hover{color:var(--ink-muted)}.psi-results-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-sm);margin-bottom:var(--sp-lg);padding-bottom:var(--sp-sm);border-bottom:1px solid var(--line-soft)}.psi-results-header__url{font-weight:500;word-break:break-all}.psi-results-header__meta{margin-top:.2rem;font-size:.78rem;color:var(--ink-faint)}.psi-scoreboard{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp-lg);margin-bottom:var(--sp-lg)}@media(max-width:640px){.psi-scoreboard{grid-template-columns:1fr}}.psi-scoreboard__hero{padding:var(--sp-sm) 0;border-top:2px solid var(--line)}.psi-scoreboard__hero-value{font-family:var(--font-display);font-size:5rem;line-height:1;font-weight:600}.psi-scoreboard__hero-label{margin-top:var(--sp-3xs);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.psi-scoreboard__list{display:flex;flex-direction:column}.psi-scoreboard__item{display:flex;align-items:baseline;justify-content:space-between;padding:var(--sp-2xs) 0;border-top:1px solid var(--line-soft);font-size:.85rem}.psi-scoreboard__item:last-child{border-bottom:1px solid var(--line-soft)}.psi-scoreboard__item-label{color:var(--ink-muted);text-transform:capitalize}.psi-scoreboard__item-value{font-family:var(--font-display);font-size:1.3rem;font-weight:600}.is-good{color:var(--good)}.is-warn{color:var(--warn)}.is-bad{color:var(--bad)}.is-neutral{color:var(--ink-faint)}.psi-vitals{margin-bottom:var(--sp-lg)}.psi-vitals__title{margin-bottom:var(--sp-xs);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.psi-vitals__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}.psi-vitals__item{display:flex;align-items:center;justify-content:space-between;background:var(--surface);padding:var(--sp-2xs) var(--sp-xs);font-size:.82rem}.psi-vitals__item-value{font-weight:600}.psi-findings{display:flex;flex-direction:column;gap:var(--sp-xs);margin-bottom:var(--sp-xl)}.psi-findings__section{border-left:3px solid var(--line)}.psi-findings__section.is-error{border-left-color:var(--bad)}.psi-findings__section.is-warning{border-left-color:var(--warn)}.psi-findings__section.is-passed{border-left-color:var(--good)}.psi-findings__header{display:flex;width:100%;align-items:center;justify-content:space-between;background:none;border:none;padding:var(--sp-2xs) var(--sp-sm);text-align:left;font-size:.82rem;font-weight:600;cursor:pointer;color:var(--ink)}.psi-findings__header-toggle{color:var(--ink-faint);font-family:var(--font-display)}.psi-findings__body{border-top:1px solid var(--line-soft)}.psi-findings__item{padding:var(--sp-xs) var(--sp-sm);border-top:1px solid var(--line-soft)}.psi-findings__item:first-child{border-top:none}.psi-findings__item-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-2xs)}.psi-findings__item-title{font-size:.85rem;font-weight:500}.psi-findings__item-meta{font-size:.72rem;color:var(--ink-faint)}.psi-findings__item-value{margin-top:.3rem;font-size:.76rem;color:var(--warn)}.psi-findings__item-desc{margin-top:.3rem;font-size:.78rem;line-height:1.55;color:var(--ink-muted)}.psi-export{position:sticky;bottom:var(--sp-xs);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs);padding:var(--sp-sm);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg)}.psi-select{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .8rem;font-size:.8rem;color:var(--ink)}.psi-select:focus{outline:none;border-color:var(--accent)}
