/* TessFlo design tokens. See docs/design-language.md before adding new variants. */
:root{
  --tess-paper:#fffbf6;--tess-ink:#1a1210;--tess-muted:#5e4f47;--tess-quiet:#75645a;
  --tess-accent:#e0482a;--tess-accent-hover:#c54830;--tess-border:#e7d9cd;
  --tess-surface:#fffdf9;--tess-soft:#f6eee6;--tess-dark-surface:#2a1f1a;--tess-on-dark-muted:#d6c8be;
  --tess-font:Geist,system-ui,sans-serif;--tess-font-editorial:'Instrument Serif',Georgia,serif;
  --tess-content-width:1200px;--tess-reading-width:760px;--tess-gutter:clamp(20px,5.5vw,88px);
  --tess-radius-pill:999px;--tess-radius-panel:28px;
  --tess-preview-gradient:linear-gradient(135deg,#ffd8b8,#f6c9ff);
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-03b02548.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-40d54143.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-b9c7c7dd.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;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-f6b09bcf.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;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-39c770b4.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-03b02548.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-40d54143.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-b9c7c7dd.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;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-f6b09bcf.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;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-39c770b4.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-03b02548.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-40d54143.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-b9c7c7dd.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;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-f6b09bcf.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;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-39c770b4.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/geist-03b02548.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/geist-40d54143.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/geist-b9c7c7dd.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;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/geist-f6b09bcf.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;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/geist-39c770b4.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;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/instrument-serif-5720eb94.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;
}
/* latin */
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/instrument-serif-131e9061.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;
}

