/* Prophouse landing pages — shared styles (generated by build-lp.py) */
/* Fonts are self-hosted: the site-wide CSP is font-src 'self', so Google
   Fonts links never load here. Same files site.css uses. */
@font-face{font-family:"Archivo";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/archivo-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/archivo-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/archivo-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/archivo-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2")}
:root{
  --ink:#131315; --paper:#F6F6F7; --sheen:#ECECEE; --hair:#DCDCE0;
  --silver:#9A9AA2; --muted:#63636C; --ctrl:#767680; --link:#0A6A8C;
  --sans:'Archivo',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
  --max:73rem; --logo-filter:none;
  --abg:#0e0e10; --araised:#17171a; --aborder:#2a2a2e; --atext:#f0f0f2;
  --adim:#8a8a93; --afaint:#55555c; --aaccent:#159bc9;
  --uefont:'Roboto',system-ui,sans-serif;
  --uebg:#151515; --uepanel:#1c1c1c; --uehead:#0f0f0f; --uerow:#242424;
  --ueborder:#000; --ueline:#3c3c3c; --uetext:#cfcfcf; --uedim:#9a9a9a;
  --ueblue:#0f6fc5; --uesel:#0e5faf;
  --s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2.5rem;--s5:4rem;--s6:6rem;
}
@media (prefers-color-scheme:dark){
  :root{--ink:#F0F0F2;--paper:#0E0E10;--sheen:#17171A;--hair:#2A2A2E;--silver:#55555C;
    --muted:#8A8A93;--ctrl:#6E6E76;--link:#159BC9;--logo-filter:invert(1)}
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1.125rem;
  line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--s3)}
.eyebrow{font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}
.lp-top{padding:1.1rem 0}
.lp-top .brand{display:flex;align-items:center;gap:.6rem;font-size:1.1875rem;font-weight:500;letter-spacing:-.01em}
.lp-top .brand img{width:1.625rem;height:1.625rem;filter:var(--logo-filter)}
.lp-hero{text-align:center;padding:var(--s5) 0 var(--s4)}
.lp-hero h1{font-size:3.375rem;font-weight:700;letter-spacing:-.025em;line-height:1.06;margin:.9rem 0 1.1rem}
.lp-hero .lede{font-size:1.1875rem;color:var(--muted);max-width:41rem;margin:0 auto var(--s4)}
.btn{display:inline-block;font-family:var(--sans);font-size:.9375rem;font-weight:500;
  background:var(--ink);color:var(--paper);border:none;border-radius:2px;
  padding:.8125rem 1.625rem;cursor:pointer;text-decoration:none;transition:opacity 150ms ease-out}
.btn:hover{opacity:.85}
.cta-sub{font-family:var(--mono);font-size:.75rem;color:var(--muted);margin-top:.8rem}
#motionNote{display:none;align-items:center;justify-content:center;gap:14px;margin:0 auto var(--s3);
  max-width:44rem;padding:.7rem 1rem;border:1px solid var(--hair);border-radius:2px;
  color:var(--muted);font-size:.9rem}
#motionNote button{font-family:var(--mono);font-size:.75rem;color:var(--paper);background:var(--ink);
  border:0;border-radius:2px;padding:.45rem .9rem;cursor:pointer;white-space:nowrap}
html.reduced #motionNote{display:flex}
.lp-demo{margin:0 auto var(--s5)}
.lp-demo.wide{max-width:71rem}
.lp-demo.narrow{max-width:38rem}
.lp-demo.duo{max-width:73rem;display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);padding:0 var(--s3)}
@media (max-width:980px){.lp-demo.duo{grid-template-columns:1fr}.lp-hero h1{font-size:2.25rem}}
.sim{border:1px solid var(--hair);border-radius:2px;overflow:hidden;background:var(--paper)}
.sim-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);
  padding:.7rem var(--s3);border-bottom:1px solid var(--hair)}
.sim-head .cap{font-family:var(--mono);font-size:.6875rem;color:var(--muted);text-align:right}
.sim-head .replay{font-family:var(--mono);font-size:.6875rem;color:var(--link);background:none;
  border:1px solid var(--hair);border-radius:2px;padding:.15rem .55rem;cursor:pointer;white-space:nowrap;flex-shrink:0}
