/* FIELDWISE design system, v2.
   Tokens follow the deployed site (paper, ink, Archivo, Noto Sans TC, Roboto Mono) and the paper figures (teal steps, crop colours). */
@font-face{font-family:"Archivo Local";src:url("../assets/archivo-700.ttf") format("truetype");font-weight:700;font-display:swap}

:root{
  --paper:#F5F2EA;--paper-2:#FBFAF6;--card:#FFFFFF;
  --ink:#1A2230;--body:#3A4350;--mut:#5F6875;--label:#6B7380;--faint:#A3A9AF;
  --line:#E2DDD0;--line-2:#D3CCBB;--hair:rgba(26,34,48,.09);--hair-2:rgba(26,34,48,.14);
  --teal:#207F79;--teal-d:#15605B;--teal-l:#D5EAE6;--teal-xl:#EDF6F4;
  --gt:#0072CE;--add:#B2182B;--remove:#2166AC;--good:#1F7A5C;--bad:#B3401F;
  --warn:#B3530A;--warn-bg:#FDF4E6;
  --corn:#E3A33B;--soy:#5E9E4F;--wheat:#8C6239;
  --corn-ink:#8F6212;--soy-ink:#3F7A33;--wheat-ink:#6E4A26;
  --display:"Archivo","Archivo Local","Noto Sans TC",Arial,sans-serif;
  --sans:"Noto Sans","Noto Sans TC",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --num:"Roboto Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --max:1184px;--gut:28px;
  --r-s:10px;--r:16px;--r-l:24px;
  --sh-1:0 1px 0 rgba(26,34,48,.04),0 1px 3px rgba(26,34,48,.07);
  --sh-2:0 1px 0 rgba(26,34,48,.03),0 14px 34px -16px rgba(26,34,48,.20);
  --sh-3:0 2px 0 rgba(26,34,48,.03),0 44px 90px -36px rgba(26,34,48,.34);
  --ease:cubic-bezier(.2,.7,.2,1);--ease-io:cubic-bezier(.65,0,.35,1);--spring:cubic-bezier(.34,1.4,.64,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--body);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,svg,canvas,video{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
::selection{background:var(--teal-l);color:var(--ink)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.num{font-family:var(--num);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:500 12px/1 var(--num);letter-spacing:.16em;text-transform:uppercase;color:var(--teal-d)}
.eyebrow i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--teal);color:#fff;font:600 11px/1 var(--num);letter-spacing:0}
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);font-weight:700;margin:0;text-wrap:balance}
.h1{font-size:clamp(44px,6.2vw,84px);line-height:.98;letter-spacing:-.037em}
.h2{font-size:clamp(34px,4.3vw,56px);line-height:1.02;letter-spacing:-.032em}
.h3{font-size:clamp(21px,1.8vw,25px);line-height:1.15;letter-spacing:-.015em}
.deck{font-size:clamp(17px,1.45vw,20px);line-height:1.55;color:var(--body);max-width:44ch;margin:18px 0 0;text-wrap:pretty}
.foot{font:400 12.5px/1.55 var(--num);color:var(--mut);letter-spacing:0;margin:16px 0 0}
.foot b{color:var(--body);font-weight:500}

/* nav — deployed-site format */
.nav{position:fixed;inset:0 0 auto 0;z-index:70;height:72px;background:rgba(250,249,246,.84);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);border-bottom:1px solid var(--hair)}
.nav .wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
.nav .logo{display:flex;align-items:center;flex:none}
.nav .logo img{height:34px;width:auto}
.nav nav{display:flex;align-items:center;gap:32px}
.nav .lnk{position:relative;font:500 16px/1 var(--sans);color:var(--ink);text-decoration:none;padding:9px 0}
.nav .lnk::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav .lnk:hover::after,.nav .lnk[aria-current]::after{transform:scaleX(1)}
.nav .prog{position:absolute;left:0;bottom:-1px;height:2px;background:var(--teal);width:0;transition:width .12s linear}

