/* Base styles and tokens */
:root{
  --bg: #fff;
  --fg: #111;
  --muted: #666;
  --border: #e5e7eb;
  --accent: #1e40af; /* darker blue */
  --accent-fg: #fff;
  --warn: #b45309;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--fg);
  background:var(--bg);
  font: 400 16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
}
.container{max-width:1200px;margin:0 auto;padding:0 16px}
.site-header{border-bottom:1px solid var(--border);background:#f8fafc}
.brand{display:flex;align-items:center;gap:8px;font-weight:700}
.brand .logo{font-size:20px}
.brand-logo{height:24px;width:auto;display:block}
.brand-text{letter-spacing:.2px}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}
.tagline{margin:0;color:var(--muted);font-size:14px}
.hero{padding:24px 0}
h1{font-size:26px;line-height:1.25;margin:0 0 10px}
.site-main h2{font-size:22px;line-height:1.3;margin:0 0 10px}
.site-main h3{font-size:18px;line-height:1.35;margin:0 0 8px}
.sub{color:var(--muted);margin:0 0 16px}

.tabs{display:inline-flex;gap:6px;border:1px solid var(--border);border-radius:8px;padding:4px;background:#fff}
.tab{appearance:none;border:0;background:none;padding:8px 12px;border-radius:6px;cursor:pointer}
.tab.is-active{background:#eef2ff;color:#1e40af}
.panel{display:none;margin-top:16px}
.panel.is-active{display:block}
.panel-desc{color:var(--muted);margin:0 0 12px}

.uploader .dropzone{position:relative;border:2px dashed var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;height:160px;color:var(--muted);cursor:pointer;outline:none}
.uploader .dropzone:focus{border-color:var(--accent)}
/* 파일 입력을 드롭존 전면에 투명 오버레이로 배치하여 브라우저별 라벨/클릭 이슈를 제거 */
.uploader input[type=file]{position:absolute;inset:0;opacity:0;width:100%;height:100%;display:block;pointer-events:none}
.help{font-size:12px;color:var(--muted);margin-top:8px}

.options{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}
fieldset{border:1px solid var(--border);border-radius:8px;padding:8px 10px}
legend{font-size:12px;color:var(--muted)}
.toggle{display:inline-flex;align-items:center;gap:8px}
.experimental span::after{content:" Experimental";color:#92400e;background:#fef3c7;border:1px solid #f59e0b;padding:0 6px;margin-left:6px;border-radius:999px;font-size:11px}

.btn{appearance:none;border:1px solid var(--border);background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;text-decoration:none;font-weight:600}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn:disabled{opacity:.6;cursor:not-allowed}

.progress{margin:12px 0;color:var(--muted);display:flex;gap:12px;align-items:center}
.mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}
/* 진행바 */
.progressbar{position:relative;flex:1 1 auto;height:8px;background:#eef2f7;border-radius:999px;overflow:hidden;min-width:120px}
.progressbar-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#60a5fa,#2563eb);width:0%}

.preview{margin-top:16px}
.before-after{position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#000;min-height:160px}
canvas{display:block;width:100%;height:auto}
.canvas-before,.canvas-after{position:absolute;left:0;top:0}
.canvas-before{opacity:.95}
.canvas-after{clip-path:inset(0 50% 0 0)}
.slider{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0}

.download{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:8px 0}

.site-footer{border-top:1px solid var(--border);margin-top:24px}
.site-footer .container{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px}
.footer-nav a{color:var(--muted);margin-right:12px;text-decoration:none}
.footer-nav a:hover{color:var(--fg)}

.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:static;width:auto;height:auto}

@media (min-width: 900px){
  h1{font-size:34px}
  .uploader .dropzone{height:200px}
}

/* Accessibility: focus ring */
.btn:focus-visible,
.tab:focus-visible,
a:focus-visible,
button:focus-visible,
summary:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Links hover color */
a{ color: inherit; }
a:hover{ color: var(--accent); }

/* 여백 유틸은 main.css의 .gutter 클래스로 관리 */
