/* 루크 작성. 무드코디 헤어 모션 스튜디오 — 다크 차콜/세이지 톤, 320px부터 대응. 클래스는 모두 hm- 접두사로 격리합니다. */
.hm-studio{margin:22px 0 6px;padding:20px;border:1px solid #3e4b3f;border-radius:16px;background:linear-gradient(180deg,#1f2822 0%,#181e1a 100%);color:#e8efe1;box-shadow:0 18px 44px #0000002e;overflow:hidden}
.hm-head{margin-bottom:16px}
.hm-kicker{margin:0 0 6px;font-size:10px;letter-spacing:1.6px;color:#adc79d;font-weight:700}
.hm-title{margin:0 0 8px;font-size:19px;line-height:1.4;letter-spacing:-.4px;color:#f0f4ea}
.hm-lead{margin:0;font-size:12px;line-height:1.75;color:#b8c6ae}

.hm-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
@media(min-width:620px){.hm-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}

.hm-stage{position:relative;margin:0 auto;max-width:300px;width:100%}
.hm-svg{display:block;width:100%;height:auto;aspect-ratio:240/280;border-radius:20px;box-shadow:0 0 0 1px #3c4b3e,0 14px 34px #00000040}
.hm-canvas{position:relative}
.hm-badge{position:absolute;top:10px;left:10px;z-index:1;max-width:calc(100% - 20px);padding:5px 9px;border-radius:999px;background:#141b16e6;border:1px solid #4b5f49;color:#dbe9ce;font-size:10px;line-height:1.35;font-weight:700}
.hm-counter{position:absolute;right:12px;bottom:10px;font-size:10px;letter-spacing:1.4px;color:#c1d4ae;opacity:.85;font-variant-numeric:tabular-nums}
.hm-caption{margin:10px 2px 0;font-size:11px;line-height:1.65;color:#aebca5}

.hm-controls{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:12px}
.hm-nav,.hm-play,.hm-copy,.hm-swatch,.hm-thumb{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hm-nav{width:46px;height:46px;border-radius:50%;border:1px solid #52624f;background:#29342c;color:#e5eddd;font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.hm-nav:hover{background:#314034;border-color:#6a8166}
.hm-play{min-height:46px;min-width:116px;padding:0 16px;border-radius:999px;border:1px solid #52624f;background:transparent;color:#d5e4c7;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.hm-play[aria-pressed=true]{background:#c1d4ae;color:#132017;border-color:#c1d4ae}
.hm-play-icon{font-size:10px;letter-spacing:-1px}

.hm-info{min-width:0}
.hm-meta{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:11px}
.hm-len{padding:3px 9px;border-radius:999px;background:#2f4032;color:#dbe9ce;font-weight:700}
.hm-idx{color:#9fb293;letter-spacing:1.2px;font-variant-numeric:tabular-nums}
.hm-name{margin:0 0 6px;font-size:20px;line-height:1.35;letter-spacing:-.4px;color:#f2f6ec}
.hm-desc{margin:0 0 14px;font-size:13px;line-height:1.75;color:#bfccb6}
.hm-request{padding:14px;border-radius:12px;background:#222c25;border:1px solid #3e4b3f}
.hm-request-label{margin:0 0 6px;font-size:11px;font-weight:700;color:#b5c8a8}
.hm-request-text{margin:0 0 12px;font-size:12px;line-height:1.75;color:#e2eadb;user-select:text;-webkit-user-select:text}
.hm-copy{width:100%;min-height:46px;border-radius:9px;border:1px solid #51674d;background:#29342c;color:#d8e9c8;font-size:13px;font-weight:700}
.hm-copy:hover{background:#314034}

.hm-color-wrap{margin-top:16px}
.hm-color-label{margin:0 0 8px;font-size:12px;font-weight:700;color:#d8e3cf}
.hm-colors{display:flex;flex-wrap:wrap;gap:8px}
.hm-swatch{flex:1 1 92px;min-height:46px;display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border-radius:999px;border:1px solid #4a5b48;background:#232d26;color:#dce7d4;font-size:12px;text-align:left}
.hm-swatch[aria-checked=true]{border-color:#c1d4ae;background:#2b392e;box-shadow:inset 0 0 0 1px #c1d4ae}
.hm-dot{display:inline-block;flex:0 0 auto;width:24px;height:24px;border-radius:50%;box-shadow:0 0 0 1px #ffffff2e,inset 0 2px 3px #ffffff26}
.hm-note{margin:8px 0 0;font-size:11px;line-height:1.6;color:#a9b8a0}

.hm-hint{margin:20px 0 8px;font-size:11px;line-height:1.6;color:#a9b8a0}
.hm-thumbs{position:relative;display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#4a5b48 transparent;overscroll-behavior-x:contain}
.hm-thumb{position:relative;flex:0 0 76px;min-height:104px;padding:6px 4px 8px;border-radius:12px;border:1px solid #3e4b3f;background:#1c241e;color:#c9d6c0;display:flex;flex-direction:column;align-items:center;gap:4px;scroll-snap-align:start;transition:border-color .2s,background .2s,transform .2s}
.hm-thumb:hover{border-color:#5d725a;background:#222c25}
.hm-thumb[aria-checked=true]{border-color:#c1d4ae;background:#263329;box-shadow:inset 0 0 0 1px #c1d4ae}
.hm-thumb-svg{display:block;width:52px;height:auto;aspect-ratio:180/240;border-radius:8px;background:radial-gradient(circle at 50% 40%,#2d3b31,#161c18)}
.hm-thumb-num{position:absolute;top:5px;left:7px;font-size:8px;letter-spacing:1px;color:#9fb293}
.hm-thumb-label{font-size:10px;line-height:1.3;text-align:center;word-break:keep-all}
.hm-privacy{margin-top:12px}
.hm-status{margin:6px 0 0;min-height:1.4em;font-size:12px;color:#d0dfc3}

.hm-studio button:focus-visible{outline:2px solid #d2e5bf;outline-offset:2px;box-shadow:0 0 0 4px #40553d}
.hm-thumb:focus-visible{outline-offset:-2px}

/* 모션: 스타일을 바꿀 때 한 번만 재생합니다. 상시 반복 애니메이션은 없습니다. */
.hm-hair{transform-box:fill-box;transform-origin:50% 0;transition:opacity .18s ease,transform .18s ease}
.hm-hair.is-leave{opacity:0;transform:translateY(-5px) scale(.985)}
.hm-hair.is-enter{animation:hm-settle .62s cubic-bezier(.22,.9,.24,1) both}
.hm-hair-back.is-enter{animation-delay:.04s}
.hm-hair.is-enter .hm-strand{stroke-dasharray:1 1;animation:hm-draw .95s cubic-bezier(.3,.7,.2,1) both}
.hm-sweep{opacity:0}
.hm-sweep-wrap.is-sweep .hm-sweep{animation:hm-sweep 1.15s ease-out .18s both}
.hm-info.is-enter .hm-name,.hm-info.is-enter .hm-desc,.hm-info.is-enter .hm-request-text{animation:hm-rise .42s ease both}
.hm-info.is-enter .hm-desc{animation-delay:.05s}
.hm-info.is-enter .hm-request-text{animation-delay:.1s}
@keyframes hm-settle{0%{opacity:0;transform:translateY(-8px) scale(.97,.95)}60%{opacity:1;transform:translateY(.6px) scale(1,1.004)}100%{opacity:1;transform:none}}
@keyframes hm-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes hm-sweep{0%{opacity:0;transform:translateX(0)}22%{opacity:1}100%{opacity:0;transform:translateX(330px)}}
@keyframes hm-rise{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
 .hm-studio *,.hm-studio *::before,.hm-studio *::after{animation:none!important;transition:none!important}
 .hm-hair.is-leave{opacity:1;transform:none}
 .hm-sweep{display:none}
}

@media(max-width:420px){
 .hm-studio{padding:16px 14px;margin-inline:-2px;border-radius:14px}
 .hm-title{font-size:17px}
 .hm-name{font-size:18px}
 .hm-controls{gap:8px}
 .hm-play{min-width:0;flex:1 1 auto;max-width:150px}
 .hm-swatch{flex-basis:84px;padding-right:8px;font-size:11px}
 .hm-thumb{flex-basis:70px}
}
@media(max-width:340px){
 .hm-studio{padding:14px 10px}
 .hm-badge{font-size:9px;padding:4px 7px}
 .hm-swatch{flex:1 1 100%}
 .hm-thumb{flex-basis:66px}
}
