/* FALL LINE - portfolio design system (A4 landscape, 1 css px = 1/96 in, page 1123 x 794) */
:root{
  --paper:#ffffff; --paper2:#eceeeb; --ice:#e7ecef; --ice2:#d9e1e6; --ice3:#b9c6cf;
  --ink:#121417; --text:#2f3337; --mute:#666c72; --faint:#868c92;
  --hair:#d9dcde; --line:#b8bdc1; --rule:#121417;
  --sig:#f2561d;            /* product orange - marks, accents, never body text */
  --sig-d:#c2410c;          /* orange for small text, 5:1 on paper */
  --sig-60:#f5926a; --sig-80:#fbcab3; --sig-90:#fde6da;
  --gap:#8a9096;            /* data gaps, vibration events */
  --f-wide:'Archivo','Arial',sans-serif;
  --f-text:'Archivo','Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',Consolas,monospace;
  --f-serif:'Microsoft YaHei',sans-serif;
  --f-cn:'Noto Sans SC','Microsoft YaHei',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
@page{size:297mm 210mm;margin:0}
html,body{background:#55595d}
body{font-family:var(--f-text);font-size:8.6px;line-height:1.46;color:var(--text);
  -webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;
  font-kerning:normal;font-feature-settings:"kern" 1;
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
body.solo{background:var(--paper)}
.page{position:relative;width:297mm;height:210mm;overflow:hidden;background:var(--paper);
  margin:0 auto 28px;break-after:page;page-break-after:always}
body.solo .page{margin:0}
@media print{html,body{background:var(--paper)}.page{margin:0}}
svg{display:block;overflow:visible}
img{display:block}
.abs{position:absolute}
.cn{font-family:var(--f-cn);font-style:normal}
p{margin:0}
p+p{margin-top:.6em}
b,strong{font-weight:600;color:var(--ink)}

/* ---------- type roles ---------- */
.kick{font:500 6.8px/1.2 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.kick b{color:var(--sig-d);font-weight:600}
.kick i{font-style:normal;color:var(--ink)}
.h1{font:700 27px/1.02 var(--f-wide);font-stretch:112.5%;letter-spacing:-.018em;color:var(--ink)}
.h1 em{font-style:normal;color:var(--faint)}
.deck{font:400 10.4px/1.47 var(--f-text);color:var(--text);letter-spacing:-.003em}
.deck b{font-weight:600}
.mt{font:800 9.6px/1.1 var(--f-wide);font-stretch:125%;letter-spacing:.03em;text-transform:uppercase;color:var(--ink)}
.mt small{font:400 7px/1.2 var(--f-text);letter-spacing:0;text-transform:none;color:var(--mute);margin-left:8px;font-stretch:100%}
.mt .n{color:var(--sig);margin-right:6px}
.body{font-size:8.4px;line-height:1.48;color:var(--text)}
.small{font-size:7.6px;line-height:1.42;color:var(--text)}
.cap{font-size:7px;line-height:1.38;color:var(--mute)}
.cap b{color:var(--ink);font-weight:600}
.lab{font:500 6.2px/1.25 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mute)}
.lab b{color:var(--ink);font-weight:600}
.labk{font:600 6.2px/1.25 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink)}
.mono{font-family:var(--f-mono)}
.fig{font:600 6.2px/1 var(--f-mono);letter-spacing:.1em;color:var(--ink)}
.q{font:normal 400 13px/1.22 var(--f-serif);color:var(--ink);letter-spacing:-.005em}
.num{font:700 26px/1 var(--f-wide);font-stretch:112.5%;letter-spacing:-.03em;color:var(--ink)}
.num small{font:500 .38em var(--f-mono);letter-spacing:.04em;margin-left:3px;color:var(--mute)}
.tab{font-variant-numeric:tabular-nums}
.sig{color:var(--sig-d)}
.rule{height:0;border-top:1.1px solid var(--rule)}
.hair{height:0;border-top:.6px solid var(--line)}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--sig);vertical-align:0}
.sq{display:inline-block;width:6px;height:6px;background:var(--sig);vertical-align:0}

/* numbered pins (callouts) */
.pin{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--sig);color:#fff;
  font:600 6.4px/11px var(--f-mono);text-align:center;letter-spacing:0}
.pin.k{background:var(--ink)}
.pin.o{background:var(--paper);color:var(--sig-d);box-shadow:inset 0 0 0 1px var(--sig)}
.pinl{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--sig);color:#fff;
  font:600 6px/10px var(--f-mono);text-align:center;margin-right:5px;vertical-align:.5px}
.pinl.k{background:var(--ink)}

