h1,h2,h3,section,[id]{scroll-margin-top:96px}

:root{
  --bg:#1A1714;        /* 승인 팔레트 */
  --bg2:#211D19;       /* 한 단계 밝은 면 */
  --mat:#221E1A;       /* 사진 매트 */
  --line:#332E28;
  --ink:#EFEBE4;
  --body:#B8B2A9;
  --mut:#8A837B;
  --accent:#E05008;    /* 면적 0 규칙 — 테두리·밑줄·표시자만 */
  --mat:12px;                    /* 매트 폭 상수 — 어떤 슬롯에서도 24px 초과 금지 */
  --s1:64px; --s2:96px; --s3:144px; --s4:216px;   /* 간격 토큰 4개만 */
  --mat:12px;                    /* 매트 폭 상수 — 어떤 슬롯에서도 24px 초과 금지 */
  --s1:64px; --s2:96px; --s3:144px; --s4:216px;   /* 간격 토큰 4개만 */
  --mono:ui-monospace,"SFMono-Regular",Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--body);color-scheme:dark;overflow-x:hidden;
  font-family:"Pretendard Variable",Pretendard,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;line-height:1.75}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* 라틴 라벨 = 모노 (한글 제목 = Pretendard) — 이중 타이포 */
.lab{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--mut);text-transform:uppercase}
/* 한글 라벨 — 모노/자간 금지(자간이 벌어져 '성 함'처럼 읽힘) */
.lab-ko{font-family:"Pretendard Variable",Pretendard,sans-serif;font-size:12px;
  letter-spacing:.01em;color:var(--mut);font-weight:500}

/* ── 헤더 (얇은 고정) ── */
header{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;
  justify-content:space-between;gap:20px;padding:16px 32px;
  background:var(--bg);border-bottom:1px solid var(--line)}
header .bd{font-family:var(--mono);font-size:12px;letter-spacing:.24em;color:var(--ink)}
header nav{display:flex;gap:26px}
header nav a{font-size:13.5px;color:var(--body);padding:2px 0;border-bottom:1px solid transparent}
header nav a:hover{color:var(--ink);border-bottom-color:var(--accent)}
.hbtn{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--ink);
  border:1px solid var(--accent);padding:9px 16px;transition:.2s;white-space:nowrap}
