/* ===== Self-hosted fonts (extracted from Claude Design standalone export) ===== */
@font-face{font-family:'Fraunces';font-style:italic;font-weight:500;font-display:swap;src:url("../fonts/Fraunces-1.woff2") format("woff2");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-weight:500;font-display:swap;src:url("../fonts/Fraunces-2.woff2") format("woff2");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-weight:500;font-display:swap;src:url("../fonts/Fraunces-3.woff2") format("woff2");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-weight:400;font-display:swap;src:url("../fonts/Fraunces-4.woff2") format("woff2");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-weight:400;font-display:swap;src:url("../fonts/Fraunces-5.woff2") format("woff2");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-weight:400;font-display:swap;src:url("../fonts/Fraunces-6.woff2") format("woff2");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-weight:500;font-display:swap;src:url("../fonts/Fraunces-4.woff2") format("woff2");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-weight:500;font-display:swap;src:url("../fonts/Fraunces-5.woff2") format("woff2");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-weight:500;font-display:swap;src:url("../fonts/Fraunces-6.woff2") format("woff2");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-weight:600;font-display:swap;src:url("../fonts/Fraunces-4.woff2") format("woff2");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-weight:600;font-display:swap;src:url("../fonts/Fraunces-5.woff2") format("woff2");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-weight:600;font-display:swap;src:url("../fonts/Fraunces-6.woff2") format("woff2");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-weight:700;font-display:swap;src:url("../fonts/Fraunces-4.woff2") format("woff2");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-weight:700;font-display:swap;src:url("../fonts/Fraunces-5.woff2") format("woff2");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-weight:700;font-display:swap;src:url("../fonts/Fraunces-6.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-3.woff2") format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-4.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-5.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-6.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-7.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-3.woff2") format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-4.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-5.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-6.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-7.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-3.woff2") format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-4.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-5.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-6.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-7.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-3.woff2") format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-4.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-5.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-6.woff2") format("woff2");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:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-7.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/JetBrainsMono-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/JetBrainsMono-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/JetBrainsMono-3.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/JetBrainsMono-4.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/JetBrainsMono-5.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/JetBrainsMono-6.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/JetBrainsMono-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/JetBrainsMono-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/JetBrainsMono-3.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/JetBrainsMono-4.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/JetBrainsMono-5.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/JetBrainsMono-6.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/JetBrainsMono-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/JetBrainsMono-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/JetBrainsMono-3.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/JetBrainsMono-4.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/JetBrainsMono-5.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/JetBrainsMono-6.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/JetBrainsMono-1.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/JetBrainsMono-2.woff2") format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/JetBrainsMono-3.woff2") format("woff2");unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/JetBrainsMono-4.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/JetBrainsMono-5.woff2") format("woff2");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:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/JetBrainsMono-6.woff2") format("woff2");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}


/* ============================================================
   SpendFlow Studio - Home (static build)
   Reading Nook palette + component styles.
   Plain static CSS: no framework, no runtime, no external requests.
   ============================================================ */

/* ---- Reading Nook palette ---- */
:root{
  --cream:#FBF5EC;      --ivory:#FFFCF7;      --espresso:#33291F;
  --cocoa:#6B5A4A;      --terracotta:#C2683F; --terracotta-dk:#AD5A34;
  --gold:#C8A24A;       --sage:#9DAE8C;       --line:#E7DBC8;
  --sand:#F3ECDF;       --sand2:#F2EBDE;
  --serif:Fraunces,Georgia,serif;
  --sans:Inter,system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}

