/* Self-hosted Funnel Display and Funnel Sans (SIL OFL 1.1, public/fonts/OFL-LICENSE.txt, from @fontsource 5.3.0): nothing loads from Google, which is blocked in China. */
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/funnel-display-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/funnel-display-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/funnel-display-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/funnel-display-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/funnel-display-latin-ext-800-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/funnel-display-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Funnel Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/funnel-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Funnel Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/funnel-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Funnel Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/funnel-sans-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Funnel Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/funnel-sans-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Funnel Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/funnel-sans-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Funnel Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/funnel-sans-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Space in Hand — shared tokens and components (validation mock) */
:root{
  --navy-950:#011A2E; --navy-900:#022744; --navy-800:#023255; --navy-700:#0A5A94; --navy-600:#1689CC; --sky:#2BAEED;
  --navy-200:#BDE2F8; --navy-100:#E3F3FC;
  --mist:#F1F5F9; --paper:#FFFFFF; --sand:#EAE3D3;
  --ink:#021B2E; --ink-2:#3D5063; --ink-3:#64778A; --line:#D2DDE7; --line-2:#E5ECF2;
  --verm:#F04A23; --action:#D93A12; --action-hover:#BF300C;
  --on-navy:#F3F8FC; --on-navy-2:#A9C9E0;
  --ok:#0F7A55; --warn:#B26A00;
  --r-s:8px; --r-m:12px; --r-l:20px;
  --shadow:0 18px 40px -22px rgba(1,26,46,.55), 0 2px 6px -2px rgba(1,26,46,.18);
  --ease:cubic-bezier(.16,1,.3,1);
  --display:"Funnel Display", "Funnel Sans", sans-serif;
  --text:"Funnel Sans", system-ui, sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--text);font-size:1rem;line-height:1.5;color:var(--ink);background:var(--mist);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;accent-color:var(--action);caret-color:var(--action)}
::selection{background:var(--verm);color:#fff}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--verm);outline-offset:2px;border-radius:4px}
html{scrollbar-color:var(--navy-700) var(--navy-100);scrollbar-width:thin}
h1,h2,h3{font-family:var(--display);letter-spacing:-.03em;line-height:1.02;text-wrap:balance;font-weight:700}
.wrap{width:min(100% - 2rem, 82.5rem);margin-inline:auto}
@media (min-width:640px){.wrap{width:min(100% - 4rem, 82.5rem)}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.65rem 1.15rem;border:1px solid transparent;
  border-radius:var(--r-s);font-weight:700;font-size:.9375rem;text-decoration:none;white-space:nowrap;
  transition:background-color .2s var(--ease),transform .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.btn svg{width:1.1rem;height:1.1rem;flex:none}
.btn:active{transform:translateY(1px) scale(.985)}
.btn-action{background:var(--action);color:#fff}
.btn-action:hover{background:var(--action-hover)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--navy-800)}
.btn-line{border-color:var(--line);background:var(--paper);color:var(--ink)}
.btn-line:hover{border-color:var(--ink)}
.btn-ghost-light{border-color:rgba(243,246,251,.35);color:var(--on-navy);background:transparent}
.btn-ghost-light:hover{border-color:var(--on-navy);background:rgba(243,246,251,.08)}
.btn-paper{background:var(--paper);color:var(--ink)}
.btn-paper:hover{background:var(--navy-100)}
.btn-lg{min-height:3.25rem;padding:.85rem 1.4rem;font-size:1rem}
.btn-sm{min-height:2.25rem;padding:.4rem .8rem;font-size:.875rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* brand mark: a hand-sized block with one free slot */
.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--display);font-weight:800;font-size:1.2rem;letter-spacing:-.03em;text-decoration:none}
.brand img{height:3.25rem;width:auto;flex:none}

/* forwarder house mark: anonymous identity until a deal is agreed */
.mark{--a:var(--navy-700);--b:var(--sand);width:2rem;height:2rem;flex:none;border-radius:6px;background:linear-gradient(135deg,var(--a) 50%,var(--b) 50%)}
.mark.m2{--a:var(--ink);--b:var(--verm);background:linear-gradient(90deg,var(--a) 50%,var(--b) 50%)}
.mark.m3{--a:var(--verm);--b:var(--navy-200);background:linear-gradient(180deg,var(--a) 50%,var(--b) 50%)}
.mark.m4{--a:var(--navy-900);--b:var(--navy-200);background:conic-gradient(var(--a) 25%,var(--b) 0 50%,var(--a) 0 75%,var(--b) 0)}
.mark.m5{--a:var(--sand);--b:var(--ink);background:linear-gradient(45deg,var(--a) 50%,var(--b) 50%)}
.mark.m6{--a:var(--navy-600);--b:var(--verm);background:linear-gradient(180deg,var(--a) 66%,var(--b) 0)}

/* small status tag */
.tag{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;line-height:1.4;background:var(--navy-100);color:var(--navy-800)}
.tag.live{background:#FDE5DD;color:#9E2A0B}
.tag.ok{background:var(--navy-800);color:#fff}
.tag.mute{background:var(--line-2);color:var(--ink-2)}
.dot{width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex:none}
.dot.pulse{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}

/* fields */
.field{display:grid;gap:.3rem}
.field>span{font-size:.8125rem;font-weight:700;color:var(--ink-2)}
.input,.select{width:100%;min-height:2.75rem;padding:.55rem .75rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);
  transition:border-color .15s,box-shadow .15s}
.select{appearance:none;padding-right:2.2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23021B2E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;background-size:1rem}
.input:hover,.select:hover{border-color:var(--ink-3)}
.input:focus-visible,.select:focus-visible{outline:none;border-color:var(--navy-700);box-shadow:0 0 0 3px rgba(22,137,204,.25)}
.input::placeholder{color:var(--ink-3)}

.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sample-note{font-size:.8125rem;color:var(--ink-3)}
.num{font-family:var(--display);font-weight:700;letter-spacing:-.02em}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
