/* Home, unlock, library and upload progress. */
.home{max-width:640px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) calc(32px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px))}
.top{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-bottom:12px}
.top .logo{font-size:22px}
.link.quiet{color:var(--mu);font-weight:600}
.link.center{display:block;margin:14px auto 0}
.view{display:flex;flex-direction:column}
.narrow{max-width:440px;width:100%;margin:0 auto}
.hero{font:900 clamp(38px,9vw,56px)/.98 var(--display);letter-spacing:-.04em;margin:28px 0 16px;text-wrap:balance}
.hero i{font-style:normal;color:var(--brass)}
.h1{font:900 26px/1.1 var(--display);letter-spacing:-.03em;margin:18px 0 10px;text-wrap:balance}
.lead{color:var(--mu);font-size:15.5px;line-height:1.5;margin:0 0 16px;max-width:52ch}
.lead.small{font-size:14px}
.demo{margin:6px 0 20px}
.feat{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:10px}
.feat li{display:flex;gap:12px;font-size:15px;align-items:baseline}
.feat li span{font:650 12px var(--mono);color:var(--brass);min-width:34px}
.foot{font-size:13px;color:var(--mu);text-align:center;margin:12px 0 0}
.human-check{min-height:65px;margin:14px 0}
.help.err{color:var(--red);margin-top:8px}

.lib-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 6px}
.lib-h .h1{margin:0}
.lib-h .btn{cursor:pointer}
.cards{display:flex;flex-direction:column;margin:6px -8px 12px}
.empty{color:var(--mu);font-size:14.5px;padding:18px 8px}
.card{display:flex;align-items:center;gap:13px;padding:9px 8px;border-radius:14px}
.card:hover{background:var(--s1)}
.card .open{display:flex;align-items:center;gap:13px;flex:1;min-width:0;border:0;background:none;padding:0;text-align:left;color:var(--tx)}
.thumb{width:58px;height:76px;border-radius:10px;flex:none;position:relative;overflow:hidden;background:linear-gradient(180deg,#2c241e,#141110 60%,#36291f 60.5%,#1d1611)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb em{position:absolute;right:4px;bottom:4px;font:650 10px var(--mono);font-style:normal;background:rgba(0,0,0,.65);color:var(--tx);padding:1px 5px;border-radius:5px}
.card .t{flex:1;min-width:0}
.card b{display:block;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card small{display:block;color:var(--mu);font-size:13px;margin-top:2px}
.st{display:inline-block;font:650 10.5px var(--mono);letter-spacing:.04em;padding:3px 7px;border-radius:6px;margin-top:5px;text-transform:uppercase}
.st.work{background:var(--brass-dim);color:var(--warm)}
.st.paused{background:var(--s2);color:var(--tx)}
.st.fail{background:rgba(240,154,133,.14);color:var(--red)}
.drop{position:relative;display:block;margin-top:auto;border:1.5px dashed var(--line);border-radius:16px;padding:18px;text-align:center;cursor:pointer}
.drop b{display:block;font-size:15px}
.drop small{color:var(--mu);font-size:12.5px}
.drop:hover,.drop.dragging{border-color:var(--brass)}

.prog-head{display:flex;flex-direction:column;padding:14px 16px;border-radius:14px;background:var(--s1);margin-top:8px}
.prog-head b{font-size:15px;overflow-wrap:anywhere}
.prog-head small{color:var(--mu);font-size:13px;margin-top:2px}
.stepper{list-style:none;margin:8px 0 16px;padding:0}
.stepper li{display:flex;gap:13px;align-items:flex-start;padding:10px 0;font-size:15px;color:var(--mu)}
.stepper li i{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);margin-top:0;display:grid;place-items:center;font-style:normal;font-size:12px}
.stepper li small{display:block;color:var(--mu);font-size:13px;font-weight:400}
.stepper li small:empty{display:none}
.stepper li.done{color:var(--tx)}
.stepper li.done i{background:var(--tx);border-color:var(--tx);color:var(--bg)}
.stepper li.done i::after{content:"✓"}
.stepper li.now{color:var(--tx);font-weight:650}
.stepper li.now i{border-color:var(--brass);box-shadow:inset 0 0 0 4px var(--bg),inset 0 0 0 11px var(--brass)}
.stepper li.failed i{border-color:var(--red)}
#resume{cursor:pointer}