*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--cream); color:var(--espresso);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
button{font:inherit}
input{font:inherit}
img{max-width:100%}
::selection{background:#E5C2AB; color:#33291F}

/* ---- Featured / bestseller grids (from prototype) ---- */
#home-bestsellers-grid,#home-bundles-grid{grid-template-columns:repeat(4,1fr)}
@media(max-width:920px){#home-bestsellers-grid,#home-bundles-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){#home-bestsellers-grid,#home-bundles-grid{grid-template-columns:repeat(1,1fr)}}

/* ---- Interactive states (replace runtime style-hover / style-active) ---- */
.nav-link{transition:color .15s ease}
.nav-link:hover{color:var(--terracotta)}

.cart-btn{transition:border-color .15s ease}
.cart-btn:hover{border-color:#D9CAB1}

.btn-primary{transition:transform 120ms ease, background 150ms ease}
.btn-primary:hover{background:var(--terracotta-dk); transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0) scale(.99)}

.btn-secondary{transition:background 150ms ease, border-color 150ms ease}
.btn-secondary:hover{background:var(--ivory); border-color:var(--terracotta)}

.link-cta{transition:color .15s ease}
.link-cta:hover{color:var(--terracotta-dk)}

.card-link{transition:transform 160ms ease}
.card-link:hover{transform:translateY(-4px)}

.footer-link{transition:color .15s ease}
.footer-link:hover{color:var(--ivory)}

.footer-get{transition:background .15s ease}
.footer-get:hover{background:var(--terracotta-dk)}

/* ============================================================
   ProductCard  (was ProductCard.dc.html; themed via CSS vars)
   ============================================================ */
.pcard{
  /* light defaults (money) */
  --field:#F3DCCB; --eyebrow:#9A5433; --ink:#33291F; --accent:#C2683F;
  --track:rgba(51,41,31,.10); --grid:rgba(51,41,31,.07);
  --cardBg:#FFFCF7; --cardBorder:rgba(51,41,31,.08); --bodySub:#6B5A4A;
  --priceInk:#33291F; --originalInk:#A6957F;
  --badgeBg:#F5E7D2; --badgeInk:#9A5433; --badgeDot:#C2683F;

  width:100%; max-width:360px;
  background:var(--cardBg); border:1px solid var(--cardBorder);
  border-radius:16px; overflow:hidden;
  box-shadow:0 8px 24px -16px rgba(51,41,31,.22);
  display:flex; flex-direction:column;
  font-family:var(--sans);
}
.pcard--money      {--field:#F3DCCB; --eyebrow:#9A5433; --accent:#C2683F}
.pcard--realestate {--field:#E4E9DD; --eyebrow:#5C6B4F; --accent:#6E7F60}
.pcard--investing  {--field:#F1E4BE; --eyebrow:#8A6B22; --accent:#A9842F}
.pcard--wedding    {--field:#EFDBD5; --eyebrow:#7E3B38; --accent:#9A4A46}
.pcard--lifehome   {--field:#E9DECB; --eyebrow:#6B5A4A; --accent:#8A7359}
.pcard--bundles{
  --field:#33291F; --eyebrow:#C8A24A; --ink:#FFFCF7; --accent:#C8A24A;
  --track:rgba(255,252,247,.16); --grid:rgba(255,252,247,.09);
  --cardBg:#33291F; --cardBorder:rgba(255,252,247,.10); --bodySub:#CBB79A;
  --priceInk:#FFFCF7; --originalInk:rgba(203,183,154,.7);
  --badgeBg:rgba(200,162,74,.16); --badgeInk:#EAD7A6; --badgeDot:#C8A24A;
}

.pcard__field{position:relative; height:190px; padding:20px; background:var(--field); overflow:hidden; display:flex; flex-direction:column}
.pcard__grid{position:absolute; inset:0; width:100%; height:100%}
.pcard__grid line{stroke:var(--grid); stroke-width:1}
.pcard__top{position:relative; z-index:1; display:flex; justify-content:space-between; align-items:flex-start}
.pcard__eyebrow{font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--eyebrow)}

/* icon: show the right one per category */
.pcard__icon{display:none}
.pcard--bundles .pcard__icon--bundle{display:block}
.pcard:not(.pcard--bundles) .pcard__icon--single{display:block}
.pcard__icon--bundle rect{stroke:var(--accent); fill:var(--field)}
.pcard__icon--single .ring-track{stroke:var(--track)}
.pcard__icon--single .ring-fill{stroke:var(--accent)}

.pcard__titlewrap{position:relative; z-index:1; margin-top:auto}
.pcard__title{margin:0; font-family:var(--serif); font-weight:600; font-size:25px; line-height:1.12; letter-spacing:-.01em; color:var(--ink)}
.pcard__meta{margin-top:9px; font-family:var(--mono); font-size:9px; letter-spacing:.13em; text-transform:uppercase; color:var(--eyebrow); opacity:.72}

.pcard__body{padding:18px 20px 20px; display:flex; flex-direction:column; gap:14px; flex:1}
.pcard__desc{margin:0; font-size:13.5px; line-height:1.55; color:var(--bodySub)}
.pcard__prices{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.pcard__launch{font-family:var(--mono); font-size:22px; font-weight:600; color:var(--priceInk)}
.pcard__original{font-family:var(--mono); font-size:13.5px; color:var(--originalInk); text-decoration:line-through}
.pcard__badge{margin-left:auto; display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border-radius:999px; background:var(--badgeBg); color:var(--badgeInk); font-family:var(--mono); font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase}
.pcard__badge-dot{width:5px; height:5px; border-radius:999px; background:var(--badgeDot)}
.pcard__cart{margin-top:auto; width:100%; padding:11px 16px; border:none; border-radius:10px; background:#C2683F; color:#FFFCF7; font-family:var(--sans); font-size:14px; font-weight:600; cursor:pointer; transition:transform 80ms ease, background 150ms ease}
.pcard__cart:hover{background:#AD5A34}
.pcard__cart:active{transform:scale(.99)}

/* ---- Photo card (opt-in): full square hero image on top, all text below --------
   Reusable pattern for products #2–50. To adopt: add `pcard--photo` to the
   article, drop assets/img/<idx>-<slug>/hero.webp (square, e.g. 794x794), point the
   <img class="pcard__photo"> at it, and place the .pcard__titlewrap inside .pcard__body.
   No per-card CSS. Because source images are 1:1, the square media area shows the
   whole graphic with nothing cropped. */
.pcard--photo .pcard__field{height:auto; aspect-ratio:1/1; padding:0; display:block}
.pcard--photo .pcard__photo{display:block; width:100%; height:100%; object-fit:cover; object-position:center}
/* decorative placeholder art is kept in the markup but hidden on photo cards (reversible) */
.pcard--photo .pcard__grid,
.pcard--photo .pcard__top{display:none}
/* title/meta now sit in the text strip below the image, not overlaying it */
.pcard--photo .pcard__titlewrap{margin-top:0}

/* ============================================================
   Motion  (opt-in; content fully visible without JS)
   Only active when <html class="motion-ok"> (set by inline script
   when JS is on AND prefers-reduced-motion is NOT set).
   ============================================================ */
.motion-ok [data-reveal]{
  opacity:0; transform:translateY(20px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
}
.motion-ok [data-reveal].is-revealed{opacity:1; transform:none}

@media (prefers-reduced-motion: reduce){
  .motion-ok [data-reveal]{opacity:1 !important; transform:none !important; transition:none !important}
}

/* ============================================================
   Shared page components (used across Shop / Bundles / Product /
   Contact / About / legal). Content-first: everything is real
   markup and stays visible/crawlable without JS.
   ============================================================ */

/* ---- Utility hovers (replace runtime style-hover) ---- */
.link-underline{transition:color .15s ease}
.link-underline:hover{text-decoration:underline}
.link-breadcrumb{transition:color .15s ease}
.link-breadcrumb:hover{color:var(--terracotta)}
.card-link--2{transition:transform 160ms ease; text-decoration:none; color:inherit; display:block; border-radius:16px}
.card-link--2:hover{transform:translateY(-2px)}

/* ---- Contact email card ---- */
.email-card{transition:border-color 160ms ease, transform 140ms ease, box-shadow 160ms ease}
.email-card:hover{border-color:#E0B79C; transform:translateY(-2px); box-shadow:0 18px 40px -26px rgba(194,104,63,0.5)}

/* ---- Accordion, boxed with chevron (Contact FAQ). Native <details>. ---- */
.faq{display:flex; flex-direction:column; gap:12px}
.faq-item{background:#FFFCF7; border:1px solid #E7DBC8; border-radius:14px; overflow:hidden}
.faq-item>summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:16px; padding:20px 22px}
.faq-item>summary::-webkit-details-marker{display:none}
.faq-q{flex:1; font-family:var(--serif); font-size:clamp(17px,2.2vw,20px); font-weight:600; line-height:1.3; color:#33291F}
.faq-caret{flex:none; width:28px; height:28px; border-radius:8px; background:#F3ECDF; display:inline-flex; align-items:center; justify-content:center; transition:transform 300ms cubic-bezier(.2,.7,.2,1), background 200ms ease}
.faq-item[open] .faq-caret{transform:rotate(180deg); background:#F1E4BE}
.faq-a{margin:0; padding:0 22px 22px; font-size:15.5px; line-height:1.7; color:#6B5A4A}

/* ---- Accordion, borderless rows with +/- sign (Product FAQ). Native <details>. ---- */
.pfaq{display:flex; flex-direction:column}
.pfaq-item{border-top:1px solid #E7DBC8}
.pfaq-item>summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:16px; padding:20px 0}
.pfaq-item>summary::-webkit-details-marker{display:none}
.pfaq-q{flex:1; font-family:var(--serif); font-size:19px; font-weight:600; color:#33291F}
.pfaq-sign{flex:none; width:26px; height:26px; border-radius:999px; border:1px solid #D9CAB1; display:inline-flex; align-items:center; justify-content:center; color:#C2683F; font-size:16px; line-height:1}
.pfaq-sign::before{content:"+"}
.pfaq-item[open] .pfaq-sign::before{content:"\2212"}   /* U+2212 minus sign (not an en/em dash) */
.pfaq-a{margin:0; padding:0 0 22px; font-size:15.5px; line-height:1.65; color:#6B5A4A; max-width:64ch}

/* ---- Shop filter chips + sort ---- */
.chip{display:inline-flex; align-items:center; gap:8px; padding:8px 15px; border-radius:999px; border:1px solid #E7DBC8; background:#FFFCF7; color:#6B5A4A; font-size:13.5px; font-weight:500; cursor:pointer; transition:border-color 150ms ease, background 150ms ease}
.chip:hover{border-color:var(--terracotta)}
.chip.is-active{background:#33291F; color:#FFFCF7; border-color:#33291F}
.chip-count{font-family:var(--mono); font-size:11px; color:#A6957F}
.chip.is-active .chip-count{color:rgba(255,252,247,0.55)}
.sortwrap{display:inline-flex; gap:4px; padding:4px; background:#EFE7D8; border:1px solid #E7DBC8; border-radius:11px}
.sortbtn{padding:7px 13px; border:none; border-radius:8px; background:transparent; color:#6B5A4A; font-size:12.5px; font-weight:500; cursor:pointer; white-space:nowrap; transition:background 150ms ease}
.sortbtn.is-active{background:#FFFCF7; color:#33291F; font-weight:600; box-shadow:0 1px 3px rgba(51,41,31,0.14)}
/* When JS is off, the sort control does nothing useful; hide it so we don't imply broken UI. */
html:not(.has-js) .shop-sort{display:none}

/* ---- Product gallery (thumbnail-switched shots) ---- */
.shot{display:none}
.shot.is-active{display:block}
.thumb{position:relative; padding:10px; border:1px solid #E7DBC8; border-radius:11px; background:#FFFCF7; cursor:pointer; text-align:left}
.thumb-ring{position:absolute; inset:0; border:2px solid #C2683F; border-radius:11px; pointer-events:none; display:none}
.thumb.is-active .thumb-ring{display:block}
