[hidden]{display:none!important}
:root{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --bg:#f6f1e9;--surface:#fffbf5;--surface-2:#efe7da;--ink:#2a2420;--muted:#6f655c;--line:#e2d8c9;
  --accent:#c2562d;--accent-ink:#fff;--accent-soft:#f3dccf;--sage:#5e7a5a;--sage-soft:#dfe7d9;
  --radius:18px;--shadow:0 1px 2px rgba(60,40,20,.06),0 8px 28px rgba(60,40,20,.07);
  --display:'Chillax',system-ui,sans-serif;--body:'Satoshi',system-ui,sans-serif;
}
[data-theme=dark]{
  --bg:#1a1714;--surface:#24201c;--surface-2:#2e2924;--ink:#f1ebe3;--muted:#a99e92;--line:#3a332d;
  --accent:#e2774c;--accent-ink:#1a1714;--accent-soft:#4a2d20;--sage:#9bb895;--sage-soft:#2c3529;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 28px rgba(0,0,0,.3);
}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--body);font-size:var(--text-base);line-height:1.55;background:var(--bg);color:var(--ink);min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
img{max-width:100%;display:block}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}
.muted{color:var(--muted)}
.eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:8px}

.top{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:1rem;height:64px}
.brand{font-family:var(--display);font-weight:600;font-size:var(--text-lg);color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.brand span{color:var(--accent)}
.tabs{display:flex;gap:.25rem;margin-left:auto;background:var(--surface-2);padding:4px;border-radius:999px}
.tab{font-size:var(--text-sm);font-weight:500;padding:.4rem .9rem;border-radius:999px;color:var(--muted);transition:background .2s,color .2s}
.tab.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.icon-btn:hover{background:var(--surface-2);color:var(--ink)}

.intro{padding:2.5rem 0 1.75rem;max-width:640px}
.intro h1{font-family:var(--display);font-weight:600;font-size:var(--text-xl);line-height:1.1;letter-spacing:-.02em;margin-bottom:.6rem}
.intro p{color:var(--muted)}
.intro strong{color:var(--ink)}

.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:1.5rem;align-items:start}
@media (max-width:860px){.grid{grid-template-columns:1fr}}

.stage{display:flex;flex-direction:column;gap:.9rem}
.drop{position:relative;aspect-ratio:4/3.4;border-radius:var(--radius);border:2px dashed var(--line);background:var(--surface);display:grid;place-items:center;overflow:hidden;cursor:pointer;transition:border-color .2s,background .2s}
.drop:hover,.drop.is-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 40%,var(--surface))}
.drop.has-img{border-style:solid;border-color:var(--line);cursor:default}
.drop-empty{text-align:center;padding:1.5rem;color:var(--accent)}
.drop-empty svg{margin:0 auto .75rem;opacity:.9}
.drop-title{font-family:var(--display);font-weight:500;font-size:var(--text-lg);color:var(--ink)}
.drop-empty .muted{font-size:var(--text-sm)}
#preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scan{position:absolute;inset:0;background:linear-gradient(transparent,rgba(194,86,45,.08));pointer-events:none}
.scan span{position:absolute;left:0;right:0;height:3px;background:var(--accent);box-shadow:0 0 18px 4px rgba(226,119,76,.6);animation:scan 1.6s ease-in-out infinite alternate}
@keyframes scan{from{top:4%}to{top:96%}}
@media (prefers-reduced-motion:reduce){.scan span{animation:none;top:50%}}

.actions{display:flex;gap:.6rem;flex-wrap:wrap}
.btn{font-size:var(--text-sm);font-weight:700;padding:.75rem 1.2rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);transition:transform .15s,background .2s}
.btn:hover{background:var(--surface-2)}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}
.model{font-size:var(--text-xs);color:var(--muted)}
.model-row{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem}
.bar{height:6px;border-radius:9px;background:var(--surface-2);overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--sage);border-radius:9px;transition:width .3s}
.model.ready .bar{display:none}
.tips{font-size:var(--text-xs)}

