:root { color-scheme: dark; }
* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
body { background:#0f0f0f; color:#f1f1f1; font-family:-apple-system,"Hiragino Sans","Noto Sans JP",system-ui,sans-serif; }

/* ---------- TOP grid ---------- */
body.top header { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:8px; padding:11px 14px;
  background:rgba(15,15,15,.92); backdrop-filter:blur(8px); border-bottom:1px solid #232323; }
.logo { position:fixed; top:14px; left:24px; z-index:30; font-weight:800; font-size:19px; letter-spacing:-.5px; color:#fff; text-decoration:none; }
.logo span { color:#ff2d55; }
main { padding:10px; }
.grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px 10px; max-width:1100px; margin:0 auto; }
.card { cursor:pointer; display:block; min-width:0; color:inherit; text-decoration:none; }
.card.hidden { display:none; }
.thumb { position:relative; width:100%; aspect-ratio:3/4; border-radius:12px; overflow:hidden; background:#1c1c1c; }
.thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.card:active .thumb img { transform:scale(.98); }
.thumb .dur { position:absolute; right:6px; bottom:6px; background:rgba(0,0,0,.78); color:#fff; font-size:11px;
  font-weight:600; padding:1px 5px; border-radius:5px; letter-spacing:.3px; }
.info { display:flex; gap:8px; margin:8px 2px 0; }
.info .ic { flex:0 0 auto; width:30px; height:30px; border-radius:50%; object-fit:cover; background:#333; }
.info .meta { min-width:0; }
.info .title { font-size:13.5px; line-height:1.35; font-weight:600; display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden; }
.info .sub { font-size:12px; color:#aaa; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#more { display:block; margin:20px auto 34px; padding:11px 26px; font-size:14px; font-weight:700; color:#fff;
  background:#272727; border:1px solid #3a3a3a; border-radius:22px; cursor:pointer; }
#more:active { background:#333; }
.skel { padding:40px; text-align:center; color:#888; }
.sronly { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.catnav { display:flex; gap:6px; margin-left:auto; margin-top:4px; flex-wrap:wrap; }
/* account chip (added to <header> by account.js on TOP / 履歴 / login / upload) */
#acct { display:flex; align-items:center; gap:8px; margin-left:10px; margin-top:4px; }
#acct .acct-link { font-size:12.5px; font-weight:700; color:#fff; text-decoration:none; background:#ff2d55; padding:5px 12px; border-radius:14px; white-space:nowrap; }
#acct .acct-out { font-size:12.5px; font-weight:700; color:#bbb; background:#1c1c1c; border:1px solid #2a2a2a; padding:5px 11px; border-radius:14px; cursor:pointer; white-space:nowrap; }
#acct .acct-out:active { background:#2a2a2a; }
#acct .acct-email { font-size:12px; color:#9a9a9a; max-width:34vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.catnav a { font-size:12.5px; font-weight:700; color:#bbb; text-decoration:none; padding:5px 11px; border-radius:14px; background:#1c1c1c; white-space:nowrap; }
.catnav a.on { color:#fff; background:#ff2d55; }
.tabs { display:flex; gap:8px; max-width:1100px; margin:0 auto 12px; padding:0 2px; }
.tabs .tab { font-size:13px; font-weight:700; color:#bbb; background:#1c1c1c; border:0; border-radius:16px; padding:6px 15px; cursor:pointer; }
.tabs .tab.on { color:#fff; background:#ff2d55; }
.thumb .bdgs { position:absolute; left:6px; top:6px; display:flex; gap:3px; z-index:1; }
.thumb .bdg { background:rgba(0,0,0,.62); border-radius:6px; font-size:12px; line-height:1.55; padding:0 4px; }
.ulist { display:flex; flex-direction:column; gap:8px; max-width:680px; margin:0 auto; }
.ucard { display:flex; align-items:center; gap:11px; width:100%; text-align:left; padding:9px 12px; background:#1a1a1a; border:1px solid #262626; border-radius:14px; color:inherit; cursor:pointer; }
.ucard:active { background:#222; }
.ucard .uic { flex:0 0 auto; width:44px; height:44px; border-radius:50%; object-fit:cover; background:#333; }
.ucard .uic.hide { visibility:hidden; }
.ucard .um { min-width:0; flex:1 1 auto; display:flex; flex-direction:column; }
.ucard .um b { font-size:14.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ucard .um span { font-size:12.5px; color:#9a9a9a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ucard .ucnt { flex:0 0 auto; font-size:12.5px; color:#9a9a9a; }   /* plain muted count — not a button (no pill/background) */
#ubar { display:flex; align-items:center; gap:12px; max-width:1100px; margin:0 auto 12px; padding:0 2px; }
#ubar .uback { font-size:13px; font-weight:700; color:#fff; background:#272727; border:1px solid #3a3a3a; border-radius:16px; padding:6px 14px; cursor:pointer; }
#ubar .uback:active { background:#333; }
#ubar .utitle { font-size:14.5px; font-weight:800; color:#fff; }
.tagline { max-width:760px; margin:10px auto 14px; padding:0 16px; text-align:center; font-size:13.5px; line-height:1.55; color:#bdbdbd; }
.tagline strong { color:#fff; }
.poplinks { max-width:760px; margin:34px auto 0; padding:0 18px; }
.poplinks h2 { font-size:19px; font-weight:800; color:#fff; margin:0 0 12px; }
.poplinks ul { list-style:none; margin:0; padding:0; display:grid; gap:7px; }
.poplinks li a { display:block; font-size:13px; line-height:1.5; color:#c9c9c9; text-decoration:none; padding:9px 13px; background:#161616; border:1px solid #232323; border-radius:10px; }
.poplinks li a:hover { color:#fff; border-color:#3a3a3a; }
.about { max-width:760px; margin:38px auto 0; padding:0 18px; color:#c9c9c9; }
.about h2 { font-size:19px; font-weight:800; color:#fff; margin:0 0 10px; }
.about p { font-size:14px; line-height:1.7; margin:0 0 14px; }
.about strong { color:#fff; }
.about-feat { list-style:none; margin:0 0 16px; padding:0; display:grid; gap:9px; }
.about-feat li { font-size:13.5px; line-height:1.6; padding:11px 14px; background:#161616; border:1px solid #232323; border-radius:12px; }
.about-feat li strong { color:#ff2d55; }
.about-cta { font-size:13.5px; }
.about-cta a { color:#ff2d55; font-weight:700; text-decoration:none; }
.about-cta a:hover { text-decoration:underline; }
.site-foot { max-width:1100px; margin:30px auto calc(22px + env(safe-area-inset-bottom, 0px)); padding:18px 14px 6px; border-top:1px solid #232323; display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; justify-content:center; }
.foot-link { font-size:12.5px; font-weight:700; color:#bbb; text-decoration:none; }
.foot-link:hover { color:#fff; }
.langsw { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.langsw button { font-size:12.5px; font-weight:700; color:#bbb; background:#1c1c1c; border:1px solid #2a2a2a; border-radius:14px; padding:6px 14px; cursor:pointer; }
.langsw button.on { color:#fff; background:#ff2d55; border-color:#ff2d55; }
.langsw button:active { background:#2a2a2a; }
.langsw.drawer { margin:0 2px 8px; }
/* footer language menu: a "Lang" button reveals the flag list as a popup ABOVE it */
.foot-langwrap { position:relative; display:inline-flex; }
.site-foot .langsw { display:none; position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); z-index:20; width:240px; max-width:82vw; flex-wrap:wrap; justify-content:center; gap:7px; background:#1c1c1c; border:1px solid #2c2c2c; border-radius:12px; padding:12px; box-shadow:0 8px 28px rgba(0,0,0,.5); }
.site-foot .langsw.open { display:flex; }
.foot-lang { font-size:12.5px; font-weight:700; color:#bbb; background:none; border:0; padding:0; cursor:pointer; font-family:inherit; }
.foot-lang:hover, .foot-lang[aria-expanded="true"] { color:#fff; }
.pager { display:flex; align-items:center; justify-content:space-between; gap:12px; max-width:1100px; margin:22px auto 36px; padding:0 6px; }
.pager a { color:#fff; font-weight:700; font-size:14px; text-decoration:none; padding:9px 17px; background:#272727; border:1px solid #3a3a3a; border-radius:20px; }
.pager .pageno { color:#888; font-size:13px; }

/* ---------- PLAY feed ---------- */
body.play, html:has(body.play) { height:100%; overflow:hidden; }
#feed { height:100dvh; overflow-y:scroll; scroll-snap-type:y mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
#feed::-webkit-scrollbar { display:none; }
.slide { position:relative; height:100dvh; scroll-snap-align:start; scroll-snap-stop:always; background:#000; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.slide video, .slide .poster { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#000; }
.spinner { position:absolute; z-index:4; width:42px; height:42px; border:3px solid rgba(255,255,255,.25); border-top-color:#fff; border-radius:50%; animation:spin 1s linear infinite; opacity:0; transition:opacity .2s; }
.spinner.on { opacity:1; }
@keyframes spin { to { transform:rotate(360deg); } }
.grad { position:absolute; left:0; right:0; bottom:0; height:42%; z-index:3; pointer-events:none; background:linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,.22) 55%, transparent); }
.meta-ov { position:absolute; left:14px; right:84px; bottom:58px; z-index:6; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.6); }
.meta-ov .user { display:flex; align-items:center; gap:9px; margin-bottom:9px; }
.meta-ov .user img { width:38px; height:38px; border-radius:50%; object-fit:cover; border:1px solid rgba(255,255,255,.6); background:#333; }
.meta-ov .user a.uico { display:inline-flex; line-height:0; position:relative; z-index:7; cursor:pointer; }
.meta-ov .user b { font-size:15px; } .meta-ov .user span { font-size:12.5px; opacity:.8; }
.meta-ov .user .usave { margin-left:8px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; padding:4px; border:none; background:none; color:#fff; line-height:0; cursor:pointer; }
.meta-ov .user .usave .ui { display:inline-flex; line-height:0; }
.meta-ov .user .usave .ui svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); }
.meta-ov .user .usave.on { color:#ff2d55; }
.meta-ov .user .usave.on .ui svg { fill:currentColor; stroke:none; }
.meta-ov .user .usave:active { transform:scale(.88); }
.meta-ov .cap { font-size:14px; line-height:1.45; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word; }
.rail { position:absolute; right:8px; bottom:30px; z-index:6; display:flex; flex-direction:column; align-items:center; gap:17px; color:#fff; transform:scale(.8); transform-origin:right bottom; }
.rail .act { display:flex; flex-direction:column; align-items:center; gap:4px; font-size:12px; font-weight:600; background:none; border:0; padding:0; color:#fff; cursor:pointer; text-shadow:0 1px 3px rgba(0,0,0,.7); }
.rail .ic { width:34px; height:34px; display:flex; align-items:center; justify-content:center; }
.rail .ic svg { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 1px 2px rgba(0,0,0,.75)); transition:transform .12s ease; }
.rail .act.xpost { text-decoration:none; }
.rail .act.xpost .ic svg { width:25px; height:25px; fill:currentColor; stroke:none; }
.rail .act:active .ic svg { transform:scale(.8); }
.rail .act.fit .cnt { min-width:50px; }   /* fixed width so "cover"/"contain" toggling doesn't shift the rail */
.rail .act.on .ic svg { fill:currentColor; }
.rail .act[data-act="good"].on { color:#34d399; }
.rail .act[data-act="bad"].on  { color:#f87171; }
.rail .act[data-act="save"].on { color:#fbbf24; }
#back { position:fixed; top:17px; left:0; z-index:30; width:24px; height:24px; padding:0; border:none; background:none; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); }
#back svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.plogo { left:24px; margin-top:4px; opacity:.8; line-height:1; text-shadow:0 1px 3px rgba(0,0,0,.6); }
#mute { position:fixed; left:12px; bottom:calc(12px + env(safe-area-inset-bottom, 0px)); z-index:30; width:40px; height:40px; padding:0; border-radius:50%; border:none; background:rgba(0,0,0,.5); color:#fff; cursor:pointer; backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; }
#mute svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#vol { position:fixed; left:58px; bottom:calc(13px + env(safe-area-inset-bottom, 0px)); width:96px; height:38px; z-index:29; touch-action:none; opacity:0; pointer-events:none; transition:opacity .15s ease; }
#vol.show { opacity:1; pointer-events:auto; }
#vol::before { content:''; position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); height:4px; border-radius:2px; background:rgba(255,255,255,.3); }
#volfill { position:absolute; left:0; top:50%; transform:translateY(-50%); height:4px; border-radius:2px; width:0; background:#fff; pointer-events:none; }
.hide { visibility:hidden; }
#end { text-align:center; color:#888; padding:30px; font-size:13px; }
#seek { position:fixed; left:0; right:0; bottom:env(safe-area-inset-bottom, 0px); z-index:25; height:20px; touch-action:pan-y; }
#seek::before { content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.22); }
#seekfill { position:absolute; left:0; bottom:0; height:3px; width:0; background:#ff2d55; pointer-events:none; transition:width .2s linear; }
#seek.scrub { height:48px; }
#seek.scrub::before, #seek.scrub #seekfill { height:6px; }
#seek.scrub #seekfill { transition:none; }
#ppicon { position:fixed; left:50%; top:50%; transform:translate(-50%,-50%) scale(.7); z-index:24; width:76px; height:76px; padding-left:5px; border-radius:50%; background:rgba(0,0,0,.42); color:#fff; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .15s ease, transform .15s ease; }
#ppicon.show { opacity:1; transform:translate(-50%,-50%) scale(1); }
#ptime { position:fixed; left:50%; bottom:calc(7px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%); z-index:26; pointer-events:none; font-size:11.5px; font-weight:600; color:#fff; opacity:.9; text-shadow:0 1px 2px rgba(0,0,0,.75); font-variant-numeric:tabular-nums; letter-spacing:.3px; }

/* ---------- in-feed VAST ad slide ---------- */
.slide.ad .ad-badge { position:absolute; left:90px; top:12px; z-index:6; font-size:11px; font-weight:800; letter-spacing:.4px; color:#fff; background:rgba(0,0,0,.55); padding:3px 8px; border-radius:6px; backdrop-filter:blur(4px); }
.slide.ad .ad-skip { position:absolute; right:52px; top:11px; z-index:7; font-size:13px; font-weight:700; color:#fff; background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.28); border-radius:18px; padding:7px 14px; cursor:pointer; backdrop-filter:blur(4px); }
.slide.ad .ad-skip:active { background:rgba(0,0,0,.7); }
.slide.ad .ad-cta { position:absolute; left:14px; right:14px; bottom:46px; z-index:6; display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:15px; font-weight:800; color:#fff; background:#ff2d55; padding:13px 16px; border-radius:12px; box-shadow:0 6px 20px rgba(255,45,85,.4); }
.slide.ad .ad-cta:active { transform:scale(.98); }

/* ---------- registration promo popup (logged-out heart tap) ---------- */
.promo-ov { position:fixed; inset:0; z-index:60; background:rgba(0,0,0,.62); display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(2px); }
.promo-card { width:100%; max-width:340px; background:#1a1a1a; border:1px solid #2a2a2a; border-radius:18px; padding:24px 22px; text-align:center; }
.promo-h { color:#ff2d55; display:flex; justify-content:center; margin:0 0 10px; }
.promo-h svg { width:44px; height:44px; fill:currentColor; }
.promo-t { font-size:16px; font-weight:800; color:#fff; line-height:1.5; margin:0 0 10px; }
.promo-free { display:inline-block; font-size:12.5px; font-weight:800; color:#fff; background:#ff2d55; border-radius:999px; padding:3px 13px; margin:0 0 12px; }
.promo-s { font-size:13px; color:#bbb; line-height:1.7; margin:0 0 18px; }
.promo-s b { color:#ff5277; font-weight:800; }
.promo-btn { display:block; font-size:15px; font-weight:800; color:#fff; background:#ff2d55; border-radius:12px; padding:13px; text-decoration:none; box-shadow:0 6px 20px rgba(255,45,85,.35); }
.promo-btn:active { transform:scale(.98); }
.promo-close { margin-top:10px; background:none; border:0; color:#9a9a9a; font-size:13px; font-weight:700; cursor:pointer; padding:6px; }

/* ---------- PLAY hamburger drawer ---------- */
#menu { position:fixed; top:14px; right:14px; z-index:31; width:30px; height:30px; padding:0; border:none; background:none; color:#fff; cursor:pointer; opacity:.8; display:flex; align-items:center; justify-content:center; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); }
#menu svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
#drawer { position:fixed; inset:0; z-index:40; visibility:hidden; }
#drawer.open { visibility:visible; }
#scrim { position:absolute; inset:0; background:rgba(0,0,0,.45); opacity:0; transition:opacity .25s ease; }
#drawer.open #scrim { opacity:1; }
#dpanel { position:absolute; top:7vh; right:0; width:90vw; max-width:560px; height:86vh; background:#161616; border-radius:14px 0 0 14px; box-shadow:-8px 0 28px rgba(0,0,0,.55); overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; transform:translateX(100%); transition:transform .28s cubic-bezier(.4,0,.2,1); padding:14px 13px calc(16px + env(safe-area-inset-bottom, 0px)); }
#drawer.open #dpanel { transform:translateX(0); }
.dnav { display:flex; flex-wrap:wrap; gap:7px; }
.dnav a { font-size:13px; font-weight:700; color:#eee; background:#242424; border-radius:14px; padding:7px 13px; text-decoration:none; white-space:nowrap; }
.dnav a:active { background:#2f2f2f; }
.dnav a.hist { background:#ff2d55; color:#fff; }
.dsec { display:flex; align-items:center; gap:5px; font-size:12.5px; font-weight:800; color:#ff5277; margin:16px 2px 7px; letter-spacing:.4px; }
.dsec .dsi { display:inline-flex; line-height:0; }
.dsec .dsi svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.dempty { font-size:12px; color:#777; padding:2px 2px 4px; }
.mrow { display:flex; align-items:center; gap:10px; padding:6px 4px; text-decoration:none; color:inherit; border-radius:9px; }
.dmore { display:block; text-align:center; font-size:12.5px; font-weight:700; color:#ff5277; text-decoration:none; padding:9px 4px 3px; }
.dmore:active { color:#ff7d97; }
.mrow:active { background:#222; }
.mth { flex:0 0 auto; width:60px; height:60px; border-radius:9px; object-fit:cover; background:#2a2a2a; }
.mtx { min-width:0; }
.mt1 { font-size:13px; line-height:1.35; font-weight:600; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.mt2 { font-size:11.5px; color:#9a9a9a; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ---------- responsive: wider screens ---------- */
/* On phones the card grid stays 2 columns (the base rule above). These breakpoints only widen it
   on roomier viewports and, on PC widths, move "Popular on xdoga" into a sticky right sidebar. */

/* tablet / small laptop: 3-column card grid */
@media (min-width:640px) and (max-width:999.98px) {
  .grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

/* desktop / PC: fluid card grid (applies on every body.top page: TOP, category hubs, history, uploads) */
@media (min-width:1000px) {
  .grid { grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); }
}

/* desktop / PC — TOP page only: feed on the left, "Popular on xdoga" as a sticky right sidebar.
   Gated on :has(.poplinks) so an empty Popular block (no indexed videos) falls back to a single
   full-width column instead of leaving a blank 300px gap. Browsers without :has() degrade to the
   stacked single-column layout, which is fine. */
@media (min-width:1000px) {
  .cols:has(.poplinks) { display:grid; grid-template-columns:minmax(0, 1fr) 300px; gap:34px;
    align-items:start; max-width:1320px; margin:0 auto; padding:0 18px; }
  .cols:has(.poplinks) > main { padding-left:0; padding-right:0; }   /* wrapper supplies the side padding */
  .cols:has(.poplinks) > main .grid { max-width:none; margin:0; }    /* fill the left column, not centered at 1100 */
  .poplinks { position:sticky; top:70px; max-width:none; margin:0; padding:0;
    max-height:calc(100vh - 92px); max-height:calc(100dvh - 92px); overflow-y:auto; overflow-x:hidden;
    scrollbar-width:thin; scrollbar-color:#2a2a2a transparent; }
  .poplinks::-webkit-scrollbar { width:8px; }
  .poplinks::-webkit-scrollbar-thumb { background:#2a2a2a; border-radius:4px; }
  .poplinks::-webkit-scrollbar-track { background:transparent; }
  .poplinks h2 { font-size:17px; margin-bottom:10px; }
}

/* ---------- PLAY: persistent playback-state indicator (top of the rail, above 再生/Good) ---------- */
.rail .act.ppstate .ic svg { width:26px; height:26px; fill:currentColor; stroke:none; }
.rail .act.ppstate .cnt { font-size:11px; font-weight:700; line-height:1.1; max-width:64px; white-space:normal; text-align:center; }
.rail .act.ppstate.is-play  { color:#fff; }       /* playing  (icon = ⏸ tap-to-pause) */
.rail .act.ppstate.is-pause { color:#fbbf24; }    /* paused   (icon = ▶ tap-to-play; amber draws the eye) */
.rail .act.ppstate.is-load  { color:#d0d0d0; }    /* loading  (spinner) */
.rail .act.ppstate .ppspin { display:inline-block; width:22px; height:22px; border:3px solid rgba(255,255,255,.3);
  border-top-color:#fff; border-radius:50%; animation:spin 1s linear infinite; }

/* geo-block (451) page: shown to visitors in US states that legally require age verification */
.geoblock { max-width:560px; margin:16vh auto 0; padding:0 24px; text-align:center; }
.geoblock h1 { font-size:22px; line-height:1.35; margin:0 0 16px; }
.geoblock p { font-size:14px; line-height:1.65; color:#bdbdbd; margin:0 0 12px; }
