/* Templates wall, Style Lab, Log. Prefixes tw-, lb-, lg-. */
.pg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.pg-head p.sub{color:var(--muted);max-width:620px;margin-top:10px}

/* templates wall */
.tw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:22px 16px}
.tw{position:relative;text-align:left;animation:rise .5s var(--ease) backwards;min-width:0}
.tw-frame{position:relative;aspect-ratio:9/16;border-radius:12px;overflow:hidden;background:#15151c;box-shadow:0 0 0 1px var(--hair2),0 24px 44px -24px #000;
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s var(--ease),box-shadow .3s}
.tw:hover .tw-frame{box-shadow:0 0 0 1px var(--hair3),0 34px 60px -24px #000}
.tw-wrap{perspective:900px}
.tw-frame img{width:100%;height:100%;object-fit:cover}
.tw-frame .tag{position:absolute;top:8px;left:8px;background:rgba(8,8,11,.75)}
.tw-frame .lockd{position:absolute;top:8px;right:8px;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:rgba(8,8,11,.75);color:var(--y)}
.tw b{display:block;margin-top:9px;font:700 15px/1.2 var(--display);font-stretch:88%;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tw small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.swatches{display:flex;gap:5px;margin-top:7px}
.swatches i{width:16px;height:16px;border-radius:5px;box-shadow:0 0 0 1px var(--hair3)}
.tw-detail{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:start}
.tw-detail .tw-frame{transform:none}
.tw-facts{display:grid;gap:12px}
.tw-facts .fact{padding:11px 13px;border-radius:12px;background:rgba(255,255,255,.035);box-shadow:0 0 0 1px var(--hair)}
.tw-facts .fact span{display:block;font:500 10px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.tw-try{margin-top:18px;padding:14px;border-radius:15px;background:rgba(255,255,255,.03);box-shadow:0 0 0 1px var(--hair)}
.tw-try .out{margin-top:12px;display:grid;place-items:center;min-height:120px}
.tw-try .out img{width:min(240px,100%);border-radius:10px;box-shadow:0 0 0 1px var(--hair2),0 30px 60px -30px #000}

/* style lab */
.lb{display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:22px;align-items:start}
.lb-form{padding:20px;display:grid;gap:14px}
.lb-drops{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lb-drops .drop{aspect-ratio:9/13;min-height:0}
.lb-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.lb-jobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.lb-job{padding:10px;border-radius:16px;background:rgba(255,255,255,.03);box-shadow:0 0 0 1px var(--hair)}
.lb-job .f{position:relative;aspect-ratio:9/16;border-radius:10px;overflow:hidden;background:#15151c}
.lb-job .f img{width:100%;height:100%;object-fit:cover}
.lb-job .f .cv-veil{display:flex}
.lb-job b{display:block;margin-top:9px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-job small{display:block;color:var(--muted);font-size:12px;min-height:34px}
.lb-job .btn{margin-top:8px;width:100%}
.lb-locks{margin-top:26px}
.lock-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:13px;background:rgba(255,255,255,.03);box-shadow:0 0 0 1px var(--hair);margin-top:8px}
.lock-row .grow{flex:1;min-width:0}
.lock-row b{font-weight:600}.lock-row small{display:block;color:var(--muted);font-size:12px}

/* log + settings */
.lg{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}
.lg-list{padding:8px}
.lg-row{display:grid;grid-template-columns:74px 110px 1fr;gap:12px;padding:10px 12px;border-radius:10px;font-size:13px}
.lg-row:nth-child(odd){background:rgba(255,255,255,.025)}
.lg-row time{font:400 11.500px/1.6 var(--mono);color:var(--muted)}
.lg-row b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-row span{color:var(--soft);overflow-wrap:anywhere}
.lg-side{display:grid;gap:14px}
.lg-card{padding:16px}
.lg-card h4{margin:0 0 12px;font:500 10.500px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:13px;box-shadow:0 1px 0 var(--hair)}
.kv:last-child{box-shadow:none}
.kv span{color:var(--muted)}.kv b{font-weight:600;text-align:right;overflow-wrap:anywhere}
.kv b.ok{color:var(--good)}.kv b.no{color:var(--bad)}.kv b.wn{color:var(--y)}
.stepper{display:inline-flex;align-items:center;gap:4px}
.stepper button{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.06);box-shadow:0 0 0 1px var(--hair)}
.stepper output{min-width:34px;text-align:center;font:500 14px/1 var(--mono)}
@media (max-width:980px){
  .lb,.lg{grid-template-columns:1fr}
  .tw-detail{grid-template-columns:120px 1fr}
  .tw-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px}
  .lg-row{grid-template-columns:64px 1fr}.lg-row span{grid-column:1/-1}
}

/* v2 look */
.tw-frame,.lb-job .f{border-radius:16px}
.tw b{font:600 14.500px/1.25 var(--sans);letter-spacing:-.01em;margin-top:11px}
.tw:hover .tw-frame{box-shadow:0 0 0 1px var(--hair3),0 40px 70px -28px #000,0 0 60px -30px var(--acc)}
.tw-frame .tag,.tw-frame .lockd{background:rgba(6,9,8,.7);backdrop-filter:blur(8px)}
.tw-frame .lockd{border-radius:50%;color:var(--warn)}
.swatches i{border-radius:50%}
.tw-facts .fact,.tw-try,.lock-row,.lb-job{border-radius:18px}
.tw-facts .fact span{font:400 8.500px/1.3 var(--mono);letter-spacing:.18em}
.lg-card h4{font:400 8.500px/1 var(--mono);letter-spacing:.2em}
.lg-row time{font:400 9.500px/1.9 var(--mono)}
.kv b.wn{color:var(--warn)}
.stepper button{border-radius:50%}.stepper output{font:400 12px/1 var(--mono)}

/* Style Lab with Claude (30 Oct 2026) */
.lb-proof{width:min(1180px,100vw)}
.lb-img{display:block;width:100%;border-radius:14px;box-shadow:0 0 0 1px var(--hair)}
.lb-note{margin-top:18px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.04);box-shadow:0 0 0 1px var(--hair)}
.lb-note p{margin-top:6px;color:var(--muted);line-height:1.5}
.lb-try{margin-top:18px;display:grid;gap:10px}
.lb-job .btn+.btn{margin-top:6px}
