@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@1,900&family=Syne:wght@600;700;800&family=DM+Mono:wght@400&family=DM+Sans:wght@300;400;500;600&display=swap');
/*
 * Static-page stylesheet SOURCE — compiled to public/css/site.css by
 * `npm run build:css` (postcss-import inlines the @imports, Tailwind generates
 * the utilities scanned from ./public + ./src, autoprefixer finishes).
 *
 * The prelogin pages live in public/ and are served raw (no Vite/Tailwind
 * transform), so they link the prebuilt /css/site.css directly. The React
 * post-login app (app.html) links the same file, so both halves share one
 * source of truth. Keep this import order: Tailwind first (base/components/
 * utilities + design tokens), then the bespoke component layers.
 */
/**
 * Tailwind entry for the Tokans website — the single styling source of truth.
 *
 * The :root block below defines the canonical design tokens (light / sky-blue /
 * amber, mirroring the marketing landing). tailwind.config.cjs maps its colour,
 * font, radius and shadow scales onto these variables, so static HTML shells and
 * React islands render identically. Preflight is off (see tailwind.config.cjs);
 * shared resets and primitives live in the @layer blocks here.
 */
*, ::before, ::after{
    --tw-border-spacing-x:            0;
    --tw-border-spacing-y:            0;
    --tw-translate-x:            0;
    --tw-translate-y:            0;
    --tw-rotate:            0;
    --tw-skew-x:            0;
    --tw-skew-y:            0;
    --tw-scale-x:            1;
    --tw-scale-y:            1;
    --tw-pan-x:             ;
    --tw-pan-y:             ;
    --tw-pinch-zoom:             ;
    --tw-scroll-snap-strictness:            proximity;
    --tw-gradient-from-position:             ;
    --tw-gradient-via-position:             ;
    --tw-gradient-to-position:             ;
    --tw-ordinal:             ;
    --tw-slashed-zero:             ;
    --tw-numeric-figure:             ;
    --tw-numeric-spacing:             ;
    --tw-numeric-fraction:             ;
    --tw-ring-inset:             ;
    --tw-ring-offset-width:            0px;
    --tw-ring-offset-color:            #fff;
    --tw-ring-color:            rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow:            0 0 #0000;
    --tw-ring-shadow:            0 0 #0000;
    --tw-shadow:            0 0 #0000;
    --tw-shadow-colored:            0 0 #0000;
    --tw-blur:             ;
    --tw-brightness:             ;
    --tw-contrast:             ;
    --tw-grayscale:             ;
    --tw-hue-rotate:             ;
    --tw-invert:             ;
    --tw-saturate:             ;
    --tw-sepia:             ;
    --tw-drop-shadow:             ;
    --tw-backdrop-blur:             ;
    --tw-backdrop-brightness:             ;
    --tw-backdrop-contrast:             ;
    --tw-backdrop-grayscale:             ;
    --tw-backdrop-hue-rotate:             ;
    --tw-backdrop-invert:             ;
    --tw-backdrop-opacity:             ;
    --tw-backdrop-saturate:             ;
    --tw-backdrop-sepia:             ;
    --tw-contain-size:             ;
    --tw-contain-layout:             ;
    --tw-contain-paint:             ;
    --tw-contain-style:             ;
}
::backdrop{
    --tw-border-spacing-x:            0;
    --tw-border-spacing-y:            0;
    --tw-translate-x:            0;
    --tw-translate-y:            0;
    --tw-rotate:            0;
    --tw-skew-x:            0;
    --tw-skew-y:            0;
    --tw-scale-x:            1;
    --tw-scale-y:            1;
    --tw-pan-x:             ;
    --tw-pan-y:             ;
    --tw-pinch-zoom:             ;
    --tw-scroll-snap-strictness:            proximity;
    --tw-gradient-from-position:             ;
    --tw-gradient-via-position:             ;
    --tw-gradient-to-position:             ;
    --tw-ordinal:             ;
    --tw-slashed-zero:             ;
    --tw-numeric-figure:             ;
    --tw-numeric-spacing:             ;
    --tw-numeric-fraction:             ;
    --tw-ring-inset:             ;
    --tw-ring-offset-width:            0px;
    --tw-ring-offset-color:            #fff;
    --tw-ring-color:            rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow:            0 0 #0000;
    --tw-ring-shadow:            0 0 #0000;
    --tw-shadow:            0 0 #0000;
    --tw-shadow-colored:            0 0 #0000;
    --tw-blur:             ;
    --tw-brightness:             ;
    --tw-contrast:             ;
    --tw-grayscale:             ;
    --tw-hue-rotate:             ;
    --tw-invert:             ;
    --tw-saturate:             ;
    --tw-sepia:             ;
    --tw-drop-shadow:             ;
    --tw-backdrop-blur:             ;
    --tw-backdrop-brightness:             ;
    --tw-backdrop-contrast:             ;
    --tw-backdrop-grayscale:             ;
    --tw-backdrop-hue-rotate:             ;
    --tw-backdrop-invert:             ;
    --tw-backdrop-opacity:             ;
    --tw-backdrop-saturate:             ;
    --tw-backdrop-sepia:             ;
    --tw-contain-size:             ;
    --tw-contain-layout:             ;
    --tw-contain-paint:             ;
    --tw-contain-style:             ;
}
:root {
    /* Surfaces */
    --bg:            #FEFEFE;
    --bg-alt:        #F0F7FF;
    --bg-subtle:     #F8FAFC;

    /* Text */
    --text-primary:  #0C1929;
    --text-muted:    #4A6080;
    --text-faint:    #8AAAC8;

    /* Brand accents */
    --sky:           #0EA5E9;
    --sky-dark:      #0369A1;
    --sky-light:     #E0F2FE;
    --amber:         #F59E0B;
    --amber-light:   #FEF3C7;

    /* Status */
    --verified:      #059669;
    --verified-bg:   #ECFDF5;
    --warning:       #DC2626;

    /* Lines & shadows */
    --border:        #E2E8F0;
    --border-focus:  #0EA5E9;
    --shadow-sm:     0 1px 3px rgba(12,25,41,0.08);
    --shadow-md:     0 4px 16px rgba(12,25,41,0.12);
    --shadow-lg:     0 12px 40px rgba(12,25,41,0.16);

    /* Layout */
    --container-max: 1200px;
    --container-pad: clamp(1rem, 4vw, 3rem);
    --section-gap:   clamp(4rem, 8vw, 8rem);
    --card-radius:   16px;
    --btn-radius:    10px;
  }
/* Minimal reset (preflight is off so we cover the essentials ourselves). */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--text-primary);
    font-family: "DM Sans", "Helvetica Neue", system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
.container{
    width:            100%;
    margin-right:            auto;
    margin-left:            auto;
    padding-right:            var(--container-pad);
    padding-left:            var(--container-pad);
}
@media (min-width: 640px){
    .container{
        max-width:            640px;
    }
}
@media (min-width: 768px){
    .container{
        max-width:            768px;
    }
}
@media (min-width: 1024px){
    .container{
        max-width:            1024px;
    }
}
@media (min-width: 1280px){
    .container{
        max-width:            1280px;
    }
}
@media (min-width: 1536px){
    .container{
        max-width:            1536px;
    }
}
/* ── Eyebrow (mono kicker with a short leading rule) ── */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: "DM Mono", monospace;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sky);
  }
.eyebrow::before {
    content: "";
    display: block;
    width: 20px;
    height: 1px;
    background: var(--sky);
    opacity: 0.5;
    flex-shrink: 0;
  }
/* ── Wordmark ── */
.wordmark {
    font-family: "Syne", sans-serif;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--text-primary);
    display: inline-flex;
    text-decoration: none;
  }
.wordmark-ans {
    font-style: italic;
    text-decoration: underline;
    text-decoration-color: var(--amber);
    text-underline-offset: 3px;
    color: var(--sky);
  }
