/* Point AI explorations: shared base. Tokens follow DESIGN.md ("The Engineering Drawing", logo palette). */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
:root{
  --graphite:#0A1513;--panel:#071010;--bar:#0F1C1A;--paper:#EEF4F1;--paper-2:#E3ECE8;--white:#fff;
  --rule:#D5E0DB;--rule-soft:#E6EEEA;--text:#2A3532;--muted:#56635F;--on-dark:#A8B5B0;--on-dark-2:#93A29D;--line-dark:rgba(238,244,241,.14);
  --emerald:#0F9A72;--ink-em:#0A6E51;--deep-em:#085A42;--mint:#3EE0AE;--wash:#DDF3EA;--amber:#C9821B;--amber-ink:#7A4F10;
  --a-car:#3EE0AE;--a-truck:#7DD3FC;--a-track:#FACC15;--a-flag:#C9821B;--a-surface:#3EE0AE;
  --display:'Archivo',system-ui,sans-serif;--text-f:'IBM Plex Sans',system-ui,sans-serif;--mono:'IBM Plex Mono',ui-monospace,monospace;
  --max:1200px;--gut:clamp(20px,4vw,40px);--sec:clamp(80px,9vw,140px);--r:2px;
  --ease:cubic-bezier(.22,1,.36,1);--t:.2s;
}
body{background:var(--paper);color:var(--text);font-family:var(--text-f);font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}
h1,h2,h3,h4{font-family:var(--display);color:var(--graphite);letter-spacing:-.03em;line-height:1.06;font-weight:700;text-wrap:balance}
img,video,svg{display:block;max-width:100%}
a{color:var(--ink-em)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink-em);outline-offset:3px}
.dark :focus-visible,.on-dark :focus-visible{outline-color:var(--mint)}
::selection{background:var(--mint);color:var(--graphite)}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.skip{position:absolute;left:-9999px;top:12px;background:var(--graphite);color:#fff;padding:12px 18px;z-index:300}
.skip:focus{left:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tag{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.dark .tag,.on-dark .tag{color:var(--mint)}
.tbc{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--amber-ink);background:#FBF0DE;border:1px dashed var(--amber);padding:0 7px;margin-right:4px;line-height:1.7;vertical-align:baseline}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border:1.5px solid transparent;border-radius:var(--r);
  font-family:var(--text-f);font-size:15px;font-weight:600;letter-spacing:-.005em;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background-color var(--t),border-color var(--t),color var(--t),transform .14s var(--ease)}
.btn:active{transform:scale(.97)}
.btn .ar{transition:transform var(--t) var(--ease)}
.btn:hover .ar{transform:translateX(3px)}
.btn-primary{background:var(--ink-em);color:#fff}.btn-primary:hover{background:var(--deep-em)}
.btn-mint{background:var(--mint);color:var(--graphite)}.btn-mint:hover{background:var(--paper)}
.btn-line{border-color:var(--rule);color:var(--graphite);background:transparent}.btn-line:hover{border-color:var(--graphite);background:#fff}
.btn-ghost{border-color:rgba(238,244,241,.32);color:#fff;background:transparent}.btn-ghost:hover{border-color:#fff}
.btn-block{width:100%}
.btn:disabled{opacity:.7;cursor:wait}

/* nav (shared behaviour; concepts style colours) */
.nav{position:fixed;inset:0 0 auto;z-index:100;transition:background-color .25s,border-color .25s;border-bottom:1px solid transparent}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:var(--max);margin:0 auto;padding:14px var(--gut)}
.brand{display:flex;align-items:center;min-height:44px}
.brand img{height:26px;width:auto}
.brand .lt{display:none}
.nav-links{display:flex;gap:2px;list-style:none}
.nav-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-size:14.5px;font-weight:500;text-decoration:none}
.nav-r{display:flex;align-items:center;gap:10px}
.nav-cta{min-height:42px;padding:0 16px;font-size:14px}
.burger{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;position:relative}
.burger span{position:absolute;left:12px;right:12px;height:1.5px;background:currentColor;transition:transform .25s,opacity .25s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:21.5px}.burger span:nth-child(3){top:27px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
.sheet{display:none;position:fixed;inset:0;z-index:99;background:var(--paper);padding:92px var(--gut) 40px;flex-direction:column;overflow-y:auto}
.sheet.open{display:flex}
.sheet a{font-family:var(--display);font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(--graphite);text-decoration:none;padding:16px 0;border-bottom:1px solid var(--rule)}
.sheet .btn{margin-top:24px;font-size:16px;border-bottom:0}
@media (max-width:900px){.nav-links{display:none}.burger{display:block}}
@media (max-width:420px){.nav-cta{padding:0 12px;font-size:13px}}

/* faq */
.faq{border-top:1px solid var(--rule)}
.qa{border-bottom:1px solid var(--rule)}
.qa-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:64px;padding:18px 0;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--graphite);transition:color var(--t)}
.qa-q:hover{color:var(--ink-em)}
.sign{width:14px;height:14px;flex:none;position:relative}
.sign::before,.sign::after{content:"";position:absolute;background:var(--ink-em)}
.sign::before{top:6.25px;left:0;width:14px;height:1.5px}
.sign::after{left:6.25px;top:0;width:1.5px;height:14px;transition:transform var(--t)}
.qa.open .sign::after{transform:scaleY(0)}
.qa-a{max-height:0;overflow:hidden;transition:max-height .32s var(--ease)}
.qa-a p{padding:0 0 22px;max-width:780px;font-size:16px;color:var(--text)}
@media (prefers-reduced-motion:reduce){.qa-a{transition:none}}

/* form */
.form{background:#fff;border:1px solid var(--rule);padding:clamp(22px,3.2vw,36px);color:var(--text)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fr{margin-bottom:16px}
.fr label{display:block;font-size:13.5px;font-weight:500;color:var(--text);margin-bottom:7px}
.req{font-weight:400;color:var(--muted)}
.fr input,.fr select,.fr textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--r);background:#fff;color:var(--graphite);font-size:15.5px;transition:border-color var(--t),box-shadow var(--t)}
.fr textarea{min-height:110px;resize:vertical;line-height:1.55}
.fr input::placeholder,.fr textarea::placeholder{color:#6B7873}
.fr input:focus,.fr select:focus,.fr textarea:focus{outline:none;border-color:var(--ink-em);box-shadow:0 0 0 3px rgba(10,110,81,.15)}
.fr [aria-invalid="true"]{border-color:#B42318}
.fine{font-size:13.5px;color:var(--text);margin-top:14px;line-height:1.6}
.fine.err{color:#B42318}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden} /* honeypot */
@media (max-width:640px){.f2{grid-template-columns:1fr;gap:0}}

/* annotation overlays on real photos (shared by every concept) */
.scene,.ex-media{position:absolute;inset:0;width:100%;height:100%}
.ob{fill:transparent;stroke-width:2;vector-effect:non-scaling-stroke}
.ob.poly{fill:rgba(62,224,174,.12)}
.ob.dim{stroke:#EEF4F1;stroke-opacity:.5;stroke-width:1.2;stroke-dasharray:3 3}
.vx{fill:var(--a-car)}
.mk{opacity:.6}
.trail{fill:none;stroke:var(--a-track);stroke-width:1.4;vector-effect:non-scaling-stroke}
.path{stroke:var(--a-track);stroke-width:1.6;stroke-dasharray:4 5;vector-effect:non-scaling-stroke}
.tag text{font-family:var(--display);font-size:12px;font-weight:600;fill:#0A1513}
.flag{fill:rgba(201,130,27,.2);stroke:var(--a-flag);stroke-width:2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.lyr{opacity:0;transition:opacity .3s ease}.lyr.on{opacity:1}
.t-box{fill:none;stroke-width:2.4;vector-effect:non-scaling-stroke}
.t-ghost{fill:none;stroke-width:1.4;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.t-old{fill:none;stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}
.t-lab text{font-family:var(--display);font-weight:600;fill:#0A1513}
.t-cub{fill:rgba(249,115,22,.16);stroke:#f97316;stroke-width:2;vector-effect:non-scaling-stroke}
.t-seg{fill:rgba(236,72,153,.3);stroke:#ec4899;stroke-width:2;vector-effect:non-scaling-stroke}
.t-vx{fill:#ec4899}
.t-bone{stroke:#f472b6;stroke-width:3;vector-effect:non-scaling-stroke}
.t-kp{fill:#f472b6;stroke:#0A1513;stroke-width:2;vector-effect:non-scaling-stroke}
.t-strike{font-family:var(--display);font-size:14px;font-weight:600;fill:#f87171;text-decoration:line-through}
.t-aseg{opacity:.3}.t-aseg.t-A{fill:#3EE0AE}.t-aseg.t-B{fill:#7DD3FC}.t-aseg.t-n{fill:#C9821B}
/* draw-on: boxes start visible; only prepared (scripted, motion allowed) frames animate in */
.draw-prep .ob{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .6s var(--ease)}
.draw-prep.draw-in .ob{stroke-dashoffset:0}
.draw-prep .flag{opacity:0;transition:opacity .4s 1.9s}
.draw-prep.draw-in .flag{opacity:1}
.draw-prep .ob:nth-of-type(3n){transition-delay:.25s}.draw-prep .ob:nth-of-type(3n+1){transition-delay:.5s}.draw-prep .ob:nth-of-type(3n+2){transition-delay:.75s}

/* reveal */
.rv-prep{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .8s var(--ease)}
.rv-prep.rv-in{opacity:1;transform:none}

/* workspace frame (signature component) */
.ws{background:var(--panel);border:1px solid var(--line-dark);color:#D5E0DB}
.ws-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--bar);border-bottom:1px solid var(--line-dark);font-family:var(--mono);font-size:12px;color:var(--on-dark-2)}
.ws-bar b{color:var(--mint);font-weight:500;letter-spacing:.1em;text-transform:uppercase}
.ws-foot{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-dark)}
.ws-foot div{padding:11px 14px;border-right:1px solid var(--line-dark);font-family:var(--mono);font-size:12.5px;color:#D5E0DB}
.ws-foot div:last-child{border-right:0}
.ws-foot b{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-2);font-weight:400}
.ws-foot .q{color:var(--amber)}
.batches{width:100%;border-collapse:collapse;font-size:14px;color:#D5E0DB}
.batches th{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-2);font-weight:400;padding:10px 14px;border-bottom:1px solid var(--line-dark)}
.batches td{padding:12px 14px;border-bottom:1px solid rgba(238,244,241,.08);font-variant-numeric:tabular-nums}
.batches td:first-child{font-family:var(--mono);font-size:13px}
.st{display:inline-block;padding:2px 8px;font-size:13px;font-weight:600;color:var(--graphite)}
.st-ok{background:var(--mint)}.st-rev{background:#D5E0DB}.st-q{background:var(--amber)}
.drop{margin:14px;border:1.5px dashed rgba(62,224,174,.45);padding:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.drop b{color:#E6EEEA;font-weight:600}
.drop span{color:var(--on-dark-2);font-size:13.5px}
@media (max-width:520px){.batches .hide-s{display:none}}

/* footer */
.foot{background:var(--graphite);color:var(--on-dark);padding:64px 0 28px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px}
.foot p{font-size:15px;max-width:340px;margin-top:14px}
.foot h4{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-2);font-weight:400;margin-bottom:8px}
.foot ul{list-style:none}
.foot ul a{display:inline-flex;align-items:center;min-height:44px;font-size:15px;color:#D5E0DB;text-decoration:none}
.foot ul a:hover{color:#fff}
.foot-bot{margin-top:44px;padding-top:20px;border-top:1px solid var(--line-dark);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--on-dark-2)}
.foot .tbc{color:#F2D5A3;background:rgba(201,130,27,.16)}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}}

/* small interface fragments: text labelling, audio, team roster */
.doc{position:absolute;inset:0;padding:clamp(16px,2vw,24px);background:var(--panel);color:#E6EEEA;font-size:15px;line-height:1.95;overflow:hidden}
.doc mark{color:var(--graphite);padding:1px 5px;border-radius:2px;font-weight:600;white-space:nowrap}
.doc mark i{font-style:normal;font-family:var(--mono);font-size:11.5px;margin-left:5px;opacity:.75}
.doc .e1{background:#93c5fd}.doc .e2{background:#fcd34d}.doc .e3{background:#f9a8d4}.doc .e4{background:var(--mint)}
.doc .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;line-height:1.5}
.doc .chips span{background:#16241F;border:1px solid var(--line-dark);padding:3px 9px;font-size:13px;color:#D5E0DB}
.audio{position:absolute;inset:0;padding:clamp(14px,2vw,22px);background:var(--panel);display:grid;align-content:center;gap:10px}
.audio svg{width:100%;height:clamp(60px,8vw,96px)}
.audio ol{list-style:none;display:grid;gap:6px}
.audio li{display:grid;grid-template-columns:24px 64px 1fr;gap:10px;align-items:baseline;font-size:14px;color:#D5E0DB}
.audio li b{display:grid;place-items:center;width:20px;height:20px;border-radius:2px;color:var(--graphite);font-size:11.5px}
.audio li span{font-family:var(--mono);font-size:12.5px;color:var(--on-dark-2)}
.audio .sA b{background:var(--mint)}.audio .sB b{background:#7DD3FC}.audio .sN b{background:var(--amber)}
.roster-f{position:absolute;inset:0;background:var(--panel);display:flex;flex-direction:column}
.roster-f table{width:100%;border-collapse:collapse;font-size:13.5px}
.roster-f td{padding:11px 14px;border-bottom:1px solid rgba(238,244,241,.08);font-family:var(--mono);color:#D5E0DB}
.roster-f td:last-child{text-align:right}
.roster-f .same{color:var(--mint)}
.illus{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-2)}
/* grid and flex children never force the page wider than the screen */
.hero-grid>*,.studio-grid>*,.contact-grid>*,.faq-grid>*,.svc-grid>*,.svc-body>*,.examples>*,.team-grid>*,.svc-layout>*,.hero-row>*{min-width:0}
