.t-top{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;padding:10px 12px;position:sticky;top:0;background:rgba(246,240,234,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:10;border-bottom:1px solid var(--line)}
.t-back{font-size:30px;line-height:1;text-align:center}
.t-logo{text-align:center;font-family:var(--en);font-size:19px;letter-spacing:.06em}
.t-logo i{color:var(--rose)}
.t-hero{padding:30px 20px 6px;text-align:center}
.t-h1{font-family:var(--serif);font-size:27px;line-height:1.35;margin-top:6px}
.t-free{display:inline-block;margin-top:14px;background:var(--rose);color:#fff;font-weight:700;font-size:13px;padding:6px 14px;border-radius:99px}
.t-step{padding:26px 20px 0}
.t-num{font-weight:700;font-size:16px;display:flex;align-items:center;gap:8px;margin-bottom:12px}
.t-num b{width:24px;height:24px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:12.5px;display:grid;place-items:center}
.drop{display:block;border:2px dashed var(--line);border-radius:22px;background:var(--card);cursor:pointer;overflow:hidden;position:relative}
.drop-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:220px;text-align:center;padding:20px}
.drop-ic{width:56px;height:56px;border-radius:50%;background:var(--bg2);display:grid;place-items:center;font-size:28px;color:var(--rose);margin-bottom:8px}
.drop small{color:var(--ink2);font-size:13px}
.drop img{width:100%;max-height:420px;object-fit:contain;background:#1c1512}
.drop.has{border-style:solid}
.drop.has:after{content:"사진 바꾸기";position:absolute;right:10px;bottom:10px;background:rgba(43,33,30,.7);color:#fff;font-size:12.5px;padding:6px 12px;border-radius:99px}
.tips{list-style:none;margin-top:12px;display:grid;gap:4px}
.tips li{font-size:13.5px;color:var(--ink2);padding-left:18px;position:relative}
.tips li:before{content:"✓";position:absolute;left:0;color:var(--rose);font-weight:700}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.t-card{border:2px solid transparent;border-radius:16px;overflow:hidden;background:var(--card);padding:0;cursor:pointer;text-align:center}
.t-card img{aspect-ratio:3/4;width:100%;object-fit:cover;object-position:50% 20%}
.t-card span{display:block;font-size:12.5px;font-weight:600;padding:7px 4px}
.t-card.on{border-color:var(--rose);box-shadow:0 0 0 3px var(--rose2)}
.t-sub{font-size:14px;font-weight:600;margin:18px 0 8px}
.t-sub em{font-style:normal;font-weight:400;color:var(--ink3);font-size:12px}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink2);padding:10px 0;cursor:pointer}
.agree input{width:20px;height:20px;flex:0 0 20px;margin-top:1px;accent-color:var(--rose)}
.agree b{color:var(--ink)}
.t-link{color:var(--rose);text-decoration:underline;text-underline-offset:2px}
.t-go{width:100%;margin-top:12px;min-height:58px;font-size:17px}
.t-go:disabled{opacity:.35;cursor:not-allowed}
.t-left{text-align:center;font-size:13px;color:var(--ink2);margin-top:10px;min-height:1.2em}
.t-result{padding:40px 20px 10px;scroll-margin-top:60px}
.t-ba{margin-top:16px;aspect-ratio:3/4}
.pay{margin-top:22px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px}
.pay-t{font-family:var(--serif);font-size:19px;font-weight:700;margin-bottom:12px}
.plan{position:relative;width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;border:1.5px solid var(--line);background:var(--bg);border-radius:16px;padding:15px 16px;cursor:pointer;margin-top:8px}
.plan b{display:block;font-size:15.5px}
.plan small{font-size:12.5px;color:var(--ink2)}
.plan em{font-style:normal;font-family:var(--serif);font-weight:700;font-size:19px;white-space:nowrap}
.plan.best{border-color:var(--rose);background:#FBF3F1}
.plan.best i{position:absolute;top:-9px;left:14px;background:var(--rose);color:#fff;font-style:normal;font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px}
.plan:disabled{opacity:.5}
.pay-n{font-size:12px;color:var(--ink3);margin-top:12px}
.paid{margin-top:20px}
.paid .btn{width:100%;min-height:56px;font-size:16.5px}
.paid-n{text-align:center;font-size:13px;color:var(--ink2);margin-top:8px}
.t-next{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.t-next .btn.line{margin-top:0}
.t-info{margin-top:40px;padding-top:24px;padding-bottom:24px}
.foot.biz p{font-size:11.5px;color:var(--ink3);margin-bottom:3px}
.foot.biz .en{font-size:18px;color:var(--ink);margin-bottom:8px}
.app{padding-bottom:40px}
.busy{position:fixed;inset:0;background:rgba(30,20,16,.6);z-index:70;display:grid;place-items:center;padding:30px}
.busy[hidden]{display:none}
.busy-card{background:var(--bg);border-radius:24px;padding:30px 26px;text-align:center;max-width:320px;width:100%}
.spin{width:52px;height:52px;border-radius:50%;border:4px solid var(--rose2);border-top-color:var(--rose);margin:0 auto 18px;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.busy-t{font-family:var(--serif);font-size:18px;font-weight:700}
.busy-s{font-size:13px;color:var(--ink2);margin-top:6px}

/* 키티티 분석 리포트 */
.rep{margin-top:26px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:22px 18px}
.rep-h{font-family:var(--serif);font-size:21px;margin-top:2px}
.rep-goal{font-size:14px;color:var(--ink2);margin-top:6px}
.rep-goal b{color:var(--ink)}
.rep-sec{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.rep-t{font-weight:700;font-size:15px;margin-bottom:10px}
.rep-t em,.rep-t2 em{font-style:normal;font-weight:400;font-size:12px;color:var(--ink3);margin-left:4px}
.rep-t2{font-weight:600;font-size:13.5px;margin:14px 0 10px}
.rep-dl{display:grid;grid-template-columns:52px 1fr;gap:6px 10px;font-size:14px}
.rep-dl dt{color:var(--ink3);font-size:13px}
.rep-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.rep-tags span{font-size:12.5px;background:var(--bg2);padding:5px 10px;border-radius:99px}
.rep-tags.no span{background:#F6E7E4;color:#9A4E45}
.rep-season b{font-family:var(--serif);font-size:19px;margin-right:6px}
.rep-season span{font-size:12.5px;color:var(--ink2)}
.sw{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sw div{text-align:center}
.sw i{display:block;width:54px;height:54px;border-radius:50%;margin:0 auto 6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.sw b{display:block;font-size:12px;color:var(--ink3);font-weight:500}
.sw span{font-size:13px;font-weight:600}
.rep-note{font-size:12px;color:var(--ink3);margin-top:12px}
.rep-parts{list-style:none}
.rep-parts li{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.rep-parts li:last-child{border-bottom:0}
.rep-parts b{color:var(--rose);font-size:12.5px;padding-top:1px}
.rep-list{list-style:none;display:grid;gap:7px}
.rep-list li{font-size:13.5px;color:var(--ink2);padding-left:12px;position:relative}
.rep-list li:before{content:"·";position:absolute;left:2px;color:var(--rose);font-weight:700}
.rep-list b{color:var(--ink)}
.rep-cta{width:100%;margin-top:20px}

/* v3: 화이트·블랙·골드 — AI 미리보기는 '아틀리에' 느낌 */
.t-top{background:rgba(17,17,17,.94);border-bottom-color:#222}
.t-top .t-back{color:var(--gold)}
.t-logo{color:#fff}
.t-logo i{color:var(--gold)}
.t-hero{background:#111;color:#fff;padding:34px 22px 30px;margin-bottom:6px;position:relative;overflow:hidden}
.t-hero:before{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border:1px solid rgba(194,160,97,.35);border-radius:50%}
.t-hero:after{content:"";position:absolute;right:-20px;top:-20px;width:120px;height:120px;border:1px solid rgba(194,160,97,.25);border-radius:50%}
.t-hero .eyebrow{color:var(--gold)}
.t-hero .lead{color:#bdb5a8}
.t-free{background:var(--gold);color:#111}
.t-num b{background:var(--gold);color:#111}
.t-card.on{border-color:#111;box-shadow:0 0 0 3px var(--gold-l)}
.drop-ic{color:var(--gold-d)}
.tips li:before{color:var(--gold-d)}
.plan.best{border-color:var(--gold);background:#FBF8F1}
.plan.best i{background:#111;color:var(--gold)}
.rep{border-color:#111}
.rep .eyebrow{color:var(--gold-d)}
.rep-parts b{color:var(--gold-d)}
.spin{border-color:var(--gold-l);border-top-color:var(--gold)}

/* v4 Maison */
.t-top{background:rgba(21,18,15,.95)}
.t-hero{background:var(--ground)}
.t-hero:before,.t-hero:after{border-color:rgba(179,154,110,.28)}
.t-free{background:transparent;color:var(--champ-l);border:1px solid rgba(179,154,110,.6);border-radius:0;font-weight:500;letter-spacing:.06em}
.t-num b{background:var(--espresso);color:var(--ivory)}
.drop{border-radius:0;border-width:1px;background:var(--paper)}
.t-card{border-radius:0;background:transparent}
.t-card.on{border-color:var(--espresso);box-shadow:none}
.plan{border-radius:0;background:transparent}
.plan.best{background:var(--paper);border-color:var(--champ)}
.plan.best i{background:var(--espresso);color:var(--champ-l);border-radius:0;letter-spacing:.1em}
.pay,.rep,.busy-card{border-radius:0}
.rep{border-color:var(--line);background:var(--paper)}

/* v5 숨쉬기 + 음영 */
.t-step{padding-top:34px}
.t-num{margin-bottom:16px}
.drop{box-shadow:0 1px 2px rgba(28,25,22,.04),0 10px 28px rgba(28,25,22,.06)}
.tips{margin-top:16px;gap:7px}
.t-grid{gap:10px}
.t-card{box-shadow:0 1px 2px rgba(28,25,22,.04),0 6px 18px rgba(28,25,22,.05)}
.agree{padding:12px 0;line-height:1.7}
.pay,.rep{box-shadow:0 1px 2px rgba(28,25,22,.05),0 14px 36px rgba(28,25,22,.08);padding:24px 20px}
.plan{padding:18px 18px;margin-top:10px;box-shadow:0 1px 2px rgba(28,25,22,.04)}
.rep-sec{margin-top:24px;padding-top:22px}
.rep-parts li{padding:11px 0;line-height:1.7}
.rep-list{gap:10px}
.rep-list li{line-height:1.7}
.sw i{box-shadow:0 6px 16px rgba(28,25,22,.12)}
.t-ba{box-shadow:0 14px 36px rgba(28,25,22,.1)}
