/* Amaete Remodel: one accent (warm clay), dark, phone first. Tokens follow Amaete Prebuild. */
:root{
  --bg:#0a0c0f; --bg2:#0e1116; --s1:#12161c; --s2:#171c23; --s3:#1d232b;
  --line:#242a33; --line2:#323a45;
  --ink:#f4f2ec; --ink2:#c3c8d0; --ink3:#8d939d;
  --acc:#ff8c5a; --acc2:#ffa77f; --acc-ink:#1a0d05; --ok:#4fbf7a; --bad:#ff6b6b;
  --r:18px; --ease:cubic-bezier(.16,1,.3,1);
  --display:"Inter Tight","Inter",system-ui,-apple-system,sans-serif; --text:"Inter",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--text);-webkit-font-smoothing:antialiased;min-height:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:8px}
[hidden]{display:none!important}
.muted{color:var(--ink3)} .small{font-size:14px} .acc{color:var(--acc)}

/* moving blueprint background (never a plain black page) */
.bg{position:fixed;inset:-80px;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(110,168,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(110,168,255,.07) 1px,transparent 1px),
    linear-gradient(rgba(110,168,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(110,168,255,.035) 1px,transparent 1px);
  background-size:80px 80px,80px 80px,16px 16px,16px 16px;animation:drift 40s linear infinite;
  mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%)}
.bg::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 400px at 70% 20%,rgba(255,140,90,.12),transparent 70%),radial-gradient(500px 400px at 20% 70%,rgba(110,168,255,.08),transparent 70%);animation:glow 14s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(80px,80px)}}
@keyframes glow{to{transform:translate(-60px,40px)}}
@media (prefers-reduced-motion:reduce){.bg,.bg::after{animation:none}}

.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 12px) 20px 12px;background:rgba(10,12,15,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:10px;font:500 18px/1 var(--display);letter-spacing:-.02em}
.logo svg{width:30px;height:30px}
.logo b{font-weight:750}
.pill{font:600 12px/1 var(--text);color:var(--acc);padding:7px 11px;border:1px solid rgba(255,140,90,.35);border-radius:99px;background:rgba(255,140,90,.08)}
body[data-screen="capture"] .top{display:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 24px;border-radius:14px;font:600 16px/1 var(--text);white-space:nowrap;transition:transform .2s var(--ease),background-color .2s,border-color .2s}
.btn svg{width:20px;height:20px}
.btn:active{transform:scale(.97)}
.btn-a{background:var(--acc);color:var(--acc-ink);box-shadow:0 10px 30px -10px rgba(255,140,90,.7)}
.btn-a:hover{background:var(--acc2)}
.btn-g{border:1px solid var(--line2);background:rgba(255,255,255,.04)}
.btn-g:hover{border-color:#4a5462;background:rgba(255,255,255,.08)}
.btn-sm{height:42px;padding:0 16px;font-size:15px;border-radius:12px}

/* home */
#home{max-width:1100px;margin:0 auto;padding:clamp(28px,7vw,90px) 20px 60px}
.hero h1{font:700 clamp(40px,8vw,84px)/1.0 var(--display);letter-spacing:-.045em}
.lead{margin-top:20px;font-size:clamp(17px,2vw,20px);color:var(--ink2);max-width:640px}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.cta .btn{flex:1 1 220px;max-width:280px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:40px}
.steps li{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:rgba(18,22,28,.7)}
.steps b{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,140,90,.14);color:var(--acc);font-weight:700}
.steps span{color:var(--ink2);font-size:15px}
.demos-sec{margin-top:56px}
.demos-sec h2{font:650 24px/1.2 var(--display);letter-spacing:-.02em;margin-bottom:16px}
.demos{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.demo{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);aspect-ratio:2/1;background:var(--s1);transition:transform .25s var(--ease),border-color .25s}
.demo:hover{transform:translateY(-3px);border-color:var(--acc)}
.demo img{width:100%;height:100%;object-fit:cover}
.demo span{position:absolute;left:10px;bottom:10px;padding:6px 10px;border-radius:10px;background:rgba(10,12,15,.75);font-weight:600;font-size:14px}
.fine{margin-top:12px;font-size:13px;color:var(--ink3)}

/* capture */
.cap{position:fixed;inset:0;background:#000;z-index:30}
.cap video,.cap .ov{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cap-x{position:absolute;top:calc(env(safe-area-inset-top) + 14px);left:14px;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.5);font-size:18px}
.cap-count{position:absolute;top:calc(env(safe-area-inset-top) + 22px);right:16px;padding:7px 12px;border-radius:99px;background:rgba(0,0,0,.55);font-weight:700}
.cap-hint{position:absolute;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 96px);text-align:center;font-weight:600;text-shadow:0 1px 8px #000;padding:10px 14px;border-radius:14px;background:rgba(0,0,0,.45)}
.cap-done{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 24px)}