/* photo frames + cad */
.ph{position:absolute;overflow:hidden;background:var(--ice)}
.ph img{width:100%;height:100%;object-fit:cover}
.cad{position:absolute;mix-blend-mode:multiply}
.cad img{width:100%;height:auto;-webkit-mask-image:linear-gradient(#000 96%,transparent);mask-image:linear-gradient(#000 96%,transparent)}
.pcap{position:absolute;font-size:6.8px;line-height:1.35;color:var(--mute)}
.pcap b{font:600 6.2px/1 var(--f-mono);letter-spacing:.08em;color:var(--ink);margin-right:4px}

/* lists + tables */
.ol{list-style:none}
.ol li{display:flex;gap:7px;padding:3.2px 0;border-top:.6px solid var(--hair)}
.ol li:first-child{border-top:0}
.ol li .k{flex:none;font:600 6.2px/1.5 var(--f-mono);color:var(--sig-d);width:12px}
table.t{border-collapse:collapse;width:100%}
table.t th{font:500 6px/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);
  text-align:left;padding:0 6px 4px 0;border-bottom:.9px solid var(--ink);vertical-align:bottom}
table.t td{font-size:7.2px;line-height:1.32;padding:3.6px 6px 3.6px 0;border-bottom:.6px solid var(--hair);vertical-align:top;color:var(--text)}
table.t td.l{font:600 7.2px/1.32 var(--f-text);color:var(--ink)}
table.t td.m{font:500 6.6px/1.32 var(--f-mono);color:var(--text)}
table.t td.c{text-align:center}

/* chips + tags */
.tag{display:inline-block;font:600 5.8px/1 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;
  padding:2.4px 4px 2.2px;border:.7px solid var(--ink);color:var(--ink);border-radius:1px}
.tag.s{border-color:var(--sig);color:var(--sig-d)}
.tag.f{background:var(--ink);color:var(--paper)}
.tag.sf{background:var(--sig);border-color:var(--sig);color:#fff}
.tag.g{border-color:var(--line);color:var(--mute)}

/* svg text roles (set fill per text - css beats parent fills) */
svg text{font-family:var(--f-text);fill:var(--text)}
.t-lab{font:500 5.9px var(--f-mono);letter-spacing:.07em;fill:var(--mute);text-transform:uppercase}
.t-labk{font:600 5.9px var(--f-mono);letter-spacing:.07em;fill:var(--ink);text-transform:uppercase}
.t-labs{font:600 5.9px var(--f-mono);letter-spacing:.07em;fill:var(--sig-d);text-transform:uppercase}
.t-mono{font:500 6.2px var(--f-mono);fill:var(--text)}
.t-monos{font:500 5.6px var(--f-mono);fill:var(--mute)}
.t-cap{font:400 6.8px var(--f-text);fill:var(--mute)}
.t-txt{font:400 7.4px var(--f-text);fill:var(--text)}
.t-h{font:600 7.8px var(--f-text);fill:var(--ink)}
.t-hw{font:800 7.4px var(--f-wide);font-stretch:125%;letter-spacing:.03em;fill:var(--ink);text-transform:uppercase}
.t-num{font:700 12px var(--f-wide);font-stretch:112.5%;fill:var(--ink);letter-spacing:-.02em}
.t-q{font:normal 400 8.6px var(--f-serif);fill:var(--ink)}
.t-w{fill:#fff}

/* ---------- folio ---------- */
.folio{position:absolute;left:36px;right:36px;bottom:14px;display:flex;justify-content:space-between;align-items:baseline;
  font:500 5.9px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.folio b{color:var(--ink);font-weight:600}
.folio .cn{letter-spacing:.24em;font-weight:500;margin-left:6px;color:var(--mute)}
.folio .pg b{color:var(--sig-d)}
.folio.light{color:rgba(255,255,255,.7)}
.folio.light b{color:#fff}
.tagbox{border-radius:4px;background:rgba(246,247,245,.94);padding:5px 7px 5px 6px}
.callout{font-size:6.6px;line-height:1.28;color:var(--mute);white-space:nowrap}
.callout b{font:600 7px/1.28 var(--f-text);color:var(--ink)}
.pm{display:inline-block;width:5px;height:5px;background:var(--sig);margin:0 4px;vertical-align:.4px}

/* ---------- cover stack: identical in all five portfolios (centred on x = 321) ---------- */
.cv-no{position:absolute;left:221px;top:230px;width:200px;text-align:center;font:300 42px/1 'Archivo',sans-serif;font-stretch:125%;letter-spacing:-.02em}
.cv-t1{position:absolute;left:121px;top:294px;width:400px;text-align:center;font:800 24px/1 'Archivo',sans-serif;font-stretch:125%;letter-spacing:.02em;padding-left:.02em;text-transform:uppercase}
.cv-t2{position:absolute;left:121px;top:324px;width:400px;text-align:center;font:700 17px/1.2 'Noto Sans SC','Microsoft YaHei',sans-serif;letter-spacing:.3em;padding-left:.3em}
.cv-sub{position:absolute;left:121px;top:350px;width:400px;text-align:center;font:300 10.5px/1.55 'Archivo',sans-serif;font-stretch:125%;letter-spacing:.04em;padding-left:.04em;text-transform:uppercase}
.cv-ico{position:absolute;left:296px;top:389px;width:50px;height:50px}
.cv-body{position:absolute;left:123px;top:452px;width:396px;text-align:center;font:400 9.6px/1.7 'Archivo',sans-serif}
.cv-body b{font-weight:600}
