/* MX Tools shell (Photo Report + Re-ice Photos). Board: "MX Tools" frames Tool_Photo_Report_* / Tool_Re_ice_Photos_*.
   Tokens are from the board html-render dumps; theme = Auto / Light / Dark via mx-tools.js (same key "mx-theme" as the jobs site). */
:root{
  --bg:#030912; --rail:#04090F; --panel:#08111E; --panel2:#0B1826; --field:#030812; --line:#24394F; --line2:#172638;
  --ink:#F3F7F9; --title:#FFFFFF; --mut:#A6B5C0; --dim:#7D92A1; --faint:#536F7E;
  --g:#44F48D; --g-ink:#031208; --g-line:rgba(68,244,141,.5); --g-soft:rgba(68,244,141,.12); --g-text:#44F48D;
  --teal:#45EBDD; --cyan:#43D5FF; --amber:#FFB224; --amber-text:#FFB224; --amber-soft:rgba(255,178,36,.10);
  --bad:#FF6B6B; --glow:0 0 0 1px rgba(68,244,141,.5),0 0 22px rgba(68,244,141,.28);
  --card-bg:linear-gradient(180deg,rgba(11,24,38,.92),rgba(7,15,27,.92));
  --rail-bg:linear-gradient(180deg,#04090F,#03070D);
  --page-bg:radial-gradient(60% 40% at 50% 8%,rgba(14,58,42,.34),transparent 70%),radial-gradient(50% 35% at 85% 20%,rgba(11,42,58,.30),transparent 70%),#030912;
  --sl1:rgba(68,244,141,.8); --sl2:rgba(67,213,255,.75);
  --paper:#FFFFFF; --paper-ink:#111110;
  --hero-ink:#FFFFFF; --lead:#45EBDD; --scrim:rgba(1,4,11,.72);
  --f-head:"Barlow Condensed","Arial Narrow",sans-serif; --f-body:"Barlow",system-ui,sans-serif; --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  color-scheme:dark;
}
html[data-theme="light"]{
  --bg:#EEF4F7; --rail:#F7FAFB; --panel:#FFFFFF; --panel2:#F5F9FA; --field:#F5F9FA; --line:#C1D0D8; --line2:#D3DFE5;
  --ink:#112A36; --title:#0B1F29; --mut:#435E6D; --dim:#536F7E; --faint:#7A93A0;
  --g:#087544; --g-ink:#FFFFFF; --g-line:rgba(8,117,68,.6); --g-soft:rgba(8,117,68,.08); --g-text:#087544;
  --teal:#007568; --cyan:#0069B4; --amber:#FFB224; --amber-text:#8A5300; --amber-soft:rgba(255,178,36,.14);
  --bad:#B3261E; --glow:0 0 0 1px rgba(8,117,68,.55),0 6px 20px rgba(8,117,68,.18);
  --card-bg:#FFFFFF; --rail-bg:linear-gradient(180deg,#F7FAFB,#EEF4F7);
  --page-bg:radial-gradient(70% 40% at 60% 0%,rgba(0,105,180,.07),transparent 70%),#EEF4F7;
  --sl1:rgba(8,117,68,.35); --sl2:rgba(0,105,180,.28);
  --hero-ink:#0B1F29; --lead:#007568; --scrim:rgba(238,244,247,.78); color-scheme:light;
}
@media (prefers-color-scheme:light){
  html:not([data-theme="dark"]){
    --bg:#EEF4F7; --rail:#F7FAFB; --panel:#FFFFFF; --panel2:#F5F9FA; --field:#F5F9FA; --line:#C1D0D8; --line2:#D3DFE5;
    --ink:#112A36; --title:#0B1F29; --mut:#435E6D; --dim:#536F7E; --faint:#7A93A0;
    --g:#087544; --g-ink:#FFFFFF; --g-line:rgba(8,117,68,.6); --g-soft:rgba(8,117,68,.08); --g-text:#087544;
    --teal:#007568; --cyan:#0069B4; --amber-text:#8A5300; --amber-soft:rgba(255,178,36,.14); --bad:#B3261E;
    --glow:0 0 0 1px rgba(8,117,68,.55),0 6px 20px rgba(8,117,68,.18);
    --card-bg:#FFFFFF; --rail-bg:linear-gradient(180deg,#F7FAFB,#EEF4F7);
    --page-bg:radial-gradient(70% 40% at 60% 0%,rgba(0,105,180,.07),transparent 70%),#EEF4F7;
    --sl1:rgba(8,117,68,.35); --sl2:rgba(0,105,180,.28); --hero-ink:#0B1F29; --lead:#007568; --scrim:rgba(238,244,247,.78); color-scheme:light;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{background:var(--page-bg);background-attachment:fixed;color:var(--ink);font:400 16px/1.4 var(--f-body);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden;border-top:2px solid var(--g)}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
img{max-width:100%}
::selection{background:var(--g);color:var(--g-ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--g);outline-offset:2px}

/* ---------- rail ---------- */
.rail{position:fixed;left:0;top:0;bottom:0;width:264px;background:var(--rail-bg);border-right:1px solid var(--line2);z-index:30;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}
.rail .brand{display:block;padding:12px 14px 0 20px}
.rail .brand img{display:block;width:196px;height:auto}
.rail .sub{font:700 10px/1 var(--f-mono);letter-spacing:.14em;color:var(--g-text);padding:4px 0 10px 24px;margin:0;white-space:nowrap}
.rail nav{padding:0 18px;flex:1}
.rail h6{margin:10px 0 3px 8px;font:700 11px/1 var(--f-mono);letter-spacing:.2em;color:var(--teal);text-transform:uppercase}
.rail a.it{display:flex;align-items:center;gap:12px;height:35px;padding:0 10px;border-radius:10px;text-decoration:none;font:500 15px var(--f-body);color:var(--ink);border:1.5px solid transparent;white-space:nowrap}
.rail a.it svg{flex:none;width:18px;height:18px;fill:none;stroke:var(--mut);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rail a.it:hover{background:var(--g-soft)}
.rail a.it[aria-current]{border-color:var(--g);background:var(--g-soft);font-weight:600;box-shadow:var(--glow);height:36px;margin:4px 0}
.rail a.it[aria-current] svg{stroke:var(--g-text)}
.rail a.it .cur{margin-left:auto;font:700 10px var(--f-mono);letter-spacing:.14em;color:var(--g-text)}
.rail .me{display:flex;align-items:center;gap:12px;padding:16px 26px;border-top:1px solid var(--line2);margin-top:30px}
.rail .av,.av{width:40px;height:40px;flex:none;border-radius:50%;border:2px solid var(--g);display:grid;place-items:center;font:700 13px var(--f-mono);color:var(--g-text);background:var(--g-soft)}
.rail .me b{display:block;font:600 14px var(--f-body);color:var(--ink)}
.rail .me small{display:block;font:500 11px var(--f-mono);letter-spacing:.1em;color:var(--dim)}
.rail .pw{margin-left:auto;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--mut)}
.rail .pw svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.scrim{display:none}

/* ---------- main frame ---------- */
.main{margin-left:264px;min-height:100vh;position:relative;overflow-x:clip}
.wrap{max-width:1240px;margin:0 auto;padding:0 56px 90px;position:relative}
.top{display:flex;align-items:center;gap:12px;height:92px}
.crumb{font:600 12px var(--f-mono);letter-spacing:.2em;color:var(--dim);text-transform:uppercase;margin-right:auto;white-space:nowrap}
.crumb b{color:var(--ink);font-weight:700}
.pills{display:flex;gap:8px;align-items:center}
.pill{display:inline-flex;align-items:center;height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--line);background:rgba(8,17,30,.55);font:600 14px var(--f-body);text-decoration:none;color:var(--ink);white-space:nowrap}
.pill:hover{border-color:var(--g-line)}
.pill[aria-current]{background:var(--g);border-color:var(--g);color:var(--g-ink);box-shadow:var(--glow)}
.mxsw{display:flex;gap:10px;margin-left:12px}
.mxsw button{width:44px;height:44px;border-radius:50%;border:0;background:none;display:grid;place-items:center;cursor:pointer;padding:0}
.mxsw button i{display:block;width:24px;height:24px;border-radius:50%;border:2px solid var(--ink);position:relative}
.mxsw button[data-m="auto"] i{background:linear-gradient(135deg,var(--ink) 50%,transparent 50%);border-color:var(--ink)}
.mxsw button[data-m="light"] i{background:#fff;border-color:#c9d3da}
.mxsw button[data-m="dark"] i{background:#010206;border-color:#31465c}
.mxsw button[aria-pressed="true"] i{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--g);border-color:var(--g)}
.menu{display:none}

/* ---------- hero ---------- */
.hero{position:relative;padding:28px 0 0}
.hero::before{content:"";position:absolute;right:calc(50% - 50vw + 0px);top:-92px;width:min(62vw,860px);height:640px;pointer-events:none;z-index:0;
  background:
   repeating-linear-gradient(180deg,transparent 0 17px,var(--sl1) 17px 19px,transparent 19px 53px),
   repeating-linear-gradient(180deg,transparent 0 8px,var(--sl2) 8px 10px,transparent 10px 18px);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.18) 40%,#000 100%),linear-gradient(180deg,transparent 0,#000 18%,#000 62%,transparent 100%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.18) 40%,#000 100%),linear-gradient(180deg,transparent 0,#000 18%,#000 62%,transparent 100%);mask-composite:intersect;opacity:.5}
.hero>*{position:relative;z-index:1}
.eyebrow{font:700 12px var(--f-mono);letter-spacing:.2em;color:var(--lead);text-transform:uppercase;margin:44px 0 18px}
h1.t{margin:0;font:800 142px/.84 var(--f-head);text-transform:uppercase;color:var(--hero-ink);letter-spacing:-.005em}
.lede{max-width:640px;margin:22px 0 28px;font:500 18px/1.5 var(--f-body);color:var(--ink)}
.stepper{display:grid;grid-template-columns:repeat(3,1fr);width:640px;max-width:100%;border:1px solid var(--line);border-radius:16px;background:rgba(8,17,30,.55);overflow:hidden}
html[data-theme="light"] .stepper{background:rgba(255,255,255,.75)}
.stepper a{display:flex;gap:10px;align-items:center;padding:12px 14px;height:60px;text-decoration:none;position:relative;border-left:1px solid var(--line2)}
.stepper a:first-child{border-left:0}
.stepper a::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--g);opacity:0}
.stepper a.done::before,.stepper a.cur::before{opacity:1}
.stepper a.cur{background:var(--g-soft)}
.stepper a.cur::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--g)}
.stepper .n{font:800 30px/1 var(--f-head);color:var(--faint)}
.stepper a.done .n,.stepper a.cur .n{color:var(--g-text)}
.stepper b{display:block;font:700 15px/1 var(--f-head);letter-spacing:.03em;text-transform:uppercase;color:var(--ink)}
.stepper small{display:block;font:500 11.5px/1.3 var(--f-mono);color:var(--dim);margin-top:3px}
.stepper a.done small,.stepper a.cur small{color:var(--g-text)}