/* ── Buttons (mirror the landing .btn family) ── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: var(--btn-radius);
    font-family: "DM Sans", sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    text-decoration: none;
    border: 1.5px solid transparent;
  }
.btn-lg { padding: 14px 28px; font-size: 0.975rem; }
.btn-primary {
    background: var(--sky);
    color: #fff;
    border-color: var(--sky);
  }
.btn-primary:hover {
    background: var(--sky-dark);
    border-color: var(--sky-dark);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
  }
.btn-outline {
    background: transparent;
    color: var(--text-primary);
    border-color: var(--border);
  }
.btn-outline:hover { border-color: var(--sky); color: var(--sky); }
/* ── Surface card ── */
.sr-only{
    position:            absolute;
    width:            1px;
    height:            1px;
    padding:            0;
    margin:            -1px;
    overflow:            hidden;
    clip:            rect(0, 0, 0, 0);
    white-space:            nowrap;
    border-width:            0;
}
.not-sr-only{
    position:            static;
    width:            auto;
    height:            auto;
    padding:            0;
    margin:            0;
    overflow:            visible;
    clip:            auto;
    white-space:            normal;
}
.pointer-events-none{
    pointer-events:            none;
}
.visible{
    visibility:            visible;
}
.invisible{
    visibility:            hidden;
}
.collapse{
    visibility:            collapse;
}
.static{
    position:            static;
}
.fixed{
    position:            fixed;
}
.absolute{
    position:            absolute;
}
.relative{
    position:            relative;
}
.sticky{
    position:            sticky;
}
.inset-0{
    inset:            0px;
}
.inset-x-0{
    left:            0px;
    right:            0px;
}
.inset-y-0{
    top:            0px;
    bottom:            0px;
}
.-bottom-4{
    bottom:            -1rem;
}
.bottom-0{
    bottom:            0px;
}
.bottom-2{
    bottom:            0.5rem;
}
.bottom-3{
    bottom:            0.75rem;
}
.left-0{
    left:            0px;
}
.left-1\/2{
    left:            50%;
}
.left-3{
    left:            0.75rem;
}
.right-0{
    right:            0px;
}
.right-2\.5{
    right:            0.625rem;
}
.right-3{
    right:            0.75rem;
}
.top-0{
    top:            0px;
}
.top-1\.5{
    top:            0.375rem;
}
.top-1\/2{
    top:            50%;
}
.top-20{
    top:            5rem;
}
.top-8{
    top:            2rem;
}
.isolate{
    isolation:            isolate;
}
.isolation-auto{
    isolation:            auto;
}
.z-10{
    z-index:            10;
}
.z-20{
    z-index:            20;
}
.z-30{
    z-index:            30;
}
.z-50{
    z-index:            50;
}
.col-span-1{
    grid-column:            span 1 / span 1;
}
.col-span-2{
    grid-column:            span 2 / span 2;
}
.m-0{
    margin:            0px;
}
.m-4{
    margin:            1rem;
}
.mx-0\.5{
    margin-left:            0.125rem;
    margin-right:            0.125rem;
}
.mx-1{
    margin-left:            0.25rem;
    margin-right:            0.25rem;
}
.mx-2{
    margin-left:            0.5rem;
    margin-right:            0.5rem;
}
.mx-auto{
    margin-left:            auto;
    margin-right:            auto;
}
.my-1{
    margin-top:            0.25rem;
    margin-bottom:            0.25rem;
}
.my-4{
    margin-top:            1rem;
    margin-bottom:            1rem;
}
.-mr-1{
    margin-right:            -0.25rem;
}
.-mt-3{
    margin-top:            -0.75rem;
}
.mb-1{
    margin-bottom:            0.25rem;
}
.mb-1\.5{
    margin-bottom:            0.375rem;
}
.mb-2{
    margin-bottom:            0.5rem;
}
.mb-3{
    margin-bottom:            0.75rem;
}
.mb-4{
    margin-bottom:            1rem;
}
.mb-5{
    margin-bottom:            1.25rem;
}
.mb-6{
    margin-bottom:            1.5rem;
}
.mb-8{
    margin-bottom:            2rem;
}
.mb-9{
    margin-bottom:            2.25rem;
}
.mb-\[14px\]{
    margin-bottom:            14px;
}
.mb-\[18px\]{
    margin-bottom:            18px;
}
.ml-0\.5{
    margin-left:            0.125rem;
}
.ml-1{
    margin-left:            0.25rem;
}
.ml-2{
    margin-left:            0.5rem;
}
.ml-auto{
    margin-left:            auto;
}
.mr-1{
    margin-right:            0.25rem;
}
.mt-0\.5{
    margin-top:            0.125rem;
}
.mt-1{
    margin-top:            0.25rem;
}
.mt-1\.5{
    margin-top:            0.375rem;
}
.mt-12{
    margin-top:            3rem;
}
.mt-2{
    margin-top:            0.5rem;
}
.mt-3{
    margin-top:            0.75rem;
}
.mt-4{
    margin-top:            1rem;
}
.mt-8{
    margin-top:            2rem;
}
.mt-\[-18px\]{
    margin-top:            -18px;
}
.mt-auto{
    margin-top:            auto;
}
.line-clamp-2{
    overflow:            hidden;
    display:            -webkit-box;
    -webkit-box-orient:            vertical;
    -webkit-line-clamp:            2;
}
.block{
    display:            block;
}
.inline-block{
    display:            inline-block;
}
.inline{
    display:            inline;
}
.flex{
    display:            flex;
}
.inline-flex{
    display:            inline-flex;
}
.table{
    display:            table;
}
.inline-table{
    display:            inline-table;
}
.table-caption{
    display:            table-caption;
}
.table-cell{
    display:            table-cell;
}
.table-column{
    display:            table-column;
}
.table-column-group{
    display:            table-column-group;
}
.table-footer-group{
    display:            table-footer-group;
}
.table-header-group{
    display:            table-header-group;
}
.table-row-group{
    display:            table-row-group;
}
.table-row{
    display:            table-row;
}
.flow-root{
    display:            flow-root;
}
.grid{
    display:            grid;
}
.inline-grid{
    display:            inline-grid;
}
.contents{
    display:            contents;
}
.list-item{
    display:            list-item;
}
.hidden{
    display:            none;
}
.h-0\.5{
    height:            0.125rem;
}
.h-1{
    height:            0.25rem;
}
.h-1\.5{
    height:            0.375rem;
}
.h-10{
    height:            2.5rem;
}
.h-11{
    height:            2.75rem;
}
.h-12{
    height:            3rem;
}
.h-14{
    height:            3.5rem;
}
.h-2{
    height:            0.5rem;
}
.h-2\.5{
    height:            0.625rem;
}
.h-20{
    height:            5rem;
}
.h-3{
    height:            0.75rem;
}
.h-3\.5{
    height:            0.875rem;
}
.h-4{
    height:            1rem;
}
.h-48{
    height:            12rem;
}
.h-5{
    height:            1.25rem;
}
.h-6{
    height:            1.5rem;
}
.h-7{
    height:            1.75rem;
}
.h-8{
    height:            2rem;
}
.h-9{
    height:            2.25rem;
}
.h-\[420px\]{
    height:            420px;
}
.h-\[480px\]{
    height:            480px;
}
.h-full{
    height:            100%;
}
.max-h-40{
    max-height:            10rem;
}
.max-h-60{
    max-height:            15rem;
}
.max-h-96{
    max-height:            24rem;
}
.max-h-\[70vh\]{
    max-height:            70vh;
}
.max-h-\[85vh\]{
    max-height:            85vh;
}
.min-h-0{
    min-height:            0px;
}
.min-h-\[110px\]{
    min-height:            110px;
}
.min-h-\[2\.5rem\]{
    min-height:            2.5rem;
}
.min-h-\[42px\]{
    min-height:            42px;
}
.min-h-\[500px\]{
    min-height:            500px;
}
.min-h-\[80px\]{
    min-height:            80px;
}
.min-h-screen{
    min-height:            100vh;
}
.w-1\.5{
    width:            0.375rem;
}
.w-10{
    width:            2.5rem;
}
.w-11{
    width:            2.75rem;
}
.w-12{
    width:            3rem;
}
.w-14{
    width:            3.5rem;
}
.w-16{
    width:            4rem;
}
.w-2{
    width:            0.5rem;
}
.w-2\.5{
    width:            0.625rem;
}
.w-20{
    width:            5rem;
}
.w-24{
    width:            6rem;
}
.w-28{
    width:            7rem;
}
.w-3{
    width:            0.75rem;
}
.w-3\.5{
    width:            0.875rem;
}
.w-4{
    width:            1rem;
}
.w-40{
    width:            10rem;
}
.w-48{
    width:            12rem;
}
.w-5{
    width:            1.25rem;
}
.w-52{
    width:            13rem;
}
.w-56{
    width:            14rem;
}
.w-6{
    width:            1.5rem;
}
.w-60{
    width:            15rem;
}
.w-64{
    width:            16rem;
}
.w-7{
    width:            1.75rem;
}
.w-8{
    width:            2rem;
}
.w-80{
    width:            20rem;
}
.w-9{
    width:            2.25rem;
}
.w-\[42\%\]{
    width:            42%;
}
.w-\[58\%\]{
    width:            58%;
}
.w-full{
    width:            100%;
}
.min-w-0{
    min-width:            0px;
}
.min-w-\[1\.2rem\]{
    min-width:            1.2rem;
}
.min-w-\[8ch\]{
    min-width:            8ch;
}
.max-w-2xl{
    max-width:            42rem;
}
.max-w-3xl{
    max-width:            48rem;
}
.max-w-4xl{
    max-width:            56rem;
}
.max-w-6xl{
    max-width:            72rem;
}
.max-w-\[1100px\]{
    max-width:            1100px;
}
.max-w-\[120px\]{
    max-width:            120px;
}
.max-w-\[130px\]{
    max-width:            130px;
}
.max-w-\[200px\]{
    max-width:            200px;
}
.max-w-\[30ch\]{
    max-width:            30ch;
}
.max-w-\[30px\]{
    max-width:            30px;
}
.max-w-\[520px\]{
    max-width:            520px;
}
.max-w-\[640px\]{
    max-width:            640px;
}
.max-w-\[80\%\]{
    max-width:            80%;
}
.max-w-\[80px\]{
    max-width:            80px;
}
.max-w-container{
    max-width:            var(--container-max);
}
.max-w-md{
    max-width:            28rem;
}
.max-w-sm{
    max-width:            24rem;
}
.flex-1{
    flex:            1 1 0%;
}
.flex-shrink-0{
    flex-shrink:            0;
}
.shrink{
    flex-shrink:            1;
}
.shrink-0{
    flex-shrink:            0;
}
.grow{
    flex-grow:            1;
}
.border-collapse{
    border-collapse:            collapse;
}
.-translate-x-1\/2{
    --tw-translate-x:            -50%;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-x-full{
    --tw-translate-x:            -100%;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2{
    --tw-translate-y:            -50%;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-0{
    --tw-translate-x:            0px;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-1{
    --tw-translate-x:            0.25rem;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-5{
    --tw-translate-x:            1.25rem;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-6{
    --tw-translate-x:            1.5rem;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-45{
    --tw-rotate:            45deg;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-90{
    --tw-rotate:            90deg;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-110{
    --tw-scale-x:            1.1;
    --tw-scale-y:            1.1;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-125{
    --tw-scale-x:            1.25;
    --tw-scale-y:            1.25;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform{
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes bounce{
    0%, 100%{
        transform:            translateY(-25%);
        animation-timing-function:            cubic-bezier(0.8,0,1,1);
    }
    50%{
        transform:            none;
        animation-timing-function:            cubic-bezier(0,0,0.2,1);
    }
}
.animate-bounce{
    animation:            bounce 1s infinite;
}
@keyframes pulse{
    50%{
        opacity:            .5;
    }
}
.animate-pulse{
    animation:            pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin{
    to{
        transform:            rotate(360deg);
    }
}
.animate-spin{
    animation:            spin 1s linear infinite;
}
.cursor-crosshair{
    cursor:            crosshair;
}
.cursor-grab{
    cursor:            grab;
}
.cursor-not-allowed{
    cursor:            not-allowed;
}
.cursor-pointer{
    cursor:            pointer;
}
.cursor-text{
    cursor:            text;
}
.touch-none{
    touch-action:            none;
}
.touch-pinch-zoom{
    --tw-pinch-zoom:            pinch-zoom;
    touch-action:            var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.select-none{
    -webkit-user-select:            none;
       -moz-user-select:            none;
            user-select:            none;
}
.resize-none{
    resize:            none;
}
.resize{
    resize:            both;
}
.list-none{
    list-style-type:            none;
}
.appearance-none{
    -webkit-appearance:            none;
       -moz-appearance:            none;
            appearance:            none;
}
.grid-cols-1{
    grid-template-columns:            repeat(1, minmax(0, 1fr));
}
.grid-cols-2{
    grid-template-columns:            repeat(2, minmax(0, 1fr));
}
.grid-cols-3{
    grid-template-columns:            repeat(3, minmax(0, 1fr));
}
.grid-cols-4{
    grid-template-columns:            repeat(4, minmax(0, 1fr));
}
.flex-row-reverse{
    flex-direction:            row-reverse;
}
.flex-col{
    flex-direction:            column;
}
.flex-wrap{
    flex-wrap:            wrap;
}
.content-start{
    align-content:            flex-start;
}
.items-start{
    align-items:            flex-start;
}
.items-end{
    align-items:            flex-end;
}
.items-center{
    align-items:            center;
}
.items-stretch{
    align-items:            stretch;
}
.justify-end{
    justify-content:            flex-end;
}
.justify-center{
    justify-content:            center;
}
.justify-between{
    justify-content:            space-between;
}
.justify-around{
    justify-content:            space-around;
}
.gap-0{
    gap:            0px;
}
.gap-0\.5{
    gap:            0.125rem;
}
.gap-1{
    gap:            0.25rem;
}
.gap-1\.5{
    gap:            0.375rem;
}
.gap-2{
    gap:            0.5rem;
}
.gap-2\.5{
    gap:            0.625rem;
}
.gap-3{
    gap:            0.75rem;
}
.gap-4{
    gap:            1rem;
}
.gap-5{
    gap:            1.25rem;
}
.gap-6{
    gap:            1.5rem;
}
.gap-8{
    gap:            2rem;
}
.gap-\[10px\]{
    gap:            10px;
}
.gap-\[14px\]{
    gap:            14px;
}
.gap-\[18px\]{
    gap:            18px;
}
.gap-x-4{
    -moz-column-gap:            1rem;
         column-gap:            1rem;
}
.gap-x-5{
    -moz-column-gap:            1.25rem;
         column-gap:            1.25rem;
}
.gap-y-4{
    row-gap:            1rem;
}
.gap-y-5{
    row-gap:            1.25rem;
}
.gap-y-6{
    row-gap:            1.5rem;
}
.space-x-4 > :not([hidden]) ~ :not([hidden]){
    --tw-space-x-reverse:            0;
    margin-right:            calc(1rem * var(--tw-space-x-reverse));
    margin-left:            calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(1.25rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            0;
    margin-top:            calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom:            calc(1.5rem * var(--tw-space-y-reverse));
}
.space-y-reverse > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse:            1;
}
.space-x-reverse > :not([hidden]) ~ :not([hidden]){
    --tw-space-x-reverse:            1;
}
.divide-x > :not([hidden]) ~ :not([hidden]){
    --tw-divide-x-reverse:            0;
    border-right-width:            calc(1px * var(--tw-divide-x-reverse));
    border-left-width:            calc(1px * calc(1 - var(--tw-divide-x-reverse)));
}
.divide-y > :not([hidden]) ~ :not([hidden]){
    --tw-divide-y-reverse:            0;
    border-top-width:            calc(1px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width:            calc(1px * var(--tw-divide-y-reverse));
}
.divide-y-reverse > :not([hidden]) ~ :not([hidden]){
    --tw-divide-y-reverse:            1;
}
.divide-x-reverse > :not([hidden]) ~ :not([hidden]){
    --tw-divide-x-reverse:            1;
}
.self-start{
    align-self:            flex-start;
}
.self-center{
    align-self:            center;
}
.overflow-auto{
    overflow:            auto;
}
.overflow-hidden{
    overflow:            hidden;
}
.overflow-x-auto{
    overflow-x:            auto;
}
.overflow-y-auto{
    overflow-y:            auto;
}
.truncate{
    overflow:            hidden;
    text-overflow:            ellipsis;
    white-space:            nowrap;
}
.text-ellipsis{
    text-overflow:            ellipsis;
}
.text-clip{
    text-overflow:            clip;
}
.whitespace-nowrap{
    white-space:            nowrap;
}
.whitespace-pre-wrap{
    white-space:            pre-wrap;
}
.text-wrap{
    text-wrap:            wrap;
}
.break-words{
    overflow-wrap:            break-word;
}
.break-all{
    word-break:            break-all;
}
.\!rounded-full{
    border-radius:            9999px !important;
}
.rounded{
    border-radius:            0.25rem;
}
.rounded-2xl{
    border-radius:            1rem;
}
.rounded-\[30px\]{
    border-radius:            30px;
}
.rounded-full{
    border-radius:            9999px;
}
.rounded-lg{
    border-radius:            var(--card-radius);
}
.rounded-md{
    border-radius:            calc(var(--card-radius) - 6px);
}
.rounded-xl{
    border-radius:            0.75rem;
}
.rounded-b{
    border-bottom-right-radius:            0.25rem;
    border-bottom-left-radius:            0.25rem;
}
.rounded-e{
    border-start-end-radius:            0.25rem;
    border-end-end-radius:            0.25rem;
}
.rounded-l{
    border-top-left-radius:            0.25rem;
    border-bottom-left-radius:            0.25rem;
}
.rounded-r{
    border-top-right-radius:            0.25rem;
    border-bottom-right-radius:            0.25rem;
}
.rounded-s{
    border-start-start-radius:            0.25rem;
    border-end-start-radius:            0.25rem;
}
.rounded-t{
    border-top-left-radius:            0.25rem;
    border-top-right-radius:            0.25rem;
}
.rounded-t-2xl{
    border-top-left-radius:            1rem;
    border-top-right-radius:            1rem;
}
.rounded-t-xl{
    border-top-left-radius:            0.75rem;
    border-top-right-radius:            0.75rem;
}
.rounded-bl{
    border-bottom-left-radius:            0.25rem;
}
.rounded-br{
    border-bottom-right-radius:            0.25rem;
}
.rounded-ee{
    border-end-end-radius:            0.25rem;
}
.rounded-es{
    border-end-start-radius:            0.25rem;
}
.rounded-se{
    border-start-end-radius:            0.25rem;
}
.rounded-ss{
    border-start-start-radius:            0.25rem;
}
.rounded-tl{
    border-top-left-radius:            0.25rem;
}
.rounded-tr{
    border-top-right-radius:            0.25rem;
}
.border{
    border-width:            1px;
}
.border-2{
    border-width:            2px;
}
.border-\[7px\]{
    border-width:            7px;
}
.border-x{
    border-left-width:            1px;
    border-right-width:            1px;
}
.border-y{
    border-top-width:            1px;
    border-bottom-width:            1px;
}
.border-b{
    border-bottom-width:            1px;
}
.border-b-2{
    border-bottom-width:            2px;
}
.border-e{
    border-inline-end-width:            1px;
}
.border-l{
    border-left-width:            1px;
}
.border-l-2{
    border-left-width:            2px;
}
.border-r{
    border-right-width:            1px;
}
.border-s{
    border-inline-start-width:            1px;
}
.border-t{
    border-top-width:            1px;
}
.border-dashed{
    border-style:            dashed;
}
.border-amber-100{
    --tw-border-opacity:            1;
    border-color:            rgb(254 243 199 / var(--tw-border-opacity, 1));
}
.border-amber-200{
    --tw-border-opacity:            1;
    border-color:            rgb(253 230 138 / var(--tw-border-opacity, 1));
}
.border-blue-100{
    --tw-border-opacity:            1;
    border-color:            rgb(219 234 254 / var(--tw-border-opacity, 1));
}
.border-blue-200{
    --tw-border-opacity:            1;
    border-color:            rgb(191 219 254 / var(--tw-border-opacity, 1));
}
.border-blue-400{
    --tw-border-opacity:            1;
    border-color:            rgb(96 165 250 / var(--tw-border-opacity, 1));
}
.border-blue-500{
    --tw-border-opacity:            1;
    border-color:            rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-blue-600{
    --tw-border-opacity:            1;
    border-color:            rgb(37 99 235 / var(--tw-border-opacity, 1));
}
.border-border{
    border-color:            var(--border);
}
.border-emerald-200{
    --tw-border-opacity:            1;
    border-color:            rgb(167 243 208 / var(--tw-border-opacity, 1));
}
.border-gray-100{
    --tw-border-opacity:            1;
    border-color:            rgb(243 244 246 / var(--tw-border-opacity, 1));
}
.border-gray-200{
    --tw-border-opacity:            1;
    border-color:            rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.border-gray-300{
    --tw-border-opacity:            1;
    border-color:            rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.border-gray-400{
    --tw-border-opacity:            1;
    border-color:            rgb(156 163 175 / var(--tw-border-opacity, 1));
}
.border-gray-700{
    --tw-border-opacity:            1;
    border-color:            rgb(55 65 81 / var(--tw-border-opacity, 1));
}
.border-gray-800{
    --tw-border-opacity:            1;
    border-color:            rgb(31 41 55 / var(--tw-border-opacity, 1));
}
.border-green-200{
    --tw-border-opacity:            1;
    border-color:            rgb(187 247 208 / var(--tw-border-opacity, 1));
}
.border-orange-200{
    --tw-border-opacity:            1;
    border-color:            rgb(254 215 170 / var(--tw-border-opacity, 1));
}
.border-purple-100{
    --tw-border-opacity:            1;
    border-color:            rgb(243 232 255 / var(--tw-border-opacity, 1));
}
.border-purple-200{
    --tw-border-opacity:            1;
    border-color:            rgb(233 213 255 / var(--tw-border-opacity, 1));
}
.border-purple-500{
    --tw-border-opacity:            1;
    border-color:            rgb(168 85 247 / var(--tw-border-opacity, 1));
}
.border-red-200{
    --tw-border-opacity:            1;
    border-color:            rgb(254 202 202 / var(--tw-border-opacity, 1));
}
.border-red-400{
    --tw-border-opacity:            1;
    border-color:            rgb(248 113 113 / var(--tw-border-opacity, 1));
}
.border-red-800{
    --tw-border-opacity:            1;
    border-color:            rgb(153 27 27 / var(--tw-border-opacity, 1));
}
.border-sky-200{
    --tw-border-opacity:            1;
    border-color:            rgb(186 230 253 / var(--tw-border-opacity, 1));
}
.border-teal-200{
    --tw-border-opacity:            1;
    border-color:            rgb(153 246 228 / var(--tw-border-opacity, 1));
}
.border-transparent{
    border-color:            transparent;
}
.border-white{
    --tw-border-opacity:            1;
    border-color:            rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.border-white\/10{
    border-color:            rgb(255 255 255 / 0.1);
}
.border-t-blue-500{
    --tw-border-opacity:            1;
    border-top-color:            rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-t-purple-500{
    --tw-border-opacity:            1;
    border-top-color:            rgb(168 85 247 / var(--tw-border-opacity, 1));
}
.border-t-transparent{
    border-top-color:            transparent;
}
.bg-\[hsl\(var\(--success\)\/0\.12\)\]{
    background-color:            hsl(var(--success)/0.12);
}
.bg-\[hsl\(var\(--warning\)\)\]{
    background-color:            hsl(var(--warning));
}
.bg-\[hsl\(var\(--warning\)\/0\.15\)\]{
    background-color:            hsl(var(--warning)/0.15);
}
.bg-amber-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.bg-amber-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.bg-black\/30{
    background-color:            rgb(0 0 0 / 0.3);
}
.bg-black\/40{
    background-color:            rgb(0 0 0 / 0.4);
}
.bg-black\/50{
    background-color:            rgb(0 0 0 / 0.5);
}
.bg-blue-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.bg-blue-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
.bg-blue-50\/40{
    background-color:            rgb(239 246 255 / 0.4);
}
.bg-blue-50\/50{
    background-color:            rgb(239 246 255 / 0.5);
}
.bg-blue-500{
    --tw-bg-opacity:            1;
    background-color:            rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.bg-blue-600{
    --tw-bg-opacity:            1;
    background-color:            rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.bg-emerald-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(209 250 229 / var(--tw-bg-opacity, 1));
}
.bg-emerald-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(236 253 245 / var(--tw-bg-opacity, 1));
}
.bg-gray-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.bg-gray-200{
    --tw-bg-opacity:            1;
    background-color:            rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.bg-gray-300{
    --tw-bg-opacity:            1;
    background-color:            rgb(209 213 219 / var(--tw-bg-opacity, 1));
}
.bg-gray-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.bg-gray-700{
    --tw-bg-opacity:            1;
    background-color:            rgb(55 65 81 / var(--tw-bg-opacity, 1));
}
.bg-gray-800{
    --tw-bg-opacity:            1;
    background-color:            rgb(31 41 55 / var(--tw-bg-opacity, 1));
}
.bg-gray-900{
    --tw-bg-opacity:            1;
    background-color:            rgb(17 24 39 / var(--tw-bg-opacity, 1));
}
.bg-gray-950{
    --tw-bg-opacity:            1;
    background-color:            rgb(3 7 18 / var(--tw-bg-opacity, 1));
}
.bg-green-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.bg-green-400{
    --tw-bg-opacity:            1;
    background-color:            rgb(74 222 128 / var(--tw-bg-opacity, 1));
}
.bg-green-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(240 253 244 / var(--tw-bg-opacity, 1));
}
.bg-green-800{
    --tw-bg-opacity:            1;
    background-color:            rgb(22 101 52 / var(--tw-bg-opacity, 1));
}
.bg-indigo-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(238 242 255 / var(--tw-bg-opacity, 1));
}
.bg-indigo-600{
    --tw-bg-opacity:            1;
    background-color:            rgb(79 70 229 / var(--tw-bg-opacity, 1));
}
.bg-ink{
    background-color:            var(--text-primary);
}
.bg-orange-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(255 237 213 / var(--tw-bg-opacity, 1));
}
.bg-orange-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(255 247 237 / var(--tw-bg-opacity, 1));
}
.bg-purple-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(243 232 255 / var(--tw-bg-opacity, 1));
}
.bg-purple-100\/60{
    background-color:            rgb(243 232 255 / 0.6);
}
.bg-purple-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(250 245 255 / var(--tw-bg-opacity, 1));
}
.bg-purple-50\/50{
    background-color:            rgb(250 245 255 / 0.5);
}
.bg-red-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.bg-red-400{
    --tw-bg-opacity:            1;
    background-color:            rgb(248 113 113 / var(--tw-bg-opacity, 1));
}
.bg-red-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.bg-red-600{
    --tw-bg-opacity:            1;
    background-color:            rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.bg-red-950{
    --tw-bg-opacity:            1;
    background-color:            rgb(69 10 10 / var(--tw-bg-opacity, 1));
}
.bg-sky-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(240 249 255 / var(--tw-bg-opacity, 1));
}
.bg-teal-50{
    --tw-bg-opacity:            1;
    background-color:            rgb(240 253 250 / var(--tw-bg-opacity, 1));
}
.bg-transparent{
    background-color:            transparent;
}
.bg-white{
    --tw-bg-opacity:            1;
    background-color:            rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/20{
    background-color:            rgb(255 255 255 / 0.2);
}
.bg-yellow-100{
    --tw-bg-opacity:            1;
    background-color:            rgb(254 249 195 / var(--tw-bg-opacity, 1));
}
.bg-yellow-400{
    --tw-bg-opacity:            1;
    background-color:            rgb(250 204 21 / var(--tw-bg-opacity, 1));
}
.bg-gradient-to-b{
    background-image:            linear-gradient(to bottom, var(--tw-gradient-stops));
}
.bg-gradient-to-br{
    background-image:            linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.from-amber-500{
    --tw-gradient-from:            #f59e0b var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(245 158 11 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-bg{
    --tw-gradient-from:            var(--bg) var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(255 255 255 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-100{
    --tw-gradient-from:            #dbeafe var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(219 234 254 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-50{
    --tw-gradient-from:            #eff6ff var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(239 246 255 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-500{
    --tw-gradient-from:            #3b82f6 var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(59 130 246 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-cyan-500{
    --tw-gradient-from:            #06b6d4 var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(6 182 212 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-500{
    --tw-gradient-from:            #10b981 var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(16 185 129 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-indigo-500{
    --tw-gradient-from:            #6366f1 var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(99 102 241 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-pink-500{
    --tw-gradient-from:            #ec4899 var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(236 72 153 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-rose-500{
    --tw-gradient-from:            #f43f5e var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(244 63 94 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-500{
    --tw-gradient-from:            #8b5cf6 var(--tw-gradient-from-position);
    --tw-gradient-to:            rgb(139 92 246 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
}
.to-amber-600{
    --tw-gradient-to:            #d97706 var(--tw-gradient-to-position);
}
.to-bg-alt{
    --tw-gradient-to:            var(--bg-alt) var(--tw-gradient-to-position);
}
.to-blue-600{
    --tw-gradient-to:            #2563eb var(--tw-gradient-to-position);
}
.to-cyan-600{
    --tw-gradient-to:            #0891b2 var(--tw-gradient-to-position);
}
.to-emerald-600{
    --tw-gradient-to:            #059669 var(--tw-gradient-to-position);
}
.to-indigo-100{
    --tw-gradient-to:            #e0e7ff var(--tw-gradient-to-position);
}
.to-indigo-50{
    --tw-gradient-to:            #eef2ff var(--tw-gradient-to-position);
}
.to-indigo-600{
    --tw-gradient-to:            #4f46e5 var(--tw-gradient-to-position);
}
.to-pink-600{
    --tw-gradient-to:            #db2777 var(--tw-gradient-to-position);
}
.to-rose-600{
    --tw-gradient-to:            #e11d48 var(--tw-gradient-to-position);
}
.to-violet-600{
    --tw-gradient-to:            #7c3aed var(--tw-gradient-to-position);
}
.bg-repeat{
    background-repeat:            repeat;
}
.p-0{
    padding:            0px;
}
.p-0\.5{
    padding:            0.125rem;
}
.p-1{
    padding:            0.25rem;
}
.p-1\.5{
    padding:            0.375rem;
}
.p-10{
    padding:            2.5rem;
}
.p-12{
    padding:            3rem;
}
.p-2{
    padding:            0.5rem;
}
.p-2\.5{
    padding:            0.625rem;
}
.p-3{
    padding:            0.75rem;
}
.p-4{
    padding:            1rem;
}
.p-5{
    padding:            1.25rem;
}
.p-6{
    padding:            1.5rem;
}
.p-8{
    padding:            2rem;
}
.\!px-4{
    padding-left:            1rem !important;
    padding-right:            1rem !important;
}
.\!py-2{
    padding-top:            0.5rem !important;
    padding-bottom:            0.5rem !important;
}
.px-1{
    padding-left:            0.25rem;
    padding-right:            0.25rem;
}
.px-1\.5{
    padding-left:            0.375rem;
    padding-right:            0.375rem;
}
.px-2{
    padding-left:            0.5rem;
    padding-right:            0.5rem;
}
.px-2\.5{
    padding-left:            0.625rem;
    padding-right:            0.625rem;
}
.px-3{
    padding-left:            0.75rem;
    padding-right:            0.75rem;
}
.px-3\.5{
    padding-left:            0.875rem;
    padding-right:            0.875rem;
}
.px-4{
    padding-left:            1rem;
    padding-right:            1rem;
}
.px-5{
    padding-left:            1.25rem;
    padding-right:            1.25rem;
}
.px-6{
    padding-left:            1.5rem;
    padding-right:            1.5rem;
}
.px-8{
    padding-left:            2rem;
    padding-right:            2rem;
}
.px-\[var\(--container-pad\)\]{
    padding-left:            var(--container-pad);
    padding-right:            var(--container-pad);
}
.py-0\.5{
    padding-top:            0.125rem;
    padding-bottom:            0.125rem;
}
.py-1{
    padding-top:            0.25rem;
    padding-bottom:            0.25rem;
}
.py-1\.5{
    padding-top:            0.375rem;
    padding-bottom:            0.375rem;
}
.py-10{
    padding-top:            2.5rem;
    padding-bottom:            2.5rem;
}
.py-14{
    padding-top:            3.5rem;
    padding-bottom:            3.5rem;
}
.py-16{
    padding-top:            4rem;
    padding-bottom:            4rem;
}
.py-2{
    padding-top:            0.5rem;
    padding-bottom:            0.5rem;
}
.py-2\.5{
    padding-top:            0.625rem;
    padding-bottom:            0.625rem;
}
.py-20{
    padding-top:            5rem;
    padding-bottom:            5rem;
}
.py-24{
    padding-top:            6rem;
    padding-bottom:            6rem;
}
.py-3{
    padding-top:            0.75rem;
    padding-bottom:            0.75rem;
}
.py-3\.5{
    padding-top:            0.875rem;
    padding-bottom:            0.875rem;
}
.py-4{
    padding-top:            1rem;
    padding-bottom:            1rem;
}
.py-5{
    padding-top:            1.25rem;
    padding-bottom:            1.25rem;
}
.py-6{
    padding-top:            1.5rem;
    padding-bottom:            1.5rem;
}
.py-8{
    padding-top:            2rem;
    padding-bottom:            2rem;
}
.py-\[clamp\(4rem\2c 8vw\2c 8rem\)\]{
    padding-top:            clamp(4rem, 8vw, 8rem);
    padding-bottom:            clamp(4rem, 8vw, 8rem);
}
.pb-1{
    padding-bottom:            0.25rem;
}
.pb-3{
    padding-bottom:            0.75rem;
}
.pb-4{
    padding-bottom:            1rem;
}
.pb-6{
    padding-bottom:            1.5rem;
}
.pb-8{
    padding-bottom:            2rem;
}
.pb-\[calc\(4rem_\+_var\(--safe-bottom\2c env\(safe-area-inset-bottom\)\)\)\]{
    padding-bottom:            calc(4rem + var(--safe-bottom,env(safe-area-inset-bottom)));
}
.pb-\[var\(--safe-bottom\2c env\(safe-area-inset-bottom\)\)\]{
    padding-bottom:            var(--safe-bottom,env(safe-area-inset-bottom));
}
.pl-2{
    padding-left:            0.5rem;
}
.pl-3{
    padding-left:            0.75rem;
}
.pl-8{
    padding-left:            2rem;
}
.pl-9{
    padding-left:            2.25rem;
}
.pr-1{
    padding-right:            0.25rem;
}
.pr-10{
    padding-right:            2.5rem;
}
.pr-2{
    padding-right:            0.5rem;
}
.pr-8{
    padding-right:            2rem;
}
.pt-0{
    padding-top:            0px;
}
.pt-0\.5{
    padding-top:            0.125rem;
}
.pt-12{
    padding-top:            3rem;
}
.pt-2{
    padding-top:            0.5rem;
}
.pt-2\.5{
    padding-top:            0.625rem;
}
.pt-3{
    padding-top:            0.75rem;
}
.pt-4{
    padding-top:            1rem;
}
.pt-6{
    padding-top:            1.5rem;
}
.text-left{
    text-align:            left;
}
.text-center{
    text-align:            center;
}
.text-right{
    text-align:            right;
}
.font-display{
    font-family:            Syne, Helvetica Neue, sans-serif;
}
.font-mono{
    font-family:            DM Mono, ui-monospace, monospace;
}
.font-serif{
    font-family:            Playfair Display, Georgia, serif;
}
.text-2xl{
    font-size:            1.5rem;
    line-height:            2rem;
}
.text-3xl{
    font-size:            1.875rem;
    line-height:            2.25rem;
}
.text-4xl{
    font-size:            2.25rem;
    line-height:            2.5rem;
}
.text-5xl{
    font-size:            3rem;
    line-height:            1;
}
.text-\[0\.825rem\]{
    font-size:            0.825rem;
}
.text-\[1\.05rem\]{
    font-size:            1.05rem;
}
.text-\[10px\]{
    font-size:            10px;
}
.text-\[11px\]{
    font-size:            11px;
}
.text-\[12px\]{
    font-size:            12px;
}
.text-\[13px\]{
    font-size:            13px;
}
.text-\[14px\]{
    font-size:            14px;
}
.text-\[17px\]{
    font-size:            17px;
}
.text-\[7px\]{
    font-size:            7px;
}
.text-\[8px\]{
    font-size:            8px;
}
.text-\[9px\]{
    font-size:            9px;
}
.text-\[clamp\(2\.2rem\2c 5vw\2c 3\.5rem\)\]{
    font-size:            clamp(2.2rem, 5vw, 3.5rem);
}
.text-base{
    font-size:            1rem;
    line-height:            1.5rem;
}
.text-lg{
    font-size:            1.125rem;
    line-height:            1.75rem;
}
.text-sm{
    font-size:            0.875rem;
    line-height:            1.25rem;
}
.text-xl{
    font-size:            1.25rem;
    line-height:            1.75rem;
}
.text-xs{
    font-size:            0.75rem;
    line-height:            1rem;
}
.font-black{
    font-weight:            900;
}
.font-bold{
    font-weight:            700;
}
.font-medium{
    font-weight:            500;
}
.font-normal{
    font-weight:            400;
}
.font-semibold{
    font-weight:            600;
}
.uppercase{
    text-transform:            uppercase;
}
.lowercase{
    text-transform:            lowercase;
}
.capitalize{
    text-transform:            capitalize;
}
.normal-case{
    text-transform:            none;
}
.italic{
    font-style:            italic;
}
.not-italic{
    font-style:            normal;
}
.normal-nums{
    font-variant-numeric:            normal;
}
.ordinal{
    --tw-ordinal:            ordinal;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.slashed-zero{
    --tw-slashed-zero:            slashed-zero;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.lining-nums{
    --tw-numeric-figure:            lining-nums;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.oldstyle-nums{
    --tw-numeric-figure:            oldstyle-nums;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.proportional-nums{
    --tw-numeric-spacing:            proportional-nums;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.tabular-nums{
    --tw-numeric-spacing:            tabular-nums;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.diagonal-fractions{
    --tw-numeric-fraction:            diagonal-fractions;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.stacked-fractions{
    --tw-numeric-fraction:            stacked-fractions;
    font-variant-numeric:            var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-\[1\.1\]{
    line-height:            1.1;
}
.leading-\[1\.75\]{
    line-height:            1.75;
}
.leading-none{
    line-height:            1;
}
.leading-relaxed{
    line-height:            1.625;
}
.leading-snug{
    line-height:            1.375;
}
.leading-tight{
    line-height:            1.25;
}
.tracking-\[-0\.02em\]{
    letter-spacing:            -0.02em;
}
.tracking-\[0\.1em\]{
    letter-spacing:            0.1em;
}
.tracking-tight{
    letter-spacing:            -0.025em;
}
.tracking-wide{
    letter-spacing:            0.025em;
}
.tracking-wider{
    letter-spacing:            0.05em;
}
.text-\[hsl\(var\(--success\)\)\]{
    color:            hsl(var(--success));
}
.text-\[hsl\(var\(--warning\)\)\]{
    color:            hsl(var(--warning));
}
.text-amber{
    color:            var(--amber);
}
.text-amber-600{
    --tw-text-opacity:            1;
    color:            rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.text-amber-700{
    --tw-text-opacity:            1;
    color:            rgb(180 83 9 / var(--tw-text-opacity, 1));
}
.text-amber-900{
    --tw-text-opacity:            1;
    color:            rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.text-blue-400{
    --tw-text-opacity:            1;
    color:            rgb(96 165 250 / var(--tw-text-opacity, 1));
}
.text-blue-500{
    --tw-text-opacity:            1;
    color:            rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.text-blue-600{
    --tw-text-opacity:            1;
    color:            rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-blue-700{
    --tw-text-opacity:            1;
    color:            rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.text-blue-800{
    --tw-text-opacity:            1;
    color:            rgb(30 64 175 / var(--tw-text-opacity, 1));
}
.text-emerald-600{
    --tw-text-opacity:            1;
    color:            rgb(5 150 105 / var(--tw-text-opacity, 1));
}
.text-emerald-700{
    --tw-text-opacity:            1;
    color:            rgb(4 120 87 / var(--tw-text-opacity, 1));
}
.text-gray-200{
    --tw-text-opacity:            1;
    color:            rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.text-gray-300{
    --tw-text-opacity:            1;
    color:            rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.text-gray-400{
    --tw-text-opacity:            1;
    color:            rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500{
    --tw-text-opacity:            1;
    color:            rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-gray-600{
    --tw-text-opacity:            1;
    color:            rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-gray-700{
    --tw-text-opacity:            1;
    color:            rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.text-gray-800{
    --tw-text-opacity:            1;
    color:            rgb(31 41 55 / var(--tw-text-opacity, 1));
}
.text-gray-900{
    --tw-text-opacity:            1;
    color:            rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.text-green-200{
    --tw-text-opacity:            1;
    color:            rgb(187 247 208 / var(--tw-text-opacity, 1));
}
.text-green-300{
    --tw-text-opacity:            1;
    color:            rgb(134 239 172 / var(--tw-text-opacity, 1));
}
.text-green-400{
    --tw-text-opacity:            1;
    color:            rgb(74 222 128 / var(--tw-text-opacity, 1));
}
.text-green-500{
    --tw-text-opacity:            1;
    color:            rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.text-green-600{
    --tw-text-opacity:            1;
    color:            rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-green-700{
    --tw-text-opacity:            1;
    color:            rgb(21 128 61 / var(--tw-text-opacity, 1));
}
.text-indigo-700{
    --tw-text-opacity:            1;
    color:            rgb(67 56 202 / var(--tw-text-opacity, 1));
}
.text-ink{
    color:            var(--text-primary);
}
.text-ink-faint{
    color:            var(--text-faint);
}
.text-ink-muted{
    color:            var(--text-muted);
}
.text-orange-700{
    --tw-text-opacity:            1;
    color:            rgb(194 65 12 / var(--tw-text-opacity, 1));
}
.text-purple-400{
    --tw-text-opacity:            1;
    color:            rgb(192 132 252 / var(--tw-text-opacity, 1));
}
.text-purple-500{
    --tw-text-opacity:            1;
    color:            rgb(168 85 247 / var(--tw-text-opacity, 1));
}
.text-purple-600{
    --tw-text-opacity:            1;
    color:            rgb(147 51 234 / var(--tw-text-opacity, 1));
}
.text-purple-700{
    --tw-text-opacity:            1;
    color:            rgb(126 34 206 / var(--tw-text-opacity, 1));
}
.text-purple-800{
    --tw-text-opacity:            1;
    color:            rgb(107 33 168 / var(--tw-text-opacity, 1));
}
.text-red-300{
    --tw-text-opacity:            1;
    color:            rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.text-red-400{
    --tw-text-opacity:            1;
    color:            rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-red-500{
    --tw-text-opacity:            1;
    color:            rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-red-600{
    --tw-text-opacity:            1;
    color:            rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-red-700{
    --tw-text-opacity:            1;
    color:            rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-sky{
    color:            var(--sky);
}
.text-sky-700{
    --tw-text-opacity:            1;
    color:            rgb(3 105 161 / var(--tw-text-opacity, 1));
}
.text-teal-700{
    --tw-text-opacity:            1;
    color:            rgb(15 118 110 / var(--tw-text-opacity, 1));
}
.text-violet-600{
    --tw-text-opacity:            1;
    color:            rgb(124 58 237 / var(--tw-text-opacity, 1));
}
.text-white{
    --tw-text-opacity:            1;
    color:            rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-white\/40{
    color:            rgb(255 255 255 / 0.4);
}
.text-white\/50{
    color:            rgb(255 255 255 / 0.5);
}
.text-white\/60{
    color:            rgb(255 255 255 / 0.6);
}
.text-white\/65{
    color:            rgb(255 255 255 / 0.65);
}
.text-white\/90{
    color:            rgb(255 255 255 / 0.9);
}
.text-yellow-400{
    --tw-text-opacity:            1;
    color:            rgb(250 204 21 / var(--tw-text-opacity, 1));
}
.text-yellow-700{
    --tw-text-opacity:            1;
    color:            rgb(161 98 7 / var(--tw-text-opacity, 1));
}
.underline{
    text-decoration-line:            underline;
}
.overline{
    text-decoration-line:            overline;
}
.line-through{
    text-decoration-line:            line-through;
}
.no-underline{
    text-decoration-line:            none;
}
.underline-offset-4{
    text-underline-offset:            4px;
}
.underline-offset-\[3px\]{
    text-underline-offset:            3px;
}
.antialiased{
    -webkit-font-smoothing:            antialiased;
    -moz-osx-font-smoothing:            grayscale;
}
.subpixel-antialiased{
    -webkit-font-smoothing:            auto;
    -moz-osx-font-smoothing:            auto;
}
.accent-blue-600{
    accent-color:            #2563eb;
}
.opacity-0{
    opacity:            0;
}
.opacity-100{
    opacity:            1;
}
.opacity-20{
    opacity:            0.2;
}
.opacity-30{
    opacity:            0.3;
}
.opacity-40{
    opacity:            0.4;
}
.opacity-50{
    opacity:            0.5;
}
.opacity-60{
    opacity:            0.6;
}
.opacity-70{
    opacity:            0.7;
}
.shadow{
    --tw-shadow:            0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --tw-shadow-colored:            0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-2xl{
    --tw-shadow:            0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored:            0 25px 50px -12px var(--tw-shadow-color);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg{
    --tw-shadow:            var(--shadow-lg);
    --tw-shadow-colored:            var(--shadow-lg);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md{
    --tw-shadow:            var(--shadow-md);
    --tw-shadow-colored:            var(--shadow-md);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm{
    --tw-shadow:            var(--shadow-sm);
    --tw-shadow-colored:            var(--shadow-sm);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl{
    --tw-shadow:            0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    --tw-shadow-colored:            0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none{
    outline:            2px solid transparent;
    outline-offset:            2px;
}
.outline{
    outline-style:            solid;
}
.ring{
    --tw-ring-offset-shadow:            var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow:            var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow:            var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-2{
    --tw-ring-offset-shadow:            var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow:            var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow:            var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-inset{
    --tw-ring-inset:            inset;
}
.ring-blue-200{
    --tw-ring-opacity:            1;
    --tw-ring-color:            rgb(191 219 254 / var(--tw-ring-opacity, 1));
}
.ring-blue-500{
    --tw-ring-opacity:            1;
    --tw-ring-color:            rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.ring-offset-1{
    --tw-ring-offset-width:            1px;
}
.blur{
    --tw-blur:            blur(8px);
    filter:            var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow{
    --tw-drop-shadow:            drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
    filter:            var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale{
    --tw-grayscale:            grayscale(100%);
    filter:            var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.invert{
    --tw-invert:            invert(100%);
    filter:            var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.sepia{
    --tw-sepia:            sepia(100%);
    filter:            var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter{
    filter:            var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur{
    --tw-backdrop-blur:            blur(8px);
    backdrop-filter:            var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-sm{
    --tw-backdrop-blur:            blur(4px);
    backdrop-filter:            var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-grayscale{
    --tw-backdrop-grayscale:            grayscale(100%);
    backdrop-filter:            var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-invert{
    --tw-backdrop-invert:            invert(100%);
    backdrop-filter:            var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-sepia{
    --tw-backdrop-sepia:            sepia(100%);
    backdrop-filter:            var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-filter{
    backdrop-filter:            var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition{
    transition-property:            color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function:            cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration:            150ms;
}
.transition-all{
    transition-property:            all;
    transition-timing-function:            cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration:            150ms;
}
.transition-colors{
    transition-property:            color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function:            cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration:            150ms;
}
.transition-opacity{
    transition-property:            opacity;
    transition-timing-function:            cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration:            150ms;
}
.transition-transform{
    transition-property:            transform;
    transition-timing-function:            cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration:            150ms;
}
.duration-150{
    transition-duration:            150ms;
}
.ease-in-out{
    transition-timing-function:            cubic-bezier(0.4, 0, 0.2, 1);
}
.\[animation-delay\:0ms\]{
    animation-delay:            0ms;
}
.\[animation-delay\:120ms\]{
    animation-delay:            120ms;
}
.\[animation-delay\:240ms\]{
    animation-delay:            240ms;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
/* Make the `hidden` attribute reliably hide elements. Author `display` rules
   (e.g. `.split-media { display: flex }`) beat the UA `[hidden] { display: none }`
   rule, so without this an element toggled hidden in JS (the /login media panel,
   whose empty <img> then shows as a broken image) stays visible. */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
/* Component design tokens for the app surfaces. Defined on the React mount
   points (#root, #react-auth-root) AND the static page shells (.static-stage —
   auth/apps/donate/partners), since those static pages reuse the same .ui-*
   components (e.g. .ui-btn--primary { background: var(--gold) }). Without
   .static-stage here, tokens like --gold are undefined on the static auth page
   and the primary button renders as invisible white text on a transparent fill.
   We intentionally do NOT define these at :root so they don't bleed into the
   index.html landing, which carries its own palette via public/styles.css. */
#root,
#react-auth-root,
.static-stage {
  /* Re-themed to the marketing landing palette (light / sky-blue / amber) so
     every React page shares ONE colour scheme with index.html. Variable names
     are kept (e.g. --gold now resolves to sky) so existing rules re-skin in
     place; these values mirror public/styles.css :root. */
  --bg:           #FEFEFE;
  --surface:      #FFFFFF;
  --surface-2:    #F8FAFC;
  --surface-3:    #F0F7FF;
  --border:       #E2E8F0;
  --border-hover: #CBD5E1;
  --gold:         #0EA5E9;
  --gold-dim:     #0369A1;
  --gold-glow:    rgba(14,165,233,0.18);
  --gold-subtle:  rgba(14,165,233,0.07);
  --amber:        #F59E0B;
  --text:         #0C1929;
  --text-2:       #4A6080;
  --text-3:       #8AAAC8;
  --success:      #059669;
  --error:        #DC2626;
  --radius:       12px;
  --radius-lg:    18px;
  --radius-xl:    24px;

  background: var(--bg);
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
}
/* Standalone page (React owns the whole document): keep the viewport dark
   behind #root so there's no white gutter before the app paints. */
body:has(> #root) {
  background: #FEFEFE;
  color: #0C1929;
  min-height: 100vh;
}
button { font-family: inherit; cursor: pointer; }
input, textarea, select { font-family: inherit; }
a { color: inherit; text-decoration: none; }
/* ── Splash (app boot) ── */
.splash {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
}
.splash-logo {
  font-family: 'Syne', sans-serif;
  font-size: 28px;
  font-weight: 600;
}
.splash-logo-accent { color: var(--gold); }
.splash-bar {
  width: 32px;
  height: 2px;
  background: var(--border);
  border-radius: 2px;
  overflow: hidden;
}
.splash-bar-fill {
  height: 100%;
  width: 60%;
  background: var(--gold);
  border-radius: 2px;
  animation: splashBar 1.2s ease-in-out infinite;
  will-change: transform;
}
@keyframes splashBar {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(200%); }
}
/* ── Auth screen ── */
.auth-wrap {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: clamp(20px, 4vh, 64px) clamp(16px, 3vh, 24px) clamp(12px, 2vh, 24px);
  position: relative;
  overflow-x: hidden;
}
.auth-wrap::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 50% at 20% 20%, rgba(14,165,233,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(245,158,11,0.04) 0%, transparent 60%);
}
.auth-header {
  text-align: center;
  margin-bottom: clamp(10px, 2vh, 24px);
}
.auth-title {
  font-family: 'Syne', sans-serif;
  font-size: clamp(22px, 3vw, 27px);
  font-weight: 600;
  margin-top: clamp(6px, 1.2vh, 16px);
}
.auth-subtitle {
  font-size: 13px;
  color: var(--text-2);
  margin-top: 6px;
  line-height: 1.5;
}
.auth-error {
  font-size: 13px;
  color: var(--error);
  margin-bottom: 14px;
  padding: 10px 14px;
  background: rgba(220,38,38,0.08);
  border-radius: var(--radius);
  border: 1px solid rgba(220,38,38,0.2);
}
.auth-toggle {
  text-align: center;
  margin-top: clamp(12px, 2vh, 20px);
  font-size: 13px;
  color: var(--text-2);
}
.auth-toggle-btn {
  background: none;
  border: none;
  color: var(--gold);
  font-weight: 500;
  font-size: 13px;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
}
.auth-terms {
  margin-top: clamp(8px, 1.2vh, 14px);
  font-size: 12px;
  color: var(--text-3);
  text-align: center;
}
.auth-terms-link {
  color: var(--text-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.auth-terms-link:hover { color: var(--gold); }
.auth-forgot {
  text-align: right;
  margin-top: 4px;
}
.auth-forgot-btn {
  background: none;
  border: none;
  color: var(--text-2);
  font-size: 12px;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.auth-forgot-btn:hover { color: var(--gold); }
.auth-success {
  margin-top: 10px;
  padding: 12px 14px;
  background: rgba(34, 197, 94, 0.08);
  border: 1px solid rgba(34, 197, 94, 0.25);
  border-radius: var(--radius);
  font-size: 13px;
  color: #166534;
  line-height: 1.5;
}
/* ───────────────────────────────────
   Split auth (use-case panel + form) — /professionals, /join, /hire
   ─────────────────────────────────── */
.auth-split {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
}
/* Left: use-case panel */
.auth-split-left {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 4vw, 64px);
  background:
    linear-gradient(165deg, var(--surface-2) 0%, var(--surface) 55%, var(--bg) 100%);
  border-right: 1px solid var(--border);
  overflow: hidden;
}
.auth-split-left::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 50% at 15% 10%, var(--gold-glow) 0%, transparent 60%),
    radial-gradient(ellipse 60% 45% at 90% 95%, rgba(245,158,11,0.07) 0%, transparent 60%);
}
.auth-pane-brand { position: relative; z-index: 1; }
.auth-pane-body {
  position: relative;
  z-index: 1;
  margin-top: clamp(28px, 6vh, 64px);
  max-width: 30rem;
}
.auth-pane-eyebrow {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.auth-pane-title {
  font-family: 'Syne', sans-serif;
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 600;
  line-height: 1.05;
  margin-top: 14px;
}
.auth-pane-subtitle {
  font-size: 15px;
  color: var(--text-2);
  line-height: 1.65;
  margin-top: 16px;
  max-width: 42ch;
}
.auth-pane-points {
  list-style: none;
  margin-top: clamp(20px, 3vh, 32px);
  display: grid;
  gap: 14px;
}
.auth-pane-point {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255,255,255,0.9);
}
.auth-pane-check {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--gold-subtle);
  border: 1px solid var(--gold-dim);
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
}
.auth-pane-img {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 380px;
  height: auto;
  margin-top: auto;
  align-self: center;
  padding-top: 32px;
  -o-object-fit: contain;
     object-fit: contain;
  filter: drop-shadow(0 18px 40px rgba(12,25,41,0.16));
}
/* Right: the auth form, vertically centred */
.auth-split-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(24px, 4vh, 56px) clamp(16px, 3vw, 40px);
  position: relative;
}
@media (max-width: 880px) {
  .auth-split { grid-template-columns: 1fr; }
  .auth-split-left {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding-bottom: clamp(20px, 4vh, 36px);
  }
  .auth-pane-body { margin-top: 22px; }
  /* The illustration is decorative — drop it on narrow screens to save height. */
  .auth-pane-img { display: none; }
}
/* Entrance animation: the panel slides in, its contents stagger up. */
@keyframes authPaneSlide {
  from { opacity: 0; transform: translateX(-18px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes authFadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
.auth-split-left {
  animation: authPaneSlide 650ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.auth-pane-eyebrow,
.auth-pane-title,
.auth-pane-subtitle,
.auth-pane-point,
.auth-pane-img {
  animation: authFadeUp 600ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.auth-pane-eyebrow  { animation-delay: 120ms; }
.auth-pane-title    { animation-delay: 190ms; }
.auth-pane-subtitle { animation-delay: 260ms; }
.auth-pane-point:nth-child(1) { animation-delay: 330ms; }
.auth-pane-point:nth-child(2) { animation-delay: 400ms; }
.auth-pane-point:nth-child(3) { animation-delay: 470ms; }
.auth-pane-point:nth-child(4) { animation-delay: 540ms; }
.auth-pane-point:nth-child(5) { animation-delay: 610ms; }
.auth-pane-img      { animation-delay: 600ms; }
@media (prefers-reduced-motion: reduce) {
  .auth-split-left,
  .auth-pane-eyebrow,
  .auth-pane-title,
  .auth-pane-subtitle,
  .auth-pane-point,
  .auth-pane-img {
    animation: none;
  }
}
/* ───────────────────────────────────
   Site chrome — header + footer (sitemap) + page shell
   ─────────────────────────────────── */
.page-shell {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
/* Inside the shell the split sizes to content but still pushes the footer down. */
.page-shell > .auth-split {
  flex: 1 1 auto;
  min-height: 0;
}
/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px clamp(16px, 4vw, 40px);
  background: rgba(254, 254, 254, 0.85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.site-header-left {
  display: flex;
  align-items: center;
  gap: 18px;
}
.site-header-logo { display: inline-flex; text-decoration: none; }
.site-header-back {
  color: var(--text-2);
  font-size: 13px;
  text-decoration: none;
  white-space: nowrap;
}
.site-header-back:hover { color: var(--text); }
.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(14px, 2vw, 24px);
}
.site-nav a {
  color: var(--text-2);
  font-size: 14px;
  text-decoration: none;
  transition: color 0.15s ease;
}
.site-nav a:hover { color: var(--text); }
.site-nav-cta {
  color: #fff;
  background: var(--gold);
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 999px;
  transition: background 0.18s ease;
}
.site-nav-cta:hover { color: #fff; background: var(--gold-dim); }
@media (max-width: 720px) {
  .site-nav-hide { display: none; }
}
/* Content column (right side of the split on content pages) */
.auth-split-right--top { justify-content: flex-start; }
.page-content {
  width: 100%;
  max-width: 720px;
}
/* Footer with sitemap */
.site-footer {
  margin-top: auto;
  border-top: 1px solid var(--border);
  background: var(--surface);
  padding: clamp(32px, 5vw, 56px) clamp(16px, 4vw, 40px) 28px;
}
.site-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: clamp(24px, 4vw, 48px);
  max-width: 1100px;
  margin: 0 auto;
}
.site-footer-logo { display: inline-flex; text-decoration: none; margin-bottom: 14px; }
.site-footer-tagline {
  font-size: 14px;
  color: var(--text-2);
  line-height: 1.6;
  max-width: 30ch;
}
.site-footer-tag {
  margin-top: 14px;
  font-family: 'Syne', sans-serif;
  font-size: 17px;
  color: var(--text-3);
  line-height: 1.4;
}
.site-footer-col h4 {
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 14px;
}
.site-footer-col ul { list-style: none; display: grid; gap: 10px; }
.site-footer-col a {
  color: var(--text-2);
  font-size: 14px;
  text-decoration: none;
  transition: color 0.15s ease;
}
.site-footer-col a:hover { color: var(--gold); }
.site-footer-bottom {
  max-width: 1100px;
  margin: 28px auto 0;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--text-3);
}
@media (max-width: 720px) {
  .site-footer-grid { grid-template-columns: 1fr 1fr; }
  .site-footer-brand { grid-column: 1 / -1; }
}
/* ───────────────────────────────────
   UI primitives (components/ui.tsx)
─────────────────────────────────── */
/* Wordmark */
.ui-wordmark {
  font-family: 'Syne', sans-serif;
  font-weight: 600;
  letter-spacing: -0.5px;
  font-size: var(--ui-wordmark-size, 26px);
}
.ui-wordmark-accent {
  color: var(--gold);
  font-style: italic;
  text-decoration: underline;
  text-decoration-color: var(--amber);
  text-underline-offset: 3px;
}
/* Card */
.ui-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 3vh, 32px);
  width: 100%;
  position: relative;
  max-width: var(--ui-card-max-w, none);
}
/* Field */
.ui-field { margin-bottom: clamp(10px, 1.5vh, 14px); }
.ui-field-label {
  display: block;
  font-size: 12px;
  color: var(--text-2);
  letter-spacing: 0.4px;
  margin-bottom: 7px;
  font-weight: 500;
}
.ui-field-hint {
  font-size: 11px;
  color: var(--text-3);
  margin-top: 6px;
  line-height: 1.5;
}
.ui-field-error {
  font-size: 11px;
  color: var(--error);
  margin-top: 4px;
}
/* Inputs (shared base for input, textarea, select) */
.ui-input {
  width: 100%;
  padding: 12px 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text);
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  font-family: inherit;
}
.ui-input:focus {
  border-color: var(--gold-dim);
  box-shadow: 0 0 0 3px var(--gold-glow);
}
.ui-textarea {
  resize: vertical;
  min-height: var(--ui-textarea-min-h, 90px);
  line-height: 1.6;
}
.ui-select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  cursor: pointer;
}
.ui-textarea-counter {
  font-size: 11px;
  color: var(--text-3);
  text-align: right;
  margin-top: 4px;
}
.ui-textarea-counter--warn { color: var(--gold); }
/* Buttons */
.ui-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 24px;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 500;
  border: none;
  outline: none;
  transition: all 0.2s ease;
  cursor: pointer;
  font-family: inherit;
}
.ui-btn--full { width: 100%; }
.ui-btn--primary {
  background: var(--gold);
  color: #fff;
  border: 1.5px solid var(--gold);
}
.ui-btn--primary:hover:not(:disabled) {
  background: var(--gold-dim);
  border-color: var(--gold-dim);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(12,25,41,0.12);
}
.ui-btn--primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.ui-btn--ghost {
  background: transparent;
  color: var(--text-2);
  border: 1px solid var(--border);
  padding: 10px 20px;
  font-size: 13px;
}
.ui-btn--social {
  background: var(--surface-2);
  color: var(--text);
  border: 1px solid var(--border);
}
/* Progress bar */
.ui-progress {
  width: 100%;
  margin-bottom: 20px;
}
.ui-progress-track {
  height: 2px;
  background: var(--border);
  border-radius: 2px;
  overflow: hidden;
}
.ui-progress-fill {
  height: 100%;
  background: var(--gold);
  border-radius: 2px;
  transition: width 0.4s ease;
  width: var(--ui-progress-pct, 0%);
}
.ui-progress-label {
  font-size: 11px;
  color: var(--text-3);
  text-align: right;
  margin-top: 6px;
  letter-spacing: 0.5px;
}
/* Divider */
.ui-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: clamp(8px, 1.5vh, 16px) 0;
  color: var(--text-3);
  font-size: 12px;
}
.ui-divider-line {
  flex: 1;
  height: 1px;
  background: var(--border);
}
/* InfoBox */
.ui-info {
  padding: 14px 16px;
  border-radius: var(--radius);
  font-size: 13px;
  color: var(--text-2);
  line-height: 1.7;
}
.ui-info--gold {
  background: rgba(14,165,233,0.06);
  border: 1px solid rgba(14,165,233,0.2);
}
.ui-info--success {
  background: rgba(5,150,105,0.05);
  border: 1px solid rgba(5,150,105,0.2);
}
.ui-info--neutral {
  background: var(--surface-2);
  border: 1px solid var(--border);
}
.ui-info--error {
  background: rgba(220,38,38,0.08);
  border: 1px solid rgba(220,38,38,0.2);
  color: var(--error);
}
/* Spacing utilities used by ui.tsx component callers */
.u-mt-16 { margin-top: 16px; }
.u-mt-24 { margin-top: 24px; }
.u-mb-10 { margin-bottom: 10px; }
.u-mb-20 { margin-bottom: 20px; }
/* StepHeader */
.ui-step-header { margin-bottom: 28px; }
.ui-step-eyebrow {
  font-size: 11px;
  color: var(--gold);
  letter-spacing: 1px;
  font-weight: 600;
  margin-bottom: 8px;
}
.ui-step-title {
  font-family: 'Syne', sans-serif;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.2;
}
.ui-step-sub {
  font-size: 13px;
  color: var(--text-2);
  margin-top: 8px;
  line-height: 1.6;
}
/* BarrierBox */
.ui-barrier {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 16px;
}
.ui-barrier-title {
  font-size: 12px;
  color: var(--gold);
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-bottom: 10px;
}
.ui-barrier-list { list-style: none; }
.ui-barrier-item {
  font-size: 13px;
  color: var(--text-2);
  padding: 6px 0;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border-bottom: 1px solid var(--border);
}
.ui-barrier-item:last-child { border-bottom: none; }
.ui-barrier-num {
  color: var(--gold);
  font-weight: 600;
  font-size: 12px;
  flex-shrink: 0;
  width: 18px;
}
.ui-barrier-text {
  font-size: 13px;
  color: var(--text-2);
  line-height: 1.7;
}
/* FadeIn */
.ui-fade-in {
  animation: uiFadeUp 0.35s cubic-bezier(.22,.68,0,1.2) both;
  will-change: opacity, transform;
}
@keyframes uiFadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
/* ───────────────────────────────────
   Dashboard screen
─────────────────────────────────── */
.dash-wrap {
  min-height: 100vh;
  background: var(--bg);
  position: relative;
  overflow: hidden;
}
.dash-bg {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 50% at 15% 15%, rgba(14,165,233,0.07) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 85% 80%, rgba(245,158,11,0.04) 0%, transparent 55%);
}
.dash-nav {
  position: sticky;
  top: 0;
  z-index: 10;
  background: rgba(254,254,254,0.85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  padding: 0 32px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dash-nav-right {
  display: flex;
  align-items: center;
  gap: 16px;
}
.dash-user {
  font-size: 13px;
  color: var(--text-2);
}
.dash-role-pill {
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 600;
  color: var(--gold);
  letter-spacing: 0.5px;
  background: rgba(14,165,233,0.08);
  border: 1px solid rgba(14,165,233,0.2);
  border-radius: 99px;
}
.dash-role-pill--btn {
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.dash-role-pill--btn:hover {
  background: rgba(14,165,233,0.16);
  border-color: rgba(14,165,233,0.4);
}
.dash-signout {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-2);
  font-size: 12px;
  cursor: pointer;
  padding: 6px 14px;
  border-radius: var(--radius);
  transition: all 0.2s;
  font-family: inherit;
}
/* ── Profile dropdown ─────────────────────────────────── */
.dash-profile-wrap {
  position: relative;
}
.dash-profile-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 5px 10px 5px 5px;
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.2s, background 0.2s;
}
.dash-profile-btn:hover { border-color: var(--gold); background: rgba(0,0,0,0.02); }
.dash-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--sky);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dash-profile-name {
  font-size: 13px;
  color: var(--text-2);
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dash-profile-caret {
  font-size: 10px;
  color: var(--text-3);
  margin-left: 2px;
}
.dash-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 200px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
  z-index: 200;
  overflow: hidden;
}
.dash-dropdown-user {
  padding: 12px 16px;
}
.dash-dropdown-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 2px;
}
.dash-dropdown-email {
  font-size: 12px;
  color: var(--text-3);
}
.dash-dropdown-divider {
  height: 1px;
  background: var(--border);
}
.dash-dropdown-item {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  padding: 11px 16px;
  font-size: 13px;
  color: var(--text-2);
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s, color 0.15s;
}
.dash-dropdown-item:hover { background: rgba(0,0,0,0.03); color: var(--text-primary); }
.dash-dropdown-item--danger { color: #dc2626; }
.dash-dropdown-item--danger:hover { background: rgba(220,38,38,0.06); color: #dc2626; }
/* ── Change-password modal ───────────────────────────── */
.dash-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.dash-modal {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 28px;
  width: 100%;
  max-width: 400px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}
.dash-modal-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 20px;
}
.dash-modal-field {
  margin-bottom: 14px;
}
.dash-modal-error {
  font-size: 13px;
  color: #dc2626;
  margin-bottom: 14px;
}
.dash-modal-success {
  font-size: 14px;
  color: #166534;
  background: rgba(34,197,94,0.08);
  border: 1px solid rgba(34,197,94,0.25);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-bottom: 20px;
  line-height: 1.5;
}
.dash-modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 20px;
}
.dash-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 56px);
  padding: 48px 24px;
  text-align: center;
}
.dash-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 99px;
  background: rgba(14,165,233,0.08);
  border: 1px solid rgba(14,165,233,0.2);
  font-size: 11px;
  font-weight: 600;
  color: var(--gold);
  letter-spacing: 1px;
  margin-bottom: 32px;
  animation: pulsePill 3s ease-in-out infinite;
  will-change: opacity;
}
.dash-badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  display: inline-block;
}
.dash-title {
  font-family: 'Syne', sans-serif;
  font-size: clamp(36px, 6vw, 64px);
  font-weight: 600;
  line-height: 1.1;
  max-width: 700px;
  margin-bottom: 20px;
}
.dash-lead {
  font-size: 16px;
  color: var(--text-2);
  line-height: 1.7;
  max-width: 480px;
  margin-bottom: 52px;
}
.dash-next-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 32px 36px;
  max-width: 480px;
  width: 100%;
  text-align: left;
  position: relative;
  overflow: hidden;
}
.dash-next-ribbon {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold), transparent);
}
.dash-next-eyebrow {
  font-size: 11px;
  letter-spacing: 0.8px;
  color: var(--text-3);
  font-weight: 600;
  margin-bottom: 20px;
}
.dash-next-row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.dash-next-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  flex-shrink: 0;
  background: rgba(14,165,233,0.06);
  border: 1px solid rgba(14,165,233,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.dash-next-headline {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 6px;
}
.dash-next-body {
  font-size: 13px;
  color: var(--text-2);
  line-height: 1.6;
}
.dash-divider {
  height: 1px;
  background: var(--border);
  margin: 24px 0;
}
.dash-employer-brief {
  padding: 4px 0 8px;
}
.dash-employer-brief-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text);
  text-transform: uppercase;
  margin-bottom: 6px;
}
.dash-employer-brief-note {
  font-size: 13px;
  color: var(--text-2);
  margin-bottom: 16px;
  line-height: 1.5;
}
.dash-employer-brief-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.dash-stats {
  display: flex;
  gap: 16px;
}
.dash-stat {
  flex: 1;
  text-align: center;
}
.dash-stat-val {
  font-family: 'Syne', sans-serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--text-3);
}
.dash-stat-label {
  font-size: 11px;
  color: var(--text-3);
  margin-top: 2px;
}
.dash-stat-sub {
  font-size: 10px;
  color: var(--text-3);
  margin-top: 1px;
}
.dash-quote {
  margin-top: 52px;
  font-size: 13px;
  color: var(--text-3);
  font-style: italic;
}
.dash-quote-em {
  color: var(--text-2);
  font-style: normal;
}
@keyframes pulsePill {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.6; }
}
/* ───────────────────────────────────
   Onboarding screen
─────────────────────────────────── */
.onboard-page {
  min-height: 100vh;
  min-height: 100dvh;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: safe center;
  padding: clamp(16px, 3vh, 28px) clamp(16px, 4vw, 28px);
  --onboard-max-w: 480px;
}
.onboard-page--w-680 { --onboard-max-w: 680px; }
.onboard-page--w-600 { --onboard-max-w: 600px; }
.onboard-nav-row {
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: var(--onboard-max-w);
}
.onboard-progress-wrap {
  width: 100%;
  max-width: var(--onboard-max-w);
}
.onboard-text-btn {
  background: none;
  border: none;
  color: var(--text-3);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.onboard-back-btn {
  background: none;
  border: none;
  color: var(--text-3);
  cursor: pointer;
  font-size: 13px;
  padding: 10px 4px;
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  font-family: inherit;
}
.onboard-actions {
  display: flex;
  gap: 10px;
  margin-top: 28px;
  align-items: center;
}
.onboard-hint {
  margin-top: 16px;
  font-size: 12px;
  color: var(--text-3);
  text-align: center;
}
/* Done screen */
.done-tick {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(5,150,105,0.1);
  border: 1px solid rgba(5,150,105,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-size: 28px;
}
.done-title {
  font-family: 'Syne', sans-serif;
  font-size: 30px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 10px;
}
.done-body {
  font-size: 13px;
  color: var(--text-2);
  text-align: center;
  line-height: 1.7;
  margin-bottom: 28px;
}
.done-next {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
}
.done-next-eyebrow {
  font-size: 11px;
  letter-spacing: 0.8px;
  color: var(--text-3);
  font-weight: 600;
  margin-bottom: 14px;
}
.done-next-item {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.done-next-item:last-child { border-bottom: none; }
.done-next-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  flex-shrink: 0;
  margin-top: 5px;
}
.done-next-text {
  font-size: 13px;
  color: var(--text-2);
  line-height: 1.5;
}
.done-next-text strong { color: var(--text); }
.done-email-notice {
  margin-top: 20px;
  padding: 12px 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 13px;
  color: var(--text-2);
}
.done-email-notice strong { color: var(--text); }
.done-verify-email-notice {
  margin-top: 20px;
  padding: 14px 16px;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: var(--radius);
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: #92400e;
}
.done-verify-email-notice strong { color: #78350f; display: block; margin-bottom: 2px; font-size: 14px; }
.done-verify-email-notice span strong { color: #78350f; display: inline; font-size: 13px; }
.linkedin-oauth-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 9px 16px;
  background: #0077b5;
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.linkedin-oauth-btn:hover { background: #005f8e; }
.linkedin-verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 8px 14px;
  background: #e8f5e9;
  color: #1b5e20;
  border: 1px solid #a5d6a7;
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 600;
}
/* ───────────────────────────────────
   Onboarding step primitives
─────────────────────────────────── */
.role-card {
  padding: 18px 16px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: all 0.18s ease;
  position: relative;
  text-align: left;
  box-shadow: none;
}
.role-card.is-selected {
  background: rgba(14,165,233,0.06);
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold-dim), 0 4px 20px var(--gold-glow);
}
.role-card-side {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 9px;
  letter-spacing: 0.5px;
  color: var(--text-3);
  padding: 2px 7px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
}
.role-card-icon {
  font-size: 20px;
  margin-bottom: 10px;
}
.role-card-label {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 5px;
}
.role-card-desc {
  font-size: 11px;
  color: var(--text-2);
  line-height: 1.5;
}
.radio-card {
  padding: 13px 16px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: all 0.18s ease;
}
.radio-card.is-selected {
  background: rgba(14,165,233,0.05);
  border-color: var(--gold);
}
.radio-card-label {
  font-size: 13px;
  font-weight: 500;
}
.radio-card-desc {
  font-size: 11px;
  color: var(--text-2);
  margin-top: 3px;
  line-height: 1.4;
}
.radio-card-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid var(--border);
  background: transparent;
  transition: all 0.18s;
}
.radio-card.is-selected .radio-card-dot {
  border-color: var(--gold);
  background: var(--gold);
  box-shadow: 0 0 0 3px var(--gold-glow);
}
.chip {
  padding: 11px 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 13px;
  font-weight: 400;
  color: var(--text);
  transition: all 0.18s ease;
  text-align: left;
}
.chip.is-selected {
  background: rgba(14,165,233,0.05);
  border-color: var(--gold);
  font-weight: 500;
  color: var(--gold);
}
/* Step layouts */
.steps-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.steps-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.steps-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
/* Inline emphasis colors */
.em-text { color: var(--text); }
.em-success { color: var(--success); }
/* ───────────────────────────────────
   Split static pages — apps / partners / donate / auth flows
   Left  = image-backed media panel, copy overlaid on a translucent scrim.
   Right = an auth/donate form, or a carousel "deck" of the directory.
   The header + split fill the viewport so the page reads without scrolling;
   only the footer sits just below the fold.
   ─────────────────────────────────── */
.static-stage {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
.split {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  overflow: hidden;
}
.split--solo { grid-template-columns: 1fr; }
/* Left: media panel ─ the picture shows through, copy stays high-contrast. */
.split-media {
  position: relative;
  display: flex;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(150deg, var(--sky-dark) 0%, #0b2740 55%, #061726 100%);
}
.split-media-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.5;
  z-index: -1;
}
/* Translucent layer between picture and text — keeps both legible. */
.split-media::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(4,16,30,0.32) 0%, rgba(4,16,30,0.80) 100%),
    radial-gradient(ellipse 80% 60% at 20% 12%, rgba(14,165,233,0.30) 0%, transparent 60%);
}
.split-media-body {
  position: relative;
  margin: auto 0;
  width: 100%;
  max-width: 34rem;
  padding: clamp(28px, 5vw, 72px);
  color: #fff;
}
.split-eyebrow {
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #7DD3FC;
  margin-bottom: 16px;
}
.split-title {
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1.06;
  letter-spacing: -0.01em;
}
.split-sub {
  margin-top: 18px;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255,255,255,0.82);
  max-width: 44ch;
}
.split-points {
  list-style: none;
  margin-top: clamp(18px, 3vh, 32px);
  display: grid;
  gap: 13px;
  padding: 0;
}
.split-point {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255,255,255,0.92);
}
.split-check {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  margin-top: 1px;
  border-radius: 50%;
  background: rgba(14,165,233,0.25);
  border: 1px solid rgba(125,211,252,0.6);
  color: #BAE6FD;
  font-size: 12px;
  font-weight: 700;
}
/* Right: form / deck panel. Scrolls internally only as a safety net. */
.split-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 0;
  overflow-y: auto;
  padding: clamp(20px, 3.2vw, 48px);
  background: var(--bg);
}
.split-panel-inner {
  width: 100%;
  max-width: var(--split-panel-max-w, 480px);
  margin: auto;
}
/* Directory pages (apps/partners): bias the carousel toward the top so the
   "list your own" CTA below it sits in comfortable view, not pinned to center. */
.split-panel-inner--top { margin-block: clamp(28px, 6vh, 72px) auto; }
/* "List your own" call-to-action shown beneath a directory carousel. */
.dir-cta {
  margin-top: clamp(20px, 3vh, 32px);
  padding-top: clamp(18px, 2.5vh, 26px);
  border-top: 1px solid var(--border);
  text-align: center;
  font-size: 14px;
  color: var(--text-muted);
}
.dir-cta a {
  color: var(--sky);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.dir-cta a:hover { color: var(--sky-dark); }
/* Entrance — panel slides in, its lines stagger up (mirrors the auth pane). */
.split-media-body > * {
  animation: authFadeUp 600ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.split-media-body > :nth-child(1) { animation-delay: 120ms; }
.split-media-body > :nth-child(2) { animation-delay: 190ms; }
.split-media-body > :nth-child(3) { animation-delay: 260ms; }
.split-media-body > :nth-child(4) { animation-delay: 330ms; }
/* ── Carousel deck (directory lists rendered one card at a time) ── */
.deck {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 0;
}
.deck-slide {
  display: none;
  animation: uiFadeUp 0.3s cubic-bezier(.22, .68, 0, 1.2) both;
}
.deck-slide.is-active { display: block; }
.deck-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 18px;
}
.deck-dots {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 200px;
}
.deck-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--border);
  cursor: pointer;
  border: none;
  padding: 0;
  transition: all 0.25s;
}
.deck-dot.is-active {
  background: var(--sky);
  width: 22px;
  border-radius: 4px;
}
.deck-count {
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--text-faint);
  text-align: center;
  margin-top: 10px;
}
/* Narrow screens: stack the columns and let the page scroll normally. */
@media (max-width: 880px) {
  .static-stage { min-height: 0; }
  .split {
    grid-template-columns: 1fr;
    overflow: visible;
  }
  .split-media { display: none; }
  .split-panel { overflow-y: visible; }
}
@media (prefers-reduced-motion: reduce) {
  .split-media-body > *,
  .deck-slide { animation: none; }
}
/* ───────────────────────────────────
   Admin pages (/admin/*)
─────────────────────────────────── */
.admin-page {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
}
.admin-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  height: 56px;
  border-bottom: 1px solid var(--border);
}
.admin-logo {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  text-decoration: none;
}
.admin-nav-email { font-size: 13px; color: var(--text-2); }
.admin-body {
  max-width: 760px;
  margin: 0 auto;
  padding: 40px 24px;
}
.admin-h2 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 24px;
}
.admin-back {
  background: none;
  border: none;
  color: var(--text-2);
  font-size: 13px;
  cursor: pointer;
  padding: 0;
  margin-bottom: 20px;
  display: block;
}
.admin-back:hover { color: var(--text); }
.admin-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.admin-empty { color: var(--text-2); font-size: 14px; padding: 20px 0; }
.admin-loading { color: var(--text-2); font-size: 14px; padding: 40px 0; }
.admin-table { display: flex; flex-direction: column; gap: 8px; }
.admin-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color 0.15s;
}
.admin-row:hover { border-color: var(--accent); }
.admin-row-name { flex: 1; font-weight: 600; font-size: 14px; }
.admin-row-meta { font-size: 12px; color: var(--text-2); }
.admin-row-date { font-size: 12px; color: var(--text-faint); }
.admin-row-del {
  background: none;
  border: none;
  color: var(--color-error, #e55);
  font-size: 12px;
  cursor: pointer;
  padding: 4px 8px;
}
.admin-section-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-2);
  margin-bottom: 10px;
}
.admin-role-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}
.admin-subtype-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.admin-role-chip {
  padding: 8px 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.15s;
}
.admin-role-chip:hover { border-color: var(--accent); }
.admin-role-chip.is-selected {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.admin-detail { max-width: 520px; }
.admin-detail-meta { font-size: 13px; color: var(--text-2); margin-bottom: 24px; }
.admin-qr {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin: 20px 0;
}
.admin-qr-url {
  font-size: 12px;
  color: var(--text-2);
  word-break: break-all;
}
.admin-qr-dl {
  font-size: 12px;
  color: var(--accent);
}
.admin-url-row {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
}
.admin-url-box {
  flex: 1;
  padding: 10px 12px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 12px;
  color: var(--text-2);
  word-break: break-all;
}
.admin-copy-btn {
  padding: 10px 16px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}
.admin-copy-btn:hover { border-color: var(--accent); color: var(--accent); }
/* ═══════════════════════════════════════
   TOKANS — styles.css
   Phase 1 · Light sky-blue + amber palette
   PRD v1.0 · May 2026
═══════════════════════════════════════ */
/* Design tokens (--bg, --sky, --section-gap, …) are the single source of truth
   in src/tailwind.css :root, loaded on every page. This file holds only the
   landing's bespoke component styles. */
/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: 'DM Sans', 'Helvetica Neue', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text-primary);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
  .marquee-track { animation: none !important; }
}
/* ── Typography ── */
.h-hero {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 900;
  font-size: clamp(2.8rem, 6vw, 5rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}
.h2 {
  font-family: 'Syne', 'Helvetica Neue', sans-serif;
  font-weight: 700;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin-bottom: 20px;
}
.lead {
  font-size: clamp(1rem, 1.6vw, 1.125rem);
  color: var(--text-muted);
  line-height: 1.75;
  max-width: 580px;
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'DM Mono', monospace;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sky);
  margin-bottom: 16px;
}
.eyebrow::before {
  content: '';
  display: block;
  width: 20px;
  height: 1px;
  background: var(--sky);
  opacity: 0.5;
  flex-shrink: 0;
}
.eyebrow--light { color: rgba(255,255,255,0.7); }
.eyebrow--light::before { background: rgba(255,255,255,0.4); }
.eyebrow--center { justify-content: center; }
/* Tagline treatment — PRD 3.3 */
.tag-em {
  font-style: italic;
  text-decoration: underline;
  text-decoration-color: var(--amber);
  text-underline-offset: 3px;
  color: var(--sky);
}
/* .logo-ans (navbar logo accent) moved to src/chrome/chrome.css (shared header). */
.text-amber { color: var(--amber); }
/* ── Container ── */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}
/* ── Sections ── */
.section        { padding: var(--section-gap) 0; }
.section--alt   { background: var(--bg-alt); }
/* ── Skip link ── */
.skip-link {
  position: absolute;
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
  background: var(--sky);
  color: #fff;
  padding: 10px 20px;
  border-radius: 0 0 var(--btn-radius) var(--btn-radius);
  font-size: 0.875rem;
  font-weight: 500;
  z-index: 999;
  transition: top 0.2s;
}
.skip-link:focus { top: 0; }
/* ── Scroll Reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.5s cubic-bezier(0.22,1,0.36,1),
              transform 0.5s cubic-bezier(0.22,1,0.36,1);
}
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }
/* ── Focus ring ── */
:focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 2px;
  border-radius: 4px;
}
/* ── Buttons ── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  border-radius: var(--btn-radius);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  text-decoration: none;
  border: 1.5px solid transparent;
}
.btn-lg { padding: 14px 28px; font-size: 0.975rem; }
.btn-primary {
  background: var(--sky);
  color: #fff;
  border-color: var(--sky);
}
.btn-primary:hover {
  background: var(--sky-dark);
  border-color: var(--sky-dark);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.btn-outline {
  background: transparent;
  color: var(--text-primary);
  border-color: var(--border);
}
.btn-outline:hover {
  border-color: var(--sky);
  color: var(--sky);
}
.btn-ghost {
  background: transparent;
  color: var(--text-muted);
  border-color: transparent;
  padding-left: 0;
}
.btn-ghost:hover { color: var(--text-primary); }
.badge-soon {
  font-family: 'DM Mono', monospace;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  background: var(--sky-light);
  color: var(--sky-dark);
  padding: 2px 7px;
  border-radius: 4px;
}
/* ── Image placeholders ── */
.img-ph {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--bg-alt) 0%, var(--sky-light) 100%);
  border-radius: var(--card-radius);
  overflow: hidden;
  position: relative;
}
.img-ph img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
/* Soft bottom fade for depth */
.img-ph::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(12,25,41,0.06) 100%);
  pointer-events: none;
  border-radius: inherit;
}
/* ════════════════════════════════
   NAV — moved to src/chrome/chrome.css (shared header, single source).
   Markup: src/chrome/chrome.ts navbarHTML · wiring: src/chrome/mount.ts
════════════════════════════════ */
/* ════════════════════════════════
   HERO
════════════════════════════════ */
#hero {
  padding: 50px 0 3rem;
  background: var(--bg);
  position: relative;
  overflow: hidden;
}
#hero::before {
  content: '';
  position: absolute;
  top: -200px;
  right: -100px;
  width: 700px;
  height: 700px;
  background: radial-gradient(ellipse at center, rgba(14,165,233,0.07) 0%, transparent 70%);
  pointer-events: none;
}
.hero-grid {
  display: grid;
  grid-template-columns: 55fr 45fr;
  -moz-column-gap: 60px;
       column-gap: 60px;
}
.hero-left .eyebrow { margin-bottom: 20px; }
.hero-lead {
  font-size: clamp(1rem, 1.5vw, 1.1rem);
  color: var(--text-muted);
  line-height: 1.75;
  margin: 28px 0 36px;
  max-width: 500px;
}
.hero-ctas {
  display: flex;
  padding-top: 1rem;
  gap: 14px;
  flex-wrap: wrap;
  flex-direction: column; 
  align-items: flex-end;
}
.hero-trust {
  margin-top: 28px;
  font-family: 'DM Mono', monospace;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-faint);
}
/* Profile card */
.profile-card-wrap {
  position: relative;
  border-radius: var(--card-radius);
}
.profile-card-bg {
  position: absolute;
  inset: 0;
  border-radius: var(--card-radius);
  overflow: hidden;
  opacity: 0.35;
}
.profile-card-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.profile-card {
  position: relative;
  z-index: 1;
  background: rgba(254,254,254,0.96);
  backdrop-filter: blur(20px);
  border: 1px solid var(--border);
  border-radius: var(--card-radius);
  padding: 28px;
  box-shadow: var(--shadow-lg);
  animation: cardEntrance 0.5s 0.3s cubic-bezier(0.22,1,0.36,1) both;
}
@keyframes cardEntrance {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}
.pc-top { margin-bottom: 18px; }
.pc-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'DM Mono', monospace;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: 20px;
  font-weight: 400;
}
.pc-badge--verified {
  background: var(--verified-bg);
  color: var(--verified);
  border: 1px solid rgba(5,150,105,0.2);
}
.pc-identity {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}
.pc-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--sky-light);
  color: var(--sky-dark);
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pc-name {
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--text-primary);
}
.pc-role {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 2px;
}
.pc-bars { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.pc-bar-row {
  display: grid;
  grid-template-columns: 76px 1fr 52px;
  align-items: center;
  gap: 10px;
}
.pc-bar-label {
  font-family: 'DM Mono', monospace;
  font-size: 0.7rem;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}
.pc-bar-track {
  height: 7px;
  background: var(--bg-alt);
  border-radius: 4px;
  overflow: hidden;
}
.pc-bar-fill {
  height: 100%;
  border-radius: 4px;
  background: var(--sky);
  transition: width 1.2s cubic-bezier(0.22,1,0.36,1);
}
/* Default widths from data-pct; script.js overrides 0% → target for the entrance animation */
.pc-bar-fill[data-pct="83"] { width: 83%; }
.pc-bar-fill[data-pct="58"] { width: 58%; }
.pc-bar-fill[data-pct="32"] { width: 32%; }
.pc-bar-fill[data-pct="26"] { width: 26%; }
.pc-bar-fill--work     { background: var(--verified); }
.pc-bar-fill--mentor   { background: #8B5CF6; }
.pc-bar-fill--knowledge { background: var(--amber); }
.pc-bar-val {
  font-family: 'DM Mono', monospace;
  font-size: 0.72rem;
  color: var(--text-muted);
  text-align: right;
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: flex-end;
}
.pc-tick {
  color: var(--verified);
  font-size: 0.65rem;
}
.pc-total {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 14px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin-bottom: 14px;
}
.pc-total-num {
  font-family: 'Syne', sans-serif;
  font-weight: 800;
  font-size: 1.8rem;
  color: var(--text-primary);
  line-height: 1;
}
.pc-total-label {
  font-family: 'DM Mono', monospace;
  font-size: 0.7rem;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}
.pc-velocity {
  margin-left: auto;
  font-family: 'DM Mono', monospace;
  font-size: 0.68rem;
  color: var(--verified);
  letter-spacing: 0.04em;
}
.pc-badges-row { display: flex; gap: 8px; flex-wrap: wrap; }
.pc-tag {
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  background: var(--sky-light);
  color: var(--sky-dark);
  padding: 4px 10px;
  border-radius: 20px;
}
/* ════════════════════════════════
   MARQUEE
════════════════════════════════ */
.marquee-strip {
  background: var(--sky-dark);
  height: 44px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
}
.marquee-strip::before,
.marquee-strip::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 60px;
  z-index: 2;
  pointer-events: none;
}
.marquee-strip::before { left: 0; background: linear-gradient(90deg, var(--sky-dark), transparent); }
.marquee-strip::after  { right: 0; background: linear-gradient(-90deg, var(--sky-dark), transparent); }
.marquee-track {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  animation: marquee-scroll 40s linear infinite;
}
.marquee-strip:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.marquee-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 22px;
  font-family: 'DM Mono', monospace;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  white-space: nowrap;
}
.marquee-item .dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--amber);
  flex-shrink: 0;
}
/* ════════════════════════════════
   WHAT IS A TOKAN
════════════════════════════════ */
.what-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.what-collage { position: relative; }
.collage-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 12px;
}
.collage-cell { position: relative; }
.collage-cell--tall .img-ph { height: 300px; }
.collage-cell--sq   .img-ph { height: 200px; }
.collage-cell--offset { margin-top: 40px; }
.collage-cell--tall.collage-cell--offset .img-ph { height: 300px; }
/* Place cells in 2-column collage */
.collage-cell:nth-child(1) { grid-column: 1; grid-row: 1; }
.collage-cell:nth-child(2) { grid-column: 1; grid-row: 2; }
.collage-cell:nth-child(3) { grid-column: 2; grid-row: 1 / span 2; }
.what-content { padding-top: 12px; }
.what-points { margin-top: 32px; display: flex; flex-direction: column; gap: 24px; }
.what-point { display: flex; gap: 16px; align-items: flex-start; }
.wp-icon { color: var(--sky); font-size: 1rem; flex-shrink: 0; margin-top: 3px; line-height: 1.5; }
.what-point strong { display: block; font-size: 0.95rem; font-weight: 500; color: var(--text-primary); margin-bottom: 4px; font-family: 'Syne', sans-serif; }
.what-point p { font-size: 0.9rem; color: var(--text-muted); line-height: 1.65; }
/* ════════════════════════════════
   ROLES GRID
════════════════════════════════ */
.roles-lead { margin-bottom: 40px; }
.roles-scroll {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr 1fr;
  gap: 14px;
  margin-top: 8px;
}
.roles-scroll.roles-scroll--4 {
  grid-template-columns: repeat(4, 1fr);
}
.role-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--card-radius);
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
}
.role-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: var(--card-radius) var(--card-radius) 0 0;
}
.role-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.role-card--user::before     { background: var(--sky); }
.role-card--builder::before  { background: var(--amber); }
.role-card--partner::before  { background: #8B5CF6; }
.role-card--contributor::before { background: var(--sky-dark); }
.role-icon { font-size: 1.75rem; margin-bottom: 14px; }
.role-name {
  font-family: 'Syne', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 4px;
}
.role-sub {
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  color: var(--text-faint);
  margin-bottom: 14px;
}
.role-desc {
  font-size: 0.875rem;
  color: var(--text-muted);
  line-height: 1.65;
  flex: 1;
  margin-bottom: 16px;
}
.role-cta {
  margin-top: 16px;
  font-size: 0.825rem;
  flex-direction: column;
  align-items: center;
}
.roles-hint {
  display: none;
  text-align: center;
  margin-top: 14px;
  font-family: 'DM Mono', monospace;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-faint);
}
/* ════════════════════════════════
   HOW IT WORKS — CAROUSEL
════════════════════════════════ */
.steps-wrap { margin-top: 52px; }
.steps-track {
  border-radius: var(--card-radius);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--border);
}
.step-slide {
  display: none;
  grid-template-columns: 1fr 1fr;
  animation: slideIn 0.4s cubic-bezier(0.22,1,0.36,1);
}
.step-slide.active { display: grid; }
@keyframes slideIn {
  from { opacity: 0; transform: translateX(16px); }
  to   { opacity: 1; transform: none; }
}
.step-img-ph {
  height: 380px;
  border-radius: 0;
}
.step-img-ph .img-ph { border-radius: 0; }
.step-text-col {
  padding: 52px 48px;
  background: var(--bg);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.step-num {
  font-family: 'Syne', sans-serif;
  font-size: 3.5rem;
  font-weight: 800;
  color: var(--sky-light);
  line-height: 1;
  margin-bottom: 16px;
}
.step-title {
  font-family: 'Syne', sans-serif;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 16px;
  line-height: 1.2;
}
.step-body {
  font-size: 0.975rem;
  color: var(--text-muted);
  line-height: 1.75;
}
.steps-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 24px;
}
.carousel-btn {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--bg);
  border: 1.5px solid var(--border);
  color: var(--text-primary);
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}
.carousel-btn:hover {
  border-color: var(--sky);
  color: var(--sky);
  box-shadow: var(--shadow-sm);
}
.steps-dots { display: flex; gap: 8px; align-items: center; }
.step-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--border);
  cursor: pointer;
  transition: all 0.25s;
  border: none;
  padding: 0;
}
.step-dot.active {
  background: var(--sky);
  width: 24px;
  border-radius: 4px;
}
/* ════════════════════════════════
   FINAL CTA
════════════════════════════════ */
/* The #cta section is authored with Tailwind utilities in index.html. */
/* Visually-hidden SEO/GEO content (machine-readable only) */
.geo-layer {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
/* (.cta-* rules removed — the section now uses Tailwind utilities.) */
/* ════════════════════════════════
   FOOTER
════════════════════════════════ */
/* Scoped to the landing's own footer so it never collides with the shared
   chrome <footer> used on React/SPA routes that also load this stylesheet. */
body > footer {
  background: var(--text-primary);
  padding: 64px 0 32px;
  color: #fff;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-logo {
  font-family: 'Syne', sans-serif;
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  display: block;
  margin-bottom: 18px;
  letter-spacing: -0.02em;
}
.footer-tagline {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.5);
  line-height: 1.7;
  max-width: 260px;
}
.footer-tagline--tag {
  margin-top: 16px;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: rgba(255,255,255,0.6);
}
.footer-col h4 {
  font-family: 'DM Mono', monospace;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  margin-bottom: 18px;
}
.footer-col ul { display: flex; flex-direction: column; gap: 12px; }
.footer-col a {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.65);
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
}
.footer-col a:hover { color: #fff; }
.badge-soon {
  font-family: 'DM Mono', monospace;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  background: rgba(14,165,233,0.2);
  color: #7DD3FC;
  padding: 2px 6px;
  border-radius: 4px;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 24px;
  gap: 16px;
  flex-wrap: wrap;
}
.footer-copy, .footer-mission {
  font-family: 'DM Mono', monospace;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.3);
}
/* ════════════════════════════════
   MODAL
════════════════════════════════ */
.cs-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(12,25,41,0.7);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.cs-overlay.open { opacity: 1; pointer-events: auto; }
.cs-box {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--card-radius);
  padding: 48px 40px;
  max-width: 460px;
  width: 100%;
  text-align: center;
  box-shadow: var(--shadow-lg);
}
/* When the React auth UI is mounted inside the modal, drop the marketing
   modal chrome so the auth screen renders edge-to-edge inside the overlay. */
.cs-overlay:has(#react-auth-root) {
  background: #08090E;
  backdrop-filter: none;
  padding: 0;
  align-items: stretch;
  justify-content: stretch;
  overflow-y: auto;
}
.cs-box:has(#react-auth-root) {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  max-width: none;
  width: 100%;
  text-align: left;
  box-shadow: none;
}
.cs-icon { font-size: 2.5rem; margin-bottom: 16px; }
.cs-badge {
  display: inline-block;
  font-family: 'DM Mono', monospace;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sky-dark);
  background: var(--sky-light);
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 20px;
}
.cs-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 12px;
}
.cs-body {
  font-size: 0.92rem;
  color: var(--text-muted);
  line-height: 1.7;
  margin-bottom: 28px;
}
.cs-close {
  padding: 12px 28px;
  background: var(--sky);
  color: #fff;
  border: none;
  border-radius: var(--btn-radius);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s;
}
.cs-close:hover { background: var(--sky-dark); }
/* ════════════════════════════════
   PRIVACY MANIFESTO
════════════════════════════════ */
.manifesto-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 40px;
}
.manifesto-card {
  position: relative;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--card-radius);
  padding: 32px 30px;
  overflow: hidden;
}
.manifesto-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px; height: 100%;
  background: var(--sky);
}
.manifesto-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 10px;
}
.manifesto-body {
  font-size: 0.95rem;
  color: var(--text-muted);
  line-height: 1.7;
}
.manifesto-closer {
  margin: 36px auto 0;
  max-width: 720px;
  text-align: center;
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  line-height: 1.5;
  color: var(--text-primary);
}
/* ════════════════════════════════
   LIVE APPS — CAROUSEL
════════════════════════════════ */
.apps-carousel-wrap {
  position: relative;
  margin-top: 40px;
}
.apps-carousel {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 4px 20px;
  scrollbar-width: none;        /* Firefox */
  -ms-overflow-style: none;     /* old Edge / IE */
}
.apps-carousel::-webkit-scrollbar { display: none; }
/* Chromium / Safari */
.app-card {
  flex: 0 0 320px;
  scroll-snap-align: start;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--card-radius);
  padding: 28px 26px;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-sm);
}
.app-card-top { margin-bottom: 14px; min-height: 22px; }
.app-badge {
  display: inline-flex;
  align-items: center;
  font-family: 'DM Mono', monospace;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
}
.app-badge--live {
  background: var(--verified-bg);
  color: var(--verified);
  border: 1px solid rgba(5,150,105,0.2);
}
.app-badge--soon {
  background: var(--sky-light);
  color: var(--sky-dark);
}
.app-icon { font-size: 2rem; margin-bottom: 14px; line-height: 1; }
.app-name {
  font-family: 'Syne', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.app-tagline {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 0.95rem;
  color: var(--sky-dark);
  margin-bottom: 14px;
}
.app-desc {
  font-size: 0.875rem;
  color: var(--text-muted);
  line-height: 1.65;
  flex: 1;
  margin-bottom: 18px;
}
.app-cta { align-self: flex-start; }
.app-cta--disabled {
  background: var(--bg-alt);
  color: var(--text-faint);
  border-color: var(--border);
  cursor: not-allowed;
  pointer-events: none;
}
.app-card--invite {
  background: linear-gradient(160deg, var(--sky-light) 0%, var(--bg) 70%);
  border: 1.5px dashed var(--sky);
}
/* Scroll arrows (desktop) */
.apps-arrow {
  position: absolute;
  top: 38%;
  z-index: 3;
  background: var(--bg);
  box-shadow: var(--shadow-md);
}
.apps-arrow--prev { left: -18px; }
.apps-arrow--next { right: -18px; }
.apps-footnote { margin-top: 20px; max-width: 760px; }
.apps-footnote p {
  font-size: 0.875rem;
  color: var(--text-muted);
  line-height: 1.7;
}
.apps-corelib-link {
  display: inline-block;
  margin-top: 10px;
  font-family: 'DM Mono', monospace;
  font-size: 0.8rem;
  color: var(--sky-dark);
  border-bottom: 1px solid transparent;
}
.apps-corelib-link:hover { border-bottom-color: var(--sky-dark); }
/* ════════════════════════════════
   RESPONSIVE
════════════════════════════════ */
/* 1200px — tighten roles grid */
@media (max-width: 1200px) {
  .roles-scroll {
    grid-template-columns: 1.2fr 1fr 1fr;
  }
}
/* 1024px */
@media (max-width: 1024px) {
  .hero-grid { gap: 40px; }
  .what-grid { gap: 48px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
/* 900px — roles go horizontal scroll; apps arrows give way to swipe */
@media (max-width: 900px) {
  .apps-arrow { display: none; }
  .roles-scroll {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 14px;
    padding-bottom: 16px;
    scrollbar-width: none;       /* Firefox */
    -ms-overflow-style: none;    /* old Edge / IE */
  }
  .roles-scroll::-webkit-scrollbar { display: none; }  /* Chromium / Safari */
  .role-card {
    flex: 0 0 300px;
    scroll-snap-align: start;
  }
  .roles-hint { display: block; }
}
/* 768px — stack hero (nav responsive rules now in src/chrome/chrome.css) */
@media (max-width: 768px) {
  #hero { padding: 1rem 0 2.5rem; }
  .hero-grid { grid-template-columns: 1fr; gap: 44px; }
  .hero-lead { max-width: 100%; }

  .manifesto-grid { grid-template-columns: 1fr; }
  .app-card { flex: 0 0 82vw; max-width: 340px; }

  .what-grid { grid-template-columns: 1fr; gap: 40px; }
  .collage-grid { grid-template-columns: 1fr 1fr; }
  .collage-cell--tall .img-ph { height: 220px; }
  .collage-cell--sq   .img-ph { height: 160px; }

  .role-card { flex: 0 0 82vw; max-width: 320px; }

  .step-slide { grid-template-columns: 1fr; }
  .step-img-ph, .step-img-ph .img-ph { height: 240px; }
  .step-text-col { padding: 32px 28px; }

  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; }
}
/* 600px */
@media (max-width: 600px) {
  :root { --container-pad: 1.125rem; }

  .h-hero { font-size: clamp(2.3rem, 9vw, 3.2rem); }
  .hero-ctas { flex-direction: column; align-items: flex-end; }
  .hero-ctas .btn { width: 100%; max-width: 340px; justify-content: center; }

  .collage-grid { gap: 8px; }
  .collage-cell--tall .img-ph { height: 180px; }
  .collage-cell--offset { margin-top: 24px; }

  .step-img-ph, .step-img-ph .img-ph { height: 200px; }
  .step-text-col { padding: 24px 20px; }
  .step-num { font-size: 2.5rem; }

  .footer-grid { grid-template-columns: 1fr; }

  .cs-box { padding: 36px 24px; }
}
/* 420px */
@media (max-width: 420px) {
  .h-hero { font-size: clamp(2.1rem, 9.5vw, 2.8rem); }
  .profile-card { padding: 20px; }
  .pc-bar-row { grid-template-columns: 64px 1fr 44px; }
  .role-card { flex: 0 0 88vw; }
}
/* Landscape short phone (nav-mobile-menu rule now in src/chrome/chrome.css) */
@media (max-height: 500px) and (max-width: 900px) {
  #hero { padding: 1rem 0; }
}
/* ═══════════════════════════════════════════════════════════════════════════
   Shared site navbar styles — the SINGLE source for the header on every page.

   The markup comes from the hand-editable partial public/partials/header-prelogin.html
   and is injected by public/js/chrome.js, which also imports this stylesheet. The static landing,
   the static pre-login pages (apps/partners/donate) and the SPA therefore all
   render the same header. (Moved here from src/landing.css so it is no longer
   landing-only.) Design tokens (--bg, --sky, …) come from src/tailwind.css.
═══════════════════════════════════════════════════════════════════════════ */
/* Logo accent — the italic/underlined "ans" in the wordmark. */
.logo-ans {
  font-style: italic;
  text-decoration: underline;
  text-decoration-color: var(--amber);
  text-underline-offset: 3px;
  color: var(--sky);
}
#navbar {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 64px;
  padding: 0 var(--container-pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--bg);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
#navbar.scrolled {
  border-bottom-color: var(--border);
  box-shadow: var(--shadow-sm);
}
.nav-logo {
  font-family: 'Syne', sans-serif;
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  text-decoration: none;
  letter-spacing: -0.02em;
  flex-shrink: 0;
}
.nav-logo-img { width: 40px; height: auto; -o-object-fit: contain; object-fit: contain; }
.nav-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}
.nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted);
  text-decoration: none;
  transition: color 0.2s;
  padding: 4px 0;
}
.nav-link:hover { color: var(--text-primary); }
.nav-link--engineers {
  color: var(--sky);
  font-weight: 500;
}
.nav-link--engineers:hover { color: var(--sky-dark); }
.nav-cta { font-size: 0.85rem; padding: 9px 18px; }
/* Hamburger */
.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1.5px solid var(--border);
  border-radius: var(--btn-radius);
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.2s;
}
.nav-hamburger:hover { border-color: var(--sky); }
.nav-hamburger span {
  display: block;
  width: 18px;
  height: 1.5px;
  background: var(--text-primary);
  border-radius: 2px;
  transition: transform 0.28s cubic-bezier(0.22,1,0.36,1), opacity 0.2s, width 0.2s;
  transform-origin: center;
}
.nav-hamburger.active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-hamburger.active span:nth-child(2) { opacity: 0; width: 0; }
.nav-hamburger.active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
/* Mobile menu */
.nav-mobile-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 100;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-md);
  flex-direction: column;
  padding: 12px var(--container-pad) 28px;
  gap: 2px;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.22,1,0.36,1);
}
.nav-mobile-menu.open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.nav-mobile-link {
  display: block;
  color: var(--text-primary);
  font-size: 1rem;
  font-weight: 500;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
  transition: color 0.2s;
}
.nav-mobile-link:hover { color: var(--sky); }
.nav-mobile-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}
.nav-mobile-actions .btn { width: 100%; justify-content: center; }
.nav-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  top: 64px;
  z-index: 99;
}
.nav-backdrop.active { display: block; }
/* ── Mobile: collapse desktop links into the hamburger menu ── */
@media (max-width: 768px) {
  #navbar { padding: 0 20px; }
  .nav-link { display: none; }
  .nav-cta { display: none; }
  .nav-hamburger { display: flex; }
  .nav-mobile-menu { display: flex; }
  .nav-backdrop { top: 64px; }
}
/* Landscape short phone — keep the open menu scrollable. */
@media (max-height: 500px) and (max-width: 900px) {
  .nav-mobile-menu { max-height: calc(100svh - 64px); overflow-y: auto; }
}
.file\:border-0::file-selector-button{
    border-width:            0px;
}
.file\:bg-transparent::file-selector-button{
    background-color:            transparent;
}
.file\:text-sm::file-selector-button{
    font-size:            0.875rem;
    line-height:            1.25rem;
}
.file\:font-medium::file-selector-button{
    font-weight:            500;
}
.placeholder\:text-gray-400::-moz-placeholder{
    --tw-text-opacity:            1;
    color:            rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.placeholder\:text-gray-400::placeholder{
    --tw-text-opacity:            1;
    color:            rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.focus-within\:border-blue-500:focus-within{
    --tw-border-opacity:            1;
    border-color:            rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.focus-within\:ring-2:focus-within{
    --tw-ring-offset-shadow:            var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow:            var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow:            var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-within\:ring-blue-500\/20:focus-within{
    --tw-ring-color:            rgb(59 130 246 / 0.2);
}
.hover\:border-blue-300:hover{
    --tw-border-opacity:            1;
    border-color:            rgb(147 197 253 / var(--tw-border-opacity, 1));
}
.hover\:border-blue-400:hover{
    --tw-border-opacity:            1;
    border-color:            rgb(96 165 250 / var(--tw-border-opacity, 1));
}
.hover\:border-gray-300:hover{
    --tw-border-opacity:            1;
    border-color:            rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.hover\:bg-blue-100:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.hover\:bg-blue-50:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
.hover\:bg-blue-50\/50:hover{
    background-color:            rgb(239 246 255 / 0.5);
}
.hover\:bg-blue-700:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-100:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-50:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-700:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(55 65 81 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-800:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(31 41 55 / var(--tw-bg-opacity, 1));
}
.hover\:bg-green-700:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(21 128 61 / var(--tw-bg-opacity, 1));
}
.hover\:bg-purple-50:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(250 245 255 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-50:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-700:hover{
    --tw-bg-opacity:            1;
    background-color:            rgb(185 28 28 / var(--tw-bg-opacity, 1));
}
.hover\:text-blue-500:hover{
    --tw-text-opacity:            1;
    color:            rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.hover\:text-blue-600:hover{
    --tw-text-opacity:            1;
    color:            rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.hover\:text-blue-700:hover{
    --tw-text-opacity:            1;
    color:            rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.hover\:text-gray-600:hover{
    --tw-text-opacity:            1;
    color:            rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.hover\:text-gray-700:hover{
    --tw-text-opacity:            1;
    color:            rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.hover\:text-ink:hover{
    color:            var(--text-primary);
}
.hover\:text-red-500:hover{
    --tw-text-opacity:            1;
    color:            rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.hover\:text-red-600:hover{
    --tw-text-opacity:            1;
    color:            rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.hover\:text-red-700:hover{
    --tw-text-opacity:            1;
    color:            rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.hover\:text-sky:hover{
    color:            var(--sky);
}
.hover\:text-sky-dark:hover{
    color:            var(--sky-dark);
}
.hover\:text-white:hover{
    --tw-text-opacity:            1;
    color:            rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:text-white\/70:hover{
    color:            rgb(255 255 255 / 0.7);
}
.hover\:underline:hover{
    text-decoration-line:            underline;
}
.hover\:opacity-80:hover{
    opacity:            0.8;
}
.hover\:shadow-md:hover{
    --tw-shadow:            var(--shadow-md);
    --tw-shadow-colored:            var(--shadow-md);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-sm:hover{
    --tw-shadow:            var(--shadow-sm);
    --tw-shadow-colored:            var(--shadow-sm);
    box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:brightness-95:hover{
    --tw-brightness:            brightness(.95);
    filter:            var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.focus\:border-blue-400:focus{
    --tw-border-opacity:            1;
    border-color:            rgb(96 165 250 / var(--tw-border-opacity, 1));
}
.focus\:border-blue-500:focus{
    --tw-border-opacity:            1;
    border-color:            rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.focus\:border-red-500:focus{
    --tw-border-opacity:            1;
    border-color:            rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus{
    outline:            2px solid transparent;
    outline-offset:            2px;
}
.focus\:ring-2:focus{
    --tw-ring-offset-shadow:            var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow:            var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow:            var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-blue-500\/20:focus{
    --tw-ring-color:            rgb(59 130 246 / 0.2);
}
.focus\:ring-blue-500\/40:focus{
    --tw-ring-color:            rgb(59 130 246 / 0.4);
}
.focus\:ring-red-500\/20:focus{
    --tw-ring-color:            rgb(239 68 68 / 0.2);
}
.focus\:ring-offset-2:focus{
    --tw-ring-offset-width:            2px;
}
.focus-visible\:outline-none:focus-visible{
    outline:            2px solid transparent;
    outline-offset:            2px;
}
.focus-visible\:ring-2:focus-visible{
    --tw-ring-offset-shadow:            var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow:            var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow:            var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-offset-2:focus-visible{
    --tw-ring-offset-width:            2px;
}
.active\:cursor-grabbing:active{
    cursor:            grabbing;
}
.disabled\:pointer-events-none:disabled{
    pointer-events:            none;
}
.disabled\:cursor-not-allowed:disabled{
    cursor:            not-allowed;
}
.disabled\:opacity-20:disabled{
    opacity:            0.2;
}
.disabled\:opacity-40:disabled{
    opacity:            0.4;
}
.disabled\:opacity-50:disabled{
    opacity:            0.5;
}
.disabled\:opacity-60:disabled{
    opacity:            0.6;
}
.group:hover .group-hover\:scale-110{
    --tw-scale-x:            1.1;
    --tw-scale-y:            1.1;
    transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:text-blue-600{
    --tw-text-opacity:            1;
    color:            rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:underline{
    text-decoration-line:            underline;
}
.group:hover .group-hover\:opacity-100{
    opacity:            1;
}
@media (min-width: 640px){
    .sm\:col-span-1{
        grid-column:            span 1 / span 1;
    }
    .sm\:block{
        display:            block;
    }
    .sm\:inline{
        display:            inline;
    }
    .sm\:flex{
        display:            flex;
    }
    .sm\:inline-flex{
        display:            inline-flex;
    }
    .sm\:w-44{
        width:            11rem;
    }
    .sm\:grid-cols-2{
        grid-template-columns:            repeat(2, minmax(0, 1fr));
    }
    .sm\:grid-cols-\[1\.5fr_1fr_1fr_1fr\]{
        grid-template-columns:            1.5fr 1fr 1fr 1fr;
    }
    .sm\:flex-row{
        flex-direction:            row;
    }
    .sm\:items-center{
        align-items:            center;
    }
    .sm\:gap-12{
        gap:            3rem;
    }
    .sm\:gap-6{
        gap:            1.5rem;
    }
    .sm\:px-10{
        padding-left:            2.5rem;
        padding-right:            2.5rem;
    }
    .sm\:pt-16{
        padding-top:            4rem;
    }
}
@media (min-width: 768px){
    .md\:relative{
        position:            relative;
    }
    .md\:z-auto{
        z-index:            auto;
    }
    .md\:ml-0{
        margin-left:            0px;
    }
    .md\:block{
        display:            block;
    }
    .md\:flex{
        display:            flex;
    }
    .md\:hidden{
        display:            none;
    }
    .md\:w-2\/5{
        width:            40%;
    }
    .md\:w-3\/5{
        width:            60%;
    }
    .md\:w-44{
        width:            11rem;
    }
    .md\:w-\[22rem\]{
        width:            22rem;
    }
    .md\:shrink-0{
        flex-shrink:            0;
    }
    .md\:translate-x-0{
        --tw-translate-x:            0px;
        transform:            translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    }
    .md\:flex-row{
        flex-direction:            row;
    }
    .md\:p-4{
        padding:            1rem;
    }
    .md\:p-6{
        padding:            1.5rem;
    }
    .md\:p-8{
        padding:            2rem;
    }
    .md\:px-6{
        padding-left:            1.5rem;
        padding-right:            1.5rem;
    }
    .md\:pb-0{
        padding-bottom:            0px;
    }
    .md\:shadow-none{
        --tw-shadow:            0 0 #0000;
        --tw-shadow-colored:            0 0 #0000;
        box-shadow:            var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    }
}
@media (min-width: 1024px){
    .lg\:grid-cols-3{
        grid-template-columns:            repeat(3, minmax(0, 1fr));
    }
}
@media (prefers-color-scheme: dark){
    .dark\:border-amber-700{
        --tw-border-opacity:            1;
        border-color:            rgb(180 83 9 / var(--tw-border-opacity, 1));
    }
    .dark\:border-amber-800{
        --tw-border-opacity:            1;
        border-color:            rgb(146 64 14 / var(--tw-border-opacity, 1));
    }
    .dark\:border-amber-900{
        --tw-border-opacity:            1;
        border-color:            rgb(120 53 15 / var(--tw-border-opacity, 1));
    }
    .dark\:border-amber-900\/50{
        border-color:            rgb(120 53 15 / 0.5);
    }
    .dark\:border-blue-700{
        --tw-border-opacity:            1;
        border-color:            rgb(29 78 216 / var(--tw-border-opacity, 1));
    }
    .dark\:border-blue-800{
        --tw-border-opacity:            1;
        border-color:            rgb(30 64 175 / var(--tw-border-opacity, 1));
    }
    .dark\:border-blue-900{
        --tw-border-opacity:            1;
        border-color:            rgb(30 58 138 / var(--tw-border-opacity, 1));
    }
    .dark\:border-blue-900\/40{
        border-color:            rgb(30 58 138 / 0.4);
    }
    .dark\:border-emerald-700{
        --tw-border-opacity:            1;
        border-color:            rgb(4 120 87 / var(--tw-border-opacity, 1));
    }
    .dark\:border-gray-600{
        --tw-border-opacity:            1;
        border-color:            rgb(75 85 99 / var(--tw-border-opacity, 1));
    }
    .dark\:border-gray-700{
        --tw-border-opacity:            1;
        border-color:            rgb(55 65 81 / var(--tw-border-opacity, 1));
    }
    .dark\:border-gray-800{
        --tw-border-opacity:            1;
        border-color:            rgb(31 41 55 / var(--tw-border-opacity, 1));
    }
    .dark\:border-green-700{
        --tw-border-opacity:            1;
        border-color:            rgb(21 128 61 / var(--tw-border-opacity, 1));
    }
    .dark\:border-orange-700{
        --tw-border-opacity:            1;
        border-color:            rgb(194 65 12 / var(--tw-border-opacity, 1));
    }
    .dark\:border-purple-700{
        --tw-border-opacity:            1;
        border-color:            rgb(126 34 206 / var(--tw-border-opacity, 1));
    }
    .dark\:border-purple-800{
        --tw-border-opacity:            1;
        border-color:            rgb(107 33 168 / var(--tw-border-opacity, 1));
    }
    .dark\:border-purple-800\/60{
        border-color:            rgb(107 33 168 / 0.6);
    }
    .dark\:border-red-800{
        --tw-border-opacity:            1;
        border-color:            rgb(153 27 27 / var(--tw-border-opacity, 1));
    }
    .dark\:border-red-900{
        --tw-border-opacity:            1;
        border-color:            rgb(127 29 29 / var(--tw-border-opacity, 1));
    }
    .dark\:border-sky-700{
        --tw-border-opacity:            1;
        border-color:            rgb(3 105 161 / var(--tw-border-opacity, 1));
    }
    .dark\:border-teal-700{
        --tw-border-opacity:            1;
        border-color:            rgb(15 118 110 / var(--tw-border-opacity, 1));
    }
    .dark\:bg-amber-900\/20{
        background-color:            rgb(120 53 15 / 0.2);
    }
    .dark\:bg-amber-900\/30{
        background-color:            rgb(120 53 15 / 0.3);
    }
    .dark\:bg-amber-950\/20{
        background-color:            rgb(69 26 3 / 0.2);
    }
    .dark\:bg-amber-950\/30{
        background-color:            rgb(69 26 3 / 0.3);
    }
    .dark\:bg-amber-950\/40{
        background-color:            rgb(69 26 3 / 0.4);
    }
    .dark\:bg-blue-900\/10{
        background-color:            rgb(30 58 138 / 0.1);
    }
    .dark\:bg-blue-900\/20{
        background-color:            rgb(30 58 138 / 0.2);
    }
    .dark\:bg-blue-900\/30{
        background-color:            rgb(30 58 138 / 0.3);
    }
    .dark\:bg-blue-900\/40{
        background-color:            rgb(30 58 138 / 0.4);
    }
    .dark\:bg-blue-950\/20{
        background-color:            rgb(23 37 84 / 0.2);
    }
    .dark\:bg-blue-950\/60{
        background-color:            rgb(23 37 84 / 0.6);
    }
    .dark\:bg-emerald-900\/20{
        background-color:            rgb(6 78 59 / 0.2);
    }
    .dark\:bg-gray-500{
        --tw-bg-opacity:            1;
        background-color:            rgb(107 114 128 / var(--tw-bg-opacity, 1));
    }
    .dark\:bg-gray-600{
        --tw-bg-opacity:            1;
        background-color:            rgb(75 85 99 / var(--tw-bg-opacity, 1));
    }
    .dark\:bg-gray-700{
        --tw-bg-opacity:            1;
        background-color:            rgb(55 65 81 / var(--tw-bg-opacity, 1));
    }
    .dark\:bg-gray-800{
        --tw-bg-opacity:            1;
        background-color:            rgb(31 41 55 / var(--tw-bg-opacity, 1));
    }
    .dark\:bg-gray-800\/30{
        background-color:            rgb(31 41 55 / 0.3);
    }
    .dark\:bg-gray-800\/40{
        background-color:            rgb(31 41 55 / 0.4);
    }
    .dark\:bg-gray-800\/50{
        background-color:            rgb(31 41 55 / 0.5);
    }
    .dark\:bg-gray-800\/60{
        background-color:            rgb(31 41 55 / 0.6);
    }
    .dark\:bg-gray-900{
        --tw-bg-opacity:            1;
        background-color:            rgb(17 24 39 / var(--tw-bg-opacity, 1));
    }
    .dark\:bg-gray-950{
        --tw-bg-opacity:            1;
        background-color:            rgb(3 7 18 / var(--tw-bg-opacity, 1));
    }
    .dark\:bg-green-900\/20{
        background-color:            rgb(20 83 45 / 0.2);
    }
    .dark\:bg-green-900\/30{
        background-color:            rgb(20 83 45 / 0.3);
    }
    .dark\:bg-indigo-900\/20{
        background-color:            rgb(49 46 129 / 0.2);
    }
    .dark\:bg-orange-900\/20{
        background-color:            rgb(124 45 18 / 0.2);
    }
    .dark\:bg-orange-900\/30{
        background-color:            rgb(124 45 18 / 0.3);
    }
    .dark\:bg-purple-900\/10{
        background-color:            rgb(88 28 135 / 0.1);
    }
    .dark\:bg-purple-900\/20{
        background-color:            rgb(88 28 135 / 0.2);
    }
    .dark\:bg-purple-900\/30{
        background-color:            rgb(88 28 135 / 0.3);
    }
    .dark\:bg-red-950\/20{
        background-color:            rgb(69 10 10 / 0.2);
    }
    .dark\:bg-red-950\/30{
        background-color:            rgb(69 10 10 / 0.3);
    }
    .dark\:bg-sky-900\/20{
        background-color:            rgb(12 74 110 / 0.2);
    }
    .dark\:bg-teal-900\/20{
        background-color:            rgb(19 78 74 / 0.2);
    }
    .dark\:bg-yellow-900\/30{
        background-color:            rgb(113 63 18 / 0.3);
    }
    .dark\:from-blue-900\/30{
        --tw-gradient-from:            rgb(30 58 138 / 0.3) var(--tw-gradient-from-position);
        --tw-gradient-to:            rgb(30 58 138 / 0) var(--tw-gradient-to-position);
        --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
    }
    .dark\:from-blue-950\/40{
        --tw-gradient-from:            rgb(23 37 84 / 0.4) var(--tw-gradient-from-position);
        --tw-gradient-to:            rgb(23 37 84 / 0) var(--tw-gradient-to-position);
        --tw-gradient-stops:            var(--tw-gradient-from), var(--tw-gradient-to);
    }
    .dark\:to-indigo-900\/30{
        --tw-gradient-to:            rgb(49 46 129 / 0.3) var(--tw-gradient-to-position);
    }
    .dark\:to-indigo-950\/40{
        --tw-gradient-to:            rgb(30 27 75 / 0.4) var(--tw-gradient-to-position);
    }
    .dark\:text-amber-200{
        --tw-text-opacity:            1;
        color:            rgb(253 230 138 / var(--tw-text-opacity, 1));
    }
    .dark\:text-amber-300{
        --tw-text-opacity:            1;
        color:            rgb(252 211 77 / var(--tw-text-opacity, 1));
    }
    .dark\:text-amber-400{
        --tw-text-opacity:            1;
        color:            rgb(251 191 36 / var(--tw-text-opacity, 1));
    }
    .dark\:text-blue-200{
        --tw-text-opacity:            1;
        color:            rgb(191 219 254 / var(--tw-text-opacity, 1));
    }
    .dark\:text-blue-300{
        --tw-text-opacity:            1;
        color:            rgb(147 197 253 / var(--tw-text-opacity, 1));
    }
    .dark\:text-blue-400{
        --tw-text-opacity:            1;
        color:            rgb(96 165 250 / var(--tw-text-opacity, 1));
    }
    .dark\:text-emerald-300{
        --tw-text-opacity:            1;
        color:            rgb(110 231 183 / var(--tw-text-opacity, 1));
    }
    .dark\:text-gray-100{
        --tw-text-opacity:            1;
        color:            rgb(243 244 246 / var(--tw-text-opacity, 1));
    }
    .dark\:text-gray-200{
        --tw-text-opacity:            1;
        color:            rgb(229 231 235 / var(--tw-text-opacity, 1));
    }
    .dark\:text-gray-300{
        --tw-text-opacity:            1;
        color:            rgb(209 213 219 / var(--tw-text-opacity, 1));
    }
    .dark\:text-gray-400{
        --tw-text-opacity:            1;
        color:            rgb(156 163 175 / var(--tw-text-opacity, 1));
    }
    .dark\:text-gray-600{
        --tw-text-opacity:            1;
        color:            rgb(75 85 99 / var(--tw-text-opacity, 1));
    }
    .dark\:text-gray-700{
        --tw-text-opacity:            1;
        color:            rgb(55 65 81 / var(--tw-text-opacity, 1));
    }
    .dark\:text-green-300{
        --tw-text-opacity:            1;
        color:            rgb(134 239 172 / var(--tw-text-opacity, 1));
    }
    .dark\:text-green-400{
        --tw-text-opacity:            1;
        color:            rgb(74 222 128 / var(--tw-text-opacity, 1));
    }
    .dark\:text-indigo-300{
        --tw-text-opacity:            1;
        color:            rgb(165 180 252 / var(--tw-text-opacity, 1));
    }
    .dark\:text-orange-300{
        --tw-text-opacity:            1;
        color:            rgb(253 186 116 / var(--tw-text-opacity, 1));
    }
    .dark\:text-orange-400{
        --tw-text-opacity:            1;
        color:            rgb(251 146 60 / var(--tw-text-opacity, 1));
    }
    .dark\:text-purple-200{
        --tw-text-opacity:            1;
        color:            rgb(233 213 255 / var(--tw-text-opacity, 1));
    }
    .dark\:text-purple-300{
        --tw-text-opacity:            1;
        color:            rgb(216 180 254 / var(--tw-text-opacity, 1));
    }
    .dark\:text-purple-400{
        --tw-text-opacity:            1;
        color:            rgb(192 132 252 / var(--tw-text-opacity, 1));
    }
    .dark\:text-red-300{
        --tw-text-opacity:            1;
        color:            rgb(252 165 165 / var(--tw-text-opacity, 1));
    }
    .dark\:text-red-400{
        --tw-text-opacity:            1;
        color:            rgb(248 113 113 / var(--tw-text-opacity, 1));
    }
    .dark\:text-sky-300{
        --tw-text-opacity:            1;
        color:            rgb(125 211 252 / var(--tw-text-opacity, 1));
    }
    .dark\:text-teal-300{
        --tw-text-opacity:            1;
        color:            rgb(94 234 212 / var(--tw-text-opacity, 1));
    }
    .dark\:text-white{
        --tw-text-opacity:            1;
        color:            rgb(255 255 255 / var(--tw-text-opacity, 1));
    }
    .dark\:text-yellow-400{
        --tw-text-opacity:            1;
        color:            rgb(250 204 21 / var(--tw-text-opacity, 1));
    }
    .dark\:hover\:bg-blue-900\/20:hover{
        background-color:            rgb(30 58 138 / 0.2);
    }
    .dark\:hover\:bg-blue-900\/40:hover{
        background-color:            rgb(30 58 138 / 0.4);
    }
    .dark\:hover\:bg-gray-700\/50:hover{
        background-color:            rgb(55 65 81 / 0.5);
    }
    .dark\:hover\:bg-gray-800:hover{
        --tw-bg-opacity:            1;
        background-color:            rgb(31 41 55 / var(--tw-bg-opacity, 1));
    }
    .dark\:hover\:bg-gray-800\/60:hover{
        background-color:            rgb(31 41 55 / 0.6);
    }
    .dark\:hover\:bg-purple-900\/20:hover{
        background-color:            rgb(88 28 135 / 0.2);
    }
    .dark\:hover\:bg-red-950\/30:hover{
        background-color:            rgb(69 10 10 / 0.3);
    }
    .dark\:hover\:text-gray-300:hover{
        --tw-text-opacity:            1;
        color:            rgb(209 213 219 / var(--tw-text-opacity, 1));
    }
}