/* working */
.work{min-height:calc(100vh - 70px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}
.spin{width:54px;height:54px;border-radius:50%;border:4px solid var(--line2);border-top-color:var(--acc);animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.bar{width:min(320px,80vw);height:6px;border-radius:9px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;background:var(--acc);transition:width .2s}

/* result */
.result{padding:16px 16px 24px;max-width:1500px;margin:0 auto}
.r-head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between;margin-bottom:14px}
.r-head h1{font:700 clamp(26px,4vw,40px)/1.05 var(--display);letter-spacing:-.03em}
.stats{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;color:var(--ink2);font-size:15px}
.stats b{color:var(--ink)}
.r-actions{display:flex;gap:8px}
.tabs{display:none}
.r-grid{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:minmax(420px,62vh) auto;gap:12px}
.panel{position:relative;border:1px solid var(--line);border-radius:var(--r);background:rgba(18,22,28,.82);overflow:hidden}
.p3d{grid-row:1}
.pplan{grid-row:1}
.pcheck{grid-column:1/3;padding:18px 20px;display:grid;grid-template-columns:1fr 1.2fr;gap:12px 40px;align-content:start}
#view3d{position:absolute;inset:0}
#view3d canvas{display:block;width:100%;height:100%;touch-action:none}
#plan{display:block;width:100%;height:100%;touch-action:none}
.cap-l{position:absolute;left:12px;bottom:10px;font-size:12px;color:var(--ink3);pointer-events:none}
.pcheck h3{font:650 15px/1.2 var(--display);margin:8px 0 6px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.chips button{padding:9px 14px;border-radius:99px;border:1px solid var(--line2);font-size:14px;font-weight:600;color:var(--ink2)}
.chips button.on{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
#checks table{width:100%;border-collapse:collapse;font-size:14px}
#checks th,#checks td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
#checks th{color:var(--ink3);font-weight:600}
.ok{color:var(--ok)} .bad{color:var(--bad)}
.verdict{margin-top:8px;font-weight:600;font-size:14px}

dialog{margin:auto;width:min(420px,92vw);border:1px solid var(--line2);border-radius:20px;background:var(--s2);color:var(--ink);padding:22px}
dialog::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(4px)}
dialog h3{font:650 20px/1.2 var(--display);margin-bottom:6px}
dialog input{width:100%;margin:14px 0;height:52px;border-radius:12px;border:1px solid var(--line2);background:var(--bg2);color:var(--ink);font:600 20px/1 var(--text);padding:0 14px}
.dlg-b{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}

/* phones: one view at a time */
@media (max-width:820px),(max-height:500px){
  .result{padding:12px 12px 20px}
  .r-head{align-items:flex-start}
  .r-actions{width:100%}
  .r-actions .btn{flex:1}
  .tabs{display:flex;gap:6px;margin-bottom:10px;padding:4px;border-radius:14px;background:var(--s1);border:1px solid var(--line)}
  .tabs button{flex:1;padding:10px 6px;border-radius:10px;font-weight:600;font-size:14px;color:var(--ink3)}
  .tabs button.on{background:var(--s3);color:var(--ink)}
  .r-grid{display:block}
  .panel{display:none;height:calc(100svh - 260px);min-height:360px}
  body[data-tab="3d"] .p3d,body[data-tab="plan"] .pplan{display:block}
  body[data-tab="check"] .pcheck{display:block;height:auto;min-height:0}
  .pcheck .blk + .blk{margin-top:14px}
}
@media (max-height:500px) and (orientation:landscape){
  .result{display:grid;grid-template-columns:240px 1fr;gap:0 14px;align-items:start}
  .r-head{grid-column:1;flex-direction:column;align-items:stretch;margin:0}
  .r-head h1{font-size:24px}
  .r-actions{flex-direction:column;gap:6px;margin-top:8px}
  .r-actions .btn{flex:none;height:38px}
  .tabs{grid-column:1;flex-direction:column;margin-top:8px}
  .tabs button{padding:7px 6px}
  .top{padding-top:calc(env(safe-area-inset-top) + 6px);padding-bottom:6px}
  .r-grid{grid-column:2;grid-row:1/4}
  .panel{height:calc(100svh - 80px);min-height:220px}
  body[data-tab="check"] .pcheck{height:calc(100svh - 80px);overflow:auto}
  .hero h1{font-size:44px}
}
