:root{color-scheme:dark;--bg:#07060d;--fg:#ece8f5;--dim:#9a94ad;--acc:#b9a4ff}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-height:100vh;background:radial-gradient(120% 60% at 50% 0,#1a1433 0,var(--bg) 70%) fixed;color:var(--fg);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overflow-x:hidden}
button,input{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}
.small{font-size:.82rem;color:var(--dim)}
#top{position:fixed;inset:0 0 auto 0;z-index:5;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 10px) 14px 22px;background:linear-gradient(#07060dee,#07060d00);pointer-events:none}
#top h1{font-size:1rem;letter-spacing:.32em;text-transform:uppercase;font-weight:500;opacity:.85}
#seeds{display:flex;gap:8px;overflow-x:auto;pointer-events:auto;scrollbar-width:none;padding:4px 2px}
#seeds::-webkit-scrollbar{display:none}
.chip{position:relative;flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:2px solid #ffffff33;opacity:.75}
.chip.newest{border-color:var(--acc);opacity:1;box-shadow:0 0 16px #b9a4ff88}
.chip.noloc{border-style:dashed}
.chip img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.chip .x{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;border:0;background:#000c;line-height:1;font-size:15px;padding:0}
#intro{display:none;min-height:100vh;padding:120px 26px 160px;flex-direction:column;justify-content:center;gap:18px;max-width:520px;margin:0 auto}
body.empty #intro{display:flex}
body.empty #dock{display:none}
#intro h2{font-size:2rem;line-height:1.15;font-weight:600}
.row{display:flex;gap:10px;flex-wrap:wrap}
.big{flex:1 1 150px;min-height:52px;padding:12px 18px;border-radius:26px;border:0;background:var(--acc);color:#14102a;font-weight:600;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.big.ghost{background:#ffffff14;color:var(--fg);border:1px solid #ffffff2e}
.link{background:none;border:0;color:var(--dim);text-decoration:underline;padding:12px 0;min-height:44px}
#feed{padding:96px 0 0;display:flex;flex-direction:column;gap:34px;max-width:620px;margin:0 auto}
.card{position:relative;margin:0;width:86%;border-radius:22px;overflow:hidden;background:#15121f;opacity:0;transform:translateY(46px) scale(.94);filter:blur(14px) saturate(.6);transition:opacity 1.1s ease,transform 1.3s cubic-bezier(.2,.7,.2,1),filter 1.3s ease;box-shadow:0 0 70px -12px var(--glow,#6b5bd6);cursor:pointer}
.card.in{opacity:1;transform:none;filter:none}
.card.v0{align-self:flex-start;margin-left:4%}
.card.v1{align-self:flex-end;margin-right:4%;width:74%}
.card.v2{align-self:center;width:94%}
.card.v3{align-self:flex-start;margin-left:9%;width:70%}
.card.v4{align-self:flex-end;margin-right:6%;width:82%}
.card img{width:100%;height:100%;object-fit:cover;display:block;animation:drift 22s ease-in-out infinite alternate}
.card.v1 img,.card.v3 img{animation-direction:alternate-reverse}
@keyframes drift{from{transform:scale(1.04) translate(-1.2%,-1%)}to{transform:scale(1.13) translate(1.4%,1.2%)}}
.card figcaption{position:absolute;inset:auto 0 0 0;padding:34px 14px 12px;background:linear-gradient(#0000,#000b);display:flex;flex-direction:column;gap:2px;font-size:.8rem}
.card .where{color:var(--acc);font-weight:600}
.card .what{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}
#status{text-align:center;color:var(--dim);padding:34px 26px 0;min-height:60px}
#sentinel{height:calc(150px + env(safe-area-inset-bottom))}
#dock{position:fixed;inset:auto 0 0 0;z-index:6;display:flex;justify-content:center;align-items:center;gap:22px;padding:26px 16px calc(env(safe-area-inset-bottom) + 16px);background:linear-gradient(#07060d00,#07060df2 60%);pointer-events:none}
#dock button{pointer-events:auto;border:1px solid #ffffff2e;background:#17132bdd;border-radius:26px;min-height:52px;padding:0 20px;backdrop-filter:blur(8px)}
#dock .shutter{width:72px;height:72px;border-radius:50%;padding:0;border:3px solid #fff;background:#0000;display:grid;place-items:center}
#dock .shutter span{width:54px;height:54px;border-radius:50%;background:var(--acc)}
#veil{position:fixed;inset:0;z-index:8;display:grid;place-items:center;background:#07060df0;font-size:1.25rem;letter-spacing:.06em;opacity:0;pointer-events:none;transition:opacity .7s ease}
#veil.on{opacity:1}
#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 118px);transform:translate(-50%,12px);z-index:9;background:#221c3ded;padding:10px 16px;border-radius:18px;font-size:.9rem;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:88vw;text-align:center}
#toast.on{opacity:1;transform:translate(-50%,0)}
dialog{border:0;border-radius:24px;background:#151127;color:var(--fg);padding:22px;width:min(92vw,440px);max-height:88vh;overflow:auto}
dialog[open]{display:flex;flex-direction:column;gap:12px}
dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}
#locThumb{width:72px;height:72px;border-radius:50%;object-fit:cover}
#infoImg{width:100%;max-height:46vh;object-fit:contain;border-radius:14px;background:#000}
#locForm{display:flex;gap:8px}
#locForm input{flex:1;min-width:0;min-height:48px;border-radius:24px;border:1px solid #ffffff2e;background:#0b0916;padding:0 16px}
#locForm button{min-height:48px;border-radius:24px;border:1px solid #ffffff2e;background:#ffffff14;padding:0 16px}
#locList{display:flex;flex-direction:column;gap:6px}
.place{text-align:left;border:1px solid #ffffff22;background:#ffffff0d;border-radius:14px;padding:10px 14px;min-height:48px;display:flex;flex-direction:column}
.place span{font-size:.8rem;color:var(--dim)}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.card{transition:opacity .3s;transform:none;filter:none}.card img{animation:none}#veil{transition:none}}
.turn{align-self:center;display:flex;align-items:center;gap:10px;color:var(--dim);font-size:.82rem;padding:6px 16px}
.turn img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--acc)}