/* page tabs: the two pages and what each one is for */
.tabs{display:flex;gap:4px;padding:4px;border-radius:16px;background:rgba(26,34,48,.06)}
.tab{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:152px;height:50px;padding:0 16px;border-radius:12px;text-decoration:none;color:var(--body);transition:background .3s var(--ease),box-shadow .3s var(--ease),color .3s}
.tab b{font:600 15px/1 var(--sans);color:inherit}
.tab span{font:400 11.5px/1 var(--num);letter-spacing:.02em;color:var(--body)}
.tab:hover{color:var(--ink);background:rgba(255,255,255,.6)}
.tab[aria-current="page"]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(26,34,48,.1),0 6px 16px -8px rgba(26,34,48,.3)}
.tab[aria-current="page"] b::after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;border-radius:50%;background:var(--teal);vertical-align:2px}
.nav .inpage{display:flex;gap:26px;margin-right:24px}
.nav .inpage a{font:500 14.5px/1 var(--sans);color:var(--body);text-decoration:none;transition:color .2s}
.nav .inpage a:hover{color:var(--ink)}
@media(max-width:1100px){.nav .inpage{display:none}}
.tab b{white-space:nowrap}
@media(max-width:620px){.tab{min-width:0;height:40px;padding:0 12px}.tab span{display:none}.tab b{font-size:14px}}

/* buttons */
.pill{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 22px;border-radius:999px;background:var(--ink);color:#fff;font:600 16px/1 var(--sans);text-decoration:none;border:0;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s}
.pill:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px -14px rgba(26,34,48,.7)}
.pill:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.pill .ar{display:inline-block;transition:transform .3s var(--ease)}
.pill:hover:not(:disabled) .ar{transform:translateX(4px)}
.pill.light{background:#fff;color:var(--ink)}
.pill.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.65)}
.pill.ghost:hover{background:rgba(255,255,255,.1)}
.pill.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-2)}
.pill.line:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.pill.teal{background:var(--teal)}
.pill.sm{height:38px;padding:0 16px;font-size:14.5px}
.link{font-weight:600;color:var(--ink);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .4s var(--ease)}
.link:hover{background-size:100% 1.5px}

/* sections */
.sec{position:relative;padding:150px 0}
.sec+.sec{padding-top:40px}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px 72px;align-items:end;margin-bottom:46px}
.sec-head .eyebrow{margin-bottom:22px}
.stat{text-align:right;padding-bottom:6px}
.stat b{display:block;font:700 clamp(38px,3.8vw,56px)/1 var(--display);color:var(--ink);letter-spacing:-.035em;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.stat span{display:block;margin:12px 0 0 auto;font-size:14.5px;line-height:1.45;color:var(--body);max-width:24ch;text-wrap:pretty}
.stat .stat-scope{display:block;margin-top:12px;font:400 12px/1 var(--num);letter-spacing:.02em;color:var(--label)}
@media(max-width:860px){.sec{padding:96px 0}.sec-head{grid-template-columns:1fr}.stat{text-align:left}.stat span{margin-left:0}}

/* sheets and cards */
.sheet{position:relative;background:var(--card);border:1px solid var(--hair);border-radius:var(--r-l);box-shadow:var(--sh-2);padding:34px 34px 28px}
@media(max-width:700px){.sheet{padding:22px 16px 18px;border-radius:18px}}
.sheet-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-bottom:24px}
.sheet-bar .ttl{font:600 15px/1.3 var(--sans);color:var(--ink)}
.sheet-bar .ttl small{display:block;font:400 12.5px/1.4 var(--num);color:var(--label);margin-top:3px}

/* segmented control with sliding thumb (built by core.seg) */
.seg{position:relative;display:inline-flex;padding:4px;border-radius:999px;background:rgba(26,34,48,.065);isolation:isolate}
.seg button{position:relative;z-index:1;border:0;background:none;font:500 14px/1 var(--sans);color:var(--mut);padding:9px 15px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:color .3s var(--ease)}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{color:var(--ink)}
.seg .thumb{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:0;border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(26,34,48,.12),0 4px 10px -4px rgba(26,34,48,.18);transition:transform .45s var(--ease),width .45s var(--ease)}
.seg.dark{background:rgba(255,255,255,.12)}
.seg.dark button{color:rgba(255,255,255,.72)}
.seg.dark button[aria-pressed="true"]{color:var(--ink)}

/* chips */
.chip{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font:500 14px/1 var(--sans);color:var(--ink);cursor:pointer;transition:border-color .25s,box-shadow .25s,transform .25s var(--ease),opacity .25s}
.chip:hover{border-color:var(--line-2);transform:translateY(-1px);box-shadow:var(--sh-1)}
.chip[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.chip .dot{width:9px;height:9px;border-radius:50%}
.chip .n{font:400 12.5px/1 var(--num);color:var(--label)}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font:500 11px/1 var(--num);letter-spacing:.06em;text-transform:uppercase;background:rgba(26,34,48,.06);color:var(--mut)}
.tag.teal{background:var(--teal-xl);color:var(--teal-d)}
.tag.warn{background:var(--warn-bg);color:var(--warn)}

