.viewport{position:relative;line-height:0;overflow:hidden;border-radius:.6rem}.viewport video,.viewport img{width:100%;height:auto;display:block;border-radius:.6rem;background:#000}.guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:86%;aspect-ratio:2.5 / 3.5;border:2px solid rgba(255,255,255,.9);border-radius:.4rem;box-shadow:0 0 0 100vmax #00000080;pointer-events:none}.guide span{position:absolute;bottom:4px;left:0;right:0;text-align:center;font:600 .75rem system-ui;color:#ffffffd9;line-height:1}.camera .controls{display:flex;gap:.5rem;margin-top:.5rem;align-items:center}.camera .snap{background:#2563eb;font-size:1.1rem;padding:.7rem 1rem;flex:1;min-height:44px}.camera select{flex:1;min-width:0}@media (max-width: 640px){.camera .controls{flex-wrap:wrap}.camera select,.camera .snap{flex:1 1 100%}}:root{--bg:#0a0e17;--panel:#121826;--panel2:#1a2233;--border:#243049;--text:#eef2f8;--muted:#8ea0bd;--accent:#3b82f6;--grad: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 50%, #ec4899 100%);--gold:#f59e0b}*{box-sizing:border-box}html,body{overflow-x:hidden}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;margin:0;background:var(--bg);color:var(--text)}img{max-width:100%}h1,h2,h3{margin:0}input,select{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:.6rem;padding:.6rem .7rem;font-size:16px;min-height:44px}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #3b82f633}button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:.6rem;padding:.6rem 1rem;cursor:pointer;font-size:16px;min-height:44px;font-weight:600}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}.muted{color:var(--muted)}.err{color:#f87171;margin-top:.5rem}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.brand{font-weight:900;font-size:1.5rem;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem;color:var(--text)}.brand.small{font-size:1.15rem}.brandlink{background:transparent;border:none;padding:0;min-height:0;cursor:pointer}.ball{display:inline-block;width:1.15em;height:1.15em;flex:none;background:url(/favicon.svg) center / contain no-repeat}.tile-back .ball{width:2.4rem;height:2.4rem}.landing{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.hero{position:relative;padding:clamp(2rem,6vw,5rem);display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:radial-gradient(900px 500px at 15% 5%,rgba(139,92,246,.28),transparent 60%),radial-gradient(800px 500px at 95% 95%,rgba(236,72,153,.22),transparent 55%),radial-gradient(700px 400px at 100% 0%,rgba(59,130,246,.22),transparent 55%),var(--bg)}.headline{font-size:clamp(2.1rem,5vw,3.6rem);font-weight:900;line-height:1.03;letter-spacing:-.03em;margin:1rem 0}.lede{color:var(--muted);font-size:clamp(1rem,2vw,1.15rem);max-width:34ch;line-height:1.5}.fan{position:relative;height:200px;margin-top:2.5rem}.fc{position:absolute;left:50%;bottom:0;width:130px;height:182px;border-radius:12px;transform-origin:bottom center;box-shadow:0 16px 40px #0000008c;border:2px solid rgba(255,255,255,.16)}.fc1{background:linear-gradient(160deg,#3b82f6,#1e3a8a);transform:translate(-50%) rotate(-20deg)}.fc2{background:linear-gradient(160deg,#8b5cf6,#5b21b6);transform:translate(-50%) rotate(0);z-index:2}.fc3{background:linear-gradient(160deg,#ec4899,#9d174d);transform:translate(-50%) rotate(20deg)}.authcard{display:flex;flex-direction:column;justify-content:center;gap:.6rem;padding:clamp(2rem,5vw,4rem);background:var(--panel);border-left:1px solid var(--border)}.authcard h3{font-size:1.4rem}.authcard input{width:100%}.cta{width:100%;background:var(--grad);border:none;color:#fff;font-weight:800;font-size:1rem;margin-top:.3rem}.cta:hover{filter:brightness(1.08)}.switch{font-size:.9rem;color:var(--muted)}.switch a{color:var(--accent);cursor:pointer;font-weight:600}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.2rem;background:#0a0e17d1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.ghost{background:transparent;border-color:transparent;color:var(--muted)}.wrap{max-width:1120px;margin:0 auto;padding:1.2rem 1.2rem 4rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:1rem;padding:1.1rem;margin-bottom:1.2rem}.panel-h{font-size:1rem;margin-bottom:.8rem}.meta{margin-top:.9rem;display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;color:var(--muted);font-size:.9rem}.meta label{display:flex;align-items:center;gap:.35rem}.meta input{width:5rem;min-height:40px}.upload{color:var(--accent);cursor:pointer;text-decoration:underline}.toast{background:var(--panel2);padding:.75rem 1rem;border-radius:.7rem;margin-bottom:1.2rem;border-left:3px solid;border-image:var(--grad) 1}.picklist{list-style:none;padding:0;margin:0}.picklist li{display:flex;gap:.6rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--border)}.add{background:linear-gradient(135deg,#10b981,#059669);border:none;color:#fff;min-width:44px}.toolbar{display:flex;gap:.6rem;margin-bottom:1.4rem;flex-wrap:wrap}.search{display:flex;gap:.5rem;flex:1;min-width:220px}.search input{flex:1}.value{background:var(--panel)}.value strong{color:var(--gold);margin-left:.3rem}.collection-head{display:flex;align-items:baseline;gap:.8rem;margin-bottom:1rem}.collection-head h2{font-size:1.4rem;font-weight:900;letter-spacing:-.01em}.count{color:var(--muted);font-weight:600;font-size:.9rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.tile{position:relative;aspect-ratio:2.5 / 3.5;border-radius:14px;overflow:hidden;background:var(--panel);border:1px solid var(--border);transition:transform .16s ease,box-shadow .16s ease}.tile:hover{transform:translateY(-6px);box-shadow:0 16px 36px #3b82f647;border-color:transparent;background:linear-gradient(var(--panel),var(--panel)) padding-box,var(--grad) border-box}.tile-face{position:absolute;top:0;right:0;bottom:0;left:0}.tile-face.zoom{cursor:zoom-in}.tile-img{width:100%;height:100%;object-fit:cover;display:block}.tile-back{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;background:repeating-linear-gradient(45deg,#141c30,#141c30 12px,#18223a 12px,#18223a 24px);color:var(--muted)}.tile-back small{letter-spacing:.16em;font-size:.58rem;opacity:.8}.nameplate{position:absolute;left:0;right:0;bottom:0;padding:26px 10px 10px;background:linear-gradient(to top,rgba(6,10,20,.96) 42%,transparent);display:flex;flex-direction:column;gap:5px}.tname{font-weight:700;font-size:.82rem;line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tmeta{display:flex;align-items:center;gap:7px}.badge{background:var(--grad);color:#fff;font-size:.62rem;font-weight:800;letter-spacing:.03em;padding:2px 8px;border-radius:6px}.qty{font-size:.72rem;color:var(--muted)}.del{position:absolute;top:7px;right:7px;z-index:3;width:30px;height:30px;min-height:0;padding:0;border-radius:50%;background:#080c16bf;border:1px solid var(--border);color:#fff;font-size:.85rem;opacity:0;transition:opacity .15s}.tile:hover .del{opacity:1}.del:hover{background:#dc2626;border-color:#dc2626}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ceb;display:flex;align-items:center;justify-content:center;z-index:50;cursor:zoom-out}.lb-inner{display:flex;flex-direction:column;align-items:center;gap:.8rem;cursor:default}.lb-inner img{max-width:92vw;max-height:80vh;border-radius:.6rem;box-shadow:0 20px 60px #0009}.lb-price{font-size:1.6rem;font-weight:800;color:var(--gold)}.lb-est{background:var(--grad);border:none;color:#fff;font-weight:800;font-size:1rem;padding:.7rem 1.4rem}.lb-close{position:fixed;top:14px;right:14px;width:48px;height:48px;border-radius:50%;background:#141a28e6;border:1px solid var(--border);color:#fff;font-size:1.2rem;cursor:pointer}.lb-close:hover{background:#dc2626;border-color:#dc2626}@media (max-width: 860px){.landing{grid-template-columns:1fr}.authcard{border-left:none;border-top:1px solid var(--border)}.fan{display:none}}@media (max-width: 640px){.wrap{padding:1rem 1rem 4rem}.grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.tile .del{opacity:.95}.toolbar{flex-direction:column}.search{min-width:0}}
