:root{
  --bg:#f6f4ef; --ink:#1f2a24; --muted:#6b706b; --line:#e2ded4; --card:#fff;
  --accent:#1f5f4a; --accent-ink:#fff; --warn:#a45a12; --warn-bg:#fbefe2; --expert:#7a4d9c; --expert-bg:#f2ebf8;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#141815; --ink:#ebece8; --muted:#a2a69f; --line:#2c322d; --card:#1c211d;
    --accent:#4fb08c; --accent-ink:#0d130f; --warn:#f0b06a; --warn-bg:#3a2a18; --expert:#c9a6e6; --expert-bg:#2e2438; }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;font-size:16px;line-height:1.6}
a{color:var(--accent)}
.bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;
  padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line)}
.logo{font-weight:700;letter-spacing:.06em;text-decoration:none;color:var(--ink);font-size:18px}
.logo span{color:var(--accent);font-weight:400}
main{max-width:560px;margin:0 auto;padding:12px 16px 120px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}
.narrow{max-width:420px;margin:40px auto}
h1{font-size:20px;margin:0 0 8px} h2{font-size:17px;margin:0 0 8px}
.muted{color:var(--muted);font-size:14px}
.stack{display:flex;flex-direction:column;gap:10px}
input,textarea{font:inherit;font-size:16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%}
textarea{min-height:72px;resize:vertical}
button{font:inherit;cursor:pointer}
.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:10px;padding:12px 16px;font-weight:700}
.primary:disabled{opacity:.5}
.ghost{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:10px 14px}
.link{background:none;border:0;color:var(--muted);font-size:14px}
.error{color:#c0392b;font-size:14px;margin:0}
.fab{position:fixed;right:20px;bottom:max(24px,env(safe-area-inset-bottom));z-index:6;width:72px;height:72px;border-radius:50%;
  background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:700;
  box-shadow:0 6px 18px rgba(0,0,0,.25);cursor:pointer;user-select:none}
.credit{text-align:center;font-size:12px;color:var(--muted);padding:16px 16px 100px}

/* タイムライン：写真が主役 */
.post{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:14px 0;text-decoration:none;color:inherit;display:block}
.post img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--line)}
.post .meta{padding:10px 14px 12px}
.brand{font-weight:700;font-size:17px}
.sub{color:var(--muted);font-size:13px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.badge{font-size:12px;padding:1px 8px;border-radius:99px;border:1px solid currentColor}
.badge.prov{color:var(--warn);background:var(--warn-bg);border-color:transparent}
.badge.expert{color:var(--expert);background:var(--expert-bg);border-color:transparent}
.stars{color:#c9932a;letter-spacing:1px}
.empty{text-align:center;color:var(--muted);padding:48px 0}

/* 撮影〜保存 */
.preview{width:100%;border-radius:12px;display:block;max-height:52vh;object-fit:contain;background:#000}
.cands{display:flex;flex-direction:column;gap:8px}
.cand{text-align:left;background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--ink)}
.cand[aria-pressed="true"]{border-color:var(--accent)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:99px;padding:6px 14px;font-size:14px}
.chip[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.starpick button{font-size:30px;background:none;border:0;color:var(--line);padding:0 2px;line-height:1}
.starpick button.on{color:#c9932a}
.status{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:14px}
.spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:s 0.8s linear infinite}
@keyframes s{to{transform:rotate(360deg)}}
.comment{border-top:1px solid var(--line);padding:10px 0}
.comment.expert{background:var(--expert-bg);border-radius:10px;padding:10px 12px;border-top:0;margin:6px 0}
label.f{font-size:13px;color:var(--muted);display:block;margin-bottom:4px}