/* ---------- layout ---------- */
.cols{display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:24px;margin-top:36px;align-items:start}
.col-l{display:grid;gap:24px;min-width:0}
.col-r{display:grid;gap:20px;position:sticky;top:20px;min-width:0}
.card{position:relative;border:1px solid var(--line);border-radius:22px;background:var(--card-bg);padding:28px 28px 30px;min-width:0}
.card::before{content:"";position:absolute;left:28px;top:-1px;width:56px;height:3px;background:var(--g);border-radius:0 0 3px 3px}
.card.hot{border-color:var(--g);box-shadow:var(--glow)}
.card.hot::before{display:none}
.sh{display:flex;align-items:baseline;gap:12px;margin:0 0 22px;flex-wrap:wrap}
.sh h2{margin:0;font:800 32px/1 var(--f-head);text-transform:uppercase;color:var(--title);display:flex;gap:10px;align-items:baseline}
.sh h2 .n{font-size:44px;color:var(--g-text);line-height:.8}
.sh .tag{margin-left:auto;font:700 12px var(--f-mono);letter-spacing:.14em;color:var(--g-text);text-transform:uppercase}
.sh .tag.dim{color:var(--dim)}

/* ---------- fields ---------- */
.fg{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px 16px}
.f{display:block;grid-column:span 2;min-width:0}
.f.s3{grid-column:span 3}.f.s6{grid-column:1/-1}.f.s4{grid-column:span 4}
.f>span.l{display:flex;gap:10px;font:700 11px/1 var(--f-mono);letter-spacing:.2em;color:var(--dim);text-transform:uppercase;margin:0 0 9px}
.f>span.l em{font-style:normal;color:var(--g-text);letter-spacing:.08em;text-transform:none;font-weight:600}
.in{position:relative;display:flex;align-items:center;min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--field);padding:0 14px;gap:8px;transition:border-color .15s,box-shadow .15s}
.in:focus-within{border-color:var(--g);box-shadow:var(--glow)}
.in input,.in select,.in textarea{flex:1;min-width:0;width:100%;background:transparent;border:0;outline:0;padding:12px 0;font:500 16px var(--f-body);color:var(--ink)}
.in.mono input{font:600 15px var(--f-mono);letter-spacing:.03em}
.in textarea{min-height:92px;resize:vertical;line-height:1.5;padding:14px 0}
.in.ta{align-items:flex-start;padding:0 16px}
.in select{appearance:none;-webkit-appearance:none;cursor:pointer}
.in select option{background:var(--panel);color:var(--ink)}
.in .ch{flex:none;display:inline-flex;align-items:center;gap:6px;font:700 10.5px var(--f-mono);letter-spacing:.08em;color:var(--g-text);text-transform:uppercase;white-space:nowrap}
.in .ch svg{width:17px;height:17px}
.in .ch.dim{color:var(--dim)}
.in .ch.warn{color:var(--amber-text)}
.in .ic{flex:none;width:18px;height:18px;fill:none;stroke:var(--mut);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.in .caret{flex:none;width:16px;height:16px;fill:none;stroke:var(--mut);stroke-width:2}
.in.focusg{border-color:var(--g);box-shadow:var(--glow)}
.hint{font:500 12.5px/1.4 var(--f-mono);color:var(--dim);margin-top:8px}
.err{color:var(--bad);font-weight:600;margin-top:12px;min-height:0}
.seg{display:inline-flex;padding:3px;border-radius:999px;border:1px solid var(--line);background:var(--field)}
.seg button{min-width:56px;height:44px;padding:0 16px;border:0;border-radius:999px;background:none;color:var(--mut);font:600 14px var(--f-body);cursor:pointer}
.seg button:hover{color:var(--ink)}
.seg button.on,.seg button[aria-pressed="true"]{background:var(--g);color:var(--g-ink)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border-radius:12px;border:1px solid var(--line);background:rgba(8,17,30,.4);color:var(--ink);font:600 15px var(--f-body);cursor:pointer;text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s,box-shadow .15s}
html[data-theme="light"] .btn:not(.pri){background:#fff}
html[data-theme="light"] .pill:not([aria-current]){background:rgba(255,255,255,.7)}
.btn:hover{border-color:var(--g-line);background:var(--g-soft)}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btn.pri{background:var(--g);border-color:var(--g);color:var(--g-ink);font-weight:700;box-shadow:var(--glow)}
.btn.pri:hover{filter:brightness(1.06)}
.btn[disabled],.btn.off{opacity:.42;cursor:not-allowed;box-shadow:none}
.btn.sm{min-height:44px;padding:0 16px;font-size:14px}

/* ---------- photo drop + tiles ---------- */
.drop{display:flex;align-items:center;gap:20px;padding:20px 22px;border:1px solid var(--g-line);border-radius:18px;background:var(--g-soft);transition:background .2s,box-shadow .2s}
html[data-theme="dark"] .drop,html:not([data-theme]) .drop{background:linear-gradient(180deg,rgba(8,43,27,.55),rgba(5,20,16,.6))}
.drop.over{box-shadow:var(--glow)}
.drop .ico{flex:none;width:56px;height:56px;border-radius:14px;border:1.5px solid var(--g);display:grid;place-items:center;background:var(--g-soft);color:var(--g-text)}
.drop .ico svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.drop .tx{flex:1;min-width:0}
.drop .tx b{display:block;font:700 19px/1.2 var(--f-body);color:var(--title)}
.drop .tx span{display:block;margin-top:5px;color:var(--mut);font:400 14px/1.45 var(--f-body)}
.tools{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.tools[hidden]{display:none}
.tools .sp{flex:1}
.tools .hint{margin:0;align-self:center}
.thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px;margin-top:18px}
.tile{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;display:flex;flex-direction:column;min-width:0}
.tile.cover{border-color:var(--g);box-shadow:var(--glow)}
.tile.noted{border-color:var(--amber);box-shadow:0 0 0 1px rgba(255,178,36,.5),0 0 18px rgba(255,178,36,.18)}
.tile .im{position:relative;aspect-ratio:4/3;background:#10181f;overflow:hidden;cursor:pointer}
.tile .im img{width:100%;height:100%;object-fit:cover;display:block}
.tile .im img.r90,.tile .im img.r270{position:absolute;left:50%;top:50%;width:75%;height:133.34%;max-width:none}
.tile .im img.r90{transform:translate(-50%,-50%) rotate(90deg)}.tile .im img.r180{transform:rotate(180deg)}.tile .im img.r270{transform:translate(-50%,-50%) rotate(270deg)}
.tile.busy .im::after{content:"Reading\2026";position:absolute;inset:0;display:grid;place-items:center;background:rgba(3,9,18,.7);color:#cfe;font:600 13px var(--f-mono)}
.tile .br{position:absolute;width:22px;height:22px;border:2px solid rgba(255,255,255,.85);pointer-events:none}
.tile .br.a{left:10px;top:10px;border-right:0;border-bottom:0;border-radius:4px 0 0 0}
.tile .br.b{right:10px;top:10px;border-left:0;border-bottom:0;border-radius:0 4px 0 0}
.tile .br.c{left:10px;bottom:10px;border-right:0;border-top:0;border-radius:0 0 0 4px}
.tile .br.d{right:10px;bottom:10px;border-left:0;border-top:0;border-radius:0 0 4px 0}
.tile .no{position:absolute;left:14px;top:14px;height:26px;min-width:30px;padding:0 8px;border-radius:7px;background:rgba(14,18,24,.82);color:#fff;font:700 12px/26px var(--f-mono);text-align:center;letter-spacing:.06em}
.tile .flag{position:absolute;right:14px;top:14px;height:26px;padding:0 10px;border-radius:7px;border:1.5px solid #44F48D;background:rgba(3,18,10,.88);color:#44F48D;font:800 11px/23px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.tile .flag.amb{border-color:#FFB224;color:#FFB224;background:rgba(30,18,0,.88)}
.tile .flag.off{opacity:0;border-style:dashed;color:#fff;border-color:rgba(255,255,255,.6);background:rgba(10,14,20,.7);transition:opacity .15s}
.tile:hover .flag.off,.tile:focus-within .flag.off,.tile.sel .flag.off{opacity:1}
.tile .ts{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#fff;font:600 12px var(--f-mono);letter-spacing:.06em;text-shadow:0 1px 3px rgba(0,0,0,.9);pointer-events:none}
.tile .ts.ft{color:#ffd37a}
.tile .acts{position:absolute;left:0;right:0;bottom:0;display:none;grid-template-columns:repeat(5,1fr);background:rgba(3,9,18,.9);border-top:1px solid var(--line)}
.tile:hover .acts,.tile:focus-within .acts,.tile.sel .acts{display:grid}
.tile .acts button{height:44px;border:0;background:none;color:#fff;cursor:pointer;display:grid;place-items:center;padding:0}
.tile .acts button:hover{background:rgba(68,244,141,.18)}
.tile .acts svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.tile .acts .rm{color:#ff8f8f}
.tile .meta{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;background:var(--panel);min-height:44px}
.tile .meta .cap{flex:1;min-width:0;background:transparent;border:0;outline:0;font:600 14px var(--f-body);color:var(--ink);padding:8px 4px;border-radius:6px}
.tile .meta .cap::placeholder{color:var(--faint);font-weight:500}
.tile .meta .cap:focus{background:var(--g-soft)}
.tile .meta .pcw{flex:none;display:flex;align-items:center;font:600 11px var(--f-mono);letter-spacing:.06em;color:var(--dim)}
.tile .meta .pc{flex:none;width:38px;background:transparent;border:0;outline:0;text-align:left;font:600 11px var(--f-mono);letter-spacing:.06em;color:var(--dim);text-transform:uppercase;padding:8px 2px;border-radius:6px}
.tile .meta .pc:focus{background:var(--g-soft);color:var(--ink)}
.tile .meta .pc::placeholder{color:var(--faint)}
.addtile{border:1px solid var(--line);border-radius:14px;background:rgba(3,8,18,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:196px;cursor:pointer;color:var(--ink);font:inherit;text-align:center;padding:12px}
html[data-theme="light"] .addtile{background:var(--panel2)}
.addtile:hover{border-color:var(--g-line)}
.addtile i{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;font:300 30px/1 var(--f-body);font-style:normal}
.addtile b{display:block;font:600 14px var(--f-body)}
.addtile small{display:block;margin-top:2px;font:500 12px var(--f-mono);color:var(--dim);letter-spacing:.04em}

/* ---------- build panel ---------- */
.build{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.pdfi{flex:none;width:64px;height:76px;border:1.5px solid var(--g);border-radius:8px 18px 8px 8px;background:var(--g-soft);display:grid;align-items:end;justify-items:center;padding-bottom:11px;font:800 13px var(--f-mono);letter-spacing:.1em;color:var(--g-text);position:relative}
.pdfi::before{content:"";position:absolute;right:-1.5px;top:-1.5px;width:20px;height:20px;background:var(--rail);border-left:1.5px solid var(--g);border-bottom:1.5px solid var(--g);border-radius:0 0 0 8px}
.build .nm{flex:1;min-width:220px}
.build .nm b{display:block;font:600 15px/1.3 var(--f-mono);color:var(--title);word-break:break-all}
.build .nm p{margin:6px 0 0;font:500 14px/1.45 var(--f-body);color:var(--mut)}
.build .nm p span{font-family:var(--f-mono);color:var(--ink);margin-right:8px;font-weight:600}
.build .go{display:flex;gap:10px;margin-left:auto}
.opts{display:flex;gap:18px 28px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid var(--line2);align-items:flex-end}
.opts .f{grid-column:auto}
.bar{height:6px;border-radius:3px;background:var(--line2);overflow:hidden;margin-top:18px;display:none}.bar.show{display:block}
.bar i{display:block;height:100%;width:0;background:var(--g);transition:width .2s}
.priv{display:flex;gap:9px;align-items:flex-start;font:400 14px/1.45 var(--f-body);color:var(--mut);margin-top:18px}
.priv svg{flex:none;width:18px;height:18px;fill:none;stroke:var(--g-text);stroke-width:2;margin-top:2px}
.out{display:none;margin-top:22px;padding-top:22px;border-top:1px solid var(--line2)}.out.show{display:block}
.res{display:flex;flex-wrap:wrap;gap:6px 0;margin-bottom:18px}
.res>div{padding:2px 24px;border-left:1px solid var(--line)}
.res>div:first-child{padding-left:0;border-left:0}
.res .k{font:700 11px var(--f-mono);letter-spacing:.16em;color:var(--dim);text-transform:uppercase}
.res .v{font:800 28px/1.1 var(--f-head);color:var(--title)}
.res .fn{font:600 14px var(--f-mono);color:var(--ink);word-break:break-all;margin-top:5px}
.res .warn{color:var(--amber-text);font-weight:600;border-left:0;align-self:center}
.acts2{display:flex;flex-wrap:wrap;gap:10px}
dialog.pvd{border:1px solid var(--g-line);border-radius:20px;background:var(--panel);color:var(--ink);padding:0;width:min(920px,94vw);height:min(86vh,900px);box-shadow:0 30px 90px rgba(0,0,0,.6)}
dialog.pvd::backdrop{background:var(--scrim);backdrop-filter:blur(3px)}
dialog.pvd .hd{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
dialog.pvd .hd b{font:700 13px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--g-text);margin-right:auto}
dialog.pvd iframe{display:block;width:100%;height:calc(100% - 73px);border:0;background:#fff}

/* ---------- right column ---------- */
.job{padding:22px 22px 24px}
.job::before{display:none}
.job .hd{display:flex;justify-content:space-between;font:700 11px var(--f-mono);letter-spacing:.2em;color:var(--dim);text-transform:uppercase}
.job .hd em{font-style:normal;color:var(--g-text)}
.job .hd em.amb{color:var(--amber-text)}
.job .no{margin:12px 0 18px;font:500 28px/1 var(--f-mono);color:var(--title)}
.job .rt{display:flex;align-items:center;gap:10px;font:800 21px/1.1 var(--f-head);text-transform:uppercase;color:var(--title);flex-wrap:wrap}
.job .rt s{display:inline-block;width:8px;height:8px;background:var(--g);text-decoration:none;border-radius:1px}
.job .rt .ar{width:46px;height:12px;stroke:var(--g-text);fill:none;stroke-width:1.6}
.job .pth{margin:8px 0 18px;font:400 14px var(--f-body);color:var(--mut)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:12px;background:var(--field)}
.stats>div{padding:12px 14px;border-left:1px solid var(--line2)}
.stats>div:first-child{border-left:0}
.stats small{display:block;font:700 10px var(--f-mono);letter-spacing:.18em;color:var(--dim);text-transform:uppercase}
.stats b{display:block;margin-top:5px;font:600 18px var(--f-mono);color:var(--title)}
.who{display:flex;align-items:center;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line2)}
.who b{display:block;font:600 15px var(--f-body);color:var(--title)}
.who small{display:block;font:500 11px var(--f-mono);letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
.who .call{margin-left:auto;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:999px;display:inline-flex;align-items:center;font:600 12px var(--f-mono);text-decoration:none;color:var(--ink);white-space:nowrap}
.job .none{margin:6px 0 4px;color:var(--mut);font:400 14px/1.5 var(--f-body)}
.ready{padding:22px 20px 22px}
.ready::before{display:none}
.ready .hd{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ready .hd h3{margin:0;font:800 23px/1 var(--f-head);text-transform:uppercase;color:var(--title)}
.ready .hd .ok{width:26px;height:26px;border-radius:50%;background:var(--g);color:var(--g-ink);display:grid;place-items:center;flex:none}
.ready .hd .ok.wait{background:transparent;border:2px solid var(--amber);color:var(--amber-text)}
.ready .hd .ok svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.segs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}
.segs i{height:6px;border-radius:3px;background:var(--line);display:block}
.segs i.p{background:var(--g)}.segs i.w{background:var(--amber)}
.ready .sum{margin:10px 0 14px;font:700 11px var(--f-mono);letter-spacing:.2em;color:var(--dim);text-transform:uppercase}
.chk{display:grid;gap:8px}
.chk li{list-style:none;display:flex;align-items:center;gap:12px;min-height:44px;padding:0 14px 0 8px;border:1px solid var(--line2);border-radius:10px;background:var(--field);font:500 14px var(--f-body);color:var(--ink)}
.chk{margin:0;padding:0}
.chk li .d{flex:none;width:28px;height:28px;border-radius:50%;background:var(--g);color:var(--g-ink);display:grid;place-items:center}
.chk li .d svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.chk li .v{margin-left:auto;font:600 12px var(--f-mono);letter-spacing:.04em;color:var(--mut);text-transform:uppercase;white-space:nowrap}
.chk li.w{border-color:var(--amber);background:var(--amber-soft)}
.chk li.w .d{background:var(--amber);color:#2b1800}
.chk li.w .v{color:var(--amber-text)}
.chk li.todo .d{background:transparent;border:2px solid var(--faint);color:transparent}
.chk li.todo{color:var(--mut)}
.chk li.bad .d{background:var(--bad);color:#fff}

/* ---------- live preview card ---------- */
.pvwrap{position:absolute;right:56px;top:100px;width:344px;z-index:3}
.pvhd{display:flex;align-items:center;gap:8px;margin-bottom:10px;font:700 11px var(--f-mono);letter-spacing:.2em;color:var(--g-text)}
.pvhd i{width:8px;height:8px;border-radius:50%;background:var(--g);box-shadow:0 0 8px var(--g)}
.pvhd span:last-child{margin-left:auto;color:var(--dim)}
.pvpage{position:relative;width:326px;height:422px;background:var(--paper);color:var(--paper-ink);border-radius:8px;border:2px solid var(--g);box-shadow:var(--glow),0 22px 50px rgba(0,0,0,.45);transform:rotate(-1.2deg);overflow:hidden;margin-left:4px}
.pvin{position:absolute;left:0;top:0;width:612px;height:792px;transform:scale(.5327);transform-origin:0 0;font-family:"Instrument Sans","Barlow",sans-serif;background:#fff}
.pvband{position:relative;height:150px;background:linear-gradient(180deg,#0A4A35,#04201A);color:#F4F2EA;padding:20px 40px;overflow:hidden}
.pvband::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#B8862C,#F1CF7A,#B8862C)}
.pvband::before{content:"";position:absolute;right:0;top:60px;width:300px;height:56px;background:repeating-linear-gradient(180deg,rgba(199,204,209,.55) 0 1px,transparent 1px 6.5px);-webkit-mask-image:linear-gradient(90deg,transparent,#000);mask-image:linear-gradient(90deg,transparent,#000)}
.pvband img{height:53px;display:block;position:relative;z-index:1}
.pvband .ti{position:absolute;right:40px;top:22px;text-align:right;font:700 30px/1 "Big Shoulders Display","Barlow Condensed",sans-serif;text-transform:uppercase;z-index:1}
.pvband .ti small{display:block;margin-top:8px;font:700 15px "Big Shoulders Display","Barlow Condensed",sans-serif;color:#F1CF7A;letter-spacing:.03em}
.pvband .k{position:absolute;left:40px;bottom:46px;font:400 8.5px sans-serif;color:#B9D3C7}
.pvband .bg{position:absolute;left:40px;right:40px;bottom:22px;font:700 24px/1 "Big Shoulders Display","Barlow Condensed",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pvband .sb{position:absolute;left:40px;bottom:9px;font:400 8.5px sans-serif;color:#B9D3C7;white-space:nowrap}
.pvpanel{margin:14px 34px 0;background:#DCEFF5;border:1px solid #E9EDF0;border-radius:8px;height:58px;display:grid;grid-template-columns:.62fr 1.15fr 1.4fr 1.05fr;padding:0 6px}
.pvpanel div{padding:9px 8px 0 8px;border-left:1px solid #DCE3DF;margin:11px 0;padding-top:0;min-width:0;overflow:hidden}
.pvpanel div:first-child{border-left:0}
.pvpanel small{display:block;font:700 7.5px sans-serif;color:#1E9E57;margin-top:-4px}
.pvpanel b{display:block;font:700 10px/1.2 sans-serif;color:#111110;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pvpanel span{display:block;font:400 7.5px sans-serif;color:#4E5A55;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pvnote{margin:10px 34px 0;background:#F5F8F6;border-radius:8px;padding:8px 12px;font:400 9px/1.35 sans-serif;color:#111110;max-height:74px;overflow:hidden}
.pvnote small{display:block;font:700 7.5px sans-serif;color:#1E9E57;margin-bottom:2px}
.pvgrid{margin:10px 36px 0;display:grid;gap:8px 12px;grid-template-columns:1fr 1fr}
.pvgrid .c{min-width:0}
.pvgrid .im{aspect-ratio:4/3;background:#F5F8F6;border:.6px solid #DCE3DF;overflow:hidden;position:relative}
.pvgrid .im img{width:100%;height:100%;object-fit:contain;display:block}
.pvgrid .im img.r90,.pvgrid .im img.r270{position:absolute;left:50%;top:50%;width:75%;height:133.34%;max-width:none;object-fit:contain}
.pvgrid .im img.r90{transform:translate(-50%,-50%) rotate(90deg)}.pvgrid .im img.r180{transform:rotate(180deg)}.pvgrid .im img.r270{transform:translate(-50%,-50%) rotate(270deg)}
.pvgrid .cp{font:400 8px/1.3 sans-serif;color:#4E5A55;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pvgrid .cp i{display:inline-block;width:12px;height:12px;border-radius:50%;background:#0A4A35;color:#F1CF7A;font:700 7px/12px sans-serif;text-align:center;font-style:normal;margin-right:5px}
.pvgrid .empty{aspect-ratio:4/3;border:1px dashed #DCE3DF;display:grid;place-items:center;font:500 9px sans-serif;color:#9aa7a1}
.pvfoot{position:absolute;left:40px;right:40px;bottom:16px;border-top:.7px solid #DCE3DF;padding-top:7px;display:flex;justify-content:space-between;font:400 7.2px sans-serif;color:#4E5A55}

/* ---------- hero art (bottom speed band on page) ---------- */
.footband{height:140px;margin-top:40px;position:relative;pointer-events:none;
  background:repeating-linear-gradient(180deg,transparent 0 17px,var(--sl1) 17px 19px,transparent 19px 53px),repeating-linear-gradient(180deg,transparent 0 8px,var(--sl2) 8px 10px,transparent 10px 18px);
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 85%);mask-image:linear-gradient(90deg,#000,transparent 85%);opacity:.35}

/* ---------- re-ice specifics ---------- */
.big{display:flex;align-items:center;gap:14px;border:1px solid var(--g-line);border-radius:14px;background:var(--field);padding:6px 16px;min-height:56px}
.big input{width:104px;background:transparent;border:0;outline:0;font:700 36px/1 var(--f-mono);color:var(--title);padding:6px 0}
.big .u{font:500 15px var(--f-mono);color:var(--mut)}
.big .dia{margin-left:auto;width:26px;height:26px}
.big .ch{margin-left:0;font:700 11px var(--f-mono);letter-spacing:.14em;color:var(--g-text);display:inline-flex;gap:7px;align-items:center;text-transform:uppercase;white-space:nowrap}
.big .ch svg{width:18px;height:18px}
.big:focus-within{border-color:var(--g);box-shadow:var(--glow)}
table.bx{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--field);font:500 14px var(--f-body)}
table.bx th{font:700 11px var(--f-mono);letter-spacing:.18em;color:var(--dim);text-transform:uppercase;text-align:right;padding:12px 16px;border-bottom:1px solid var(--line)}
table.bx th:first-child,table.bx td:first-child{text-align:left}
table.bx td{padding:0 16px;height:48px;border-top:1px solid var(--line2);text-align:right;font:600 15px var(--f-mono);color:var(--title)}
table.bx td:first-child{font:500 14px var(--f-body);color:var(--ink)}
table.bx td.ad{color:var(--g-text)}
table.bx td input{width:76px;background:transparent;border:1px solid transparent;border-radius:8px;outline:0;text-align:right;font:600 15px var(--f-mono);color:inherit;padding:8px 6px;min-height:40px}
table.bx td input:hover{border-color:var(--line)}
table.bx td input:focus{border-color:var(--g);box-shadow:var(--glow)}
table.bx td u{text-decoration:none;color:var(--dim);font-weight:500;margin-left:4px}
table.bx tfoot td{background:rgba(8,117,68,.22);border-top:1px solid var(--g-line);font-size:16px;font-weight:700}
table.bx tfoot td:first-child{font:600 14px var(--f-body)}
html[data-theme="light"] table.bx tfoot td{background:rgba(8,117,68,.10)}
.bxc{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-top:14px}
.bxc .grp>span{display:block;font:700 11px var(--f-mono);letter-spacing:.2em;color:var(--dim);text-transform:uppercase;margin-bottom:8px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips button{min-width:44px;height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--field);font:700 13px var(--f-mono);color:var(--mut);cursor:pointer}
.chips button[aria-pressed="true"]{background:var(--g);border-color:var(--g);color:var(--g-ink)}
.temp{margin-top:20px;border:1.5px solid var(--cyan);border-radius:16px;padding:18px 20px 18px;background:linear-gradient(180deg,rgba(67,213,255,.06),rgba(67,213,255,.015));box-shadow:0 0 0 1px rgba(67,213,255,.25),0 0 22px rgba(67,213,255,.12)}
html[data-theme="light"] .temp{background:rgba(0,105,180,.05);box-shadow:none}
.temp .th{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.temp .th>span.k{font:700 11px var(--f-mono);letter-spacing:.2em;color:var(--cyan);text-transform:uppercase;margin-right:auto}
.temp .bandsel{display:inline-flex;align-items:center;border:1.5px solid var(--cyan);border-radius:8px;background:transparent;height:30px;padding:0 4px 0 10px;font:700 11px var(--f-mono);letter-spacing:.08em;color:var(--cyan)}
.temp .bandsel select{appearance:none;background:transparent;border:0;outline:0;color:inherit;font:inherit;cursor:pointer;padding:0 6px;height:28px}
.temp .bandsel select option{background:var(--panel);color:var(--ink)}
.temp .st{height:30px;padding:0 10px;border-radius:8px;border:1.5px solid var(--g);color:var(--g-text);font:800 11px/27px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.temp .st.out{border-color:var(--amber);color:var(--amber-text)}
.temp .rd{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-top:8px}
.temp .rd .val{display:flex;align-items:baseline;gap:6px}
.temp .rd input{width:190px;background:transparent;border:0;outline:0;font:500 50px/1 var(--f-mono);color:var(--cyan);padding:4px 0;letter-spacing:.01em}
.temp .rd .u{font:500 36px var(--f-mono);color:var(--cyan)}
.temp .rd p{margin:0;font:400 14px var(--f-body);color:var(--mut)}
.temp .rd2{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap}
.temp .rd2 label{display:flex;align-items:center;gap:8px;font:700 11px var(--f-mono);letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
.temp .rd2 input{width:112px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--field);padding:0 10px;font:600 14px var(--f-mono);color:var(--ink);outline:0}
.temp .rd2 input:focus{border-color:var(--cyan)}
.gauge{position:relative;margin-top:26px;height:16px}
.gauge .trk{position:absolute;left:0;right:0;top:6px;height:6px;border-radius:3px;background:var(--line)}
.gauge .rng{position:absolute;top:2px;height:14px;border-radius:5px;background:var(--cyan);opacity:.85}
.gauge .mk{position:absolute;top:-8px;width:3px;height:30px;background:#fff;border-radius:2px;transform:translateX(-1px)}
html[data-theme="light"] .gauge .mk{background:#0B1F29}
.gauge .mk b{position:absolute;left:6px;top:-6px;font:600 12px var(--f-mono);color:var(--ink);white-space:nowrap}
.gscale{display:flex;justify-content:space-between;margin-top:8px;font:500 12px var(--f-mono);color:var(--dim)}
.treq{margin:14px 0 0;font:500 13px/1.5 var(--f-mono);color:var(--mut)}
.steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.slot .lblw{position:absolute;left:14px;bottom:14px;display:flex;gap:8px;align-items:center;max-width:calc(100% - 90px)}
.slot .im .lbl{height:22px;white-space:nowrap;overflow:hidden;padding:0 8px;border-radius:5px;background:rgba(14,18,24,.85);color:#fff;font:700 10px/22px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(255,255,255,.25)}
.slot .im .wt{height:24px;padding:0 8px;flex:none;border-radius:5px;background:rgba(0,0,0,.65);color:#44F48D;font:700 13px/24px var(--f-mono);text-align:center}
.slot .im .ts{left:auto;right:14px;text-align:right}
.slot.empty .im{display:grid;place-items:center;background:repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0 8px,transparent 8px 16px),var(--field);cursor:pointer;color:var(--mut)}
.slot.empty .im b{font:600 14px var(--f-body);display:flex;gap:8px;align-items:center}
.slot.empty .im small{display:block;margin-top:4px;font:700 10px var(--f-mono);letter-spacing:.16em;color:var(--dim);text-transform:uppercase;text-align:center}
.slot.empty .no{background:rgba(14,18,24,.5)}
.slot .meta .cap{font-weight:600}
.slot .meta .pc{width:56px}
.slot .extra{display:flex;gap:8px;padding:0 10px 10px;background:var(--panel)}
.slot .extra input{flex:1;min-width:0;min-height:44px;border:1px solid var(--line2);border-radius:10px;background:var(--field);padding:0 10px;font:600 13px var(--f-mono);outline:0;color:var(--ink)}
.slot .extra input:focus{border-color:var(--g)}
.optslot{margin-top:16px;border:1px solid var(--line);border-radius:14px;background:rgba(3,8,18,.5);display:flex;align-items:center;gap:16px;padding:12px 16px;min-height:68px;cursor:pointer;width:100%;text-align:left;font:inherit;color:inherit}
html[data-theme="light"] .optslot{background:var(--panel2)}
.optslot:hover{border-color:var(--g-line)}
.optslot i{flex:none;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;font:300 26px/1 var(--f-body);font-style:normal}
.optslot b{display:block;font:600 14px var(--f-body)}
.optslot small{display:block;font:500 12px var(--f-mono);color:var(--dim)}
.optslot img{margin-left:auto;height:52px;border-radius:8px;display:block}
.vivid{display:inline-flex}
.sample-chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:6px;border:1px dashed var(--amber);color:var(--amber-text);font:700 10px var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.pvband2{position:relative;height:118px;background:#050a0c;color:#fff;padding:20px 40px;overflow:hidden}
.pvband2.light{background:#EEF4F2;color:#0B1F29}
.pvband2::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:#44F48D}
.pvband2.light::after{background:#087544}
.pvband2 img{height:44px;display:block}
.pvband2 .kk{position:absolute;left:40px;bottom:46px;font:700 8px "JetBrains Mono",monospace;letter-spacing:.14em;color:#44F48D;white-space:nowrap}
.pvband2.light .kk{color:#087544}
.pvband2 .tt{position:absolute;left:40px;bottom:14px;font:700 30px/1 "Big Shoulders Display","Barlow Condensed",sans-serif;text-transform:uppercase}
.pvband2 .bd{position:absolute;right:40px;top:30px;border:1.5px solid #44F48D;border-radius:8px;padding:8px 14px;text-align:right;color:#fff;font:800 20px/1 "JetBrains Mono",monospace}
.pvband2.light .bd{border-color:#087544;color:#0B1F29}
.pvband2 .bd small{display:block;font:700 6.5px "JetBrains Mono",monospace;letter-spacing:.14em;color:#44F48D;margin-bottom:5px}
.pvband2.light .bd small{color:#087544}
.pvfro{margin:14px 34px 0;height:30px;background:#DCEAF6;border-left:5px solid #0069B4;display:flex;align-items:center;gap:10px;padding:0 12px;font:700 8.5px "JetBrains Mono",monospace;color:#0B2A5B}
.pvfro .bar2{flex:1;height:7px;background:#C5CED4;border-radius:4px;position:relative;overflow:hidden}
.pvfro .bar2 i{position:absolute;left:0;top:0;bottom:0;background:#0069B4}
.pvmath{margin:14px 40px 0;display:flex;gap:16px;align-items:flex-end;font:700 18px/1 "JetBrains Mono",monospace;color:#111}
.pvmath div small{display:block;font:500 7px "JetBrains Mono",monospace;letter-spacing:.14em;color:#4E5A55;text-transform:uppercase;margin-bottom:5px}
.pvmath s{text-decoration:none;color:#087544;font-size:18px;padding-bottom:1px}
.pvh{margin:14px 40px 8px;font:800 8.5px "JetBrains Mono",monospace;letter-spacing:.14em;color:#111;display:flex;gap:8px;align-items:center}
.pvh::before{content:"";width:12px;height:3px;background:#087544}
.pvev{margin:0 36px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pvev .im{aspect-ratio:1/.92;background:#0d1418;border-radius:4px;overflow:hidden;position:relative}
.pvev .im img{width:100%;height:100%;object-fit:cover;display:block}
.pvev .im img.r90,.pvev .im img.r270{position:absolute;left:50%;top:50%;width:92%;height:108.7%;max-width:none}
.pvev .im img.r90{transform:translate(-50%,-50%) rotate(90deg)}.pvev .im img.r180{transform:rotate(180deg)}.pvev .im img.r270{transform:translate(-50%,-50%) rotate(270deg)}
.pvev .cp{font:500 7px "JetBrains Mono",monospace;color:#333;margin-top:5px}
.pvev .empty{aspect-ratio:1/.92;border:1px dashed #cfd6da;border-radius:4px}

/* ---------- phone ---------- */
@media (max-width:1180px){
  .pvwrap{position:relative;right:auto;top:auto;margin:30px 0 0;width:100%;max-width:380px}
  .cols{grid-template-columns:1fr}
  .col-r{position:static}
}
@media (max-width:900px){
  .rail{transform:translateX(-100%);transition:transform .22s;width:288px;box-shadow:0 0 60px rgba(0,0,0,.6)}
  body.nav-open .rail{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:var(--scrim);z-index:25}
  .main{margin-left:0}
  .wrap{padding:0 16px 60px}
  .top{height:auto;flex-wrap:wrap;padding:12px 0 0;gap:10px 8px}
  .menu{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--panel);cursor:pointer;padding:0;flex:none;order:1}
  .menu svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
  .crumb{display:none}
  .top .mlogo{display:block;order:2;margin-right:auto;margin-left:6px}
  .top .mlogo img{height:46px;display:block}
  .mxsw{order:3;margin-left:0;gap:2px}
  .pills{order:4;flex-basis:100%;overflow-x:auto;padding:4px 0;margin:0 -2px;scrollbar-width:none}
  .pill{padding:0 18px;flex:none}
  .hero{padding-top:10px}
  .hero::before{width:70%;height:360px;top:-20px;opacity:.4}
  .eyebrow{margin:30px 0 14px;font-size:11px}
  h1.t{font-size:78px;line-height:.9}
  .lede{font-size:16px;margin:16px 0 22px}
  .stepper{width:100%}
  .stepper a{height:auto;min-height:62px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}
  .stepper a{display:block}
  .stepper .n{display:inline;font-size:24px;margin-right:0}
  .stepper b{display:block}
  .stepper small{font-size:11px}
  .cols{gap:18px;margin-top:24px}
  .card{padding:22px 16px 22px;border-radius:20px}
  .card::before{left:16px}
  .sh{margin-bottom:16px}
  .sh h2{font-size:30px;width:100%}
  .sh .tag{margin-left:0;width:100%}
  .fg{grid-template-columns:1fr;gap:16px}
  .f,.f.s3,.f.s4,.f.s6{grid-column:1/-1}
  .drop{flex-direction:column;align-items:stretch;gap:14px;padding:16px}
  .drop .row{display:flex;gap:14px;align-items:flex-start}
  .drop .btn{width:100%}
  .thumbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .tile .meta{padding:6px 8px 6px 6px;flex-wrap:wrap}
  .tile .meta{flex-wrap:wrap;padding:6px 8px}
  .tile .meta .cap{flex:1 0 100%;padding-bottom:2px}
  .tile .meta .pcw{padding-left:4px}
  .build{flex-direction:column;align-items:stretch}
  .build .nm{min-width:0}
  .build .go{flex-direction:column;margin:0;gap:10px}
  .build .go .btn{width:100%}
  .pvwrap{max-width:none}
  .pvpage{margin:0 auto}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .bxc{grid-template-columns:1fr}
  .temp .rd input{font-size:44px;width:130px}
  .res>div{padding:2px 14px}
  .job .no{font-size:26px}
  table.bx th,table.bx td{padding-left:8px;padding-right:8px}
  table.bx td input{width:56px;padding:8px 2px}
  table.bx td u{display:none}
  table.bx td:first-child{white-space:nowrap;font-size:13px}
  table.bx td,table.bx th{padding-left:6px;padding-right:6px}
  .slot .im .lbl{font-size:9px;padding:0 6px;letter-spacing:.06em}
  dialog.pvd{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0}
}
@media (max-width:520px){
  .steps{gap:10px}
  .slot .meta .pc{width:auto}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