/* Shared hero colors, geometry, and motion for both TessFlo pages. */
.tess-aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.tess-aurora>span{position:absolute;aspect-ratio:1;border-radius:50%;filter:blur(80px)}
.tess-aurora>span:nth-child(1){background:oklch(0.78 0.17 50);left:-8%;top:-12%;width:46%;opacity:.55;animation:t2Float1 16s ease-in-out infinite}
.tess-aurora>span:nth-child(2){background:oklch(0.74 0.19 5);left:62%;top:4%;width:42%;opacity:.45;animation:t2Float2 19s ease-in-out infinite}
.tess-aurora>span:nth-child(3){background:oklch(0.72 0.17 300);left:28%;top:46%;width:44%;opacity:.35;animation:t2Float3 22s ease-in-out infinite}
@keyframes t2Float1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(8%,10%) scale(1.15)}}
@keyframes t2Float2{0%,100%{transform:translate(0,0) scale(1.1)}50%{transform:translate(-10%,6%) scale(.9)}}
@keyframes t2Float3{0%,100%{transform:translate(0,0) scale(.95)}50%{transform:translate(6%,-12%) scale(1.12)}}
@media(prefers-reduced-motion:reduce){.tess-aurora>span{animation:none}}
/* Persistent navigation: page-wide sticky shell and warm floating surface. */
.site-header-shell{position:sticky;top:0;z-index:100;padding:12px 0;height:84px;box-sizing:border-box;pointer-events:none}
.hero-region{margin-top:-84px;padding-top:84px}
.site-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;box-sizing:border-box;width:100%;max-width:1440px;margin:auto;padding:10px clamp(20px,5.5cqw,88px);border:1px solid transparent;border-radius:0;pointer-events:auto;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease,border-radius .2s ease,padding .2s ease,width .2s ease}
.site-header-shell[data-scrolled=true] .site-header{width:calc(100% - 32px);max-width:1200px;padding:10px 20px;border-radius:24px;background:rgba(255,255,255,.94);border-color:rgba(94,79,71,.13);box-shadow:0 8px 28px -12px rgba(26,18,16,.24);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.site-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.header-download{display:inline-flex;align-items:center;justify-content:center;min-height:40px;box-sizing:border-box;padding:11px 18px;border-radius:999px;background:var(--tess-ink);color:var(--tess-paper);font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.site-menu-toggle{display:none;width:40px;height:40px;border:1px solid #5e4f4726;border-radius:50%;background:var(--tess-paper);color:var(--tess-ink);font:22px/1 system-ui;cursor:pointer}
.site-nav a:hover{color:var(--tess-accent-hover)!important}

.site-mobile-nav{position:absolute;top:calc(100% + 8px);left:0;right:0;padding:10px;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain;background:var(--tess-paper);border:1px solid #5e4f4726;border-radius:20px;box-shadow:0 12px 32px -12px #1a121033;display:flex;flex-direction:column}
.site-mobile-nav a{padding:14px 16px;border-radius:12px;color:var(--tess-muted);text-decoration:none;font-size:15px;font-weight:500}
/* Ink, not accent: accent-hover on --tess-soft is only 4.2:1. */
.site-mobile-nav a:hover{background:var(--tess-soft);color:var(--tess-ink)!important}
section[id]{scroll-margin-top:104px}
@media(max-width:900px){.site-header .site-nav{display:none!important}.site-menu-toggle{display:flex;align-items:center;justify-content:center}.site-header{width:calc(100% - 24px);padding:10px 8px!important;gap:10px!important}.site-header-shell[data-scrolled=true] .site-header{width:calc(100% - 24px);padding:10px 12px!important}.header-download{font-size:12px;padding:11px 14px}.site-header-actions{gap:8px}}
@media(max-width:360px){.header-download{padding:10px;font-size:11px}.site-header-actions{gap:6px}.site-menu-toggle{width:36px;height:36px}}
@media(min-width:901px){.site-mobile-nav{display:none}}
@media(prefers-reduced-motion:reduce){.site-header{transition:none}}

/* The tilted dog is the shared TessFlo identity, without a portrait frame. */
.tess-brand-mark{width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tess-brand-mark img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 5px #8c422a20)}
.feature-account img,.feature-mac img{object-fit:contain;border-radius:0}
.setup-system-list img,.tess-home-brand img,.tess-pro img{object-fit:contain}
@media(max-width:360px){.tess-brand-mark{width:38px;height:38px}}

/* Warm, spacious footer with parent-company attribution. */
.site-footer{padding:60px clamp(20px,5.5cqw,88px) 28px;border-top:1px solid #1a121014;background:linear-gradient(135deg,var(--tess-soft),var(--tess-paper) 65%);color:var(--tess-muted)}
.footer-main{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;padding-bottom:36px}
.footer-logo{display:inline-flex;align-items:center;gap:12px;font-size:28px;font-weight:600;letter-spacing:-.04em;color:var(--tess-ink);text-decoration:none}
.footer-logo img{width:44px;height:44px;object-fit:contain;border-radius:0;background:none;box-shadow:none}
.footer-brand p{margin:24px 0 16px;font-size:36px;font-weight:500;line-height:1.1;letter-spacing:-.04em;color:var(--tess-ink)}
.footer-brand em{font-family:var(--tess-font-editorial);font-weight:400;color:var(--tess-accent-hover)}
.footer-product{font-size:13px}.footer-label{display:block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--tess-quiet);margin-bottom:22px}
.footer-nav{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:8px}.footer-nav .footer-label{margin-bottom:8px}
.site-footer a{color:var(--tess-ink);text-decoration:none}.footer-nav a{font-size:14px}.site-footer a:hover{color:var(--tess-accent-hover)}.site-footer a:focus-visible{outline:2px solid var(--tess-accent);outline-offset:5px;border-radius:4px}
.footer-maker{margin-top:12px;font-size:13px}.footer-maker a{font-weight:500}.footer-maker a span{color:var(--tess-accent-hover)}
.footer-legal{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px}
.footer-bottom{max-width:1200px;margin:auto;padding-top:20px;border-top:1px solid var(--tess-border);display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;font-size:12px}.footer-bottom a{display:inline-flex;gap:10px;align-items:center}.footer-top{margin-left:auto;white-space:nowrap}
@media(max-width:700px){.footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 24px;padding-bottom:28px}.footer-brand{grid-column:1/-1}.footer-brand p{font-size:32px;margin-top:20px}.site-footer{padding-top:40px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:16px}.footer-legal{gap:12px 20px}.footer-top{margin-left:0}}

/* Shared UI: load brand.css after the page stylesheet. */
body{font-family:var(--tess-font);color:var(--tess-ink);background:var(--tess-paper)}
[hidden]{display:none!important}
.site-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--tess-ink);font-size:22px;font-weight:600;letter-spacing:-.04em}
.site-header{line-height:1.4}
.site-nav{display:flex;gap:34px;font-size:15px;font-weight:500}.site-nav a{color:var(--tess-muted);text-decoration:none;white-space:nowrap}
.header-legal{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 16px;border:1px solid var(--tess-border);border-radius:var(--tess-radius-pill);font-size:13px;font-weight:600;text-decoration:none;color:var(--tess-ink);white-space:nowrap;background:var(--tess-paper)}
:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--tess-accent)!important;outline-offset:4px!important}
.skip-link{position:absolute;top:12px;left:20px;padding:8px 14px;background:var(--tess-paper);color:var(--tess-ink);transform:translateY(-180%);z-index:101}.skip-link:focus{transform:none}
.tess-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;padding:17px 28px;min-height:50px;border:1px solid transparent;border-radius:var(--tess-radius-pill);font:600 16px/1.4 var(--tess-font);text-decoration:none}
.tess-button-primary{background:var(--tess-ink);color:var(--tess-paper);box-shadow:0 16px 34px -14px #e0482acc}
.tess-button-secondary{background:#ffffffb3;border-color:#1a121024;color:var(--tess-ink)}
:where(a,button)[aria-disabled=true]{opacity:.48;cursor:not-allowed;box-shadow:none!important;text-decoration:none!important}
a[aria-disabled=true]:hover{color:inherit}
.site-footer{display:block;box-sizing:border-box;width:100%;max-width:none;margin:0;line-height:1.6;font-family:var(--tess-font);text-align:left}
.site-footer .footer-main,.site-footer .footer-legal,.site-footer .footer-bottom{max-width:var(--tess-content-width)}
.site-footer .footer-brand p{margin:24px 0 16px;font-size:36px;font-weight:500;line-height:1.1;letter-spacing:-.04em;color:var(--tess-ink)}
.site-footer .footer-brand em{font:italic 400 1em/1.1 var(--tess-font-editorial);letter-spacing:inherit;color:var(--tess-accent-hover);background:none}
.site-footer .footer-logo{font-size:28px;font-weight:600;letter-spacing:-.04em}
.window-controls{display:flex;gap:7px;align-items:center}.window-controls i{display:block;width:9px;height:9px;border-radius:50%;background:#ff5e57}.window-controls i:nth-child(2){background:#ffbd2e}.window-controls i:nth-child(3){background:#28c840}
.management-icon svg{display:block;width:56px;height:56px;stroke-width:1.5}
@media(max-width:700px){.site-footer .footer-brand p{font-size:32px;margin-top:20px}}
@media(max-width:360px){.header-legal{font-size:11px;padding:10px}.site-brand{gap:7px}}
/* A single motion guard also covers inline marketing animations and JS reveals. */
.footer-legal button{padding:0;border:0;background:none;color:var(--tess-ink);font:inherit;cursor:pointer;text-align:left}
.footer-legal button:hover{color:var(--tess-accent-hover)}
.analytics-choice{position:fixed;z-index:200;bottom:16px;right:16px;box-sizing:border-box;width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--tess-border);border-radius:var(--tess-radius-panel);background:var(--tess-paper);color:var(--tess-ink);box-shadow:0 12px 40px #1a121026;font:16px/1.6 var(--tess-font);text-align:left}
.analytics-choice h2{font:600 22px/1.3 var(--tess-font);letter-spacing:-.03em;margin:0 0 12px}
.analytics-choice p{font:400 15px/1.6 var(--tess-font);margin:0 0 14px;color:var(--tess-muted)}
.analytics-choice a{color:var(--tess-accent-hover);text-decoration:underline}
.analytics-choice-actions{display:flex;flex-wrap:wrap;gap:12px}
.analytics-choice .tess-button{flex:1;padding:12px 16px;font-size:15px;cursor:pointer;white-space:nowrap}
@media(max-width:420px){.analytics-choice{padding:20px}.analytics-choice-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}
