:root{--orange:#ff4500;--navy:#0a192f;--gold:#ffd700;--bg:#ffffff;--bg-soft:#f4f4f5;--text:#111111;--text-dim:#666666;--card:#ffffff;--border:#e4e4e7;--header-bg:#000000;--sheet-bg:#ffffff}[data-theme=dark]{--bg:#0a0a0a;--bg-soft:#161616;--text:#f5f5f5;--text-dim:#a1a1aa;--card:#181818;--border:#2a2a2a;--sheet-bg:#181818}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Noto Sans JP,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}.app{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.header{position:-webkit-sticky;position:sticky;top:0;z-index:40;padding:8px 12px;background:#000}.header,.logo{display:flex;align-items:center;gap:8px;color:#fff}.logo{background:none;border:none;padding:0;flex:1 1;min-width:0}.logo-name{font-family:M PLUS Rounded\ 1c,Hiragino Maru Gothic ProN,sans-serif;font-weight:800;font-size:20px;letter-spacing:.2px;white-space:nowrap}.icon-btn{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;font-size:17px;line-height:1}.icon-btn.active{background:var(--orange);border-color:var(--orange)}.feed{flex:1 1;display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:6px;gap:6px;padding:6px;height:calc(100dvh - 55px - 64px)}.column,.feed{overflow:hidden}.column{position:relative;border-radius:10px;touch-action:pan-y}.column-track{display:flex;flex-direction:column;gap:6px;will-change:transform}.column.paused .column-track{animation-play-state:paused!important}@keyframes moveUp{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes moveDown{0%{transform:translateY(-50%)}to{transform:translateY(0)}}.column-hint{position:absolute;left:0;right:0;bottom:6px;z-index:5;text-align:center;font-size:10px;color:#fff;background:rgba(0,0,0,.55);border-radius:999px;padding:3px 6px;margin:0 6px;pointer-events:none}.pin{position:relative;border:none;padding:0;border-radius:12px;overflow:hidden;background:var(--card);text-align:left;display:block;width:100%}.pin img,.pin video{display:block;width:100%;aspect-ratio:3/4;height:auto;object-fit:cover;background:var(--bg-soft)}.pin-body{padding:6px 7px 8px}.pin-title{font-size:12px;font-weight:700;line-height:1.35;margin:0 0 3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pin-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-dim)}.pin-meta .cat{background:var(--bg-soft);border-radius:999px;padding:1px 7px;font-size:10px}.stars{color:var(--gold);letter-spacing:1px}.play-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center;font-size:14px;pointer-events:none}.pin.featured{padding:3px;background:linear-gradient(90deg,#ff0080,#ff8c00,#ffd700,#00e676,#00b0ff,#7c4dff,#ff0080);background-size:300% 100%;animation:rainbow 6s linear infinite}@keyframes rainbow{to{background-position:300% 0}}.pin.featured .pin-inner{border-radius:9px;overflow:hidden;background:var(--card)}.pin.reviewing img,.pin.reviewing video{filter:blur(14px) saturate(.6);transform:scale(1.08)}.review-badge{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:rgba(0,0,0,.35);pointer-events:none;z-index:2}.reported-note{font-size:11px;color:var(--orange);font-weight:700}.bottom-nav{position:-webkit-sticky;position:sticky;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--bg);border-top:1px solid var(--border);padding:6px 8px calc(8px + env(safe-area-inset-bottom))}.nav-btn{background:none;border:none;color:var(--text);font-size:12px;font-weight:700;padding:8px 0;display:flex;flex-direction:column;align-items:center;gap:2px}.nav-btn span{font-size:20px;line-height:1}.nav-btn.primary{color:var(--orange)}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:60}.drawer{position:fixed;top:0;left:0;bottom:0;width:min(78vw,300px);background:var(--sheet-bg);color:var(--text);z-index:61;padding:20px 16px;overflow-y:auto;box-shadow:4px 0 24px rgba(0,0,0,.3)}.drawer h2{margin:0 0 4px;font-size:18px}.drawer p{margin:0 0 16px;font-size:12px;color:var(--text-dim)}.cat-list{display:flex;flex-direction:column;gap:8px}.cat-btn{text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font-weight:700;font-size:14px}.cat-btn.active{background:var(--orange);border-color:var(--orange);color:#fff}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;max-width:560px;margin:0 auto;background:var(--sheet-bg);color:var(--text);border-radius:20px 20px 0 0;padding:12px 16px calc(20px + env(safe-area-inset-bottom));max-height:88dvh;overflow-y:auto;box-shadow:0 -8px 32px rgba(0,0,0,.35)}.sheet-grip{width:44px;height:5px;border-radius:999px;background:var(--border);margin:0 auto 12px}.sheet-media{border-radius:14px;overflow:hidden}.sheet-media img,.sheet-media video{display:block;width:100%;height:auto}.sheet h3{margin:12px 0 4px;font-size:17px}.sheet .sub{margin:0 0 12px;font-size:13px;color:var(--text-dim)}.action-row{display:flex;gap:8px}.action-btn{flex:1 1;padding:11px 0;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);font-weight:700}.action-btn.active{background:var(--orange);border-color:var(--orange);color:#fff}.action-btn.danger.active{background:#d32f2f;border-color:#d32f2f}.close-btn{width:100%;margin-top:10px;padding:11px 0;border-radius:999px;border:none;background:var(--bg-soft);color:var(--text);font-weight:700}.upload{flex:1 1;padding:18px 16px 24px;overflow-y:auto}.upload h2{margin:0 0 4px;font-size:20px}.upload p{margin:0 0 16px;font-size:13px;color:var(--text-dim)}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.field input[type=text],.field select{width:100%;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:15px}.field input[type=file]{width:100%;font-size:13px}.preview{margin:0 0 14px;border-radius:14px;overflow:hidden}.preview img{display:block;width:100%;height:auto}.warning{border:2px solid var(--orange);border-radius:12px;padding:12px;font-size:13px;line-height:1.6;margin-bottom:14px;background:rgba(255,69,0,.06)}.warning strong{color:var(--orange)}.submit-btn{width:100%;padding:14px 0;border-radius:999px;border:none;background:var(--orange);color:#fff;font-weight:800;font-size:15px}.submit-btn:disabled{opacity:.45}.note{margin-top:12px;font-size:12px;color:var(--text-dim);line-height:1.6}.saved{flex:1 1;padding:18px 16px 24px;overflow-y:auto}.saved h2{margin:0 0 12px;font-size:20px}.saved-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:6px;gap:6px}.empty{text-align:center;color:var(--text-dim);padding:48px 16px;line-height:1.8}.empty,.toast{font-size:13px}.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:80;background:#000;color:#fff;font-weight:700;padding:10px 16px;border-radius:999px;white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.3)}