.sim-head .replay:hover{border-color:var(--link)}
.stage{position:relative;background:var(--abg);overflow:hidden;color:var(--atext)}
.lp-benefits{max-width:44rem;margin:0 auto var(--s6);padding:0 var(--s3);
  display:flex;flex-direction:column;gap:1.1rem}
.lp-benefits p{color:var(--muted)}
.lp-benefits p b{color:var(--ink);font-weight:600}
.lp-obj{max-width:44rem;margin:0 auto var(--s6);padding:0 var(--s3)}
.lp-obj h2{font-size:1.5rem;font-weight:700;letter-spacing:-.015em;margin-bottom:1.25rem}
.lp-obj dl{margin:0}
.lp-obj .obj{padding:1.1rem 0;border-top:1px solid var(--hair)}
.lp-obj .obj:last-child{border-bottom:1px solid var(--hair)}
.lp-obj dt{font-weight:600;margin-bottom:.35rem}
.lp-obj dd{color:var(--muted);margin:0}
.lp-close{text-align:center;border-top:1px solid var(--hair);padding:var(--s6) 0}
.lp-close h2{font-size:2.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.lp-close .closer{color:var(--muted);max-width:36rem;margin:1rem auto var(--s4)}
.formcard{max-width:26.5rem;margin:0 auto;text-align:left;border:1px solid var(--hair);
  border-radius:2px;padding:var(--s3)}
.formcard h3{font-size:1.25rem;letter-spacing:-.01em;margin-bottom:.6rem}
.formcard ul{list-style:none;margin:0 0 1.1rem;padding:0;color:var(--muted);font-size:.9375rem}
.formcard li{padding-left:1.1rem;position:relative;margin:.35rem 0}
.formcard li::before{content:"·";position:absolute;left:.2rem;color:var(--silver)}
.signup{display:flex;flex-direction:column;gap:.625rem}
.signup label{margin-bottom:-.2rem}
.signup input[type=email]{font-family:var(--sans);font-size:.9375rem;color:var(--ink);
  background:transparent;border:1px solid var(--ctrl);border-radius:2px;padding:.75rem .875rem;width:100%}
.signup input::placeholder{color:var(--muted)}
.signup .btn{width:100%;text-align:center;font-size:1rem}
.signup .btn[aria-disabled="true"]{opacity:.5;pointer-events:none}
.cf-turnstile{display:flex;justify-content:center;margin:.2rem 0}
#access-msg{font-size:.875rem;color:var(--muted);min-height:1.3rem;margin-top:.3rem}
.trust{font-family:var(--mono);font-size:.71875rem;color:var(--muted);margin-top:1rem;line-height:1.7}
footer{border-top:1px solid var(--hair);padding:var(--s3) 0 var(--s5);color:var(--muted);
  font-size:.875rem;text-align:center}

/* ── sim internals (from /preview, tuned) ── */
.cursor{position:absolute;width:16px;height:22px;z-index:60;pointer-events:none;opacity:0;
  transition:transform 1s cubic-bezier(.45,.05,.35,1),opacity .3s;filter:drop-shadow(1px 2px 2px rgba(0,0,0,.6))}

/* ═════════ Prophouse app atoms — 1:1 from web/src/index.css (dark) ═════════ */
.app-stage{font-family:var(--sans);font-size:16px;color:var(--atext);padding:20px}
.b-toprow{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.b-search{flex:1;position:relative;display:flex;align-items:center;background:var(--abg);
  border:1px solid var(--aborder);border-radius:2px;padding:7.2px 9.6px;font-size:16px;height:38.4px}
.b-search .ph{color:var(--afaint);position:absolute;white-space:nowrap;overflow:hidden;max-width:92%}
.b-textbtn{color:var(--aaccent);font-size:13.28px;padding:2.4px 5.6px;white-space:nowrap}
.b-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;position:relative;align-content:start}
.entry-card{position:relative;display:flex;flex-direction:column;gap:6.4px;background:var(--abg);
  border:1px solid var(--aborder);border-radius:2px;padding:9.6px;min-width:0;
  transition:border-color .25s,opacity .4s,transform .4s}
.entry-select{position:absolute;top:16px;left:16px;z-index:1;accent-color:var(--aaccent);width:13px;height:13px}
.thumb{position:relative;aspect-ratio:1;border-radius:2px;overflow:hidden;background:var(--araised)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.entry-name{font-weight:600;font-size:16px;color:var(--atext);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.entry-meta{display:flex;gap:8px;font-size:12.8px;color:var(--adim);white-space:nowrap;overflow:hidden}
.scorechip{position:absolute;top:8px;right:8px;z-index:2;font-family:var(--mono);font-size:11px;color:var(--aaccent);
  border:1px solid rgba(21,155,201,.5);background:rgba(14,14,16,.85);padding:1.5px 7px;border-radius:2px;
  opacity:0;transition:opacity .3s}
.page-note{color:var(--adim);font-size:16px}
.page-note b{color:var(--atext);font-weight:600}
.page-note .tb{color:var(--aaccent);font-size:13.28px}

/* ═════════ 1 · UNREAL EDITOR (UE5) ═════════ */
#ue .stage{height:720px;background:var(--uebg);color:var(--uetext);font-family:var(--uefont);font-size:12px}
.ue-menu{height:26px;background:var(--uehead);display:flex;align-items:center;gap:2px;padding:0 8px;
  font-size:12px;color:var(--uetext)}
.ue-menu .m{padding:3px 8px;border-radius:3px}
.ue-menu .logo{width:17px;height:17px;margin-right:6px;border-radius:50%;background:#fff;color:#000;
  font-weight:700;font-size:10px;display:flex;align-items:center;justify-content:center}
.ue-tabs{height:32px;background:var(--uehead);display:flex;align-items:flex-end;padding:0 6px;gap:2px}
.ue-tab{background:var(--uepanel);border-radius:5px 5px 0 0;padding:6px 12px 5px;font-size:12px;
  display:flex;gap:9px;align-items:center;color:#e8e8e8}
.ue-tab .x{color:var(--uedim);font-size:11px}
.ue-toolbar{height:42px;background:var(--uepanel);display:flex;align-items:center;gap:4px;padding:0 8px;
  border-bottom:1px solid var(--ueborder)}
.ue-tool{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:3px;font-size:12px;color:var(--uetext)}
.ue-tool svg{width:16px;height:16px;flex-shrink:0}
.ue-tool .dd{font-size:8px;color:var(--uedim);margin-left:2px}
.ue-sep{width:1px;height:24px;background:#333;margin:0 4px}
.ue-body{display:flex;height:562px}
.ue-left{width:260px;flex-shrink:0;background:var(--uepanel);border-right:1px solid var(--ueborder);display:flex;flex-direction:column}
.ue-ptabs{display:flex;background:var(--uehead);gap:1px;padding:2px 2px 0}
.ue-ptab{padding:6px 12px;font-size:11.5px;color:var(--uedim);background:#161616;border-radius:4px 4px 0 0}
.ue-ptab.on{background:var(--uepanel);color:#e8e8e8}
.ph-search{margin:8px;position:relative;display:flex;align-items:center;background:#0d0d0d;
  border:1px solid #333;border-radius:3px;padding:5px 8px;font-size:12px;gap:6px}
.ph-search svg{width:12px;height:12px;color:#6e6e6e;flex-shrink:0}
.ph-search .ph-placeholder{color:#6e6e6e;position:absolute;left:26px;transition:opacity .2s}
.ph-search .typed{white-space:pre;color:#e8e8e8}
.ph-search .caret{width:1px;height:13px;background:#e8e8e8;margin-left:1px;opacity:0}
.ph-results{padding:0 8px;display:flex;flex-direction:column;gap:6px}
.ph-card{display:flex;gap:9px;background:var(--uerow);border:1px solid transparent;border-radius:3px;padding:6px;
  opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s,border-color .2s,background .2s}
.ph-card img{width:52px;height:52px;border-radius:3px;object-fit:cover;background:#0d0d0d}
.ph-card .n{font-size:11.5px;font-weight:500;color:#e8e8e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.ph-card .t{font-size:10.5px;color:var(--uedim);margin-top:3px}
.ph-card .t b{color:#bdbdbd;font-weight:500}
.ph-card.grab{border-color:var(--ueblue);background:#1f2c3a}
.ph-foot{margin-top:auto;padding:7px 10px;font-size:10.5px;color:var(--uedim);border-top:1px solid #2c2c2c}

.ue-vp{flex:1;position:relative;overflow:hidden;
  background:linear-gradient(180deg,#5c7ea6 0%,#7695b8 22%,#a7bcd2 40%,#d3dde7 49%,#e9edf1 52.5%,
  #9599a0 53%,#84888e 60%,#6b6f75 74%,#575a5f 100%)}
.ue-fog{position:absolute;left:0;right:0;top:47%;height:9%;background:linear-gradient(180deg,transparent,rgba(238,242,246,.9) 45%,rgba(238,242,246,.55) 70%,transparent);filter:blur(2px)}
.ue-floorgrid{position:absolute;left:-45%;right:-45%;top:52.5%;bottom:-36%;
  background:
   repeating-linear-gradient(90deg,rgba(40,44,48,.34) 0 1px,transparent 1px 64px),
   repeating-linear-gradient(0deg,rgba(40,44,48,.34) 0 1px,transparent 1px 64px),
   repeating-linear-gradient(90deg,rgba(30,33,36,.42) 0 2px,transparent 2px 320px),
   repeating-linear-gradient(0deg,rgba(30,33,36,.42) 0 2px,transparent 2px 320px);
  transform:perspective(620px) rotateX(74deg);transform-origin:50% 0}
.ue-vptop{position:absolute;top:6px;left:8px;right:8px;display:flex;z-index:6;justify-content:space-between}
.ue-vpgrp{display:flex;gap:4px}
.ue-vpchip{background:rgba(15,15,15,.72);color:#dcdcdc;font-size:11px;padding:3.5px 9px;border-radius:3px;display:flex;align-items:center;gap:5px}
.ue-vpchip .dd{font-size:8px;color:#9a9a9a}
.ue-vpico{background:rgba(15,15,15,.72);width:26px;height:23px;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#dcdcdc}
.ue-vpico svg{width:13px;height:13px}
.ue-vpico.on{background:rgba(15,95,175,.85);color:#fff}
.ue-crate{position:absolute;left:52%;top:60%;width:180px;transform:translate(-50%,-62%) scale(.4);opacity:0;z-index:4}
.ue-crate img{width:100%;display:block;filter:drop-shadow(0 14px 12px rgba(30,34,40,.35))}
.ue-crate .shadow{position:absolute;left:8%;right:8%;bottom:2%;height:13%;border-radius:50%;
  background:radial-gradient(ellipse at 50% 50%, rgba(20,22,25,.5), transparent 70%);z-index:-1}
.ue-crate .sel{position:absolute;inset:4% 13% 6% 13%;border:1px dashed rgba(90,170,255,.95);opacity:0}
.ue-ghost{position:absolute;width:56px;height:56px;border-radius:3px;overflow:hidden;z-index:50;opacity:0;
  outline:1.5px solid var(--ueblue);box-shadow:0 8px 20px rgba(0,0,0,.5);
  transition:transform 1.15s cubic-bezier(.5,.05,.35,1),opacity .25s}
.ue-ghost img{width:100%;height:100%;object-fit:cover}
.ue-right{width:300px;flex-shrink:0;background:var(--uepanel);border-left:1px solid var(--ueborder);display:flex;flex-direction:column;font-size:12px}
.ue-ph{padding:6px 10px;font-size:11.5px;background:var(--uehead);color:#e0e0e0}
.ue-osearch{margin:6px 8px;background:#0d0d0d;border:1px solid #333;border-radius:3px;padding:4px 8px;font-size:11px;color:#6e6e6e;display:flex;gap:6px;align-items:center}
.ue-ocols{display:flex;padding:2px 10px;font-size:10.5px;color:var(--uedim);border-bottom:1px solid #2c2c2c}
.ue-ocols .c2{margin-left:auto}
.ue-outl{overflow:hidden;padding:2px 0}
.ue-row{display:flex;align-items:center;gap:6px;padding:2.5px 8px;font-size:11.5px;color:#d6d6d6}
.ue-row:nth-child(odd){background:#202020}
.ue-row .eye{width:13px;height:13px;color:#8f8f8f;flex-shrink:0}
.ue-row .ic{width:12px;height:12px;flex-shrink:0;opacity:.85}
.ue-row .typ{margin-left:auto;color:#8f8f8f;font-size:10.5px}
.ue-row.newrow{opacity:0;transition:opacity .3s,background .3s}
.ue-row.newrow.on{opacity:1;background:var(--uesel)!important;color:#fff}
.ue-row.newrow.on .typ{color:#cfe3f7}
.ue-ofoot{padding:4px 10px;font-size:10.5px;color:var(--uedim);border-top:1px solid #2c2c2c}
.ue-dhead{padding:6px 10px;background:var(--uehead);font-size:11.5px;color:#e0e0e0;display:flex;gap:8px;align-items:center}
.ue-dhead .addbtn{background:#2f7d3d;color:#fff;font-size:10.5px;padding:2px 9px;border-radius:3px;font-weight:500;transition:opacity .3s}
.ue-comp{margin:7px 8px;background:#171717;border:1px solid #2c2c2c;border-radius:3px;padding:5px 8px;font-size:11px;transition:opacity .3s}
.ue-comp .cr{display:flex;align-items:center;gap:6px;padding:2px 0;color:#d6d6d6}
.ue-comp .cr.sub{padding-left:16px;color:#b9b9b9}
.ue-comp .cr .ic{width:11px;height:11px}
.ue-sect{padding:5px 10px 2px;font-size:10.5px;letter-spacing:.02em;color:#bdbdbd;display:flex;gap:6px;align-items:center;transition:opacity .3s}
.ue-sect .tri{font-size:8px;color:#8f8f8f}
.ue-drow{display:flex;align-items:center;gap:6px;padding:2.5px 10px 2.5px 22px;font-size:11px;color:#bdbdbd}
.ue-drow b{font-weight:400;width:56px;color:#bdbdbd}
.ue-axis{font-family:var(--uefont);font-size:10.5px;padding:2px 0 2px 7px;border-radius:2px;background:#0d0d0d;
  border:1px solid #2e2e2e;border-left:3px solid;width:58px;color:#e0e0e0}
.ue-axis.x{border-left-color:#a33} .ue-axis.y{border-left-color:#3a3} .ue-axis.z{border-left-color:#36c}
.ue-smrow{display:flex;align-items:center;gap:8px;margin:4px 10px 8px 22px;background:#0d0d0d;
  border:1px solid #2e2e2e;border-radius:3px;padding:5px;transition:opacity .3s}
.ue-smrow img{width:40px;height:40px;border-radius:2px;object-fit:cover}
.ue-smrow .smn{font-size:11px;color:#e0e0e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.ue-smrow .smt{font-size:10px;color:#8f8f8f}
.ue-status{height:28px;background:var(--uehead);display:flex;align-items:center;gap:2px;padding:0 8px;
  font-size:11.5px;color:#c3c3c3}
.ue-status .sbtn{display:flex;align-items:center;gap:6px;padding:4px 9px;border-radius:3px}
.ue-status .sbtn svg{width:13px;height:13px}
.ue-status .kbd{font-size:9.5px;color:#7d7d7d}
.ue-status .right{margin-left:auto;display:flex;gap:2px;align-items:center}
.ue-status .rcdot{width:8px;height:8px;border-radius:50%;background:#b34;margin-right:5px}
.ue-toast{position:absolute;right:312px;bottom:42px;background:#101010;border:1px solid #333;
  border-radius:4px;padding:10px 14px;font-size:11.5px;color:#e0e0e0;min-width:250px;opacity:0;
  transform:translateY(8px);transition:opacity .3s,transform .3s;z-index:20;box-shadow:0 10px 26px rgba(0,0,0,.5)}
.ue-toast .tline{font-size:11px;color:#9a9a9a;display:none;margin-top:3px}
.ue-toast .tline.ok{color:#57c46a}
.ue-toast .bar{height:3px;background:#232323;border-radius:2px;margin-top:7px;overflow:hidden}
.ue-toast .bar i{display:block;height:100%;width:0;background:var(--ueblue);transition:width .8s ease-out}

/* ═════════ 2-5 · app sims ═════════ */
#mlt .stage,#img .stage,#dup .stage{height:620px}
#cat .stage{height:624px}
.b-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative;align-content:start}
.b-grid3 .entry-name{font-size:13.5px}
.b-grid3 .entry-meta{font-size:11.5px}
.likechip{position:absolute;left:50%;bottom:52px;transform:translateX(-50%);background:rgba(14,14,16,.94);
  border:1px solid var(--aborder);color:var(--aaccent);font-size:12.5px;padding:3.5px 9px;border-radius:2px;
  opacity:0;transition:opacity .25s,border-color .2s;white-space:nowrap;z-index:5}
.b-banner{display:flex;align-items:center;gap:10px;margin-bottom:12px;min-height:30px}
.b-banner .fade{opacity:0;transition:opacity .35s;display:flex;align-items:center;gap:10px;white-space:nowrap}
.b-banner .seedthumb{width:30px;height:30px;border-radius:2px;object-fit:cover;background:var(--araised)}
.trichip{font-family:var(--mono);font-size:11.5px;color:var(--adim);border:1px solid var(--aborder);
  padding:2px 8px;border-radius:2px;opacity:0;transition:opacity .3s,color .3s,border-color .3s}
.trichip.on{color:var(--aaccent);border-color:rgba(21,155,201,.5)}
.entry-card.filtered{opacity:.16;transform:scale(.98)}
.entry-card.seedmark{border-color:var(--aaccent)}
.overlay-abs{position:absolute;inset:0;opacity:0;transition:opacity .4s}
.overlay-abs .b-grid3{position:static}

.img-file{position:absolute;left:24px;bottom:26px;z-index:30;transition:transform 1.15s cubic-bezier(.5,.05,.35,1),opacity .3s}
.img-file .fimg{width:84px;height:84px;border-radius:3px;object-fit:cover;outline:1px solid var(--aborder);
  box-shadow:0 10px 26px rgba(0,0,0,.55);display:block}
.img-file .fname{font-family:var(--mono);font-size:10.5px;color:var(--adim);text-align:center;margin-top:5px}
.image-search-banner{display:flex;align-items:center;gap:12px;margin-bottom:12px;opacity:0;transition:opacity .35s;min-height:56px}
.image-search-preview{width:56px;height:56px;object-fit:cover;border-radius:2px;background:var(--araised)}

/* auto-categorization: absolute rows that regroup */
#catWrap{position:relative;height:100%}
.cat-hdr{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.cat-hdr .t{font-size:15px;font-weight:600}
.cat-hdr .c{font-family:var(--mono);font-size:11.5px;color:var(--adim)}
.cat-hdr .c b{color:var(--aaccent);font-weight:500}
.cat-row{position:absolute;left:20px;right:20px;height:56px;display:flex;align-items:center;gap:12px;
  background:var(--abg);border:1px solid var(--aborder);border-radius:2px;padding:0 12px;
  transition:top .7s cubic-bezier(.4,.05,.3,1)}
.cat-row img{width:38px;height:38px;border-radius:2px;object-fit:cover;background:var(--araised)}
.cat-row .n{font-weight:600;font-size:14px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-none{font-family:var(--mono);font-size:11.5px;color:var(--afaint);transition:opacity .3s}
.cat-chip{font-family:var(--mono);font-size:11.5px;color:var(--aaccent);border:1px solid rgba(21,155,201,.5);
  padding:2px 9px;border-radius:2px;opacity:0;transform:translateX(6px);transition:opacity .3s,transform .3s;position:absolute;right:12px}
.cat-row .slot{position:relative;width:170px;height:22px;display:flex;align-items:center;justify-content:flex-end}
.cat-glabel{position:absolute;left:20px;font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;color:var(--adim);opacity:0;transition:opacity .4s}

/* duplicates: absolute cards that pair up */
#dupWrap{position:relative;height:100%}
.dup-card{position:absolute;width:166px;transition:left .75s cubic-bezier(.4,.05,.3,1),top .75s cubic-bezier(.4,.05,.3,1),opacity .45s}
.dupflag{position:absolute;inset:-1px;border:1.5px solid transparent;border-radius:2px;transition:border-color .3s;pointer-events:none;z-index:2}
.dupchip{position:absolute;top:6px;right:6px;font-family:var(--mono);font-size:10px;color:#d5a021;
  border:1px solid rgba(213,160,33,.55);background:rgba(14,14,16,.88);padding:1px 6px;border-radius:2px;opacity:0;transition:opacity .3s;z-index:3}
.dup-pairnote{position:absolute;font-family:var(--mono);font-size:11px;color:var(--adim);line-height:1.7;
  opacity:0;transition:opacity .4s}
.dup-pairnote b{color:#d5a021;font-weight:500}
.dup-note{position:absolute;left:20px;right:20px;bottom:18px;font-size:14px;color:var(--adim);opacity:0;transition:opacity .35s}
.dup-note b{color:#d5a021;font-weight:500}
.scanline{position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent,rgba(21,155,201,.75),transparent);opacity:0;z-index:6}

/* ═════════ 6 · MCP — agent terminal over Unreal ═════════ */
#mcp .stage{height:660px;background:var(--uebg);color:var(--uetext);font-family:var(--uefont);font-size:12px}
#mcp .ue-body{height:502px}
.am-vp{flex:1;position:relative;overflow:hidden;
  background:linear-gradient(180deg,#5c7ea6 0%,#7695b8 22%,#a7bcd2 40%,#d3dde7 49%,#e9edf1 52.5%,
  #9599a0 53%,#84888e 60%,#6b6f75 74%,#575a5f 100%)}
.am-prop{position:absolute;opacity:0;z-index:4;transform:scale(.4)}
.am-prop img{width:100%;display:block;filter:drop-shadow(0 14px 12px rgba(30,34,40,.35))}
.am-prop .shadow{position:absolute;left:8%;right:8%;bottom:2%;height:13%;border-radius:50%;
  background:radial-gradient(ellipse at 50% 50%, rgba(20,22,25,.5), transparent 70%);z-index:-1}
.am-prop .sel{position:absolute;inset:4% 13% 6% 13%;border:1px dashed rgba(90,170,255,.95);opacity:0}
#amDrum{left:72%;top:50%;width:100px;margin:-50px 0 0 -50px}
#amCrate{left:87%;top:63%;width:145px;margin:-80px 0 0 -72px}
.am-term{position:absolute;left:22px;bottom:16px;width:490px;border-radius:9px;overflow:hidden;
  display:flex;flex-direction:column;z-index:30;
  box-shadow:0 24px 70px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.28)}
.am-term .mac-titlebar{height:34px}
.am-term .term-canvas{padding:12px 14px;font-size:11.5px;line-height:1.72;height:322px}
.mac-titlebar{background:#ececec;display:flex;align-items:center;padding:0 12px;
  border-bottom:1px solid #d0d0d0;position:relative;flex-shrink:0}
.mac-lights{display:flex;gap:8px;align-items:center}
.mac-lights span{width:12px;height:12px;border-radius:50%;display:inline-block}
.mac-lights .c1{background:#ff5f57;border:1px solid #e0443e}
.mac-lights .c2{background:#ffbd2e;border:1px solid #dfa123}
.mac-lights .c3{background:#28c840;border:1px solid #1aab29}
.mac-title{position:absolute;left:50%;transform:translateX(-50%);font-size:12.5px;color:#333;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',sans-serif;font-weight:500;letter-spacing:-.1px}
.term-canvas{background:#fff;overflow:hidden;
  font-family:'SF Mono',Menlo,Monaco,Consolas,'IBM Plex Mono',monospace;color:#000}
.t-line{white-space:pre-wrap;opacity:0}
.t-login{color:#8a8a8a}
.t-prompt{font-weight:700}
.t-tool{color:#333}
.t-tool .dot{color:#c25f30}
.t-tool .fn{color:#0a58a8}
.t-out{color:#6e6e6e;padding-left:18px}
.t-ok{color:#1a7f37;padding-left:18px}
.t-cursor{display:inline-block;width:7px;height:14px;background:#000;vertical-align:text-bottom;margin-left:1px}


@media (prefers-reduced-motion:reduce){
  html:not(.force-motion) .cursor,html:not(.force-motion) .ue-ghost,html:not(.force-motion) .img-file{transition:none!important}
}
#motionNote{display:none;align-items:center;gap:14px;margin-top:18px;padding:.7rem 1rem;
  border:1px solid var(--hair);border-radius:2px;color:var(--muted);font-size:.9rem}
#motionNote button{font-family:var(--mono);font-size:.75rem;color:var(--paper);background:var(--ink);
  border:0;border-radius:2px;padding:.45rem .9rem;cursor:pointer;white-space:nowrap}
html.reduced #motionNote{display:flex}