.results{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;min-height:320px}
.placeholder .muted{margin:.4rem 0 1.25rem;max-width:42ch}
.ghost{list-style:none;padding:0;display:grid;gap:.7rem}
.ghost li{height:52px;border-radius:12px;background:var(--surface-2)}
.ghost li:nth-child(2){width:82%}.ghost li:nth-child(3){width:64%}
.loading .ghost li{animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.5}}

.verdict{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}
.chip{font-size:var(--text-xs);font-weight:700;padding:.25rem .65rem;border-radius:999px;background:var(--sage-soft);color:var(--sage)}
.chip.warn{background:var(--accent-soft);color:var(--accent)}
.top-name{font-family:var(--display);font-weight:600;font-size:var(--text-xl);line-height:1.1;letter-spacing:-.015em}
.conf{display:flex;align-items:baseline;gap:.5rem;margin:.35rem 0 1rem;color:var(--muted);font-size:var(--text-sm)}
.conf b{font-size:var(--text-lg);color:var(--accent);font-variant-numeric:tabular-nums}
.note{margin-bottom:1.1rem}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1.25rem;padding:1rem 0;border-block:1px solid var(--line);margin-bottom:1rem}
.facts dt{font-size:var(--text-xs);color:var(--muted)}
.facts dd{font-size:var(--text-sm);font-weight:500}
.meter{display:flex;gap:3px;margin-top:3px}
.meter i{width:18px;height:6px;border-radius:3px;background:var(--surface-2)}
.meter i.on{background:var(--accent)}
.alts h3{margin-bottom:.6rem}
.alt{display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;align-items:center;padding:.6rem .75rem;border-radius:12px;width:100%;text-align:left}
.alt:hover{background:var(--surface-2)}
.alt .pct{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--muted)}
.alt .bar{grid-column:1/-1;height:5px}
.alt .bar i{background:var(--accent);opacity:.55}
.alt.is-on{background:var(--accent-soft)}
.disclaim{margin-top:1rem;font-size:var(--text-xs)}
.err h2{font-family:var(--display);font-size:var(--text-lg);margin:.4rem 0}

.history{margin:2.5rem 0 1rem}
.history-row{display:flex;gap:.75rem;overflow-x:auto;padding:.75rem 0}
.hist{flex:0 0 auto;width:120px;text-align:left}
.hist img{width:120px;height:90px;object-fit:cover;border-radius:12px;margin-bottom:.35rem;border:1px solid var(--line)}
.hist span{font-size:var(--text-xs);display:block;line-height:1.3}

.filters{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}
#q{flex:1;min-width:220px;font:inherit;font-size:var(--text-sm);padding:.75rem 1rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.seg{display:flex;background:var(--surface-2);padding:4px;border-radius:999px}
.seg button{font-size:var(--text-sm);font-weight:500;padding:.45rem 1rem;border-radius:999px;color:var(--muted)}
.seg button.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem;padding-bottom:2rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem}
.card h3{font-family:var(--display);font-weight:600;font-size:var(--text-base);margin-bottom:.15rem}
.card .meta{font-size:var(--text-xs);color:var(--muted);margin-bottom:.5rem}
.card p{font-size:var(--text-sm)}
.empty{grid-column:1/-1;text-align:center;padding:3rem 1rem;color:var(--muted)}

