  :root{
  --bg:#ffffff;
  --fg:#0b0b0b;
  --muted:#666666;
  --border:#e7e7e7;
  --surface:#f7f7f7;
  --shadow:0 10px 30px rgba(0,0,0,.08);
  --radius:18px;
  --container:1180px;
  --gutter:20px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",Arial,sans-serif;
  line-height:1.5;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font:inherit;}

.skip{
  position:absolute;
  top:10px;
  left:10px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg);
  transform:translateY(-200%);
  z-index:100;
}
.skip:focus{transform:translateY(0);}

.container{
  width:min(var(--container),calc(100% - (var(--gutter) * 2)));
  margin:0 auto;
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:180px;
}
.brand-logo{
  width:34px;
  height:34px;
  object-fit:contain;
  border:1px solid var(--border);
  border-radius:12px;
  padding:4px;
  background:var(--bg);
}
.brand-name{
  font-weight:800;
  letter-spacing:.16em;
  font-size:14px;
}

.nav{display:none;align-items:center;gap:20px;}
.nav-link{
  font-size:14px;
  color:var(--muted);
  padding:10px 0;
}
.nav-link:hover{color:var(--fg);}

.nav-cta{
  border-radius:999px;
  padding:10px 14px;
  border:1px solid var(--fg);
  background:var(--fg);
  color:var(--bg);
  font-weight:700;
  cursor:pointer;
}
.nav-cta:hover{filter:brightness(.92);}

.menu-btn{
  border:1px solid var(--border);
  background:var(--bg);
  border-radius:999px;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
}
.menu-btn:hover{border-color:#cfcfcf;}

.mobile-menu{
  padding:12px var(--gutter) 18px;
  border-top:1px solid var(--border);
  background:var(--bg);
  gap:10px;
}
 .mobile-menu:not([hidden]){display:grid;}
.mobile-link{
  padding:12px 12px;
  border:1px solid var(--border);
  border-radius:14px;
  color:var(--fg);
  font-weight:600;
}
.mobile-link:hover{background:var(--surface);}
.mobile-cta{
  padding:12px 12px;
  border:1px solid var(--fg);
  border-radius:14px;
  background:var(--fg);
  color:var(--bg);
  font-weight:700;
  cursor:pointer;
}

.hero{padding:50px 0 26px;}
.hero-grid{display:grid;gap:24px;}
.kicker{
  margin:0 0 10px;
  font-size:12px;
  letter-spacing:.22em;
  color:var(--muted);
}
.hero-title{
  margin:0 0 12px;
  font-size:clamp(34px,4.4vw,58px);
  line-height:1.03;
  letter-spacing:-.03em;
}
.hero-sub{
  margin:0 0 18px;
  color:var(--muted);
  max-width:50ch;
}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
.hero-media{
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--surface);
  box-shadow:var(--shadow);
}
.hero-media img{
  width:100%;
  object-fit:contain;
}

.section{padding:56px 0;}
.section-alt{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.section-head{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;}
.section-title{margin:0;font-size:24px;letter-spacing:-.01em;}
.section-desc{margin:0;color:var(--muted);max-width:76ch;}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:999px;
  padding:12px 16px;
  font-weight:800;
  cursor:pointer;
  border:1px solid var(--border);
  background:var(--bg);
  color:var(--fg);
}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn-primary{background:var(--fg);border-color:var(--fg);color:var(--bg);}
.btn-primary:hover{filter:brightness(.92);}
.btn-ghost{background:transparent;}
.btn-full{width:100%;}

:focus-visible{outline:2px solid var(--fg);outline-offset:3px;}

.products-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.product-card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--bg);
  display:flex;
  flex-direction:column;
  transition:border-color .2s ease,transform .2s ease;
}
.product-card:hover{border-color:#cfcfcf;transform:translateY(-2px);}

.product-media{
  background:var(--surface);
  border-bottom:1px solid var(--border);
}
.product-media img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}