.hbtn:hover{background:var(--accent);color:#fff}

/* ── 히어로 37/63 분할 ── */
.hero{display:grid;grid-template-columns:37fr 63fr;gap:0;
  padding:132px 32px 96px;align-items:center;max-width:1560px;margin:0 auto}
.hero .left{padding-right:48px}
.hero .left .lab{display:block;margin-bottom:26px}
.hero .left .big{font-size:clamp(28px,3.5vw,50px);line-height:1.28;color:var(--ink);
  font-weight:700;letter-spacing:-.02em;word-break:keep-all}
.hero .left h1{margin-top:22px;font-size:15px;font-weight:400;color:var(--body);letter-spacing:-.01em}
.hero .btns{display:flex;gap:10px;margin-top:38px;flex-wrap:wrap}
.hero .btns a{font-family:var(--mono);font-size:11px;letter-spacing:.14em;padding:14px 22px;
  border:1px solid var(--line);color:var(--ink);transition:.2s;min-height:44px;display:flex;align-items:center}
.hero .btns a.pri{border-color:var(--accent)}
.hero .btns a:hover{background:var(--bg2);border-color:var(--ink)}

/* 액자 — 사진을 자르지 않는다 */
.frame{background:var(--mat);border:1px solid var(--line);padding:var(--mat)}
.frame img{width:100%;height:100%;object-fit:contain;background:var(--mat)}
.hero .frame{height:min(86vh,700px);width:fit-content;margin-left:auto}
.hero .frame img{height:100%;width:auto;max-width:none}

/* ── 소개 ── */
.intro{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.intro .in{max-width:1560px;margin:0 auto;padding:var(--s3) 32px;
  display:grid;grid-template-columns:1.35fr 380px;gap:var(--s2);align-items:start}
.intro .side{padding-top:24px}
.intro h2{font-size:clamp(19px,2.1vw,29px);line-height:1.62;color:var(--ink);font-weight:700;
  letter-spacing:-.01em;word-break:keep-all}
.intro .side p{font-size:14.5px;color:var(--body)}
.intro .side p+p{margin-top:18px}

/* ── 작품 스트립 ── */
.work{padding:var(--s3) 0 var(--s2)}
.work .hd{max-width:1560px;margin:0 auto;padding:0 32px 40px;display:flex;
  justify-content:space-between;align-items:baseline;gap:20px}
.strip{display:flex;gap:16px;overflow-x:auto;padding:0 32px 12px;scroll-snap-type:x mandatory}
.strip::-webkit-scrollbar{height:2px}
.strip::-webkit-scrollbar-thumb{background:var(--line)}
.strip figure{flex:0 0 240px;scroll-snap-align:start}
.strip .frame{height:320px;width:240px}   /* 3:4 슬롯 */
.strip figcaption{margin-top:10px;font-family:var(--mono);font-size:11px;
  letter-spacing:.06em;color:var(--mut)}

/* ── 스타일 카드 ── */
.styles{padding:var(--s2) 32px var(--s3);max-width:1560px;margin:0 auto}
.styles .hd{margin-bottom:48px}
.styles h2{font-size:clamp(20px,2.2vw,30px);color:var(--ink);font-weight:700;margin-top:10px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,264px);
  justify-content:space-between;gap:48px 28px}
.cards>div{display:flex;flex-direction:column}
.cards a.go{margin-top:auto}
.cards .frame{height:352px;width:264px;margin-bottom:18px}   /* 3:4 슬롯 */
.cards h3{font-size:16.5px;color:var(--ink);font-weight:700;margin-bottom:8px}
.cards .lab{display:block;margin-bottom:10px}
.cards p{font-size:13.5px;color:var(--body);word-break:keep-all}
.cards a.go{display:inline-block;margin-top:12px;font-size:13px;color:var(--ink);
  border-bottom:1px solid var(--accent);padding-bottom:2px}

/* ── 작업 방식 ── */
.how{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.how .in{max-width:1560px;margin:0 auto;padding:144px 32px}
.how .row{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:48px}
.how .row div{border-top:1px solid var(--line);padding-top:20px}
.how .row h4{font-size:15.5px;color:var(--ink);font-weight:700;margin:10px 0 8px}
.how .row p{font-size:13.5px;word-break:keep-all}

/* ── 저널 ── */
.journal{padding:var(--s3) 32px;max-width:1560px;margin:0 auto}
.journal .hd{margin-bottom:40px}
.journal h2{font-size:clamp(20px,2.2vw,30px);color:var(--ink);font-weight:700;margin-top:10px}
.jl a{display:grid;grid-template-columns:52px 1fr 150px 66px;gap:20px;align-items:center;
  border-top:1px solid var(--line);padding:22px 0;transition:.2s}
.jl a:last-child{border-bottom:1px solid var(--line)}
.jl a:hover{background:var(--bg2);padding-left:12px}
.jl .ti{font-size:16px;color:var(--ink);font-weight:700;word-break:keep-all;line-height:1.5}
.jl .rt{text-align:right}

/* ── FAQ ── */
.faq{background:var(--bg2);border-top:1px solid var(--line)}
.faq .in{max-width:1000px;margin:0 auto;padding:144px 32px}
.faq h2{font-size:clamp(20px,2.2vw,30px);color:var(--ink);font-weight:700;margin:10px 0 40px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:22px 0;font-size:15.5px;color:var(--ink);font-weight:700;
  list-style:none;display:flex;justify-content:space-between;gap:16px;word-break:keep-all}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-weight:400;font-size:19px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 22px;font-size:14.5px;max-width:80ch;word-break:keep-all}

/* ── 푸터 ── */
footer{padding:96px 32px 40px;max-width:1560px;margin:0 auto}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:32px}
.fg h5{margin-bottom:14px}
.fg p,.fg a{font-size:13.5px;display:block;line-height:2}
.fg a:hover{color:var(--ink)}
.fbot{margin-top:64px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ── 등장 ── 기본은 '보임'. JS가 살아 있을 때만 숨긴다(JS 죽어도 백지 안 됨) */
.rv{opacity:1}
html.js .rv{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
html.js .rv.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html.js .rv{opacity:1;transform:none;transition:none}}

@media(max-width:1000px){
  header{padding:12px 18px}header nav{display:none}
  .hero{grid-template-columns:1fr;gap:36px;padding:104px 18px 72px}
  .hero .left{padding-right:0}
  .hero .frame{height:auto;width:auto;margin-left:0}
  .hero .frame img{height:auto;width:100%}
  .intro .in,.how .in,.journal,.styles,.faq .in,footer{padding-left:18px;padding-right:18px}
  .intro .in{grid-template-columns:1fr;gap:34px;padding-top:96px;padding-bottom:96px}
  .work .hd{padding-left:18px;padding-right:18px}
  .strip{padding-left:18px;padding-right:18px}
  .strip figure{flex:0 0 200px}.strip .frame{height:266px}
  .cards{grid-template-columns:1fr 1fr;gap:32px 16px}
  .how .row{grid-template-columns:1fr 1fr}
  .jl a{grid-template-columns:1fr;gap:6px}.jl .rt{display:none}
  .fg{grid-template-columns:1fr 1fr}
  .work,.styles,.journal,.how .in,.faq .in{padding-top:96px;padding-bottom:96px}
}
@media(max-width:520px){ .cards{grid-template-columns:1fr} .how .row{grid-template-columns:1fr} }


/* ═══ 하위 페이지 공통 ═══ */
.page{max-width:1560px;margin:0 auto;padding:132px 32px 0}
.crumb{display:flex;gap:10px;align-items:center;margin-bottom:26px}
.crumb a:hover{color:var(--ink)}
.ptitle{font-size:clamp(26px,3.4vw,46px);line-height:1.28;color:var(--ink);font-weight:700;
  letter-spacing:-.02em;word-break:keep-all;max-width:22ch}
.plead{margin-top:20px;font-size:15.5px;max-width:62ch;word-break:keep-all}

/* 스타일 상세 */
.sdetail{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:64px 0 0;align-items:start}
.sdetail .frame{height:min(72vh,560px);width:fit-content;position:sticky;top:96px}
.sdetail .frame img{height:100%;width:auto;max-width:none}
.sbody p{font-size:15px;margin-bottom:16px;word-break:keep-all}
.sbody p.k{color:var(--ink);font-weight:700}
.sbody p.spc{height:12px;margin:0}
.sbody dl{margin:8px 0 20px;border-top:1px solid var(--line)}
.sbody dt{font-size:14.5px;color:var(--ink);font-weight:700;padding:16px 0 4px}
.sbody dd{font-size:14.5px;padding:0 0 16px;border-bottom:1px solid var(--line);word-break:keep-all}
.ctaband{margin:144px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:56px 0;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.ctaband b{font-size:clamp(20px,2.4vw,32px);color:var(--ink);font-weight:700}
.ctaband .g{display:flex;gap:10px;flex-wrap:wrap}
.ctaband a{font-family:var(--mono);font-size:11px;letter-spacing:.14em;padding:14px 22px;
  border:1px solid var(--line);color:var(--ink);min-height:44px;display:flex;align-items:center}
.ctaband a.pri{border-color:var(--accent)}
.ctaband a:hover{background:var(--bg2);border-color:var(--ink)}

/* 블로그 글 */
.article-wrap{max-width:760px;margin:0 auto;padding:132px 32px 0}
.meta-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.post-body{margin-top:48px}
.post-body p{font-size:16px;line-height:1.95;margin-bottom:22px;word-break:keep-all}
.post-body h2{font-size:clamp(19px,2.1vw,25px);color:var(--ink);font-weight:700;
  margin:56px 0 18px;line-height:1.42;word-break:keep-all}
.post-body strong{color:var(--ink);font-weight:700}
.post-body a{color:var(--ink);border-bottom:1px solid var(--accent)}
.post-body .figure{margin:48px 0;height:420px;width:fit-content}
.post-body .figure img{height:100%;width:auto;max-width:100%}
.post-body .figure figcaption{margin-top:10px;font-family:var(--mono);font-size:11px;
  letter-spacing:.06em;color:var(--mut)}
.author{margin-top:64px;padding:28px;border:1px solid var(--line);background:var(--bg2);
  display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
.author .t{flex:1;min-width:240px}
.author h4{font-size:15.5px;color:var(--ink);font-weight:700;margin-bottom:8px}
.author p{font-size:13.5px;word-break:keep-all}
.author a{display:inline-block;margin-top:12px;font-size:13px;color:var(--ink);
  border-bottom:1px solid var(--accent);padding-bottom:2px}
.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:56px 0 0}
.prevnext a{border:1px solid var(--line);padding:22px;transition:.2s}
.prevnext a:hover{background:var(--bg2);border-color:var(--mut)}
.prevnext .t{display:block;margin-top:8px;font-size:14.5px;color:var(--ink);
  font-weight:700;word-break:keep-all;line-height:1.5}

/* 문의 */
.cwrap{display:grid;grid-template-columns:1fr 1fr;gap:72px;padding:56px 0 0;align-items:start}
.chan{display:block;border:1px solid var(--line);padding:22px;margin-bottom:12px;transition:.2s}
.chan:hover{background:var(--bg2);border-color:var(--mut)}
.chan.pri{border-color:var(--accent)}
.chan b{display:block;font-size:16px;color:var(--ink);font-weight:700;margin:8px 0 6px}
.chan span.d{font-size:13.5px;display:block;word-break:keep-all}
form .f{margin-bottom:20px}
form label{display:block;margin-bottom:8px}
form input,form textarea,form select{width:100%;background:var(--mat);border:1px solid var(--line);
  color:var(--ink);padding:14px;font-size:14.5px;font-family:inherit;min-height:48px}
form input:focus,form textarea:focus,form select:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 2px rgba(224,80,8,.3)}
form textarea{min-height:150px;resize:vertical;line-height:1.7}
form button{width:100%;background:transparent;border:1px solid var(--accent);color:var(--ink);
  font-family:var(--mono);font-size:12px;letter-spacing:.16em;padding:17px;cursor:pointer;
  min-height:52px;transition:.2s}
form button:hover{background:var(--accent);color:#fff}
.hp{position:absolute;left:-9999px}
.note{font-size:12.5px;color:var(--mut);margin-top:14px;word-break:keep-all}

@media(max-width:1000px){
  .page,.article-wrap{padding-left:18px;padding-right:18px;padding-top:104px}
  .sdetail{grid-template-columns:1fr;gap:36px}
  .sdetail .frame{height:auto;width:auto}
  .sdetail .frame img{height:auto;width:100%}
  .cwrap{grid-template-columns:1fr;gap:40px}
  .prevnext{grid-template-columns:1fr}
  .ctaband{margin-top:96px;padding:40px 0}
}


/* ═══ 모바일 메뉴 (JS 없이 동작) ═══ */
.mnav{display:none}
.mnav>summary{list-style:none;width:44px;height:44px;display:flex;align-items:center;
  justify-content:center;cursor:pointer;border:1px solid var(--line);color:var(--ink);
  font-size:16px;line-height:1}
.mnav>summary::-webkit-details-marker{display:none}
.mnav>summary::after{content:"\2261"}
.mnav[open]>summary::after{content:"\00D7"}
.mnav .panel{position:fixed;left:0;right:0;top:72px;bottom:0;background:#231F1B;
  border-top:1px solid var(--line);padding:28px 18px;z-index:70;overflow-y:auto}
.mnav .panel a{display:block;font-size:17px;color:var(--ink);font-weight:700;
  padding:18px 0;border-bottom:1px solid var(--line);min-height:44px}
.mnav .panel .langs{display:flex;gap:18px;margin-top:28px;align-items:center}
.mnav .panel .langs a,.mnav .panel .langs span{border:0;padding:8px 0;font-size:13px;font-weight:400;line-height:1}
@media(max-width:1000px){ .mnav{display:block} }


/* ═══ 모바일 메뉴 (JS 없이 동작) ═══ */
.mnav{display:none}
.mnav>summary{list-style:none;width:44px;height:44px;display:flex;align-items:center;
  justify-content:center;cursor:pointer;border:1px solid var(--line);color:var(--ink);
  font-size:16px;line-height:1}
.mnav>summary::-webkit-details-marker{display:none}
.mnav>summary::after{content:"\2261"}
.mnav[open]>summary::after{content:"\00D7"}
.mnav .panel{position:fixed;left:0;right:0;top:72px;bottom:0;background:#231F1B;
  border-top:1px solid var(--line);padding:28px 18px;z-index:70;overflow-y:auto}
.mnav .panel a{display:block;font-size:17px;color:var(--ink);font-weight:700;
  padding:18px 0;border-bottom:1px solid var(--line);min-height:44px}
.mnav .panel .langs{display:flex;gap:18px;margin-top:28px;align-items:center}
.mnav .panel .langs a,.mnav .panel .langs span{border:0;padding:8px 0;font-size:13px;font-weight:400;line-height:1}
@media(max-width:1000px){ .mnav{display:block} }


/* ═══ 갤러리 그리드 ═══ */
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,264px);
  justify-content:space-between;gap:28px}
.gal-grid .frame{height:352px;width:264px}
.gal-grid figure{margin:0}

/* ═══ FAQ 목록 (전용 페이지) ═══ */
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-of-type{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;padding:22px 0;font-size:15.5px;color:var(--ink);font-weight:700;
  list-style:none;display:flex;justify-content:space-between;gap:16px;word-break:keep-all}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";color:var(--accent);font-weight:400;font-size:19px;line-height:1}
.faq-list details[open] summary::after{content:"3"}
.faq-list details p{padding:0 0 22px;font-size:14.5px;max-width:80ch;word-break:keep-all}

@media(max-width:1000px){
  .gal-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
  .gal-grid .frame{height:auto;width:auto;aspect-ratio:3/4}
}


/* 섹션 제목 (h2) */
.secl{font-size:clamp(20px,2.2vw,30px);color:var(--ink);font-weight:700;
  margin:var(--s1) 0 var(--s1)}
/* 4단계 항목 제목 — h4에서 h3로 내렸으나 크기는 그대로 */
.how .row h3.stp{font-size:15.5px;color:var(--ink);font-weight:700;margin:10px 0 8px}
.author h3.stp{font-size:15.5px;color:var(--ink);font-weight:700;margin-bottom:8px}