/* legend */
.legend{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13.5px;color:var(--mut)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{display:inline-block;width:14px;height:3px;border-radius:2px}
.legend i.dot{width:9px;height:9px;border-radius:50%}
.legend i.dash{background:none!important;border-top:2px dashed currentColor;height:0}

/* tooltip (core.tooltip) */
.tip{position:fixed;z-index:95;left:0;top:0;pointer-events:none;background:var(--ink);color:#fff;border-radius:12px;padding:11px 13px 10px;min-width:170px;max-width:280px;font:400 13px/1.45 var(--sans);box-shadow:0 18px 40px -14px rgba(0,0,0,.45);opacity:0;transform:translate3d(0,6px,0) scale(.98);transform-origin:top left;transition:opacity .16s ease,transform .22s var(--ease)}
.tip.on{opacity:1;transform:none}
.tip .t{font:600 13.5px/1.3 var(--sans);margin-bottom:7px;display:flex;align-items:center;gap:8px}
.tip .t i{width:9px;height:9px;border-radius:50%;flex:none}
.tip .r{display:flex;justify-content:space-between;gap:18px;font:400 12px/1.7 var(--num);color:#B9C2CA}
.tip .r b{color:#fff;font-weight:500}
.tip .s{margin-top:6px;font-size:12px;color:#9AA6B0;line-height:1.4}
.tip .s.hint{margin-top:8px;padding-top:7px;border-top:1px solid rgba(255,255,255,.12);color:#8FD3C7;font:500 11px/1 var(--num);letter-spacing:.08em;text-transform:uppercase}

/* entry animation */
[data-reveal]{opacity:0;transform:translate3d(0,22px,0);transition:opacity 1s var(--ease),transform 1s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="2"]{transition-delay:.08s}[data-reveal="3"]{transition-delay:.16s}[data-reveal="4"]{transition-delay:.24s}

/* strength slider */
.lam{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;max-width:360px}
.lam label{font:500 13px/1 var(--num);letter-spacing:.08em;text-transform:uppercase;color:var(--label)}
.lam output{font:500 26px/1 var(--num);color:var(--teal-d);min-width:3.2ch;text-align:right}
.lam input{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer}
.lam input::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--teal) var(--v,100%),var(--line-2) var(--v,100%))}
.lam input::-moz-range-track{height:4px;border-radius:4px;background:var(--line-2)}
.lam input::-moz-range-progress{height:4px;border-radius:4px;background:var(--teal)}
.lam input::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 1.5px var(--teal),0 4px 12px -2px rgba(26,34,48,.35);transition:transform .2s var(--ease)}
.lam input:active::-webkit-slider-thumb{transform:scale(1.12)}
.lam input::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 1.5px var(--teal),0 4px 12px -2px rgba(26,34,48,.35)}


/* footer */
.site-foot{padding:64px 0 72px;border-top:1px solid var(--hair);font-size:13.5px;color:var(--mut)}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:10px 40px;justify-content:space-between}

@media(max-width:760px){.nav nav{gap:18px}.nav .lnk.hide-s{display:none}.nav .logo img{height:28px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}[data-reveal]{opacity:1;transform:none}}
/* every pressable answers the press; touch screens keep no hover offset; control transitions stay quick */
.pill:active,.door:active,.chip:active,.kc:active,.case:active,.nb:active:not(:disabled),.rg-play:active,.seg button:active{transform:scale(.97);transition:transform .1s ease-out}
@media (hover:none){.pill:hover,.door:hover,.chip:hover,.kc:hover,.case:hover,.nb:hover,.rg-play:hover,.door:hover .t .ar,.pill:hover .ar{transform:none}}
.seg .thumb{transition-duration:.28s}
.lam input:disabled{opacity:.4;cursor:not-allowed}.lam input:disabled::-webkit-slider-thumb{box-shadow:0 0 0 1.5px var(--line-2)}
@media(max-width:420px){.nav .wrap{padding:0 16px}.nav .logo img{height:24px}.tab{padding:0 10px}}
