:root {
  --ffp-header-height: 84px;
  --ffp-container: 1200px;
  --ffp-gap: 24px;
  --ffp-fg: #111;
  --ffp-muted: #666;
  --ffp-bg: #fff;
  --ffp-primary: #0b5fff;
  --ffp-border: #e5e7eb;
  --ffp-panel-bg: #fff;
  --ffp-hover-bg: #f3f4f6;
  --ffp-overlay: rgba(17,24,39,.5);
  --ffp-shadow-soft-color: rgba(17,24,39,.08);
  --ffp-shadow-strong-color: rgba(17,24,39,.2);
}

/* Dark theme variables */
[data-theme="dark"] {
  --ffp-fg: #e5e7eb;
  --ffp-muted: #9ca3af;
  --ffp-bg: #0b1220;
  --ffp-primary: #60a5fa;
  --ffp-border: #1f2937;
  --ffp-panel-bg: #111827;
  --ffp-hover-bg: rgba(255,255,255,.06);
  --ffp-overlay: rgba(0,0,0,.55);
  --ffp-shadow-soft-color: rgba(0,0,0,.5);
  --ffp-shadow-strong-color: rgba(0,0,0,.6);
}

html { color: var(--ffp-fg); background: var(--ffp-bg); }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', Arial, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
  line-height: 1.6;
}
body.is-locked { overflow: hidden; }
body.drawer-open .site-wrap { touch-action: none; overscroll-behavior: contain; }

/* Scrollbar theming */
/* WebKit (Chrome, Edge, Safari) */
* { scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--ffp-panel-bg); }
::-webkit-scrollbar-thumb { background-color: var(--ffp-border); border-radius: 999px; border: 2px solid var(--ffp-panel-bg); }
::-webkit-scrollbar-thumb:hover { background-color: #888; }

/* Firefox */
html { scrollbar-color: var(--ffp-border) var(--ffp-panel-bg); scrollbar-width: thin; }

a { color: var(--ffp-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* Global outline removal as requested */
a, button, input, textarea { outline: none !important; }
a:focus, a:focus-visible,
button:focus, button:focus-visible,
input:focus, input:focus-visible,
textarea:focus, textarea:focus-visible { outline: none !important; box-shadow: none !important; }

.container { width: 100%; max-width: var(--ffp-container); margin-inline: auto; padding-inline: 16px; }

.site-wrap { padding-top: var(--ffp-header-height); }
body.admin-bar .site-wrap { padding-top: calc(var(--ffp-header-height) + 32px); }
@media (max-width: 782px) {
  body.admin-bar .site-wrap { padding-top: calc(var(--ffp-header-height) + 46px); }
}

.site-footer { padding: 24px 16px; border-top: 1px solid var(--ffp-border); color: var(--ffp-muted); margin-top: 3rem;}


