/* imagetoGoods — 당신의 이미지를, 오래 간직할 형태로 (빌드 없는 정적 CSS)
   디자인 기준: 리디자인 시안 imagetogoods_homepage_redesign_3d_upload.html */
:root {
  --paper: #f5f1ea;
  --paper2: #ebe4d9;
  --ink: #24231f;
  --ink2: #4d4a43;
  --muted: #77736b;
  --line: #d9d1c5;
  --rust: #a65f47;
  --rust-dark: #804632;
  --white: #fffdfa;
  --dark: #262722;
  --mint: #dfe6dc;
  --rose: #efdcd3;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; line-height: 1.65; word-break: keep-all; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, textarea, select { font: inherit; }
.wrap { width: min(1200px, calc(100% - 56px)); margin: 0 auto; }
.eyebrow { display: block; font-size: 11px; letter-spacing: .19em; text-transform: uppercase; color: var(--rust); font-weight: 700; }
.serif { font-family: var(--serif); }
h1, h2, h3 { margin: 0; line-height: 1.25; }
h2 { font-size: clamp(30px, 4vw, 46px); font-weight: 500; letter-spacing: -.06em; line-height: 1.2; margin-top: 13px; }
h2 em, h1 em { font-family: var(--serif); font-weight: 500; color: var(--rust); letter-spacing: -.045em; }
.lead { font-size: 14px; line-height: 1.95; color: var(--muted); max-width: 520px; margin: 18px 0 0; }
.center { text-align: center; }
.center .lead { margin-left: auto; margin-right: auto; }

/* 상단 띠 · 머리말 */
.topline { min-height: 34px; padding: 8px 16px; background: var(--dark); color: var(--paper); display: flex; align-items: center; justify-content: center; text-align: center; font-size: 10px; letter-spacing: .13em; }
.header { position: sticky; top: 0; z-index: 30; background: rgba(245, 241, 234, .92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.header .wrap { height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.logo { font-weight: 700; letter-spacing: -.07em; font-size: 27px; line-height: 1; }
.logo span { color: var(--rust); }
.nav { display: flex; align-items: center; gap: 30px; font-size: 12px; letter-spacing: .04em; color: #5c5952; }
.nav a:hover, .nav a.on { color: var(--ink); }
.nav a.on { font-weight: 700; }
.nav .cta { color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 5px; margin-left: 10px; font-weight: 600; }
.menu-btn { display: none; background: none; border: 0; font-size: 12px; letter-spacing: .1em; color: var(--ink); cursor: pointer; padding: 8px 0; }
@media (max-width: 900px) {
  .menu-btn { display: block; }
  .nav { display: none; position: absolute; top: 78px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); border-bottom: 1px solid var(--line); padding: 6px 28px 18px; font-size: 13px; }
  .nav.open { display: flex; }
  .nav a { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .nav .cta { margin: 14px 0 0; border: 1px solid var(--ink); padding: 14px; text-align: center; }
}

/* 버튼 */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 15px 22px; font-size: 13px; font-weight: 600; border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.btn .arrow { font-size: 16px; line-height: 1; }
.btn.dark, .btn-ink { background: var(--ink); color: var(--white); }
.btn.dark:hover, .btn-ink:hover { background: var(--rust-dark); border-color: var(--rust-dark); }
.btn.light, .btn-line { border-color: var(--line); }
.btn.light:hover, .btn-line:hover { border-color: var(--ink); }
.btn-sm { padding: 11px 16px; font-size: 12px; }
.btn[disabled] { opacity: .55; cursor: wait; }
.actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* 첫 화면 */
.hero { padding: 58px 0 70px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 6%; align-items: center; min-height: 620px; }
.hero h1 { font-size: clamp(38px, 4.1vw, 56px); line-height: 1.14; letter-spacing: -.065em; font-weight: 500; margin: 20px 0 22px; }
.hero-copy p { font-size: 14px; line-height: 1.95; color: #6e6a62; max-width: 410px; margin: 0 0 30px; }
.hero-note { display: flex; gap: 12px; align-items: center; margin-top: 34px; font-size: 10px; color: #89847b; letter-spacing: .04em; }
.hero-note::before { content: ""; width: 32px; height: 1px; background: var(--rust); }

/* 업로드 → 제품(3D) 미리보기 */
.studio { position: relative; background: #e8dfd2; min-height: 540px; overflow: hidden; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; }
.studio::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 52% 43%, rgba(255, 255, 255, .78), transparent 53%), linear-gradient(145deg, #eee7dc, #d8cbbb); pointer-events: none; }
.studio-top, .studio-bottom { position: relative; z-index: 3; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.studio-label, .studio-counter, .mini-tag { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #777065; }
.opts { display: flex; gap: 6px; flex-wrap: wrap; }
.opts button { border: 1px solid #c9bcab; background: rgba(255, 253, 250, .55); color: #5b544a; font-size: 11px; padding: 7px 11px; cursor: pointer; letter-spacing: .02em; }
.opts[hidden] { display: none; }
.opts button.on { background: var(--dark); border-color: var(--dark); color: var(--white); }
.stage { position: relative; z-index: 1; flex: 1; min-height: 360px; display: flex; align-items: center; justify-content: center; perspective: 1100px; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.stage.drag { cursor: grabbing; }
.pedestal { position: absolute; bottom: 14px; width: 270px; height: 56px; border-radius: 50%; background: linear-gradient(180deg, #c8b8a4, #b4a18b); box-shadow: 0 22px 30px #6f5a4530; transform: rotateX(60deg); opacity: .8; }
.drag-hint { position: absolute; top: 2px; font-size: 10px; letter-spacing: .12em; color: #8c8476; text-transform: uppercase; }

.obj { position: relative; width: 190px; height: 330px; transform-style: preserve-3d; transform: rotateX(var(--rx, 4deg)) rotateY(var(--ry, -16deg)); will-change: transform; }
.obj .chain { position: absolute; left: 50%; top: 0; width: 0; height: 117px; transform: translateZ(-1px); }
.obj .chain::before, .obj .chain::after { content: ""; position: absolute; left: -1px; bottom: 0; width: 2px; height: 126px; background: linear-gradient(var(--metal-hi), var(--metal-b) 40%, var(--metal-b)); transform-origin: 50% 100%; }
.obj .chain::before { transform: rotate(-21deg); }
.obj .chain::after { transform: rotate(21deg); }
.obj .body { position: absolute; left: 50%; top: 122px; width: var(--w); height: var(--h); margin-left: calc(var(--w) / -2); transform-style: preserve-3d; }
.obj .layer { position: absolute; inset: 0; border-radius: var(--r); background: var(--metal-edge); }
.obj .front, .obj .back { position: absolute; inset: 0; border-radius: var(--r); backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.obj .front { background: var(--metal-face); box-shadow: inset 0 0 0 2px var(--metal-hi), inset 0 0 0 7px var(--metal-b), inset 0 0 0 10px var(--metal-hi); transform: translateZ(calc(var(--d) / 2)); display: flex; align-items: center; justify-content: center; }
.obj .back { background: var(--metal-face); box-shadow: inset 0 0 0 6px var(--metal-b); transform: rotateY(180deg) translateZ(calc(var(--d) / 2)); display: flex; align-items: center; justify-content: center; }
.obj .back::after { content: "imagetoGoods"; font-family: var(--serif); font-style: italic; font-size: 13px; color: var(--metal-b); opacity: .85; }
.obj .bail { position: absolute; left: 50%; top: -15px; width: 22px; height: 22px; margin-left: -11px; border-radius: 50%; background: transparent; box-shadow: inset 0 0 0 4px var(--metal-b), 0 0 0 1px var(--metal-hi); }
.obj .art { position: relative; width: calc(100% - 34px); height: calc(100% - 34px); border-radius: var(--r); overflow: hidden; background: #e2d8c8; display: flex; align-items: center; justify-content: center; box-shadow: inset 0 0 0 1px #ffffff8c, inset 0 4px 10px #0000001a; }
.obj .art img { width: 100%; height: 100%; object-fit: cover; display: none; }
.obj .art.has img { display: block; }
.obj .art.has .ph { display: none; }
.obj .shine { position: absolute; inset: 0; border-radius: var(--r); background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .5) 45%, transparent 58%); background-size: 260% 100%; background-position: var(--shine, 60%) 0; pointer-events: none; }
.ph { padding: 10px; text-align: center; font-size: 10px; line-height: 1.7; color: #777065; }
.ph strong { display: block; font-size: 11px; color: #5b544a; margin-bottom: 6px; letter-spacing: .06em; }
/* 형태: 펜던트 / 입체 키링 */
.obj.shape-pendant .body { --w: 180px; --h: 180px; --r: 50%; --d: 5px; top: 130px; }
.obj.shape-pendant .front { box-shadow: inset 0 0 0 2px var(--metal-hi), inset 0 0 0 4px var(--metal-b), inset 0 0 18px rgba(0, 0, 0, .12); }
.obj.shape-pendant .art { width: calc(100% - 30px); height: calc(100% - 30px); border-radius: 50%; background: transparent; box-shadow: none; }
.obj.shape-pendant .ph, .obj.shape-pendant .ph strong { color: var(--metal-b); }
.obj .art.engrave img { object-fit: contain; mix-blend-mode: multiply; opacity: .6; filter: drop-shadow(.7px .7px 0 rgba(255, 255, 255, .75)); }
.obj.shape-keyring .chain { display: none; }
.obj.shape-keyring .body { --w: 196px; --h: 222px; --r: 30px; --d: 12px; top: 96px; }
.obj.shape-keyring .bail { display: none; }
.obj.shape-keyring .front { align-items: flex-end; padding-bottom: 11px; }
.obj.shape-keyring .art { height: calc(100% - 40px) !important; }
.obj .kr-hole, .obj .kr-jump, .obj .kr-split { display: none; }
.obj.shape-keyring .kr-hole, .obj.shape-keyring .kr-jump, .obj.shape-keyring .kr-split { display: block; }
.obj.shape-keyring .kr-jump { transform: translateZ(calc(var(--d) / 2 + 1px)); }
.obj.shape-keyring .kr-split { transform: translateZ(calc(var(--d) / 2)) rotateY(35deg); }
.obj.shape-keyring .front { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .95), inset 0 0 0 7px rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .55); }
.obj.shape-keyring .layer { background: rgba(205, 220, 226, .6); }
.obj.shape-keyring .back { background: rgba(255, 255, 255, .6); box-shadow: inset 0 0 0 7px rgba(255, 255, 255, .6); }
.obj.shape-keyring .back::after { color: #858b8e; }
.obj.shape-keyring .art { width: calc(100% - 22px); height: calc(100% - 22px); }
/* 마감 */
.obj.gold { --metal-face: linear-gradient(115deg, #f5e4b6 0%, #b18a4c 15%, #f7e8bf 28%, #c09b5d 46%, #f8e9c4 64%, #98723d 82%, #e5c98b 100%); --metal-edge: #a07c43; --metal-b: #b18a4c; --metal-hi: #f9eacb; }
.obj.silver { --metal-face: linear-gradient(115deg, #fafaf6 0%, #a9aaa7 16%, #ffffff 30%, #b9bab6 48%, #f4f4f0 66%, #8b8d8a 84%, #e6e6e1 100%); --metal-edge: #8f918e; --metal-b: #a3a5a1; --metal-hi: #fbfbf8; }
.obj.rose { --metal-face: linear-gradient(115deg, #f6ddd0 0%, #b97d68 16%, #f8e3d7 30%, #c48d78 48%, #f9e6dc 66%, #9e6553 84%, #ebc2b0 100%); --metal-edge: #a86e5b; --metal-b: #b97d68; --metal-hi: #fbebe3; }
.studio-upload { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.upload-button { background: var(--dark); color: var(--white); border: 0; padding: 13px 16px; font-size: 12px; cursor: pointer; }
.upload-button:hover { background: var(--rust-dark); }
.upload-hint { font-size: 10px; color: #71695f; line-height: 1.5; }
.upload-hint strong { display: block; font-size: 11px; color: #3e3a33; }
.upload-status { display: block; font-size: 10px; color: var(--rust-dark); margin-top: 3px; min-height: 13px; }
.to-make { font-size: 12px; font-weight: 600; border-bottom: 1px solid var(--ink); padding-bottom: 4px; }
.to-make[hidden] { display: none; }

/* 신뢰 띠 */
.trustbar { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); padding: 21px 0; }
.trustitem { display: flex; justify-content: center; gap: 12px; align-items: center; border-right: 1px solid var(--line); font-size: 11px; color: #666158; line-height: 1.6; }
.trustitem:last-child { border: 0; }
.trustitem b { color: var(--ink); font-weight: 600; }
.trustnum { font-family: var(--serif); font-size: 20px; color: var(--rust); }

/* 섹션 공통 */
.section { padding: 100px 0; }
.section.alt { background: var(--paper2); }
.section-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 35px; gap: 25px; }
.section-head p { font-size: 12px; line-height: 1.9; color: var(--muted); max-width: 340px; margin: 0; }
.grid { display: grid; gap: 18px; }
.g2 { grid-template-columns: repeat(2, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }

/* 제품 라인 카드 */
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.product-card { min-width: 0; display: block; }
.product-art { height: 330px; background: #e7ded1; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.product-art::after { content: ""; position: absolute; width: 220px; height: 35px; bottom: 27px; background: #89745b20; border-radius: 50%; filter: blur(13px); }
.product-art.grey { background: #e2e1dc; }
.product-art.blush { background: #e9dcd4; }
.product-card:hover .product-art > div { transform: translateY(-6px) rotate(-4deg); }
.product-card:hover .product-art > .mock-pendant.disc { transform: translateY(-6px) rotate(0); }
.product-name { display: flex; justify-content: space-between; align-items: start; margin-top: 16px; gap: 10px; }
.product-name h3 { font-size: 15px; margin: 0 0 7px; font-weight: 600; letter-spacing: -.03em; }
.product-name p { font-size: 11px; color: var(--muted); margin: 0; line-height: 1.7; }
.product-arrow { font-size: 20px; color: var(--rust); }
.mock-pendant { width: 130px; height: 155px; border-radius: 46% 46% 50% 50%; border: 9px solid #c4a166; background: linear-gradient(140deg, #f8e8c0, #b48b4b, #f5e1af, #a37c43); box-shadow: inset 0 0 0 3px #f7e7c0, 10px 16px 20px #5b493225; display: flex; align-items: center; justify-content: center; transform: rotate(-9deg); transition: transform .4s; }
.mock-pendant .inner { width: 102px; height: 125px; border-radius: 46% 46% 50% 50%; background: #ded1bf; display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-size: 35px; color: #9e7955; }
.mock-pendant.silver { border-color: #b9b9b5; background: linear-gradient(120deg, #f9f9f4, #a9aaa7, #fff, #8b8d8a); }
.mock-pendant.silver .inner { background: #d9d9d3; color: #85857e; }
.mock-pendant.disc { width: 150px; height: 150px; border-radius: 50%; border-width: 4px; position: relative; }
.mock-pendant.disc::before { content: ""; position: absolute; top: -22px; left: 50%; width: 16px; height: 16px; margin-left: -8px; border-radius: 50%; border: 3px solid #c4a166; }
.mock-pendant.disc.silver::before { border-color: #b9b9b5; }
.mock-pendant.disc .inner { width: 120px; height: 120px; border-radius: 50%; background: transparent; color: #7a5a30; opacity: .7; font-size: 44px; }
.mock-pendant.disc.silver .inner { color: #6a6a66; }
.keyring.acrylic { position: relative; border: 2px solid rgba(255, 255, 255, .95); background: rgba(255, 255, 255, .55); box-shadow: inset 0 0 0 7px rgba(255, 255, 255, .5), 6px 8px 0 rgba(190, 210, 216, .7), 10px 15px 22px #55472e22; }
/* 실제 아크릴 키링 부자재: 아크릴 구멍 + 연결 고리(O링) + 이중 열쇠고리(스플릿 링) */
.kr-hole { position: absolute; top: 9px; left: 50%; width: 13px; height: 13px; margin-left: -6.5px; border-radius: 50%; background: rgba(120, 110, 100, .16); box-shadow: inset 1px 1px 2px rgba(0, 0, 0, .25), 0 0 0 1px rgba(255, 255, 255, .95); z-index: 2; }
.kr-jump { position: absolute; top: -5px; left: 50%; width: 12px; height: 24px; margin-left: -6px; border: 2.5px solid #a2a4a0; border-radius: 50%; box-shadow: inset 0 0 0 .5px #e9e9e6; z-index: 3; }
.kr-split { position: absolute; top: -45px; left: 50%; width: 44px; height: 44px; margin-left: -22px; border-radius: 50%; border: 3px solid #9c9e9a; z-index: 3; }
.kr-split::after { content: ""; position: absolute; inset: 1px -3px -3px 1px; border-radius: 50%; border: 2px solid #c8cac6; }
.keyring.acrylic .inner { color: #c0563e; }
.keyring { width: 170px; height: 170px; border: 12px solid #b4a17e; border-radius: 30%; background: #eee4d1; box-shadow: inset 0 0 0 3px #f9f0de, 10px 15px 22px #55472e26; display: flex; align-items: center; justify-content: center; transform: rotate(8deg); transition: transform .4s; }
.keyring .inner { font-family: var(--serif); font-size: 34px; color: #8c624e; transform: rotate(-8deg); }

/* 브랜드 이야기 (어두운 섹션) */
.dark-section { background: var(--dark); color: var(--white); }
.dark-section .eyebrow { color: #d6a18b; }
.story-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; align-items: center; }
.story-visual { min-height: 400px; background: #393a33; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.story-visual::before, .story-visual::after { content: ""; position: absolute; border: 1px solid #b8a17b55; border-radius: 50%; }
.story-visual::before { width: 280px; height: 280px; }
.story-visual::after { width: 220px; height: 220px; }
.story-object { position: relative; z-index: 1; width: 150px; height: 180px; border-radius: 48% 48% 50% 50%; border: 10px solid #c9a86e; background: linear-gradient(130deg, #f3dfb0, #a27a3d, #f4e1b3); box-shadow: inset 0 0 0 3px #f8e9c7, 15px 25px 30px #0005; display: flex; align-items: center; justify-content: center; color: #8a6338; font-family: var(--serif); font-size: 45px; transform: rotate(9deg); }
.story-copy h2 { margin-bottom: 24px; }
.story-copy > p { color: #c0bdb3; font-size: 13px; line-height: 2.1; max-width: 450px; }
.story-points { margin-top: 30px; border-top: 1px solid #55564e; }
.story-point { padding: 17px 0; border-bottom: 1px solid #55564e; display: grid; grid-template-columns: 40px 1fr; gap: 10px; }
.story-point span { color: #d6a18b; font-family: var(--serif); font-size: 18px; }
.story-point b { font-size: 13px; font-weight: 500; }
.story-point p { font-size: 11px; color: #aaa99f; line-height: 1.7; margin: 5px 0 0; }

/* 세 단계 */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; margin-top: 42px; }
.step { border-top: 1px solid var(--line); padding-top: 20px; }
.step .num { font-family: var(--serif); font-size: 26px; color: var(--rust); }
.step h3 { font-size: 15px; margin: 20px 0 9px; }
.step p { font-size: 12px; line-height: 1.9; color: var(--muted); margin: 0; max-width: 300px; }

/* 작가 에디션 */
.artist-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; }
.artist-feature { height: 390px; background: #ded7cc; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.artist-feature .orbit { position: absolute; width: 280px; height: 280px; border-radius: 50%; border: 1px solid #9f8b7860; }
.art-piece { position: relative; z-index: 1; width: 170px; height: 225px; background: #d5b29a; transform: rotate(-8deg); box-shadow: 15px 20px 24px #4d382c20; display: flex; align-items: center; justify-content: center; color: #784d3c; font-family: var(--serif); font-size: 50px; }
.art-piece::before { content: ""; position: absolute; inset: 12px; border: 1px solid #f3e3d6; }
.artist-side { display: grid; grid-template-rows: 1fr 1fr; gap: 18px; }
.artist-tile { background: #e5d8ce; position: relative; display: flex; align-items: center; justify-content: center; min-height: 180px; overflow: hidden; }
.artist-tile:nth-child(2) { background: #d8ded8; }
.mini-key { width: 100px; height: 100px; border-radius: 30%; background: #a2b6a7; transform: rotate(12deg); box-shadow: 10px 13px 20px #3f493c30; display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-size: 28px; color: #344c40; }
.artist-tile:nth-child(2) .mini-key { background: #d3a18b; color: #734d40; border-radius: 50%; }
.artist-caption { margin-top: 18px; display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.artist-caption h3 { margin: 0 0 6px; font-size: 15px; }
.artist-caption p { margin: 0; font-size: 11px; color: var(--muted); line-height: 1.7; }
.limited { font-size: 9px; letter-spacing: .13em; border: 1px solid var(--line); padding: 7px 9px; color: #777065; white-space: nowrap; }

/* 팝업 */
.popup-box { background: #e8ded0; padding: 45px 50px; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.popup-box h2 { font-size: 30px; margin: 10px 0; }
.popup-box p { font-size: 12px; line-height: 1.8; color: #71695f; margin: 0; }
.popup-mark { font-family: var(--serif); font-size: 60px; color: #b48b72; line-height: 1; }

/* 목록 (팝업 · 작가 · 상품) */
.card { background: var(--white); border: 1px solid var(--line); padding: 28px; }
.list-empty { padding: 34px; border: 1px dashed #c9bcab; background: rgba(255, 253, 250, .6); text-align: center; color: var(--ink2); font-size: 13px; line-height: 1.8; }
.list-empty b { display: block; color: var(--ink); font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.pop-card .when { font-weight: 700; color: var(--rust); font-size: 12px; letter-spacing: .04em; }
.pop-card h3 { font-size: 18px; margin: 6px 0; font-weight: 600; }
.pop-card p { margin: 0; color: var(--ink2); font-size: 13px; }
.art-card { padding: 0; overflow: hidden; }
.art-card .img { aspect-ratio: 4 / 3; background: var(--paper2); }
.art-card .img img, .prod-card .img img { width: 100%; height: 100%; object-fit: cover; }
.art-card .body { padding: 20px 22px 24px; }
.art-card h3 { font-size: 16px; font-weight: 600; }
.art-card p { margin: 6px 0 0; color: var(--ink2); font-size: 13px; }
.art-card a.more, .pop-card a.more { display: inline-block; margin-top: 10px; font-weight: 600; font-size: 12px; border-bottom: 1px solid currentColor; }
.prod-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.prod-card .img { aspect-ratio: 1; background: var(--paper2); }
.prod-card .body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.prod-card .cat { font-size: 11px; color: var(--muted); letter-spacing: .04em; }
.prod-card b { font-size: 15px; font-weight: 600; }
.prod-card .price { font-weight: 700; }
.prod-card .buy { margin-top: auto; padding-top: 10px; font-weight: 600; font-size: 12px; color: var(--rust); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; }
.chips button { border: 1px solid var(--line); background: var(--white); padding: 8px 16px; font-size: 13px; cursor: pointer; }
.chips button.on { background: var(--ink); color: var(--white); border-color: var(--ink); }

/* FAQ */
.faq { max-width: 820px; margin: 34px auto 0; border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); padding: 20px 4px; }
.faq summary { cursor: pointer; font-weight: 600; font-size: 15px; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; float: right; color: var(--rust); font-weight: 400; font-size: 20px; line-height: 1; }
.faq details[open] summary::after { content: "–"; }
.faq p { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.9; }

/* 마무리 띠 */
.band { background: var(--dark); color: var(--white); padding: 56px 50px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.band h2 { font-size: clamp(26px, 3.4vw, 36px); margin: 10px 0 0; }
.band p { margin: 10px 0 0; color: #b7b4aa; font-size: 13px; }
.band .eyebrow { color: #d6a18b; }
.band .btn { border-color: #6b6a62; color: var(--white); }
.band .btn.gold { background: var(--rust); border-color: var(--rust); }
.band .btn.gold:hover { background: var(--rust-dark); border-color: var(--rust-dark); }

/* 하위 페이지 머리 */
.page-hero { padding: 70px 0 50px; border-bottom: 1px solid var(--line); }
.page-hero h1 { font-size: clamp(34px, 4.6vw, 54px); font-weight: 500; letter-spacing: -.06em; margin: 16px 0 0; }
.page-hero .actions { margin-top: 24px; }

/* 신청 폼 */
.form { display: grid; gap: 18px; }
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: grid; gap: 7px; font-size: 13px; font-weight: 600; }
.field i { color: var(--rust); font-style: normal; }
.field small { font-weight: 400; color: var(--muted); }
.field input, .field select, .field textarea { font-weight: 400; font-size: 15px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 0; background: var(--white); color: var(--ink); outline: none; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--ink); }
.field textarea { min-height: 120px; resize: vertical; }
.types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.types label { border: 1px solid var(--line); padding: 14px; background: var(--white); cursor: pointer; font-weight: 600; font-size: 14px; }
.types label small { display: block; font-weight: 400; color: var(--muted); font-size: 12px; margin-top: 2px; }
.types input { margin-right: 8px; accent-color: var(--rust); }
.types label:has(input:checked) { border-color: var(--ink); background: #f1e9de; }
.drop { border: 1px dashed #b9ab98; padding: 28px; text-align: center; background: var(--white); cursor: pointer; color: var(--ink2); font-weight: 400; font-size: 14px; }
.drop.over { border-color: var(--rust); background: #f1e9de; }
.carried { font-size: 12px; font-weight: 400; color: var(--rust-dark); }
.thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 4px; }
.thumbs div { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--paper2); }
.thumbs img { width: 100%; height: 100%; object-fit: cover; }
.thumbs button { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(36, 35, 31, .75); color: #fff; cursor: pointer; font-size: 13px; line-height: 1; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--ink2); line-height: 1.7; }
.check input { margin-top: 4px; accent-color: var(--rust); }
.form-msg { font-size: 14px; min-height: 20px; }
.form-msg.ok { color: #2f6b55; font-weight: 700; }
.form-msg.err { color: #b0392b; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.note-box { padding: 18px 20px; background: var(--paper); border: 1px solid var(--line); font-size: 13px; color: var(--ink2); line-height: 1.8; }
.note-box b { color: var(--ink); }
.note-box ul, .okno ul { margin: 6px 0 0; padding-left: 18px; }
.okno { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.okno > div { padding: 20px 22px; font-size: 13px; line-height: 1.8; }
.okno .ok { background: var(--mint); }
.okno .no { background: var(--rose); }
.okno b { display: block; margin-bottom: 4px; font-size: 14px; }

/* 하단 */
.footer { background: #22231f; color: #eae6de; padding: 48px 0 25px; }
.footer-top { display: flex; justify-content: space-between; gap: 30px; padding-bottom: 38px; border-bottom: 1px solid #4a4b44; flex-wrap: wrap; }
.footer-brand p { font-size: 11px; color: #aaa99f; line-height: 1.8; margin: 14px 0 0; }
.footer-brand p a { text-decoration: underline; }
.footer-links { display: flex; gap: 34px; font-size: 11px; color: #c7c3b9; flex-wrap: wrap; align-items: flex-start; }
.footer-links a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 20px; font-size: 10px; color: #8f9087; line-height: 1.8; }
.footer-bottom a { text-decoration: underline; }
.notice { max-width: 540px; text-align: right; }
.kakao-fab { position: fixed; right: 16px; bottom: 24px; z-index: 40; padding: 13px 20px; font-size: 15px; font-weight: 700; line-height: 1.2; background: #fee500; color: #191919; border: 0; border-radius: 22px; box-shadow: 0 6px 18px rgba(0, 0, 0, .14); }
.kakao-fab::after { content: ""; position: absolute; left: 18px; bottom: -9px; border-width: 10px 9px 0 4px; border-style: solid; border-color: #fee500 transparent transparent transparent; transform: skewX(-12deg); }

/* 개인정보처리방침 */
.policy { max-width: 820px; }
.policy h1 { font-size: 32px; font-weight: 500; letter-spacing: -.04em; margin-bottom: 18px; }
.policy h3 { margin: 30px 0 8px; font-size: 17px; }
.policy p, .policy li { color: var(--ink2); font-size: 14px; }
.policy table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 8px 0; }
.policy th, .policy td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; vertical-align: top; }
.policy th { background: var(--paper2); }

@media (max-width: 900px) {
  .wrap { width: min(100% - 36px, 640px); }
  .hero { grid-template-columns: 1fr; gap: 35px; padding: 45px 0 55px; min-height: 0; }
  .hero-copy { max-width: 560px; }
  .studio { min-height: 520px; }
  .trustbar { grid-template-columns: 1fr; padding: 0; }
  .trustitem { justify-content: flex-start; padding: 14px 4px; border-right: 0; border-bottom: 1px solid var(--line); }
  .trustitem:last-child { border-bottom: 0; }
  .section { padding: 70px 0; }
  .section-head { display: block; }
  .section-head p { margin-top: 18px; }
  .product-grid { grid-template-columns: 1fr 1fr; gap: 24px 14px; }
  .product-art { height: 260px; }
  .story-layout { grid-template-columns: 1fr; gap: 35px; }
  .story-visual { min-height: 330px; }
  .steps { gap: 15px; }
  .artist-grid { grid-template-columns: 1fr; }
  .artist-feature { height: 320px; }
  .artist-side { grid-template-columns: 1fr 1fr; grid-template-rows: 190px; }
  .popup-box { padding: 32px 25px; }
  .g3, .g4 { grid-template-columns: repeat(2, 1fr); }
  .footer-bottom { flex-direction: column; }
  .notice { text-align: left; }
  .band { padding: 40px 28px; }
}
@media (max-width: 600px) {
  .g2, .g3, .g4, .okno, .form .row, .types { grid-template-columns: 1fr; }
  .card { padding: 22px 18px; }
}
@media (max-width: 480px) {
  .topline { font-size: 9px; letter-spacing: .08em; }
  .header .wrap { height: 68px; }
  .nav { top: 68px; }
  .logo { font-size: 24px; }
  .hero h1 { font-size: 40px; }
  .studio { padding: 17px; min-height: 520px; }
  .stage { min-height: 340px; }
  .pedestal { width: 220px; }
  .product-grid { grid-template-columns: 1fr; }
  .product-art { height: 300px; }
  .steps { grid-template-columns: 1fr; gap: 25px; }
  .step h3 { margin-top: 10px; }
  .popup-box { display: block; }
  .popup-box .btn { margin-top: 20px; }
  .popup-mark { font-size: 42px; margin-top: 25px; }
  .thumbs { grid-template-columns: repeat(4, 1fr); }
}