.product-body{padding:14px 14px 16px;display:flex;flex-direction:column;min-height:160px;}
.product-name{font-weight:900;letter-spacing:-.01em;}
.product-desc{margin-top:4px;color:var(--muted);font-size:12px;}
.product-meta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;}
.price{font-weight:900;}
.badge{
  font-size:11px;
  border:1px solid var(--border);
  padding:6px 10px;
  border-radius:999px;
  color:var(--muted);
  background:transparent;
  white-space:nowrap;
}
.badge.badge-strong{border-color:var(--fg);color:var(--fg);}
.badge.badge-muted{border-style:dashed;}

.buy-btn{
  margin-top:12px;
  border-radius:14px;
  padding:12px 14px;
  border:1px solid var(--fg);
  background:var(--fg);
  color:var(--bg);
  font-weight:900;
  cursor:pointer;
}
.buy-btn:hover{filter:brightness(.92);}
.buy-btn[disabled]{opacity:.45;cursor:not-allowed;filter:none;}

.about-grid{display:grid;gap:18px;}
.about-lead{margin:0 0 8px;font-size:16px;}
.about-text{margin:0;color:var(--muted);font-size:14px;}
.brand-strong{letter-spacing:.08em;}
.about-media{
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--bg);
}
.about-media img{width:100%;object-fit:contain;}

.goals-grid{display:grid;gap:12px;margin-top:14px;}
.goal-card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--bg);
  padding:16px 16px;
}
.goal-title{margin:0 0 8px;font-size:16px;letter-spacing:-.01em;}
.goal-desc{margin:0;color:var(--muted);font-size:14px;}

.summary{
  margin-top:18px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--bg);
  padding:16px 16px;
}
.summary-title{margin:0 0 10px;font-size:16px;}
.summary-list{margin:0;padding-left:18px;color:var(--muted);display:grid;gap:6px;}

.support-grid{display:grid;gap:16px;}
.support-card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--bg);
  padding:16px 16px;
  display:grid;
  gap:12px;
}
.support-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);}
.support-row:last-of-type{border-bottom:0;}
.support-label{color:var(--muted);font-size:13px;font-weight:700;}
.support-value{font-weight:900;}

.site-footer{border-top:1px solid var(--border);padding:26px 0;background:var(--bg);}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.footer-brand{font-weight:900;letter-spacing:.18em;}
.footer-meta{color:var(--muted);font-size:13px;}

.modal{position:fixed;inset:0;display:none;z-index:80;}
.modal.is-open{display:block;}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.56);}
.modal-panel{
  position:relative;
  width:min(520px,calc(100% - 32px));
  margin:10vh auto 0;
  border-radius:22px;
  background:var(--bg);
  border:1px solid var(--border);
  box-shadow:0 30px 80px rgba(0,0,0,.25);
  overflow:hidden;
}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border);}
.modal-title{margin:0;font-size:18px;letter-spacing:-.01em;}
.icon-btn{
  border:1px solid var(--border);
  background:var(--bg);
  border-radius:12px;
  padding:10px 12px;
  font-weight:900;
  cursor:pointer;
}
.icon-btn:hover{background:var(--surface);}
.modal-body{padding:18px 18px 0;}
.modal-lead{margin:0 0 8px;font-weight:900;}
.modal-sub{margin:0;color:var(--muted);}
.modal-actions{padding:18px 18px 18px;}

@media (min-width:760px){
  .products-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
  .goals-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .support-grid{grid-template-columns:1.1fr .9fr;align-items:start;}
}

@media (min-width:960px){
  .nav{display:flex;}
  .menu-btn{display:none;}
  .mobile-menu{display:none !important;}
  .hero-grid{grid-template-columns:1.1fr .9fr;align-items:center;}
  .about-grid{grid-template-columns:1.05fr .95fr;align-items:center;}
  .products-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .btn,.product-card{transition:none;}
  .btn:hover,.product-card:hover{transform:none;}
}