.foot{padding:2rem 0 2.5rem;font-size:var(--text-xs);border-top:1px solid var(--line);margin-top:2rem}
.foot p{max-width:70ch}
@media (max-width:520px){.tab{padding:.4rem .65rem}.brand{font-size:var(--text-base)}.facts{grid-template-columns:1fr 1fr}.results{padding:1.15rem}}
.tab{white-space:nowrap}
@media (max-width:520px){.hide-sm{display:none}}
/* ---------- Pro ---------- */
.pro-btn{font-size:var(--text-sm);font-weight:700;padding:.45rem .95rem;border-radius:999px;background:var(--ink);color:var(--bg);white-space:nowrap}
.pro-btn:hover{opacity:.88}
.pro-btn.is-pro{background:var(--sage-soft);color:var(--sage)}
.quota{font-size:var(--text-xs);font-weight:500;color:var(--ink)}
.quota button{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.locked{position:relative;margin-top:.25rem}
.locked .blur{filter:blur(6px);opacity:.55;pointer-events:none;user-select:none}
.lock-cta{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:1rem}
.lock-cta div{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:1rem 1.25rem;max-width:300px}
.lock-cta p{font-size:var(--text-sm);margin:.25rem 0 .75rem}
.pay{margin:auto;border:0;border-radius:22px;padding:0;width:min(560px,calc(100% - 1.5rem));background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.pay::backdrop{background:rgba(30,20,10,.45);backdrop-filter:blur(3px)}
#payBody{padding:1.75rem 1.5rem 1.4rem}
.pay h2{font-family:var(--display);font-weight:600;font-size:var(--text-xl);line-height:1.1;margin:.35rem 0 .9rem}
.pay-close{position:absolute;right:.6rem;top:.5rem}
.pay-close button{font-size:1.6rem;width:40px;height:40px;border-radius:50%;color:var(--muted)}
.pay-close button:hover{background:var(--surface-2)}
.perks{padding-left:1.1rem;margin-bottom:1.25rem;font-size:var(--text-sm);display:grid;gap:.3rem}
.perks li::marker{color:var(--accent)}
.plans[hidden],.perks[hidden],.restore[hidden]{display:none}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.plan{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:1rem .85rem;border-radius:14px;border:1.5px solid var(--line);background:var(--bg);text-align:left;transition:border-color .15s,transform .15s}
.plan:hover{border-color:var(--accent);transform:translateY(-1px)}
.plan.best{border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface))}
.plan[disabled]{opacity:.6;cursor:wait}
.plan-name{font-size:var(--text-xs);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.plan-price{font-family:var(--display);font-weight:600;font-size:var(--text-lg);font-variant-numeric:tabular-nums}
.plan-price small{font-family:var(--body);font-size:var(--text-xs);color:var(--muted);font-weight:500}
.plan-sub{font-size:var(--text-xs);color:var(--muted)}
.badge{position:absolute;top:-.6rem;right:.6rem;font-size:.7rem;font-weight:700;background:var(--accent);color:var(--accent-ink);padding:.15rem .5rem;border-radius:999px}
.pay-status{min-height:1.4em;margin:.8rem 0 .2rem;font-size:var(--text-sm)}
.pay-status a{color:var(--accent);font-weight:700}
.restore{font-size:var(--text-sm);margin-top:.4rem}
.restore summary{cursor:pointer;color:var(--muted)}
.restore-row{display:flex;gap:.5rem;margin-top:.6rem}
.restore-row input{flex:1;min-width:0;font:inherit;font-size:var(--text-sm);padding:.6rem .85rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.fine{font-size:var(--text-xs);margin-top:1rem}
.code-box{display:flex;gap:.5rem;align-items:center;margin:.75rem 0;padding:.6rem .75rem;border-radius:12px;background:var(--surface-2);font-family:ui-monospace,monospace;font-size:.72rem;word-break:break-all}
.code-box button{flex:0 0 auto;font-family:var(--body)}
@media (max-width:520px){.plans{grid-template-columns:1fr}.plan{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.plan-sub{width:100%}.pro-btn{padding:.4rem .7rem}}
@media (max-width:520px){.top-in{gap:.35rem}.wrap{width:min(1120px,100% - 2rem)}.icon-btn{width:34px;height:34px}.tab{padding:.4rem .6rem}.tabs{padding:3px}}
@media (max-width:360px){.brand{font-size:.95rem}.pro-btn{padding:.35rem .55rem;font-size:.8rem}.tab{padding:.35rem .45rem;font-size:.8rem}.icon-btn{width:30px}.top-in{gap:.25rem}}
@media (max-width:340px){.wrap{width:calc(100% - 1.25rem)}.tab{padding:.35rem .4rem}}

/* profile */
.profile-btn{width:100%;margin:.25rem 0 1rem}
.card[data-profile]{cursor:pointer;transition:border-color .2s,transform .2s}
.card[data-profile]:hover{border-color:var(--accent);transform:translateY(-1px)}
.card-more{display:inline-block;margin-top:.6rem;font-size:var(--text-xs);font-weight:700;color:var(--accent)}
.prof{width:min(680px,calc(100% - 1.5rem));max-height:calc(100dvh - 2rem);overflow:auto}
#profBody{padding:1.75rem 1.5rem 1.4rem}
#profBody section{padding:1.1rem 0;border-top:1px solid var(--line)}
#profBody h3.eyebrow{margin-bottom:.65rem}
.prof-head{padding-bottom:1rem}
.prof-head h2{font-family:var(--display);font-weight:600;font-size:var(--text-xl);line-height:1.1;margin:.5rem 0 .35rem;padding-right:2rem}
.prof-head .chips{display:flex;flex-wrap:wrap;gap:.4rem;padding-right:2.5rem}
.chip.rank{background:var(--accent-soft);color:var(--accent)}
.sz{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.sz th,.sz td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--line)}
.sz thead th{font-size:var(--text-xs);color:var(--muted);font-weight:700}
.sz tbody th{font-weight:500;color:var(--muted);width:28%}
.sz td{font-weight:600;font-variant-numeric:tabular-nums}
.life{display:flex;justify-content:space-between;padding:.55rem .5rem 0;font-size:var(--text-sm)}
.life span{color:var(--muted)}
.pnote{font-size:var(--text-sm);margin-bottom:.6rem}
.parents{list-style:none;padding:0;display:grid;gap:.4rem;font-size:var(--text-sm)}
.parents li{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.5rem .7rem;background:var(--surface-2);border-radius:10px}
.parents a,.prof-foot a{color:var(--accent);font-weight:600}
.colors{display:flex;flex-wrap:wrap;gap:.4rem}
.colors span{font-size:var(--text-xs);font-weight:600;padding:.3rem .65rem;border-radius:999px;border:1px solid var(--line);background:var(--surface-2)}
.scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1.25rem}
.scores div{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.scores dt{font-size:var(--text-sm);color:var(--muted)}
.rescues{display:flex;flex-wrap:wrap;gap:.5rem}
.rlink{font-size:var(--text-sm);font-weight:600;text-decoration:none;color:var(--ink);padding:.5rem .85rem;border-radius:999px;border:1px solid var(--line);background:var(--surface)}
.rlink:hover{border-color:var(--accent)}
.rlink.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.picks{list-style:none;padding:0;display:grid;gap:.5rem}
.picks li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .8rem;border:1px solid var(--line);border-radius:12px}
.picks li div{display:flex;flex-direction:column;min-width:0}
.picks b{font-size:var(--text-sm)}
.picks .muted{font-size:var(--text-xs)}
.shop{display:flex;gap:.35rem;flex-shrink:0}
.shop a{font-size:var(--text-xs);font-weight:700;text-decoration:none;padding:.35rem .6rem;border-radius:8px;background:var(--surface-2);color:var(--ink)}
.shop a:hover{background:var(--accent);color:var(--accent-ink)}
.prof-foot{padding-top:1rem;border-top:1px solid var(--line);font-size:var(--text-xs);line-height:1.5}
.picks + .fine{margin-top:.6rem;font-size:var(--text-xs)}
@media (max-width:520px){#profBody{padding:1.4rem 1rem 1.1rem}.scores{grid-template-columns:1fr}.picks li{flex-direction:column;align-items:flex-start}}
.prof{overflow:hidden}.prof #profBody{overflow:auto;max-height:calc(100dvh - 2rem);padding-top:2.25rem}.prof .pay-close{z-index:2}.prof .pay-close button{background:var(--surface)}
.sz .both{font-weight:500;font-size:var(--text-xs);margin-left:.35rem}
