:root{
  --ink:#211d1d;--ink-soft:#4e4745;--muted:#675f5c;--rose:#b83f57;--rose-dark:#953044;
  --rose-soft:#f7e3e3;--cream:#f6f1ec;--paper:#fffdfb;--sage:#dfe5dc;--line:#ded6cf;
  --serif:"Noto Serif JP Variable","Noto Serif JP","Yu Mincho",serif;--sans:"Noto Sans JP Variable","Noto Sans JP","Yu Gothic",sans-serif;
  --page:min(1240px,calc(100% - 64px));--shadow:0 24px 70px rgba(54,42,38,.12)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.mm-page{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.mm-page a{color:inherit;text-decoration:none}.mm-page button,.mm-page input{font:inherit}.mm-page button{cursor:pointer}.mm-page img{display:block;max-width:100%}[hidden]{display:none!important}
.mm-page :where(main,section,article,header,footer,nav,form,fieldset,figure,div){min-width:0}
.mm-page :where(h1,h2,h3){overflow-wrap:normal;word-break:keep-all;line-break:strict}
.mm-brand{font:500 18px/1 Georgia,"Times New Roman",serif;letter-spacing:.13em;white-space:nowrap}.mm-brand span{color:var(--rose)}
.mm-header{height:76px;padding:0 max(32px,calc((100% - 1240px)/2));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid rgba(222,214,207,.75);background:rgba(255,253,251,.94);backdrop-filter:blur(14px);position:sticky;top:0;z-index:50}.mm-nav{display:flex;align-items:center;gap:31px;height:100%;font-size:12px;color:var(--ink-soft)}.mm-nav a{height:100%;display:grid;place-items:center;position:relative}.mm-nav a[aria-current=page]:after{content:"";position:absolute;left:25%;right:25%;bottom:0;height:2px;background:var(--rose)}.mm-account{justify-self:end;padding:11px 18px;border:1px solid var(--line);font-size:11px;background:#fff}.mm-menu{display:none;justify-self:end;border:0;background:var(--rose);color:#fff;padding:9px 15px;font-weight:700;font-size:11px}
.mm-kicker{margin:0 0 15px;color:var(--rose-dark);font-size:10px;font-weight:700;letter-spacing:.22em}.mm-main{min-width:0}.mm-button{min-height:60px;padding:10px 23px;border:1px solid var(--rose);display:inline-flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;color:var(--rose-dark);font-weight:700;font-size:14px;letter-spacing:.02em;transition:transform .18s,box-shadow .18s}.mm-button:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(75,54,48,.10)}.mm-button.primary{background:var(--rose);color:#fff}.mm-button.dark{background:var(--ink);border-color:var(--ink);color:#fff}.mm-button.quiet{border-color:var(--line);color:var(--ink)}.mm-button small{display:block;font-size:9px;letter-spacing:.1em;font-weight:700;opacity:.9}.mm-button:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* Home */
.editorial-hero{width:var(--page);min-height:760px;margin:auto;display:grid;grid-template-columns:.86fr 1.14fr;gap:74px;align-items:center;padding:68px 0 90px}.editorial-copy h1{margin:0;font:500 clamp(48px,5.3vw,78px)/1.32 var(--serif);letter-spacing:.025em}.editorial-copy h1 em{font-style:normal;color:var(--rose)}.hero-lead{max-width:530px;margin:26px 0 31px;color:var(--muted);font-size:14px;line-height:2}.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hero-actions .mm-button{min-height:76px;display:grid;grid-template-columns:1fr auto;align-content:center}.hero-actions .mm-button small{grid-column:1/-1}.hero-facts{display:flex;gap:25px;margin-top:26px;color:var(--muted);font-size:10px}.hero-facts span{display:flex;align-items:baseline;gap:6px}.hero-facts b{font:600 20px var(--serif);color:var(--ink)}
.brand-story{height:650px;position:relative}.brand-story:before{content:"";position:absolute;inset:34px 0 0 70px;background:var(--cream)}.brand-main{position:absolute;inset:0 0 35px 110px;margin:0;overflow:hidden;box-shadow:var(--shadow)}.brand-main img{width:100%;height:100%;object-fit:cover;object-position:center 24%}.brand-main figcaption{position:absolute;right:20px;top:20px;padding:11px 14px;background:rgba(255,253,251,.91);display:grid;gap:2px}.brand-main figcaption span{font-size:7px;letter-spacing:.16em;color:var(--rose)}.brand-main figcaption b{font:500 13px var(--serif)}.brand-before{position:absolute;left:0;bottom:0;width:180px;margin:0;border:10px solid var(--paper);box-shadow:0 16px 45px rgba(55,42,38,.16)}.brand-before img{width:100%;aspect-ratio:.78;object-fit:cover;object-position:center 23%}.brand-before figcaption{position:absolute;left:10px;bottom:10px;padding:5px 8px;background:#fff;font-size:7px;letter-spacing:.14em}.brand-note{position:absolute;right:-15px;bottom:0;width:225px;padding:21px 23px;background:var(--ink);color:#fff}.brand-note span{display:block;color:#f09bad;font-size:8px;letter-spacing:.15em}.brand-note strong{display:block;margin-top:7px;font:500 19px/1.55 var(--serif)}
.experience{background:var(--cream);padding:100px max(32px,calc((100% - 1240px)/2))}.section-intro{display:grid;grid-template-columns:1.05fr .95fr;column-gap:80px;align-items:end;margin-bottom:42px}.section-intro .mm-kicker{grid-column:1}.section-intro h2{grid-column:1;margin:0;font:500 clamp(36px,4.5vw,56px)/1.45 var(--serif)}.section-intro>p:last-child{grid-column:2;grid-row:1/3;margin:0;color:var(--muted);font-size:13px;line-height:2}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.experience-card{background:var(--paper);border:1px solid var(--line)}.experience-visual{height:430px;position:relative;overflow:hidden;background:#e8dfda}.split-demo>img,.split-demo>div,.split-demo>div img{width:100%;height:100%;object-fit:cover;object-position:center 24%}.split-demo>div{position:absolute;inset:0 0 0 50%;border-left:2px solid #fff}.split-demo>div img{position:absolute;right:0;width:200%;max-width:none}.split-demo>span{position:absolute;left:50%;bottom:17px;transform:translateX(-50%);padding:8px 12px;background:#fff;font-size:8px;font-weight:700;letter-spacing:.14em}.top3-demo{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--paper)}.top3-demo figure{position:relative;margin:0;overflow:hidden}.top3-demo img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.top3-demo figure span{position:absolute;left:10px;top:10px;width:27px;height:27px;background:#fff;display:grid;place-items:center;font:500 11px var(--serif)}.experience-copy{position:relative;padding:32px 34px 36px}.route-number{position:absolute;right:30px;top:26px;font:500 58px Georgia,serif;color:var(--rose-soft)}.route-tag{margin:0 0 10px;color:var(--rose-dark);font-size:8px;font-weight:700;letter-spacing:.18em}.experience-copy h3{margin:0;font:500 30px/1.5 var(--serif)}.experience-copy>p:not(.route-tag){margin:15px 0;color:var(--muted);font-size:12px;line-height:1.9}.experience-copy ul{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 25px}.experience-copy li{padding:7px 10px;background:var(--cream);font-size:9px}.experience-copy>a{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;color:var(--rose-dark);font-size:12px;font-weight:700}
.journey{width:var(--page);margin:auto;padding:100px 0}.journey>header{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.journey h2{margin:0;font:500 clamp(34px,4vw,50px)/1.45 var(--serif)}.journey-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.journey-grid article{border-top:1px solid var(--ink);padding-top:13px}.journey-photo{height:330px;position:relative;overflow:hidden;background:var(--cream)}.journey-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.journey-photo>span,.order-preview>i{position:absolute;right:13px;top:13px;width:38px;height:38px;display:grid;place-items:center;background:var(--rose);color:#fff;border-radius:50%;font:500 14px var(--serif);font-style:normal}.journey-grid article>small{display:block;margin-top:16px;color:var(--rose);font-size:8px;letter-spacing:.18em}.journey-grid h3{margin:8px 0;font:500 20px var(--serif)}.journey-grid p{margin:0;color:var(--muted);font-size:11px;line-height:1.8}.journey-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}.journey-stack img{min-width:0}.order-preview>img{width:64%}.order-preview>div{position:absolute;right:10px;bottom:12px;width:44%;padding:15px;background:#fff;border:1px solid var(--rose);display:grid;gap:8px}.order-preview b{color:var(--rose);font-size:8px;letter-spacing:.12em}.order-preview span{border-top:1px solid var(--line);padding-top:5px;font-size:8px}
.consultation-package{background:var(--ink);color:#fff;padding:90px max(32px,calc((100% - 1240px)/2));display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center}.package-portraits{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.package-portraits figure{margin:0;position:relative;overflow:hidden}.package-portraits img{width:100%;aspect-ratio:.68;object-fit:cover;object-position:center 25%}.package-portraits figcaption{position:absolute;left:0;right:0;bottom:0;padding:12px 6px;background:rgba(33,29,29,.82);font-size:9px;text-align:center}.package-copy h2{margin:0;font:500 clamp(35px,4vw,52px)/1.5 var(--serif)}.package-copy h2 em{color:#f093a3;font-style:normal}.package-copy>p:not(.mm-kicker){margin:20px 0;color:#c9c0bd;font-size:13px;line-height:2}.package-includes{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #514a48}.package-includes span{padding:13px 0;border-bottom:1px solid #514a48;font-size:11px}.package-includes span:before{content:"✓";color:#f093a3;margin-right:8px}.package-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px}.package-cta strong{font:500 34px var(--serif)}.package-cta small{display:block;color:#a9a09e;font:400 8px var(--sans)}
.mm-footer{padding:43px max(32px,calc((100% - 1240px)/2));display:flex;justify-content:space-between;gap:50px;border-top:1px solid var(--line);background:var(--paper)}.mm-footer p{margin:10px 0 0;color:var(--muted);font-size:10px}.mm-footer nav{display:grid;grid-template-columns:repeat(3,auto);gap:12px 28px;font-size:10px;color:var(--muted)}

/* Shared consultation flows */
.mm-flow-header{height:70px;padding:0 max(24px,calc((100% - 1160px)/2));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:30}.mm-flow-header .mm-back{font-size:11px}.mm-flow-header .mm-brand{justify-self:center}.mm-flow-label{justify-self:end;color:var(--muted);font-size:10px;letter-spacing:.08em}.mm-flow{width:min(1120px,calc(100% - 48px));margin:0 auto;padding:54px 0 90px}.mm-flow-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:54px;align-items:start}.mm-guide-visual{position:sticky;top:96px}.mm-guide-photo{position:relative;height:650px;overflow:hidden;background:var(--cream)}.mm-guide-photo img{width:100%;height:100%;object-fit:cover;object-position:center 23%}.mm-guide-photo figcaption{position:absolute;left:16px;right:16px;bottom:16px;padding:16px 18px;background:rgba(255,253,251,.92);font-size:10px;line-height:1.7}.mm-guide-points{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.mm-guide-points span{padding:12px 4px;background:#fff;text-align:center;font-size:8px}.mm-flow-card{padding:42px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 70px rgba(55,42,37,.07)}.mm-flow-title{margin:0;font:500 clamp(34px,4.4vw,54px)/1.45 var(--serif)}.mm-flow-title em{color:var(--rose);font-style:normal}.mm-flow-lead{margin:15px 0 28px;color:var(--muted);font-size:13px;line-height:1.9}.mm-intake-photo{border:1px solid var(--line);padding:10px;background:var(--cream)}.mm-photo-picker{display:block;position:relative;min-height:340px;overflow:hidden;background:#ede5df;cursor:pointer}.mm-photo-picker input{position:absolute;opacity:0;pointer-events:none}.mm-photo-picker .placeholder{min-height:340px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:12px;line-height:1.8}.mm-photo-picker .placeholder b{display:block;color:var(--rose);font-size:36px;font-weight:400}.mm-photo-picker img{width:100%;height:480px;object-fit:cover;object-position:center 25%}.mm-change-photo{position:absolute;right:13px;bottom:13px;background:#fff;padding:9px 12px;font-size:10px}.mm-photo-checks{display:flex;justify-content:center;gap:18px;padding:12px 5px 2px;color:var(--muted);font-size:9px}.mm-photo-checks span:before{content:"✓";color:var(--rose);margin-right:5px}.mm-choice-block{margin-top:30px}.mm-choice-block h2{margin:0 0 13px;font:500 18px var(--serif)}.mm-required{display:inline-block;margin-right:8px;padding:4px 7px;background:var(--rose);color:#fff;font:700 8px var(--sans)}.mm-mood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mm-mood{min-height:96px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;gap:5px;color:var(--ink);font-size:11px}.mm-mood i{font-style:normal;font-size:24px;color:var(--rose)}.mm-mood.selected{border:2px solid var(--rose);background:#fff7f7;color:var(--rose-dark)}.mm-free-preview{margin:26px 0 19px;padding:18px;background:var(--cream);border-left:3px solid var(--rose)}.mm-free-preview h3{margin:0 0 6px;font:500 16px var(--serif)}.mm-free-preview p{margin:0;color:var(--muted);font-size:10px;line-height:1.8}.mm-consent{display:flex;gap:10px;color:var(--muted);font-size:10px;line-height:1.7}.mm-consent input{width:18px;height:18px;accent-color:var(--rose);flex:0 0 auto}.mm-submit{width:100%;min-height:60px;margin-top:17px;border:0;background:var(--rose);color:#fff;font-weight:700;font-size:14px}.mm-submit:disabled{background:#cfc8c4}.mm-status{min-height:20px;margin:10px 0 0;text-align:center;color:var(--rose-dark);font-size:11px}.mm-purchase-note{margin:10px 0 0;text-align:center;color:var(--muted);font-size:9px}

/* Free and paid results */
.mm-result,.mm-paid{width:min(1080px,calc(100% - 48px));margin:auto;padding:52px 0 90px}.mm-analysis,.mm-paid-intro{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;padding-bottom:28px;border-bottom:1px solid var(--line);text-align:left}.mm-analysis .mm-kicker,.mm-paid-intro .mm-kicker{grid-column:1}.mm-analysis h1,.mm-paid-intro h1{grid-column:1;margin:0;font:500 clamp(32px,4vw,48px)/1.45 var(--serif)}.mm-analysis h1 em,.mm-paid-intro h1 em{color:var(--rose);font-style:normal}.mm-analysis>p:last-child,.mm-paid-intro>p:last-child{grid-column:2;grid-row:1/3;margin:0;color:var(--muted);font-size:12px;line-height:1.9}.mm-recommendation{padding:34px 0;border-bottom:1px solid var(--line)}.mm-role{display:inline-flex;padding:7px 11px;background:var(--rose);color:#fff;font-size:9px;font-weight:700;letter-spacing:.08em}.mm-rec-head{display:flex;align-items:center;gap:15px;margin-bottom:17px}.mm-rec-head h2{margin:0;font:500 clamp(25px,3vw,36px) var(--serif)}.mm-comparison-shell{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;background:var(--cream);border:1px solid var(--line)}.mm-comparison-shell>img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.mm-generate-state{min-height:450px;display:grid;place-items:center;text-align:center;padding:30px;background:var(--cream)}.mm-generate-state i{display:block;width:33px;height:33px;border:2px solid #e7c1c5;border-top-color:var(--rose);border-radius:50%;margin:0 auto 14px;animation:mm-spin .8s linear infinite}@keyframes mm-spin{to{transform:rotate(360deg)}}.mm-reasons{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;margin-top:16px}.mm-reasons p{margin:0;padding:13px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.8}.mm-reasons p:before{content:"✓";color:var(--rose);margin-right:8px}.mm-cut-note{margin:18px 0 0;padding:17px;background:var(--cream);font-size:11px;line-height:1.8}.mm-locked-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}.mm-locked-row{min-height:140px;padding:22px;display:grid;grid-template-columns:1fr 62px;align-items:start;gap:10px;border:1px solid var(--line);background:#fff}.mm-locked-row p{margin:13px 0 0;color:var(--muted);font-size:10px;line-height:1.8}.mm-lock-visual{grid-column:2;grid-row:1/3;height:62px;display:grid;place-items:center;background:var(--cream)}.mm-paywall{margin-top:20px;padding:34px;background:var(--ink);color:#fff}.mm-paywall h2{margin:0 0 22px;font:500 clamp(24px,3.5vw,36px)/1.55 var(--serif)}.mm-paywall h2 em{color:#f19aaa;font-style:normal}.mm-value-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;border-top:1px solid #504846}.mm-value-list span{padding:12px 0;border-bottom:1px solid #504846;font-size:10px}.mm-value-list span:before{content:"✓";color:#f19aaa;margin-right:7px}.mm-paywall .mm-submit{background:var(--rose)}.mm-error{padding:13px;margin-top:13px;background:#fff0f2;color:#a53a4c;font-size:11px}
.mm-paid-intro{margin-bottom:28px}.mm-top3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mm-top3-card{padding:0;border:1px solid var(--line);background:#fff;text-align:left}.mm-top3-card.selected{border:2px solid var(--rose)}.mm-top3-card img{width:100%;aspect-ratio:.75;object-fit:cover;object-position:center 25%;background:var(--cream)}.mm-top3-meta{padding:14px}.mm-top3-meta small{display:block;color:var(--rose);font-size:8px;font-weight:700;letter-spacing:.08em}.mm-top3-meta strong{display:block;margin-top:5px;font:500 14px/1.5 var(--serif)}.mm-paid-detail{margin-top:38px}.mm-paid-detail h2{margin:0 0 15px;font:500 23px var(--serif)}.mm-order{margin-top:34px;padding:30px;background:var(--cream)}.mm-order h2{margin:0 0 16px;font:500 23px var(--serif)}.mm-spec{margin:0;background:#fff}.mm-spec>div{display:grid;grid-template-columns:145px 1fr;border-bottom:1px solid var(--line);font-size:11px}.mm-spec dt,.mm-spec dd{margin:0;padding:12px}.mm-spec dt{font-weight:700;border-right:1px solid var(--line)}.mm-stylist-copy{margin:18px 0 0;padding:20px;border:1px solid var(--rose);background:#fff;text-align:center;font:500 13px/1.8 var(--serif)}.mm-stylist-copy b{display:block;color:var(--rose);font:700 8px var(--sans);letter-spacing:.12em}.mm-report-actions{display:grid;grid-template-columns:1.4fr 1fr auto;gap:10px;margin-top:18px}.mm-report-actions .mm-button{width:100%}.mm-empty{margin-top:50px;padding:70px 25px;border:1px solid var(--line);text-align:center}

/* Login */
.mm-auth{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:var(--cream);overflow-x:clip}.mm-auth>*{min-width:0}.mm-auth-visual{position:relative;overflow:hidden;min-height:100vh;color:#fff}.mm-auth-visual:after{content:"";position:absolute;inset:0;background:rgba(33,29,29,.18)}.mm-auth-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}.mm-auth-visual-content{position:relative;z-index:2;height:100%;padding:48px clamp(35px,6vw,80px);display:flex;flex-direction:column;justify-content:space-between}.mm-auth-visual .mm-brand{color:#fff}.mm-auth-visual h1{margin:0;font:500 clamp(37px,4.8vw,62px)/1.45 var(--serif);text-shadow:0 2px 18px rgba(0,0,0,.2)}.mm-auth-visual h1 em{color:#ffd8df;font-style:normal}.mm-auth-visual p{max-width:470px;color:#fff;font-size:12px;line-height:2}.mm-auth-panel{min-width:0;display:grid;place-items:center;padding:55px 35px;background:var(--paper)}.mm-auth-card{width:min(100%,430px);max-width:100%;min-width:0}.mm-auth-card h2{margin:0;font:500 34px/1.5 var(--serif)}.mm-auth-card .lead{margin:12px 0 25px;color:var(--muted);font-size:11px;line-height:1.8}.mm-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:22px}.mm-tabs button{border:0;background:#fff;padding:12px;color:var(--muted)}.mm-tabs button.selected{color:var(--rose);border-bottom:2px solid var(--rose)}.mm-auth-form{min-width:0;display:grid;gap:15px}.mm-auth-form label{min-width:0}.mm-auth-form label span{display:block;margin-bottom:6px;font-size:10px}.mm-auth-form input{width:100%;max-width:100%;height:52px;border:1px solid var(--line);padding:0 13px;background:#fff}.mm-auth-form input[readonly]{background:var(--cream);color:var(--muted)}.mm-auth-form input:focus{outline:2px solid var(--rose-soft);border-color:var(--rose)}.mm-auth-form button{width:100%;max-width:100%;height:56px;border:0;background:var(--rose);color:#fff;font-weight:700}.mm-auth-form .mm-auth-secondary{height:44px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:10px}.mm-fineprint{overflow-wrap:anywhere;padding-top:15px;border-top:1px solid var(--line);color:var(--muted);font-size:9px;line-height:1.8}

@media(max-width:800px){
  .mm-flow-header{padding:0 12px;grid-template-columns:1fr auto 1fr}.mm-flow-header .mm-back{white-space:nowrap;font-size:9px}.mm-flow-label{white-space:nowrap;font-size:8px}
  :root{--page:calc(100% - 30px)}.mm-header{height:64px;padding:0 15px;grid-template-columns:1fr auto}.mm-nav,.mm-account{display:none}.mm-menu{display:block}.mm-brand{font-size:14px}.editorial-hero{min-height:auto;grid-template-columns:1fr;gap:36px;padding:44px 0 56px}.editorial-copy h1{font-size:42px}.hero-lead{font-size:12px;margin:19px 0 23px}.hero-actions{grid-template-columns:1fr}.hero-facts{gap:15px;flex-wrap:wrap}.brand-story{height:520px}.brand-story:before{inset:24px 0 0 25px}.brand-main{inset:0 0 42px 48px}.brand-before{width:128px;border-width:7px}.brand-note{right:-4px;width:177px;padding:16px}.brand-note strong{font-size:15px}.experience{padding:63px 15px}.section-intro{grid-template-columns:1fr;gap:15px}.section-intro .mm-kicker,.section-intro h2,.section-intro>p:last-child{grid-column:1;grid-row:auto}.section-intro h2{font-size:35px}.experience-grid{grid-template-columns:1fr}.experience-visual{height:330px}.experience-copy{padding:26px 22px}.journey{padding:65px 0}.journey>header{display:block}.journey-grid{grid-template-columns:1fr}.journey-photo{height:390px}.consultation-package{padding:60px 15px;grid-template-columns:1fr;gap:36px}.package-portraits{order:2}.package-portraits img{aspect-ratio:.72}.package-includes{grid-template-columns:1fr}.package-cta{display:grid}.package-cta .mm-button{width:100%}.mm-footer{padding:35px 15px;display:grid}.mm-footer nav{grid-template-columns:repeat(2,auto)}
  .mm-flow-header{height:62px;padding:0 14px;grid-template-columns:65px 1fr 65px}.mm-flow-header .mm-brand{font-size:12px}.mm-flow-label{font-size:8px}.mm-flow{width:calc(100% - 24px);padding:28px 0 65px}.mm-flow-layout{grid-template-columns:1fr;gap:20px}.mm-guide-visual{position:relative;top:auto}.mm-guide-photo{height:300px}.mm-guide-photo figcaption{font-size:9px}.mm-flow-card{padding:26px 18px}.mm-flow-title{font-size:32px}.mm-flow-lead{font-size:11px}.mm-photo-picker,.mm-photo-picker .placeholder{min-height:300px}.mm-photo-picker img{height:410px}.mm-mood-grid{grid-template-columns:1fr 1fr}.mm-mood{min-height:88px}.mm-result,.mm-paid{width:calc(100% - 24px);padding:30px 0 70px}.mm-analysis,.mm-paid-intro{grid-template-columns:1fr;gap:10px}.mm-analysis .mm-kicker,.mm-paid-intro .mm-kicker,.mm-analysis h1,.mm-paid-intro h1,.mm-analysis>p:last-child,.mm-paid-intro>p:last-child{grid-column:1;grid-row:auto}.mm-analysis h1,.mm-paid-intro h1{font-size:30px}.mm-comparison-shell{aspect-ratio:4/5}.mm-generate-state{min-height:420px}.mm-reasons{grid-template-columns:1fr}.mm-locked-list{grid-template-columns:1fr}.mm-paywall{padding:24px 17px}.mm-value-list{grid-template-columns:1fr}.mm-top3{overflow-x:auto;grid-template-columns:repeat(3,78%);scroll-snap-type:x mandatory}.mm-top3-card{scroll-snap-align:start}.mm-order{padding:20px 14px}.mm-spec>div{grid-template-columns:100px 1fr}.mm-report-actions{grid-template-columns:1fr}.mm-auth{grid-template-columns:1fr}.mm-auth-visual{min-height:330px}.mm-auth-visual-content{padding:25px 20px}.mm-auth-visual h1{font-size:31px}.mm-auth-visual p,.mm-auth-visual small{display:none}.mm-auth-panel{padding:35px 20px;align-items:start}.mm-auth-card h2{font-size:29px}
}

/* Phase 1 editorial cleanup: photography and typography replace scan/SaaS motifs. */
.mm-photo-picker .placeholder{padding:0}
.mm-photo-example{position:relative;width:100%;height:100%;overflow:hidden}.mm-photo-example img{width:100%;height:100%!important;object-fit:cover;object-position:center 13%;filter:saturate(.78)}.mm-photo-example em{position:absolute;left:12px;top:12px;padding:6px 8px;background:rgba(255,253,251,.88);color:var(--rose-dark);font-size:8px;font-style:normal;font-weight:700;letter-spacing:.08em}
.mm-photo-cta{width:100%;padding:17px 12px 19px;background:#fff;text-align:center;border-top:1px solid #ddd5cf}.mm-photo-cta>b{display:block;color:var(--rose);font-size:22px;line-height:1;font-weight:400}.mm-photo-cta small{display:block;margin-top:5px;line-height:1.7}
.mm-photo-checks span:before{content:"";display:inline-block;width:9px;height:1px;margin:0 5px 3px 0;background:var(--rose)}
.phase1-trust{display:flex;align-items:baseline;gap:8px}.phase1-trust:before{content:"";width:12px;height:1px;margin:0;background:var(--rose);flex:0 0 auto}
.phase1-plan-roles{gap:34px;border:0}.phase1-plan-roles article{position:relative;padding:28px 0 0;border:0}.phase1-plan-roles article:before{content:"";position:absolute;left:0;top:0;width:34px;height:1px;background:#d28590}.phase1-plan-roles article:last-child{border:0}
.phase1-direction-grid{gap:30px;border:0}.phase1-direction-card{position:relative;padding:24px 0 0;border:0}.phase1-direction-card:before{content:"";position:absolute;left:0;top:0;width:34px;height:1px;background:#d28590}.phase1-direction-card:last-child{border:0}.phase1-decision-note span{padding:9px 0;background:none;border-top:1px solid var(--line)}
.phase1-summary{position:relative;border:0;background:#faf7f3}.phase1-summary:before{content:"";position:absolute;left:25px;top:18px;width:28px;height:1px;background:#d28590}.phase1-summary h2{padding-top:10px}.phase1-summary li:last-child{border-bottom:0}
.phase1-generation-gate{background:#fbf7f4}.phase1-generation-gate .generation-mark{display:block;width:28px;height:1px;margin:0 auto 16px;background:#d28590;font-size:0}.phase1-generation-gate strong{margin-top:0}
.paid-recovery-banner{margin:0 0 26px;padding:22px 24px;border:1px solid #e5b4bc;background:#fff6f7}.paid-recovery-banner strong{display:block;font:500 21px var(--serif)}.paid-recovery-banner>p:not(.mm-kicker){margin:8px 0 16px;color:var(--muted);font-size:12px;line-height:1.8}.paid-recovery-banner .mm-button{min-height:52px}
.mm-paywall{margin-top:28px;padding:34px;background:#f7f1ed;color:var(--ink);border-top:1px solid #dca0a8}.mm-paywall .mm-kicker{color:var(--rose-dark)}.mm-paywall h2 em{color:var(--rose-dark)}.mm-paywall-reassurance{color:var(--muted)}.mm-value-list{border-top-color:var(--line)}.mm-value-list span{border-bottom-color:var(--line)}.mm-value-list span:before{content:"—";color:var(--rose-dark)}

@media(max-width:800px){
  .paid-recovery-banner{margin-bottom:22px;padding:18px}.paid-recovery-banner strong{font-size:19px}.paid-recovery-banner>p:not(.mm-kicker){font-size:13px}
  .mm-status{font-size:12px;line-height:1.7}.mm-purchase-note{font-size:11px;line-height:1.7}.mm-value-list span{font-size:12px;line-height:1.7}.mm-paywall-reassurance{font-size:12px}.phase1-result-shortcut>small{font-size:11px;line-height:1.7}.phase1-entitlements p{font-size:12px;line-height:1.7}.phase1-safety-note{font-size:12px;line-height:1.75}.phase1-caption{font-size:11px;line-height:1.7}.phase1-direction-card>small{font-size:10px}
  .phase1-question legend b{font-size:16px}.phase1-question legend small{font-size:12px}.phase1-options button{font-size:13px}
  .phase1-summary li{font-size:13px}.phase1-summary>p{font-size:12px}.phase1-direction-card>strong{font-size:14px;line-height:1.7}.phase1-direction-card>p{font-size:13px;line-height:1.75}.phase1-decision-note span{font-size:12px;line-height:1.65}.phase1-decision-note b{font-size:11px}.phase1-plan-a-spec>div{font-size:13px}.generation-consent{font-size:12px;line-height:1.7}
  .phase1-plan-roles{gap:28px}.phase1-plan-roles article,.phase1-plan-roles article:last-child{padding-top:24px;border:0}
  .phase1-direction-grid{gap:28px}.phase1-direction-card,.phase1-direction-card:last-child{padding-top:22px;border:0}
  .mm-photo-picker:has(.placeholder:not([hidden])){aspect-ratio:4/3}
  .mm-paywall{padding:26px 18px}
}

.face-result{width:min(1120px,calc(100% - 48px));margin:0 auto;padding:58px 0 90px}.face-result-hero{display:grid;grid-template-columns:1fr 390px;gap:64px;align-items:center}.face-result-hero h1{margin:0;font:500 clamp(42px,5vw,66px)/1.4 var(--serif)}.face-result-hero h1 em{color:var(--rose);font-style:normal}.face-result-hero>div>p:not(.mm-kicker){max-width:560px;color:var(--muted);font-size:13px;line-height:2}.face-result-hero figure{margin:0;padding:12px;background:#fff;border:1px solid var(--line)}.face-result-hero figure img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 25%;background:var(--cream)}.face-result-hero figcaption{padding:10px 3px 0;color:var(--muted);font-size:8px;line-height:1.7}.face-result-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:54px;background:var(--line);border:1px solid var(--line)}.face-result-metrics article{min-width:0;padding:30px;background:#fff}.face-result-metrics small{color:var(--rose);font-size:8px;font-weight:700;letter-spacing:.16em}.face-result-metrics h2{margin:10px 0;font:500 21px/1.5 var(--serif)}.face-result-metrics p{margin:0;color:var(--muted);font-size:10px;line-height:1.8}.face-result-next{margin-top:54px;padding:48px;background:var(--ink);color:#fff;text-align:center}.face-result-next h2{margin:0;font:500 clamp(30px,4vw,44px)/1.5 var(--serif)}.face-result-next>p:not(.mm-kicker){max-width:620px;margin:18px auto 26px;color:#d4cac6;font-size:11px;line-height:2}.face-result-next .mm-button{width:min(100%,460px)}.face-result-home{display:block;width:max-content;margin:20px auto 0;border-bottom:1px solid #746a67;color:#d4cac6;font-size:10px}
@media(max-width:800px){.face-result{width:calc(100% - 24px);padding:32px 0 70px}.face-result-hero{grid-template-columns:1fr;gap:26px}.face-result-hero h1{font-size:36px}.face-result-hero figure{width:min(100%,330px);margin:auto}.face-result-metrics{grid-template-columns:1fr;margin-top:32px}.face-result-metrics article{padding:24px}.face-result-next{margin-top:32px;padding:34px 18px}}

/* Homepage product preview: centred portrait, readable square style cards, compact toolbar. */
.phone{aspect-ratio:.61}
.phone-model{position:absolute;inset:0 0 78px;width:100%;height:auto;object-fit:cover;object-position:center 15%}
.phone-styles{bottom:74px;padding:10px 8px 9px;border-radius:17px}
.phone-styles img{width:56px;height:62px;border-radius:10px;object-fit:cover!important;object-position:center 13%!important;background:#eee7e2}
.phone-styles .selected img{outline:2px solid var(--rose);outline-offset:2px}
.phone-tools{position:absolute;left:0;right:0;bottom:0;height:78px;background:rgba(255,255,255,.97);grid-template-columns:1fr 72px 1fr}
.phone-tools i{width:56px;height:56px;border-width:4px}
.entry-card>img{object-position:center 32%}
.entry-card:first-child>img{object-position:center 38%}
.style-portraits{gap:1px;background:#e8dcda;border:1px solid #e8dcda}
.style-portraits figure{padding:0;background:#fff;border:0;overflow:hidden}
.style-portraits img{display:block;width:100%;aspect-ratio:.86!important;object-fit:cover!important;object-position:center 13%!important;background:#ede7e2}
.style-portraits figcaption{min-height:70px;padding:15px 13px 13px;text-align:left;font-size:14px}
.style-portraits figcaption small{display:block;margin-bottom:5px;color:#b66d77;font:700 7px var(--sans);letter-spacing:.14em}
@media(max-width:800px){
  .phone-model{object-position:center 14%}
  .phone-styles img{width:50px;height:56px}
  .style-portraits{grid-template-columns:1fr 1fr;gap:1px}
  .style-portraits figcaption{min-height:62px;padding:12px 10px;font-size:12px}
}

/* Face-landmark-aligned homepage media and a clearer three-step hierarchy. */
.entry-card:first-child>img{object-position:center center}
.simple-steps h3{font-size:31px;line-height:1.35;margin-bottom:15px}
.simple-steps p{font-size:12px;line-height:1.95}
@media(max-width:800px){
  .simple-steps h3{font-size:27px}
  .simple-steps p{font-size:12px}
}

/* Compositor-only comparison motion. Moving two layers is materially smoother
   than repainting a full-resolution clip-path for every pointer event. */
.home-compare>div{
  clip-path:none;
  transform:translate3d(var(--split),0,0);
  will-change:transform;
  contain:paint;
}
.home-compare>div img{
  transform:translate3d(calc(0% - var(--split)),0,0);
  will-change:transform;
  backface-visibility:hidden;
}
.home-compare .compare-line{will-change:left}
@media print{.mm-flow-header,.mm-report-actions,.mm-top3,.mm-paid-intro,.mm-paid-detail>h2{display:none!important}.mm-paid{width:100%;padding:0}.mm-order{margin:0;padding:0}.mm-stylist-copy{break-inside:avoid}}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #8f2038;outline-offset:2px}

/* Japanese mirror-first home — photo replaces the former character illustrations */
.jp-hero{position:relative;min-height:700px;padding:70px max(32px,calc((100% - 1180px)/2));display:grid;grid-template-columns:1fr .92fr;gap:70px;align-items:center;background:#fffdfb;overflow:hidden}.jp-hero:before{content:"";position:absolute;width:360px;height:360px;right:-140px;top:80px;border-radius:50%;background:#faecec}.jp-hero-copy{position:relative;z-index:2}.jp-hero-copy h1{margin:0;font:500 clamp(48px,5.5vw,74px)/1.42 var(--serif);letter-spacing:.045em}.jp-hero-copy h1 em{font-style:normal;color:var(--rose)}.jp-hero-copy>p:not(.mm-kicker){margin:25px 0 28px;max-width:540px;color:var(--ink-soft);font-family:var(--serif);font-size:14px;line-height:2}.jp-hero-actions{width:min(100%,440px);display:grid;gap:12px}.jp-hero-actions .mm-button{font-family:var(--serif);font-size:15px}.privacy-note{display:block;margin-top:20px;color:var(--muted);font-size:9px}.sakura{position:absolute;color:#f1bbc3;opacity:.55;font-size:64px}.sakura-one{left:-14px;top:55px}.sakura-two{left:43%;bottom:45px;font-size:35px;transform:rotate(25deg)}
.phone-wrap{position:relative;z-index:2;display:grid;place-items:center}.phone-wrap:before{content:"";position:absolute;width:92%;height:74%;right:-4%;bottom:2%;background:#f8ecea;border-radius:50%}.phone{position:relative;width:min(390px,86vw);aspect-ratio:.55;border:11px solid #1d1b1b;border-radius:58px;overflow:hidden;background:#fff;box-shadow:0 28px 70px rgba(66,47,42,.22)}.phone-notch{position:absolute;z-index:8;top:0;left:50%;transform:translateX(-50%);width:39%;height:25px;border-radius:0 0 15px 15px;background:#1d1b1b}.phone-top{position:absolute;z-index:6;left:0;right:0;top:22px;padding:16px 19px;display:flex;justify-content:space-between;align-items:center}.phone-top span{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.86);font-size:20px}.phone-top b{padding:8px 13px;background:rgba(255,255,255,.84);font:500 12px var(--serif)}.phone-model{width:100%;height:76%;object-fit:cover;object-position:center 25%}.phone-styles{position:absolute;left:14px;right:14px;bottom:96px;padding:11px 8px 8px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:rgba(255,255,255,.91);border-radius:20px}.phone-styles figure{margin:0;text-align:center}.phone-styles img{width:54px;height:54px;margin:auto;border-radius:50%;object-fit:cover;object-position:center 23%;border:3px solid #fff}.phone-styles .selected img{outline:3px solid var(--rose)}.phone-styles figcaption{margin-top:5px;font-size:7px;font-weight:600}.phone-tools{height:96px;display:grid;grid-template-columns:1fr 86px 1fr;align-items:center;text-align:center}.phone-tools span{display:grid;gap:4px;font-size:20px}.phone-tools small{font-size:8px}.phone-tools i{width:68px;height:68px;border:5px double var(--rose);border-radius:50%}
.entry-section{padding:0 max(32px,calc((100% - 1180px)/2));background:linear-gradient(#fffdfb 50%,#faf3f2 50%)}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.entry-card{min-height:250px;display:grid;grid-template-columns:.95fr 1.05fr;border:1px solid #eedddc;background:rgba(255,255,255,.96);box-shadow:0 14px 38px rgba(88,62,55,.06);overflow:hidden}.entry-card>img{width:100%;height:100%;object-fit:cover;object-position:center}.entry-card>div{padding:31px 28px;display:flex;flex-direction:column;justify-content:center}.entry-card small{color:var(--rose);font-size:8px;letter-spacing:.15em}.entry-card h2{margin:7px 0 12px;font:500 27px var(--serif)}.entry-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.9}.entry-card span{margin-top:18px;color:var(--rose-dark);font-size:10px;font-weight:700}
.simple-how{padding:72px max(32px,calc((100% - 1080px)/2));background:#faf3f2}.simple-how>header{display:grid;grid-template-columns:1fr auto 1fr;gap:28px;align-items:center;margin-bottom:36px}.simple-how>header span{height:1px;background:#edcccf}.simple-how h2{margin:0;font:500 25px var(--serif);letter-spacing:.12em}.simple-steps{display:grid;grid-template-columns:repeat(3,1fr)}.simple-steps article{position:relative;text-align:center;padding:0 34px;border-right:1px dashed #e9c9cc}.simple-steps article:last-child{border-right:0}.simple-steps article>b{position:absolute;left:25px;top:0;width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#f3d6d8;color:#9b555f;font:500 15px var(--serif)}.step-image{width:130px;height:130px;margin:0 auto 16px;border-radius:50%;overflow:hidden;border:7px solid #fff;box-shadow:0 0 0 1px #ead8d7}.step-image img{width:100%;height:100%;object-fit:cover;object-position:center 22%}.simple-steps h3{margin:0 0 10px;font:500 18px var(--serif)}.simple-steps p{margin:0;color:var(--muted);font-size:10px;line-height:1.9}
.style-showcase{padding:82px max(32px,calc((100% - 1180px)/2));background:#fff}.style-showcase>header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.style-showcase h2{margin:0;font:500 clamp(30px,3.8vw,46px) var(--serif)}.style-showcase header p:last-child{margin:12px 0 0;color:var(--muted);font-size:11px}.style-showcase header>a{padding-bottom:6px;border-bottom:1px solid var(--rose);color:var(--rose-dark);font-size:11px}.style-portraits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.style-portraits figure{margin:0;background:#faf0ef;border:1px solid #ecdedb;padding:8px}.style-portraits img{width:100%;aspect-ratio:.85;object-fit:cover;object-position:center 23%}.style-portraits figcaption{padding:12px 4px 6px;text-align:center;font:500 13px var(--serif)}
.diagnosis-promo{margin:0 max(32px,calc((100% - 1180px)/2)) 90px;display:grid;grid-template-columns:1.05fr .95fr;background:#242020;color:#fff}.promo-visual{position:relative;min-height:500px}.promo-visual>img{width:100%;height:100%;object-fit:cover;object-position:center}.promo-mini{position:absolute;left:20px;right:20px;bottom:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:8px;background:rgba(255,255,255,.9)}.promo-mini img{width:100%;height:100px;object-fit:cover;object-position:center 23%}.promo-copy{padding:55px 48px;display:flex;flex-direction:column;justify-content:center}.promo-copy h2{margin:0;font:500 clamp(30px,3.6vw,43px)/1.55 var(--serif)}.promo-copy>p:not(.mm-kicker){margin:20px 0;color:#c9c0bd;font-size:12px;line-height:2}.promo-copy ul{list-style:none;padding:0;margin:0 0 24px;border-top:1px solid #504847}.promo-copy li{padding:11px 0;border-bottom:1px solid #504847;font-size:10px}.promo-copy li:before{content:"✓";color:#f19aaa;margin-right:8px}
@media(max-width:800px){.jp-hero{min-height:auto;padding:46px 15px 58px;grid-template-columns:1fr;gap:38px}.jp-hero-copy h1{font-size:42px}.jp-hero-copy>p:not(.mm-kicker){font-size:12px;margin:18px 0 23px}.phone{width:min(340px,88vw);border-width:9px;border-radius:48px}.entry-section{padding:0 15px}.entry-grid{grid-template-columns:1fr}.entry-card{min-height:210px}.entry-card>div{padding:22px 18px}.entry-card h2{font-size:22px}.simple-how{padding:56px 15px}.simple-how>header{gap:12px}.simple-how h2{font-size:19px}.simple-steps{grid-template-columns:1fr;gap:34px}.simple-steps article{border-right:0;border-bottom:1px dashed #e9c9cc;padding:0 20px 30px}.simple-steps article:last-child{border-bottom:0}.simple-steps article>b{left:calc(50% - 90px)}.style-showcase{padding:62px 15px}.style-showcase>header{display:block}.style-showcase header>a{display:inline-block;margin-top:18px}.style-portraits{grid-template-columns:1fr 1fr;gap:9px}.diagnosis-promo{margin:0 15px 65px;grid-template-columns:1fr}.promo-visual{min-height:380px}.promo-copy{padding:36px 24px}}

/* matte glass finish */
.entry-card{background:rgba(255,255,255,.80);backdrop-filter:blur(16px);border-color:rgba(238,221,220,.88)}
.phone-styles{background:rgba(255,255,255,.76);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.68)}
.phone-top span,.phone-top b{background:rgba(255,255,255,.72);backdrop-filter:blur(10px)}
.style-portraits figure{background:rgba(250,240,239,.78);backdrop-filter:blur(8px)}
.phone-styles img{object-fit:contain!important;background:#f5e9e6}
.step-icon{display:grid;place-items:center;background:#fff;border-style:dashed}.step-icon span{color:var(--rose);font-size:36px;font-weight:300}.step-icon small{display:block;margin-top:-35px;color:var(--muted);font-size:7px;letter-spacing:.15em}.step-compare{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#eadbd8;overflow:visible}.step-compare img{width:100%;height:100%;object-fit:contain;background:#f7ecea}.step-compare i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--rose);font-style:normal;box-shadow:0 3px 12px rgba(65,45,41,.12)}
.style-portraits img{aspect-ratio:1!important;object-fit:contain!important;object-position:center!important;background:#f4e8e5}.style-portraits figure{padding:12px}.promo-visual.home-compare{--split:50%;overflow:hidden;background:#eee5df}.home-compare>img,.home-compare>div,.home-compare>div img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 24%}.home-compare>div{left:var(--split);overflow:hidden}.home-compare>div img{left:auto;right:0;width:calc(100% / (var(--split) / 100));min-width:100%}.home-compare>input{position:absolute;z-index:5;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.home-compare .compare-line{position:absolute;z-index:4;top:0;bottom:0;left:clamp(20px,var(--split),calc(100% - 20px));width:2px;background:#fff;pointer-events:none}.home-compare .compare-line i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--rose);font-size:14px;font-style:normal;box-shadow:0 5px 16px rgba(50,35,31,.14)}.home-compare>small{position:absolute;z-index:4;bottom:16px;padding:7px 10px;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);font-size:9px;pointer-events:none}.home-compare .before-label{left:16px}.home-compare .after-label{right:16px}

/* Real before/after slider: both images keep the same crop; the upper image is clipped. */
.home-compare>div{inset:0;clip-path:inset(0 0 0 var(--split));overflow:hidden}
.home-compare>div img{inset:0;width:100%;min-width:0;height:100%;object-fit:cover;object-position:center 24%}
.home-compare{touch-action:none;cursor:ew-resize;user-select:none}
.home-compare>input{-webkit-appearance:none;appearance:none;pointer-events:auto;background:transparent}
.home-compare>input::-webkit-slider-runnable-track{height:100%;background:transparent}
.home-compare>input::-webkit-slider-thumb{-webkit-appearance:none;width:68px;height:100%;border:0;background:transparent;cursor:ew-resize}
.home-compare>input::-moz-range-track{height:100%;background:transparent}
.home-compare>input::-moz-range-thumb{width:68px;height:100%;border:0;background:transparent;cursor:ew-resize}

/* A single editorial treatment keeps the three steps coherent and avoids fake thumbnails. */
.simple-steps{gap:18px}
.simple-steps article{min-height:245px;padding:28px 30px 30px;border:1px solid #ead9d7!important;background:rgba(255,255,255,.72);text-align:left}
.simple-steps article>b,.step-image{display:none}
.step-mark{display:flex;align-items:end;justify-content:space-between;padding-bottom:18px;margin-bottom:28px;border-bottom:1px solid #e8cbcd}
.step-mark small{color:#a96a72;font-size:8px;font-weight:700;letter-spacing:.2em}
.step-mark strong{color:#e7c8ca;font:500 48px/1 var(--serif)}
.simple-steps h3{font-size:21px;margin-bottom:14px}
.simple-steps p{font-size:11px;line-height:1.9}
@media(max-width:800px){
  .simple-steps{gap:10px}
  .simple-steps article{min-height:0;padding:22px 21px 24px;border-bottom:1px solid #ead9d7!important}
  .step-mark{margin-bottom:20px;padding-bottom:13px}
  .step-mark strong{font-size:38px}
}

/* Diagnosis: keep the full intake visible on desktop, and avoid a duplicate portrait on phones. */
@media(min-width:801px){
  .mm-flow{width:min(1120px,calc(100% - 48px));padding:32px 0 54px}
  .mm-flow-layout{grid-template-columns:400px minmax(0,1fr);gap:28px}
  .mm-guide-visual{top:88px}
  .mm-guide-photo{height:586px}
  .mm-flow-card{padding:28px 32px}
  .mm-flow-title{font-size:clamp(34px,3.3vw,46px);line-height:1.35}
  .mm-flow-lead{margin:10px 0 18px;line-height:1.75}
  .mm-photo-picker,.mm-photo-picker .placeholder{min-height:210px}
  .mm-photo-picker img{height:300px}
  .mm-choice-block{margin-top:18px}
  .mm-mood{min-height:70px}
  .mm-free-preview{margin:16px 0 13px;padding:13px 15px}
  .mm-submit{min-height:54px;margin-top:13px}
}
@media(max-width:800px){
  .mm-guide-visual{display:none}
  .mm-flow{padding-top:18px}
  .mm-flow-card{padding:24px 17px}
  .mm-photo-picker,.mm-photo-picker .placeholder{min-height:250px}
  .mm-photo-picker img{height:360px}
}

/* Final homepage crop rules live last so earlier legacy declarations cannot undo them. */
.phone{aspect-ratio:.61}
.phone-model{position:absolute;inset:0 0 auto;width:100%;height:calc(100% - 78px);object-fit:cover;object-position:center 15%}
.phone-styles{bottom:74px;padding:10px 8px 9px;border-radius:17px}
.phone-styles img{width:56px;height:62px;margin:auto;border:3px solid #fff;border-radius:10px;object-fit:cover!important;object-position:center 13%!important;background:#eee7e2}
.phone-styles .selected img{outline:2px solid var(--rose);outline-offset:2px}
.phone-tools{position:absolute;left:0;right:0;bottom:0;height:78px;background:rgba(255,255,255,.97);grid-template-columns:1fr 72px 1fr}
.phone-tools i{width:56px;height:56px;border-width:4px}
.entry-card>img{object-position:center 32%}
.entry-card:first-child>img{object-position:center 38%}
.style-portraits{gap:1px;background:#e8dcda;border:1px solid #e8dcda}
.style-portraits figure{padding:0;background:#fff;border:0;overflow:hidden}
.style-portraits img{display:block;width:100%;aspect-ratio:.86!important;object-fit:cover!important;object-position:center 13%!important;background:#ede7e2}
.style-portraits figcaption{min-height:70px;padding:15px 13px 13px;text-align:left;font-size:14px}
.style-portraits figcaption small{display:block;margin-bottom:5px;color:#b66d77;font:700 7px var(--sans);letter-spacing:.14em}
@media(max-width:800px){
  .phone-model{object-position:center 14%}
  .phone-styles img{width:50px;height:56px}
  .style-portraits{grid-template-columns:1fr 1fr;gap:1px}
  .style-portraits figcaption{min-height:62px;padding:12px 10px;font-size:12px}
}

/* Final alignment pass: one model, one geometry, and one split coordinate. */
.phone{width:min(360px,80vw);aspect-ratio:.495}
.phone-model{left:0;right:auto;width:100%}
.phone-styles img{object-fit:contain!important;object-position:center!important;padding:3px}
.entry-card:first-child>img{object-position:left center}
.style-portraits img{object-position:center 18%!important}
.home-compare>div{
  inset:0 0 0 var(--split);
  width:auto;
  overflow:hidden;
  clip-path:none;
  transform:none;
  contain:paint;
}
.home-compare>div img{
  position:absolute;
  inset:0 0 0 auto;
  width:var(--compare-width,100%);
  min-width:0;
  max-width:none;
  height:100%;
  transform:none;
  object-fit:cover;
  object-position:center 24%;
}
.home-compare>small{
  color:#2b2423;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(63,46,43,.14);
  box-shadow:0 4px 14px rgba(46,31,28,.14);
  font-size:11px;
  font-weight:700;
}
@media(max-width:800px){
  .phone{width:min(318px,82vw);aspect-ratio:.495}
}

/* 2026-08-24 alignment and intake correction.
   Keep the mock phone centred on its own visual axis at every width. */
.phone-wrap{
  width:100%;
  justify-self:stretch;
  justify-items:center;
  padding-inline:0;
}
.phone-wrap:before{
  left:50%;
  right:auto;
  transform:translateX(-50%);
}
.phone{margin-inline:auto}
.phone-model{
  left:50%;
  right:auto;
  width:115%;
  max-width:none;
  transform:translateX(-50%);
  object-position:center 18%;
}

/* A diagnosis asks for a portrait, so the upload target must look like one. */
.mm-intake-photo{
  display:grid;
  justify-items:center;
  gap:0;
  padding:14px;
}
.mm-photo-picker{
  width:min(100%,330px);
  min-height:0;
  aspect-ratio:3/4;
  border:1px solid #e2d6d0;
  background:#eee7e2;
}
.mm-photo-picker .placeholder{
  position:absolute;
  inset:0;
  min-height:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  place-items:stretch;
  padding:0;
}
.mm-photo-guide{
  position:relative;
  display:block;
  width:64%;
  aspect-ratio:.76;
  border:1.5px dashed #c7aaa7;
  border-radius:48% 48% 44% 44%;
}
.mm-photo-guide i{
  position:absolute;
  left:50%;
  top:14%;
  width:45%;
  aspect-ratio:.78;
  transform:translateX(-50%);
  border:1px solid rgba(205,80,99,.46);
  border-radius:50%;
}
.mm-photo-guide b{
  position:absolute;
  left:19%;
  right:19%;
  bottom:13%;
  height:23%;
  border:1px solid rgba(205,80,99,.46);
  border-bottom:0;
  border-radius:48% 48% 0 0;
}
.mm-photo-example{min-height:0;height:auto}
.mm-photo-cta{position:relative;z-index:2;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;width:auto;padding:14px 15px;background:#fff;border-top:1px solid #ddd5cf;text-align:left}
.mm-photo-cta>b{display:block;color:var(--rose);font-size:30px;line-height:1;font-weight:400}
.mm-photo-cta strong{display:block;color:var(--ink);font-size:13px;font-weight:600;line-height:1.5}
.mm-photo-cta small{display:block;margin-top:2px;font-size:10px;line-height:1.55}
.mm-photo-picker img{
  width:100%;
  height:100%!important;
  object-fit:cover;
  object-position:center 22%;
}
.mm-photo-checks{width:100%;padding-top:12px}

/* The upload example already explains every photo requirement. A second
   desktop guide repeated the same portrait and split attention for no gain. */
.phase1-intake .mm-flow-layout{display:block;width:min(900px,calc(100% - 48px))}
.phase1-intake .mm-flow-card{width:100%}
.phase1-intake .mm-photo-picker{width:min(100%,400px)}

/* Mood choices are text choices, not decorative glyphs. */
.mm-mood{
  min-height:82px;
  padding:13px 14px;
  grid-template-columns:1fr auto;
  place-items:center start;
  gap:12px;
  text-align:left;
}
.mm-mood span{display:grid;gap:4px}
.mm-mood span b{font:500 14px var(--serif)}
.mm-mood span small{color:var(--muted);font-size:8px}
.mm-mood i{
  width:17px;
  height:17px;
  border:1px solid #cdbfba;
  border-radius:50%;
}
.mm-mood.selected i{border:5px solid var(--rose);background:#fff}
.mm-mood.selected span small{color:var(--rose-dark)}

@media(max-width:800px){
  .phone-wrap{justify-self:center}
  .phase1-intake .mm-flow-layout{width:calc(100% - 24px)}
  .mm-photo-picker,.phase1-intake .mm-photo-picker{width:min(100%,320px)}
  .mm-photo-picker,.mm-photo-picker .placeholder{min-height:0}
  .mm-photo-checks{gap:9px;flex-wrap:wrap}
  .mm-mood{min-height:78px;padding:12px}
  .mm-mood span b{font-size:13px}
}

/* Tablet and browser-zoom widths need a single readable intake column. */
@media(min-width:801px) and (max-width:1000px){
  .mm-flow{width:min(720px,calc(100% - 36px));padding-top:30px}
  .mm-flow-layout{grid-template-columns:1fr}
  .mm-guide-visual{display:none}
  .mm-flow-card{padding:34px}
  .mm-photo-picker{width:min(100%,340px)}
  .mm-mood-grid{grid-template-columns:1fr 1fr}
}

/* Keep the two editorial entry cards readable at browser-zoom/tablet widths.
   Japanese headings must not split character-by-character inside a squeezed
   copy column. The mobile breakpoint below 800px still uses stacked cards. */
@media(min-width:801px) and (max-width:1180px){
  .entry-card{grid-template-columns:46% 54%}
  .entry-card>div{padding:25px 20px}
  .entry-card h2{
    font-size:clamp(22px,2.3vw,27px);
    letter-spacing:0;
    line-height:1.35;
    white-space:nowrap;
    word-break:keep-all;
  }
  .entry-card p{font-size:10px}
}

/* Phase 1 — personalised fringe diagnosis */
.mm-brand small{display:block;margin-top:2px;color:var(--muted);font:500 6px var(--sans);letter-spacing:.28em;text-align:center}
.phase1-hero{min-height:700px;padding:68px max(32px,calc((100% - 1220px)/2));display:grid;grid-template-columns:.86fr 1.14fr;gap:58px;align-items:center;background:linear-gradient(110deg,#fffdfb 0 46%,#fff8f7 46%);overflow:hidden}
.phase1-hero-copy h1{margin:0;font:500 clamp(45px,3.9vw,56px)/1.36 var(--serif);letter-spacing:.015em}.phase1-hero-copy h1 span{display:block;white-space:nowrap}.phase1-hero-copy h1 em{color:var(--rose);font-style:normal}
.phase1-lead{max-width:500px;margin:24px 0 26px;color:var(--ink-soft);font-family:var(--serif);font-size:17px;line-height:1.9}.phase1-lead strong{font-weight:600;color:var(--ink)}
.jp-hero-actions .face-check-link{width:max-content;margin-top:2px;color:var(--ink-soft);font-size:12px;text-decoration:underline;text-decoration-color:#e7bfc4;text-underline-offset:5px}.jp-hero-actions .face-check-link b{margin-left:5px;color:var(--rose-dark)}
.phase1-free-boundary{max-width:500px;margin:15px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.8}.phase1-trust{margin:9px 0 0;color:var(--muted);font-size:12px}.phase1-trust:before{content:"✓";margin-right:7px;color:var(--rose)}
.fringe-blueprint{position:relative;min-height:570px;background:#fff;border:1px solid #eddfdc;box-shadow:0 28px 70px rgba(83,55,50,.08);overflow:hidden}
.fringe-blueprint:before{content:"";position:absolute;z-index:2;left:24%;right:24%;top:29%;height:1px;background:rgba(184,132,137,.3);pointer-events:none}
.fringe-blueprint img{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:68%;height:94%;object-fit:cover;object-position:center 17%;filter:saturate(.82)}
.blueprint-cue{position:absolute;z-index:4;top:20px;left:50%;transform:translateX(-50%);padding-bottom:5px;border-bottom:1px solid #d9b9bc;color:var(--rose-dark);font-size:10px;font-weight:700;letter-spacing:.08em;white-space:nowrap}
.blueprint-line{position:absolute;z-index:3;min-width:128px;padding:0;background:none;border:0;box-shadow:none;text-shadow:0 1px 0 rgba(255,255,255,.9)}
.blueprint-line:before{content:"";display:block;width:18px;height:1px;margin-bottom:8px;background:var(--rose)}.blueprint-line:after{content:"";position:absolute;top:0;height:1px;width:72px;background:#bca3a4}
.blueprint-line b,.blueprint-line small{display:block}.blueprint-line b{font:500 13px var(--serif)}.blueprint-line small{margin-top:4px;color:var(--muted);font-size:9px}
.blueprint-line.width{left:6%;top:25%}.blueprint-line.width:after{left:18px}.blueprint-line.part{right:4%;top:19%;text-align:right}.blueprint-line.part:before{margin-left:auto}.blueprint-line.part:after{right:18px}
.blueprint-line.center{left:50%;top:47%;min-width:150px;transform:translateX(-50%);padding:8px 11px;text-align:center;background:rgba(255,253,251,.88);box-shadow:0 4px 16px rgba(70,50,45,.05)}.blueprint-line.center:before{display:none}.blueprint-line.center:after{top:-34px;left:50%;width:1px;height:27px;background:#bca3a4}
.blueprint-note-rail{position:absolute;z-index:4;left:20px;right:20px;bottom:18px;display:grid;grid-template-columns:1fr 1.45fr;border-top:1px solid rgba(184,132,137,.55);background:rgba(255,253,251,.78);backdrop-filter:blur(5px)}.blueprint-note-rail span{padding:10px 12px}.blueprint-note-rail span+span{border-left:1px solid rgba(184,132,137,.28)}.blueprint-note-rail small,.blueprint-note-rail b{display:block}.blueprint-note-rail small{color:var(--rose-dark);font-size:7px;letter-spacing:.1em}.blueprint-note-rail b{margin-top:3px;font:500 11px var(--serif)}
.phase1-principle{padding:92px max(32px,calc((100% - 1080px)/2));text-align:center;background:#fff}
.phase1-principle>h2{margin:8px 0 36px;font:500 clamp(34px,4.3vw,54px)/1.5 var(--serif)}
.phase1-plan-roles{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}
.phase1-plan-roles article{padding:32px 28px;border-right:1px solid var(--line);text-align:left}.phase1-plan-roles article:last-child{border-right:0}
.phase1-plan-roles small{color:var(--rose);font-size:8px;letter-spacing:.14em}.phase1-plan-roles h3{margin:8px 0 12px;font:500 22px var(--serif)}.phase1-plan-roles p{margin:0;color:var(--muted);font-size:10px;line-height:1.8}
.phase1-caption{margin:18px 0 0;color:var(--muted);font-size:9px}
.phase1-how{background:#faf3f2}.face-entry{margin:0 auto 90px;width:min(1160px,calc(100% - 64px));display:grid;grid-template-columns:1fr .8fr;background:#242020;color:#fff}
.face-entry>div{padding:62px}.face-entry h2{margin:7px 0 20px;font:500 clamp(31px,3.8vw,46px)/1.55 var(--serif)}.face-entry>div>p:not(.mm-kicker){margin:0 0 25px;color:#c9c0bd;font-size:11px;line-height:2}
.face-entry .mm-button{width:min(100%,390px)}.face-entry-metrics{margin:0;padding:38px;background:#fff;color:var(--ink)}
.face-entry-metrics div{display:grid;grid-template-columns:60px 1fr;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.face-entry-metrics div:last-child{border:0}
.face-entry-metrics dt{color:#e9b8bd;font:500 28px var(--serif)}.face-entry-metrics dd{margin:0;font:500 14px var(--serif)}

.phase1-progress{width:min(750px,calc(100% - 40px));margin:25px auto 0;display:grid;grid-template-columns:repeat(3,1fr);color:var(--muted);font-size:9px}
.phase1-progress span{position:relative;display:flex;align-items:center;gap:8px}.phase1-progress span:after{content:"";height:1px;flex:1;background:var(--line)}.phase1-progress span:last-child:after{display:none}
.phase1-progress b{width:25px;height:25px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}.phase1-progress .active{color:var(--rose-dark)}.phase1-progress .active b{background:var(--rose);border-color:var(--rose);color:#fff}
.phase1-question-list{margin-top:26px;border-top:1px solid var(--line)}.phase1-question{display:grid;grid-template-columns:155px 1fr;gap:20px;margin:0;padding:20px 0;border:0;border-bottom:1px solid var(--line)}
.phase1-question legend{display:grid;align-content:start;float:left;width:155px}.phase1-question legend b{font:500 15px var(--serif)}.phase1-question legend small{margin-top:5px;color:var(--muted);font-size:8px}
.phase1-options{display:flex;flex-wrap:wrap;gap:7px}.phase1-options button{min-height:38px;padding:8px 12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:9px}.phase1-options button.selected{border-color:var(--rose);background:#fff3f3;color:var(--rose-dark);box-shadow:inset 0 0 0 1px var(--rose)}
.mm-consent span b{display:block;margin-bottom:2px;color:var(--ink)}
.mm-consent a{color:inherit;text-decoration:underline;text-underline-offset:2px}

.phase1-result{background:#fffaf9}.phase1-result-head{max-width:790px;padding-bottom:18px}
.phase1-result-head h1{margin:5px 0 17px;font:500 clamp(36px,4.8vw,58px)/1.45 var(--serif)}.phase1-result-head h1 em{color:var(--rose);font-style:normal}
.phase1-result-head>div>p:not(.mm-kicker){margin:0;color:var(--muted);font-size:11px;line-height:1.9}.analysis-confidence{margin-top:9px!important;color:#a96b72!important;font-size:9px!important}
.phase1-summary{padding:25px;background:var(--cream);border:1px solid var(--line)}.phase1-summary h2{margin:0 0 12px;font:500 18px var(--serif)}.phase1-summary ul{list-style:none;padding:0;margin:0}.phase1-summary li{padding:9px 0;border-bottom:1px solid var(--line);font-size:10px}.phase1-summary>p{margin:14px 0 0;color:var(--muted);font-size:8px;line-height:1.7}
.phase1-choice-reassurance{margin:0 0 14px;color:var(--ink-soft);font-size:11px;line-height:1.8}.phase1-choice-reassurance strong{margin-right:8px;font-family:var(--serif);font-size:13px;font-weight:600}.phase1-result-shortcut{display:grid;grid-template-columns:1fr 330px;gap:14px 26px;align-items:center;margin:18px 0 30px;padding:20px 22px;background:#fff7f7;border:1px solid #efcbd1}.phase1-entitlements{display:grid;gap:8px}.phase1-entitlements p{display:grid;grid-template-columns:52px 1fr;gap:10px;margin:0;font-size:10px;line-height:1.6}.phase1-entitlements b{color:var(--rose-dark)}.phase1-result-shortcut>a{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 16px;background:#d87583;color:#fff;font-size:11px;font-weight:700}.phase1-result-shortcut>small{grid-column:1/-1;color:var(--muted);font-size:8px;line-height:1.7}
.phase1-direction-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0 0;border:1px solid var(--line)}
.phase1-direction-card{padding:23px 22px;border-right:1px solid var(--line)}.phase1-direction-card:last-child{border-right:0}.phase1-direction-card>small{color:var(--rose);font-size:8px;letter-spacing:.11em}.phase1-direction-card h2{margin:7px 0 9px;font:500 22px var(--serif)}
.phase1-direction-card>strong{display:block;min-height:48px;font:500 12px/1.75 var(--serif)}.phase1-direction-card>p{min-height:0;margin:10px 0 14px;color:var(--muted);font-size:9px;line-height:1.7}
.phase1-decision-note{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 0}.phase1-decision-note span{padding:9px;background:var(--cream);font-size:8px;line-height:1.55}.phase1-decision-note b{display:block;margin-bottom:3px;color:var(--rose-dark);font-size:7px}
.phase1-direction-card dl{margin:0}.phase1-direction-card dl div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:8px}.phase1-direction-card dd{margin:0;font-weight:700}
.phase1-safety-note{margin:0 0 15px;padding:12px 14px;background:#fffaf9;border-left:2px solid #e3a3ac;color:var(--muted);font-size:10px;line-height:1.75}.phase1-safety-note strong{color:var(--ink);font-weight:600}.mm-paywall-reassurance{margin:0 0 12px;color:#d9ceca;font-size:11px;line-height:1.8}
.phase1-evidence{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:30px}
.phase1-free-result{display:grid;grid-template-columns:.78fr 1.22fr;gap:28px;align-items:start;margin-bottom:24px}.phase1-free-result>*{min-width:0}.phase1-free-result>div:first-child{padding:35px;background:#fff;border:1px solid var(--line)}.phase1-free-result>.mm-comparison-shell{aspect-ratio:4/5}
.phase1-free-result h2{margin:5px 0 15px;font:500 28px/1.55 var(--serif)}.phase1-free-result p{color:var(--muted);font-size:10px;line-height:1.9}.phase1-free-result ul{padding-left:18px;font-size:9px;line-height:2}
.phase1-plan-a-spec{margin:18px 0 0;border-top:1px solid var(--line)}.phase1-plan-a-spec>div{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:9px;line-height:1.55}.phase1-plan-a-spec dt{color:var(--muted)}.phase1-plan-a-spec dd{margin:0;font-weight:700}
.phase1-generation-gate{height:100%;min-height:390px;display:grid;place-items:center;padding:30px;text-align:center;background:repeating-linear-gradient(135deg,#fbf6f5,#fbf6f5 10px,#fff 10px,#fff 20px)}
.phase1-generation-gate>div{width:min(100%,410px)}.phase1-generation-gate span{display:block;color:var(--rose);font-size:28px}.phase1-generation-gate strong{display:block;margin-top:8px;font:500 17px var(--serif)}
.phase1-generation-gate .mm-button{width:100%;margin-top:12px}.generation-consent{display:flex;gap:8px;margin-top:18px;padding:12px;background:#fff;border:1px solid var(--line);text-align:left;color:var(--muted);font-size:8px;line-height:1.6}.generation-consent input{flex:0 0 auto}

.mm-top3-meta em{display:block;margin-top:6px;color:var(--muted);font:400 8px/1.6 var(--sans);font-style:normal}.phase1-tradeoff{margin-top:34px}.phase1-tradeoff h2{font:500 23px var(--serif)}
.phase1-tradeoff-table{border:1px solid var(--line)}.tradeoff-head,.tradeoff-row{display:grid;grid-template-columns:180px repeat(3,1fr)}.tradeoff-head>*{padding:13px;background:var(--cream);border-right:1px solid var(--line);font:500 10px var(--serif)}.tradeoff-row>*{padding:12px;border-top:1px solid var(--line);border-right:1px solid var(--line);font-size:9px}.tradeoff-row span{text-align:center}.consultation-warning{margin:-6px 0 16px;color:var(--muted);font-size:9px;line-height:1.8}

@media(max-width:800px){
  .mm-header{height:62px;padding:0 15px;grid-template-columns:1fr auto}.mm-header .mm-nav,.mm-header .mm-account{display:none}.mm-header .mm-menu{display:block}.phase1-home .mm-header{grid-template-columns:1fr}.phase1-home .mm-menu{display:none}
  .phase1-hero{min-height:auto;padding:30px 15px 34px;grid-template-columns:1fr;gap:24px;background:#fffdfb}.phase1-hero-copy h1{font-size:35px;line-height:1.4}.phase1-hero-copy .mm-kicker{margin-bottom:11px}.phase1-lead{font-size:15px;line-height:1.75;margin:15px 0 18px}.jp-hero-actions{gap:12px}.jp-hero-actions .mm-button{min-height:56px;font-size:13px}.jp-hero-actions .face-check-link{min-height:0;font-size:11px}.phase1-free-boundary{font-size:10px}.phase1-trust{font-size:12px;line-height:1.6}.fringe-blueprint{min-height:410px}.fringe-blueprint img{width:88%}.blueprint-cue{top:12px}.blueprint-line{min-width:100px;padding:0}.blueprint-line:after{width:34px}.blueprint-line b{font-size:11px}.blueprint-line small{font-size:8px}.blueprint-line.width{left:5%;top:24%}.blueprint-line.part{right:3%;top:17%}.blueprint-note-rail{left:10px;right:10px;bottom:10px}.blueprint-note-rail span{padding:8px}.blueprint-note-rail b{font-size:9px}
  .phase1-principle{padding:62px 15px}.phase1-principle>h2{font-size:34px}.phase1-plan-roles{grid-template-columns:1fr}.phase1-plan-roles article{border-right:0;border-bottom:1px solid var(--line)}.phase1-plan-roles article:last-child{border-bottom:0}
  .face-entry{width:calc(100% - 30px);margin-bottom:60px;grid-template-columns:1fr}.face-entry>div{padding:38px 24px}.face-entry-metrics{padding:25px}
  .phase1-progress{margin-top:16px}.phase1-progress span{font-size:0}.phase1-progress b{font-size:9px}
  .phase1-question{grid-template-columns:1fr;gap:12px}.phase1-question legend{float:none;width:auto}.phase1-options button{flex:1 1 calc(50% - 7px);min-height:44px}
  .phase1-result-head,.phase1-free-result{grid-template-columns:1fr;gap:18px}.phase1-result-head h1{font-size:31px;line-height:1.55;letter-spacing:0}.phase1-result-head>div>p:not(.mm-kicker){font-size:12px}
  .phase1-result-shortcut{grid-template-columns:1fr;gap:12px;margin:14px 0 24px;padding:16px}.phase1-result-shortcut>a{grid-column:1;grid-row:auto}.phase1-result-shortcut>small{grid-column:1}.phase1-entitlements p{grid-template-columns:48px 1fr;font-size:9px}.phase1-free-result{scroll-margin-top:18px}
  .phase1-direction-grid{grid-template-columns:1fr}.phase1-direction-card{border-right:0;border-bottom:1px solid var(--line)}.phase1-direction-card:last-child{border-bottom:0}.phase1-direction-card>strong,.phase1-direction-card>p{min-height:0}
  .phase1-evidence{grid-template-columns:1fr;gap:10px}.phase1-decision-note{grid-template-columns:1fr 1fr}
  .tradeoff-head,.tradeoff-row{grid-template-columns:78px repeat(3,minmax(0,1fr))}.phase1-tradeoff-table{overflow:hidden}.tradeoff-head>*,.tradeoff-row>*{padding:10px 5px;font-size:7.5px;overflow-wrap:anywhere}
  .mm-top3{grid-template-columns:1fr}.mm-top3-card{display:grid;grid-template-columns:1fr 1fr}.mm-top3-card img{grid-column:1;grid-row:1}.mm-top3-meta{grid-column:2;display:flex;flex-direction:column;justify-content:center}
}

/* Final Phase 1 cascade: keep informational content editorial, not card-based. */
.phase1-trust{display:flex;align-items:baseline;gap:8px}.phase1-trust:before{content:"";width:12px;height:1px;margin:0;background:var(--rose);flex:0 0 auto}
.phase1-plan-roles{gap:34px;border:0}.phase1-plan-roles article,.phase1-plan-roles article:last-child{position:relative;padding:28px 0 0;border:0}.phase1-plan-roles article:before{content:"";position:absolute;left:0;top:0;width:34px;height:1px;background:#d28590}
.phase1-direction-grid{gap:30px;border:0}.phase1-direction-card,.phase1-direction-card:last-child{position:relative;padding:24px 0 0;border:0}.phase1-direction-card:before{content:"";position:absolute;left:0;top:0;width:34px;height:1px;background:#d28590}.phase1-decision-note span{padding:9px 0;background:none;border-top:1px solid var(--line)}
.phase1-summary{position:relative;border:0;background:#faf7f3}.phase1-summary:before{content:"";position:absolute;left:25px;top:18px;width:28px;height:1px;background:#d28590}.phase1-summary h2{padding-top:10px}.phase1-summary li:last-child{border-bottom:0}
.phase1-generation-gate{background:#fbf7f4}.phase1-generation-gate .generation-mark{display:block;width:28px;height:1px;margin:0 auto 16px;background:#d28590;font-size:0}.phase1-generation-gate strong{margin-top:0}

@media(max-width:800px){
  .phase1-plan-roles{gap:28px}.phase1-plan-roles article,.phase1-plan-roles article:last-child{padding-top:24px;border:0}
  .phase1-direction-grid{gap:28px}.phase1-direction-card,.phase1-direction-card:last-child{padding-top:22px;border:0}
}

/* Interaction clarity and mobile comparison readability. */
.mm-photo-picker:has(input:focus-visible){outline:3px solid #8f2038;outline-offset:3px}
.phase1-question-help{margin:28px 0 -12px;color:var(--muted);font-size:10px;line-height:1.7}
.tradeoff-scroll-hint{display:none;margin:0 0 10px;color:var(--muted);font-size:10px;line-height:1.7}
.phase1-tradeoff-table:focus-visible{outline:3px solid #8f2038;outline-offset:3px}

@media(max-width:800px){
  .tradeoff-scroll-hint{display:block}
  .phase1-tradeoff-table{overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .phase1-tradeoff-table>.tradeoff-head,.phase1-tradeoff-table>.tradeoff-row{min-width:520px;grid-template-columns:110px repeat(3,minmax(136px,1fr))}
  .phase1-tradeoff-table .tradeoff-head>*,.phase1-tradeoff-table .tradeoff-row>*{padding:11px 8px;font-size:12px;overflow-wrap:normal}
  .phase1-tradeoff-table .tradeoff-head>*:first-child,.phase1-tradeoff-table .tradeoff-row>*:first-child{position:sticky;left:0;z-index:2;background:#fffaf9;box-shadow:6px 0 10px -10px rgba(45,32,29,.9)}
  .phase1-tradeoff-table .tradeoff-head>*:first-child{z-index:3;background:var(--cream)}
  .mm-top3-meta em{font-size:9px;line-height:1.75}
}

/* Final mobile readability guard: intentionally last so Phase 1 source rules cannot reduce actionable copy. */
@media(max-width:800px){
  .phase1-entitlements p{font-size:12px;line-height:1.7}.phase1-result-shortcut>small,.phase1-direction-card>small{font-size:12px;line-height:1.7}.phase1-direction-card>p{font-size:13px;line-height:1.75}.phase1-decision-note span{font-size:12px;line-height:1.7}.phase1-decision-note b{font-size:10px;line-height:1.5}.phase1-plan-a-spec>div,.phase1-summary li{font-size:12px;line-height:1.7}.phase1-safety-note{font-size:12px;line-height:1.75}.phase1-summary>p,.phase1-free-result p{font-size:12px;line-height:1.75}.generation-consent,.mm-purchase-note,.phase1-caption{font-size:12px;line-height:1.7}.mm-top3-meta em,.consultation-warning{font-size:12px;line-height:1.7}
}

/* Final canonical header guard. Kept last so older page-specific mobile rules
   cannot hide product navigation or turn a product shortcut into a menu. */
@media(max-width:800px){
  .mm-header,.phase1-home .mm-header{height:auto;min-height:108px;padding:0 14px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:64px 44px;align-items:center}
  .mm-header .mm-brand{grid-column:1;grid-row:1;min-width:0}
  .mm-header .mm-account{display:inline-flex;grid-column:2;grid-row:1;align-items:center;min-height:38px;padding:8px 12px;white-space:nowrap}
  .mm-header .mm-nav{display:flex;grid-column:1/-1;grid-row:2;width:calc(100% + 28px);height:44px;margin-left:-14px;padding:0 14px;gap:22px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;border-top:1px solid rgba(222,214,207,.6);background:#fffdfb;font-size:11px;white-space:nowrap}
  .mm-header .mm-nav::-webkit-scrollbar{display:none}.mm-header .mm-nav a{flex:0 0 auto;min-height:44px}
  .mm-header .mm-menu,.phase1-home .mm-menu{display:none!important}
}

/* Small editorial labels sit over an image on the primary mobile entry. Keep
   them legible enough to be read as evidence, rather than decorative noise. */
@media(max-width:800px){
  .blueprint-cue{font-size:10px;color:var(--rose-dark)}
  .blueprint-line b{font-size:12px}
  .blueprint-line small{font-size:10px;color:var(--ink-soft)}
  .blueprint-note-rail small{font-size:9px;color:var(--rose-dark)}
  .blueprint-note-rail b{font-size:10px}
  .phase1-plan-roles small{font-size:10px;color:var(--rose-dark)}
  .phase1-plan-roles p{font-size:12px;line-height:1.75}
}

/* A retryable service interruption must read as an actionable state, not as
   a faint footnote beneath the primary action. */
.mm-status.mm-status-error{min-height:0;margin-top:12px;padding:12px 14px;border-left:3px solid #a53a4c;background:#fff0f2;color:#843244;text-align:left;font-size:12px;line-height:1.7}

@media(max-width:800px){
  .phase1-home .mm-header{grid-template-columns:1fr auto}
  .phase1-home .mm-menu{display:inline-flex;align-items:center;justify-content:center;min-width:68px;min-height:44px;padding:9px 14px;font-size:12px}
}

/* iPad portrait is neither the compact phone layout nor a comfortable
   two-column desktop. Keep the entry decision readable through this range. */
@media(min-width:801px) and (max-width:1024px){
  .phase1-home .mm-header{height:68px;padding:0 28px;grid-template-columns:1fr auto}
  .phase1-home .mm-nav,.phase1-home .mm-account{display:none}
  .phase1-home .mm-menu{display:inline-flex;align-items:center;justify-content:center;min-width:76px;min-height:44px;padding:9px 16px;font-size:12px}
  .phase1-hero{min-height:auto;padding:52px max(32px,calc((100% - 760px)/2));grid-template-columns:minmax(0,1fr);gap:38px;background:#fffdfb}
  .phase1-hero-copy{width:min(100%,660px);margin:auto}
  .phase1-hero-copy h1{font-size:clamp(42px,5.7vw,50px)}
  .fringe-blueprint{width:min(100%,590px);min-height:530px;margin:auto}
  .fringe-blueprint img{width:72%}
}

/* Result photography must keep one composition at laptop, tablet and phone
   widths. Stack before the two-column layout becomes cramped, and never let
   the text column stretch the portrait to a different aspect ratio. */
@media(min-width:801px) and (max-width:1120px){
  .phase1-free-result{grid-template-columns:minmax(0,1fr);gap:20px}
  .phase1-free-result>.mm-comparison-shell{width:min(100%,760px);justify-self:center}
}

/* A disabled purchase must not borrow the visual authority of an active paid
   action. The prerequisite is already explained directly below the control. */
.phase1-result #unlock-top3:disabled{background:#e7dfdc;color:#897d78;box-shadow:none;cursor:not-allowed}

/* Keep consent and the choices that determine a bespoke plan readable on the
   compact intake, even after older editorial rules in this file. */
@media(max-width:800px){
  .phase1-options button{font-size:13px;line-height:1.45}
  .mm-consent{font-size:12px;line-height:1.75}
}

/* iPad portrait uses the desktop result structure, so it needs the same
   decision-critical reading floor as the phone layout. */
@media(min-width:801px) and (max-width:1024px){
  .mm-top3-meta small{font-size:10px}
  .mm-top3-meta em,.consultation-warning{font-size:12px;line-height:1.7}
  .tradeoff-head>*{font-size:12px;line-height:1.55}
  .tradeoff-row>*{font-size:12px;line-height:1.65}
}

/* The annotated portrait is useful on a wide canvas. On a phone its leader
   lines turn into false precision, so the same facts become a readable list. */
.mobile-photo-analysis{display:none}
@media(max-width:800px){
  .phase1-home .mm-header{height:64px;padding:0 18px}
  .phase1-home .mm-brand{font-size:13px}
  .phase1-hero{padding:30px 18px 46px;gap:22px}
  .phase1-hero-copy h1{font-size:32px;line-height:1.34;letter-spacing:0}
  .phase1-lead{margin:14px 0 20px;font-size:14px;line-height:1.8}
  .jp-hero-actions .mm-button{min-height:58px;padding:12px 16px;font-size:14px}
  .jp-hero-actions .face-check-link{margin-top:4px;font-size:12px;line-height:1.7}
  .phase1-free-boundary{margin-top:14px;font-size:12px;line-height:1.7}
  .phase1-trust{margin-top:10px;font-size:12px;line-height:1.7}

  .fringe-blueprint{min-height:0;display:grid;grid-template-rows:440px auto;margin-top:2px;background:#fff;box-shadow:0 14px 34px rgba(83,55,50,.08)}
  .fringe-blueprint>img{position:static;transform:none;width:100%;height:440px;object-position:center top;filter:saturate(.88)}
  .fringe-blueprint:before,.blueprint-cue,.blueprint-line,.blueprint-note-rail{display:none}
  .mobile-photo-analysis{display:block;padding:16px 16px 18px;background:#fffaf9}
  .mobile-photo-analysis>p{margin:0 0 11px;color:var(--rose-dark);font-size:11px;font-weight:700;letter-spacing:.08em}
  .mobile-photo-analysis ul{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:0;list-style:none}
  .mobile-photo-analysis li{min-width:0;padding:10px 11px;border-top:1px solid #e9d7d5;background:#fff}
  .mobile-photo-analysis li.central{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:12px;border-left:3px solid var(--rose)}
  .mobile-photo-analysis li.central span{margin:0;text-align:right}
  .mobile-photo-analysis b,.mobile-photo-analysis span{display:block}
  .mobile-photo-analysis b{font:500 14px/1.45 var(--serif)}
  .mobile-photo-analysis span{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.5}

  .phase1-principle{padding:56px 20px 60px;text-align:left}
  .phase1-principle>.mm-kicker{text-align:left;font-size:10px}
  .phase1-principle>h2{margin:8px 0 28px;font-size:30px;line-height:1.42;letter-spacing:0}
  .phase1-plan-roles{gap:0;padding:0;border:1px solid var(--line);background:#fffaf9}
  .phase1-plan-roles article,.phase1-plan-roles article:last-child{padding:18px 17px 19px 52px;border-bottom:1px solid var(--line)}
  .phase1-plan-roles article:last-child{border-bottom:0}
  .phase1-plan-roles article:before{top:23px;left:17px;width:23px}
  .phase1-plan-roles small{font-size:10px;letter-spacing:.11em}
  .phase1-plan-roles h3{margin:5px 0 6px;font-size:21px;line-height:1.35}
  .phase1-plan-roles p{font-size:13px;line-height:1.65}
  .phase1-caption{margin:13px 0 0;font-size:11px;line-height:1.7;text-align:left}

  .simple-how{padding:48px 18px;background:#faf3f2}
  .simple-how>header{gap:10px;margin-bottom:22px}.simple-how h2{font-size:19px;letter-spacing:.08em}
  .simple-steps{gap:10px}.simple-steps article{padding:17px 17px 19px!important;background:#fff;text-align:left}
  .step-mark{margin-bottom:12px;padding-bottom:10px}.step-mark small{font-size:9px}.step-mark strong{font-size:31px}
  .simple-steps h3{margin:0 0 7px;font-size:20px;line-height:1.4}.simple-steps p{font-size:12px;line-height:1.7}

  .face-entry{width:calc(100% - 36px);margin-bottom:48px}.face-entry>div{padding:34px 20px}.face-entry h2{margin:8px 0 16px;font-size:29px;line-height:1.45}.face-entry>div>p:not(.mm-kicker){font-size:12px;line-height:1.8}.face-entry .mm-button{min-height:56px;font-size:13px}
  .face-entry-metrics{padding:18px 20px}.face-entry-metrics div{grid-template-columns:42px 1fr;padding:16px 0}.face-entry-metrics dt{font-size:23px}.face-entry-metrics dd{font-size:13px}
  .mm-footer{padding:30px 18px}.mm-footer p,.mm-footer nav{font-size:11px;line-height:1.7}
}

/* The interactive before/after comparison is the product demonstration. Keep
   it as the hero visual; explanatory analysis must support, never replace it. */
.phase1-visual-stack{display:grid;gap:14px;min-width:0}
.phase1-home-compare{position:relative;width:100%;min-height:0;aspect-ratio:4/5;border:1px solid #eddfdc;background:#eee5df;box-shadow:0 28px 70px rgba(83,55,50,.08)}
.mm-flow-product-bar,.mm-static-product-bar{width:100%;max-width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border-bottom:1px solid var(--line);background:#fffdfb}
.mm-flow-product-nav,.mm-static-product-nav{width:100%;max-width:100%;min-width:0;display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;contain:inline-size;padding:10px max(18px,calc((100% - 1180px)/2));white-space:nowrap;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:none}.mm-flow-product-nav::-webkit-scrollbar,.mm-static-product-nav::-webkit-scrollbar{display:none}.mm-flow-product-nav a,.mm-static-product-nav a{flex:0 0 auto;color:var(--muted);font-size:12px;text-decoration:none;position:relative;padding-bottom:3px}.mm-flow-product-nav a[aria-current=page]{color:var(--rose-dark);font-weight:700}.mm-flow-product-nav a[aria-current=page]:after,.mm-static-product-nav a[aria-current=page]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor}.mm-static-product-nav a{color:#5d5350}.mm-static-product-nav a[aria-current=page]{font-weight:700;color:#a34d63}
.mm-flow-product-bar>.mm-product-account-link,.mm-static-product-bar>.mm-product-account-link{display:grid;place-items:center;min-width:78px;padding:8px 14px;border-left:1px solid var(--line);background:#fff;color:var(--ink);font-size:11px;text-decoration:none;white-space:nowrap}

/* My results is an index of existing local/private result flows, not another
   diagnostic or generation surface. */
.mm-my-results{width:min(1040px,calc(100% - 64px));margin:0 auto;padding:82px 0 112px}.mm-my-results-head{max-width:650px}.mm-my-results-head h1{margin:0;font:500 clamp(42px,5.3vw,66px)/1.38 var(--serif);letter-spacing:.02em}.mm-my-results-head h1 em{font-style:normal;color:var(--rose)}.mm-my-results-head>p:not(.mm-kicker){margin:21px 0 0;color:var(--muted);font-size:14px;line-height:2}.mm-my-results>.mm-status{margin:30px 0 0;color:var(--muted);font-size:12px;line-height:1.8}.mm-my-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:35px;border:1px solid var(--line);background:var(--line)}.mm-my-result-card{min-height:300px;padding:35px;display:flex;flex-direction:column;align-items:flex-start;background:#fff}.mm-my-result-card h2{margin:10px 0 0;font:500 clamp(27px,3vw,37px)/1.45 var(--serif)}.mm-my-result-copy{max-width:360px;margin:18px 0 28px;color:var(--muted);font-size:13px;line-height:1.85}.mm-my-result-card .mm-button{width:min(100%,310px);margin-top:auto;min-height:54px}.mm-my-result-secondary{margin-top:15px;color:var(--rose-dark);font-size:12px;font-weight:700;text-decoration:none}.mm-my-result-secondary:focus-visible,.mm-my-result-card .mm-button:focus-visible{outline:3px solid #8f2038;outline-offset:3px}
.mm-account-results{width:100%;margin:24px 0 0;display:grid;gap:12px}.mm-account-result{display:grid;gap:8px;width:100%;padding:16px;border:1px solid var(--line);background:var(--soft)}.mm-account-result>span{color:var(--muted);font-size:12px;line-height:1.65}.mm-account-result .mm-my-result-secondary{justify-self:start;border:0;background:transparent;padding:6px 0;cursor:pointer}.mm-account-result .mm-my-result-secondary:disabled{cursor:wait;opacity:.65}.mm-account-result-image{display:block;width:100%;height:auto;margin-top:8px;border:1px solid var(--line)}

@media(max-width:800px){.mm-my-results{width:calc(100% - 36px);padding:48px 0 64px}.mm-my-results-head h1{font-size:38px;line-height:1.4}.mm-my-results-head>p:not(.mm-kicker){font-size:13px;line-height:1.85}.mm-my-results>.mm-status{margin-top:22px;font-size:12px}.mm-my-results-grid{grid-template-columns:1fr;margin-top:26px}.mm-my-result-card{min-height:0;padding:27px 20px}.mm-my-result-card h2{font-size:29px}.mm-my-result-copy{margin:15px 0 25px;font-size:13px;line-height:1.8}.mm-my-result-card .mm-button{width:100%;min-height:58px;font-size:13px}.mm-my-result-secondary{font-size:12px}}
@media(max-width:800px){.mm-flow-product-nav,.mm-static-product-nav{gap:20px;padding-inline:14px}.mm-flow-product-bar>.mm-product-account-link,.mm-static-product-bar>.mm-product-account-link{min-width:72px;padding-inline:10px}}

@media(max-width:600px){
  .mm-empty{margin-top:28px;padding:42px 16px}
  .mm-empty .mm-flow-title{font-size:clamp(27px,8.2vw,34px);line-height:1.45}
  .mm-empty .mm-button{width:100%;max-width:100%;justify-content:center;white-space:normal}
  .mm-auth-card h1{font-size:clamp(27px,8vw,34px);line-height:1.45}
  .hairstyle-public-status h2,.hairstyle-status-next h2{font-size:clamp(25px,7.4vw,29px);line-height:1.5}
}

/* Final phone-shell density. Some embedded browsers expose 601–767 CSS px;
   they still receive the compact mobile product layout. */
@media(max-width:767px){
  .mm-flow-header{height:56px;padding-inline:12px}
  .mm-flow{width:calc(100% - 20px);padding:12px 0 56px}
  .mm-flow-card{padding:16px 12px;box-shadow:none}
  .mm-flow-title{font-size:26px;line-height:1.35}
  .mm-flow-lead{margin:7px 0 12px;font-size:10.5px;line-height:1.55}
  .mm-choice-block{margin-top:16px}
  .mm-choice-block h2{margin-bottom:8px;font-size:16px}
  .mm-free-preview{margin:12px 0 10px;padding:11px 12px}

  .mm-auth{grid-template-columns:1fr;min-height:calc(100dvh - 66px)}
  .mm-auth-visual{min-height:148px}
  .mm-auth-visual-content{padding:14px 16px}
  .mm-auth-visual-content>div>p,.mm-auth-visual-content>small{display:none}
  .mm-auth-visual h1{font-size:23px;line-height:1.32}
  .mm-auth-panel{padding:17px 14px 28px;align-items:start}
  .mm-auth-card h2{font-size:25px;line-height:1.35}
  .mm-auth-card .lead{margin:7px 0 13px;line-height:1.55}
  .mm-auth-form{gap:9px}
  .mm-auth-form input{height:48px}
  .mm-auth-form button{height:50px}

  .hairstyle-status-page .hairstyle-status-main{width:calc(100% - 24px);padding:12px 0 56px}
  .hairstyle-status-page .hairstyle-status-hero{padding:0 0 11px}
  .hairstyle-status-page .hairstyle-status-hero h1{font-size:25px;line-height:1.3}
  .hairstyle-status-page .hairstyle-status-hero>p:not(.mm-kicker){margin-top:7px;font-size:10.5px;line-height:1.55}
  .hairstyle-status-page .hairstyle-public-status{margin-top:6px;padding:8px 10px}
  .hairstyle-status-page .hairstyle-public-status h2{font-size:18px;line-height:1.35}
  .hairstyle-status-page .hairstyle-public-status>p{margin-top:3px;font-size:10px;line-height:1.5}
  .hairstyle-status-page .simulation-panel{margin:3px 0 28px;padding:11px 10px;gap:8px}

  .hairstyle-catalog-page .catalog-choice{margin-bottom:10px;padding:8px 0 11px}
  .hairstyle-catalog-page .catalog-choice h1{font-size:29px;line-height:1.3}
  .catalog-face-quicklink{min-height:54px;margin-top:10px;padding:9px 11px}
  .catalog-face-quicklink strong{font-size:17px}
  .hairstyle-catalog-filter-panel{margin-bottom:10px}
  .hairstyle-catalog-filter-panel>summary{min-height:44px}
  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 4px}
  .hairstyle-catalog-page .public-catalog-card>div{padding:5px 4px}
  .hairstyle-catalog-page .public-catalog-card strong{min-height:2.7em;font-size:10px;line-height:1.35}
  .hairstyle-catalog-page .public-catalog-card small,.hairstyle-catalog-page .public-catalog-faces{display:none}
  .mm-page .public-catalog-select{min-height:44px;padding:0 2px;font-size:0;line-height:1}
  .mm-page .public-catalog-select::after{content:"詳細";font-size:10px;letter-spacing:.08em}

  .mm-my-results{width:calc(100% - 24px);padding:18px 0 56px}
  .mm-my-results-head h1{font-size:28px;line-height:1.32}
  .mm-my-results-head>p:not(.mm-kicker){margin-top:7px;font-size:10.5px;line-height:1.55}
  .mm-my-results>.mm-status{margin-top:9px;font-size:10px}
  .mm-my-results-grid{margin-top:12px}
  .mm-my-result-card{padding:16px 13px}
  .mm-my-result-card h2{font-size:22px}
  .mm-my-result-copy{margin:8px 0 13px;font-size:11px;line-height:1.55}

  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters{gap:0;margin:0;overflow:hidden}
  .hairstyle-catalog-filter-panel .catalog-search{gap:0;margin:0;padding:6px 8px}
  .hairstyle-catalog-filter-panel .catalog-search input{height:44px;min-height:44px}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters fieldset{display:block;margin:0;padding:5px 8px 6px}
  .hairstyle-catalog-filter-panel .catalog-filter-row{display:flex;flex-wrap:nowrap;gap:6px;margin:0 -8px;padding:0 8px 2px;overflow-x:auto}
  .hairstyle-catalog-filter-panel .catalog-filter-row button{flex:0 0 auto;min-width:44px;min-height:44px}
}

/* Revenue-flow mobile guard. Keep the catalogue scannable without reducing
   Japanese labels, consent copy or result copy below a readable size. */
@media(max-width:767px){
  .mm-kicker{font-size:12px;line-height:1.45}
  .mm-flow-lead,
  .hairstyle-status-page .hairstyle-status-hero>p:not(.mm-kicker),
  .hairstyle-status-page .hairstyle-public-status>p,
  .mm-my-results-head>p:not(.mm-kicker),
  .mm-my-results>.mm-status,
  .mm-my-result-copy{font-size:14px;line-height:1.7}
  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 7px}
  .hairstyle-catalog-page .public-catalog-card{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}
  .hairstyle-catalog-page .public-catalog-card>div{padding:9px 8px 8px}
  .hairstyle-catalog-page .public-catalog-card small{display:block;font-size:11px;line-height:1.35}
  .hairstyle-catalog-page .public-catalog-card strong{display:block;min-height:2.8em;overflow:visible;font-size:14px;line-height:1.4;-webkit-line-clamp:unset}
  .hairstyle-catalog-page .public-catalog-faces{display:block;font-size:11px;line-height:1.45}
  .mm-page .public-catalog-select{min-height:48px;padding:7px 5px;font-size:12px;line-height:1.35;white-space:normal}
  .mm-page .public-catalog-select::after{content:none}
}
@media(max-width:340px){.hairstyle-catalog-page .public-catalog-grid{grid-template-columns:1fr}}

.hairstyle-price-note{margin:4px 0 8px;padding:9px 10px;border-left:2px solid var(--rose);background:#fff7f6;color:var(--ink-soft);font-size:12px;line-height:1.65}
.hairstyle-price-note strong{color:var(--ink)}
@media(max-width:767px){.hairstyle-price-note{font-size:14px;line-height:1.65}}

/* Shipping mobile guard. Keep last. */
@media(max-width:767px){
  .mm-page :where(.mm-status,.mm-fineprint,.mm-consent,.catalog-price-note,.catalog-storage-note){font-size:14px;line-height:1.65}
  .mm-page :where(.mm-consent input,input[type="checkbox"]){width:20px;height:20px;flex:0 0 20px}
  .mm-kicker{font-size:12px;line-height:1.4}
  .mm-flow-lead,.mm-auth-card .lead{font-size:15px;line-height:1.65}
  .hairstyle-status-page .hairstyle-status-main{width:calc(100% - 28px);padding:14px 0 64px}
  .hairstyle-status-page .hairstyle-status-hero{padding-bottom:14px}
  .hairstyle-status-page .hairstyle-status-hero h1{font-size:28px;line-height:1.36}
  .hairstyle-status-page .hairstyle-status-hero>p:not(.mm-kicker){margin-top:8px;font-size:14px;line-height:1.65}
  .hairstyle-status-page .hairstyle-public-status{margin-top:7px;padding:11px 12px}
  .hairstyle-status-page .hairstyle-public-status h2{font-size:20px;line-height:1.4}
  .hairstyle-status-page .hairstyle-public-status>p{margin-top:5px;font-size:14px;line-height:1.55}
  .hairstyle-status-page .simulation-panel{margin:5px 0 30px;padding:14px 12px;gap:11px}
  .hairstyle-status-page .simulation-panel h2{font-size:21px;line-height:1.42}
  .hairstyle-status-page .simulation-panel>p,.hairstyle-status-page .simulation-panel label,.hairstyle-status-page .simulation-panel #diagnosis-form-status,.hairstyle-status-page .simulation-panel #diagnosis-tryon-status{font-size:14px;line-height:1.6}
  .hairstyle-status-page .simulation-panel select{min-height:48px;font-size:16px}
  .hairstyle-status-page .simulation-panel .public-catalog-card{padding:14px}
  .hairstyle-status-page .simulation-panel .public-catalog-card strong{font-size:20px}
  .hairstyle-status-page .simulation-panel .public-catalog-card p{font-size:14px;line-height:1.6}
  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 7px}
  .hairstyle-catalog-page .public-catalog-card>div{padding:9px 8px 8px}
  .hairstyle-catalog-page .public-catalog-card small{display:block;font-size:11px;line-height:1.35}
  .hairstyle-catalog-page .public-catalog-card strong{display:block;min-height:2.8em;overflow:visible;font-size:14px;line-height:1.4;-webkit-line-clamp:unset}
  .hairstyle-catalog-page .public-catalog-faces{display:none}
  .mm-page .public-catalog-select{min-height:46px;padding:7px 5px;font-size:12px;line-height:1.35;white-space:normal}
  .mm-page .public-catalog-select::after{content:none}
  .hairstyle-catalog-filter-panel>summary{font-size:15px}
  .hairstyle-catalog-filter-panel .catalog-search span,.hairstyle-catalog-filter-panel .hairstyle-catalog-filters legend{font-size:12px}
  .hairstyle-catalog-filter-panel .catalog-filter-row button{font-size:12px}
  .diagnosis-all-styles{width:calc(100% - 28px);margin:22px auto 58px;padding-top:0;border-top:1px solid var(--line)}
  .diagnosis-all-styles>summary{min-height:74px;margin:0;padding:12px 0;cursor:pointer;list-style:none}
  .diagnosis-all-styles>summary::-webkit-details-marker{display:none}
  .diagnosis-all-styles>summary::after{content:"＋";align-self:center;color:var(--rose);font:500 22px/1 var(--serif)}
  .diagnosis-all-styles[open]>summary::after{content:"−"}
  .diagnosis-all-styles .catalog-heading>strong{align-self:center;font-size:14px}
  .diagnosis-all-styles .catalog-heading h2{font-size:21px;line-height:1.4}
  .diagnosis-all-styles .catalog-heading p{margin-top:5px;font-size:13px;line-height:1.55}
  .diagnosis-style-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .diagnosis-style-card span{padding:8px}
  .diagnosis-style-card strong{display:block;min-height:2.8em;overflow:visible;font-size:13px;line-height:1.4;-webkit-line-clamp:unset}
  .diagnosis-style-card small{display:block;font-size:11px;line-height:1.4}
  .mm-my-results{width:calc(100% - 28px);padding:18px 0 64px}
  .mm-my-results-head h1{font-size:30px;line-height:1.35}
  .mm-my-results-head>p:not(.mm-kicker),.mm-my-results>.mm-status,.mm-my-result-copy{font-size:14px;line-height:1.65}
  .mm-my-result-card{padding:18px 14px}
}

/* Final mobile readability and conversion guard. Product value stays dense,
   but no consent, price, status or catalogue action is reduced to caption
   size. Keep this block last so earlier experiments cannot reintroduce the
   four-column phone gallery. */
@media(max-width:767px){
  .mm-page :where(.mm-status,.mm-fineprint,.mm-consent,.catalog-price-note,.catalog-storage-note){font-size:14px;line-height:1.65}
  .mm-page :where(.mm-consent input,input[type="checkbox"]){width:20px;height:20px;flex:0 0 20px}
  .mm-kicker{font-size:12px;line-height:1.4}
  .mm-flow-lead,.mm-auth-card .lead{font-size:15px;line-height:1.65}
  .hairstyle-status-page .hairstyle-status-main{width:calc(100% - 28px);padding:14px 0 64px}
  .hairstyle-status-page .hairstyle-status-hero{padding-bottom:14px}
  .hairstyle-status-page .hairstyle-status-hero h1{font-size:28px;line-height:1.36}
  .hairstyle-status-page .hairstyle-status-hero>p:not(.mm-kicker){margin-top:8px;font-size:14px;line-height:1.65}
  .hairstyle-status-page .hairstyle-public-status{margin-top:7px;padding:11px 12px}
  .hairstyle-status-page .hairstyle-public-status h2{font-size:20px;line-height:1.4}
  .hairstyle-status-page .hairstyle-public-status>p{margin-top:5px;font-size:14px;line-height:1.55}
  .hairstyle-status-page .simulation-panel{margin:5px 0 30px;padding:14px 12px;gap:11px}
  .hairstyle-status-page .simulation-panel h2{font-size:21px;line-height:1.42}
  .hairstyle-status-page .simulation-panel>p,.hairstyle-status-page .simulation-panel label,.hairstyle-status-page .simulation-panel #diagnosis-form-status,.hairstyle-status-page .simulation-panel #diagnosis-tryon-status{font-size:14px;line-height:1.6}
  .hairstyle-status-page .simulation-panel select{min-height:48px;font-size:16px}
  .hairstyle-status-page .simulation-panel .public-catalog-card{padding:14px}
  .hairstyle-status-page .simulation-panel .public-catalog-card strong{font-size:20px}
  .hairstyle-status-page .simulation-panel .public-catalog-card p{font-size:14px;line-height:1.6}

  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 7px}
  .hairstyle-catalog-page .public-catalog-card>div{padding:9px 8px 8px}
  .hairstyle-catalog-page .public-catalog-card small{display:block;font-size:11px;line-height:1.35}
  .hairstyle-catalog-page .public-catalog-card strong{display:block;min-height:2.8em;overflow:visible;font-size:14px;line-height:1.4;-webkit-line-clamp:unset}
  .hairstyle-catalog-page .public-catalog-faces{display:none}
  .mm-page .public-catalog-select{min-height:46px;padding:7px 5px;font-size:12px;line-height:1.35;white-space:normal}
  .mm-page .public-catalog-select::after{content:none}
  .hairstyle-catalog-filter-panel>summary{font-size:15px}
  .hairstyle-catalog-filter-panel .catalog-search span,.hairstyle-catalog-filter-panel .hairstyle-catalog-filters legend{font-size:12px}
  .hairstyle-catalog-filter-panel .catalog-filter-row button{font-size:12px}

  .diagnosis-all-styles{width:calc(100% - 28px);margin:22px auto 58px;padding-top:0;border-top:1px solid var(--line)}
  .diagnosis-all-styles>summary{min-height:74px;margin:0;padding:12px 0;cursor:pointer;list-style:none}
  .diagnosis-all-styles>summary::-webkit-details-marker{display:none}
  .diagnosis-all-styles>summary::after{content:"＋";align-self:center;color:var(--rose);font:500 22px/1 var(--serif)}
  .diagnosis-all-styles[open]>summary::after{content:"−"}
  .diagnosis-all-styles .catalog-heading>strong{align-self:center;font-size:14px}
  .diagnosis-all-styles .catalog-heading h2{font-size:21px;line-height:1.4}
  .diagnosis-all-styles .catalog-heading p{margin-top:5px;font-size:13px;line-height:1.55}
  .diagnosis-style-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .diagnosis-style-card span{padding:8px}
  .diagnosis-style-card strong{display:block;min-height:2.8em;overflow:visible;font-size:13px;line-height:1.4;-webkit-line-clamp:unset}
  .diagnosis-style-card small{display:block;font-size:11px;line-height:1.4}

  .mm-my-results{width:calc(100% - 28px);padding:18px 0 64px}
  .mm-my-results-head h1{font-size:30px;line-height:1.35}
  .mm-my-results-head>p:not(.mm-kicker),.mm-my-results>.mm-status,.mm-my-result-copy{font-size:14px;line-height:1.65}
  .mm-my-result-card{padding:18px 14px}
}

.mm-not-found{width:min(820px,calc(100% - 40px));min-height:calc(100dvh - 220px);margin:auto;padding:clamp(70px,10vw,130px) 0;display:flex;flex-direction:column;justify-content:center}
.mm-not-found h1{max-width:720px;margin:12px 0 18px;font:500 clamp(40px,6vw,70px)/1.45 var(--serif)}
.mm-not-found>p:not(.mm-kicker){max-width:620px;margin:0;color:var(--muted);font-size:16px;line-height:1.8}
.mm-not-found-actions{display:flex;gap:12px;margin-top:34px}.mm-not-found-actions .mm-button{min-width:230px}
@media(max-width:767px){.mm-not-found{width:calc(100% - 32px);min-height:calc(100dvh - 140px);padding:48px 0}.mm-not-found h1{font-size:clamp(26px,8vw,34px)}.mm-not-found>p:not(.mm-kicker){font-size:15px}.mm-not-found-actions{display:grid}.mm-not-found-actions .mm-button{width:100%;min-width:0}}

/* Phone filter drawer: compact even while open.  Each group scrolls sideways
   inside the drawer so the 105-style gallery remains close to the first view. */
@media(max-width:600px){
  .hairstyle-catalog-filter-panel{border-inline:0}
  .hairstyle-catalog-filter-panel>summary{min-height:52px;padding-inline:4px 8px;font-size:12px;letter-spacing:.02em}
  .hairstyle-catalog-filter-panel[open]>summary{padding-inline:8px}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters{overflow:hidden}
  .hairstyle-catalog-filter-panel .catalog-search{padding:10px 8px 8px}
  .hairstyle-catalog-filter-panel .catalog-search span{margin-bottom:6px;font-size:10px}
  .hairstyle-catalog-filter-panel .catalog-search input{height:44px;padding:0 12px;border-radius:2px;font-size:14px}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters fieldset{display:block;padding:9px 8px 10px}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters legend{display:block;margin:0 0 7px;font-size:10px;line-height:1.4}
  .hairstyle-catalog-filter-panel .catalog-filter-row{display:flex;flex-wrap:nowrap;gap:6px;margin:0 -8px;padding:0 8px 3px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none}
  .hairstyle-catalog-filter-panel .catalog-filter-row::-webkit-scrollbar{display:none}
  .hairstyle-catalog-filter-panel .catalog-filter-row button{flex:0 0 auto;min-width:44px;min-height:44px;padding:0 11px;border-radius:2px;font-size:10px;scroll-snap-align:start;white-space:nowrap}
  .hairstyle-catalog-filter-panel .catalog-filter-reset{min-height:44px;margin:5px 8px 7px;padding:0 4px;border-radius:0;font-size:11px}
}

/* Keep flow header side labels inside the viewport without fixed tracks. */
@media(max-width:800px){
  .mm-flow-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .mm-flow-header>*{min-width:0}
  .mm-flow-header .mm-back{justify-self:start}
  .mm-flow-label{justify-self:end}
}
.phase1-home-compare>img,.phase1-home-compare>div,.phase1-home-compare>div img{object-position:center 20%}
.phase1-analysis-summary{padding:17px 19px;border:1px solid var(--line);background:#fffaf9}
.phase1-analysis-summary>p{margin:0 0 11px;color:var(--rose-dark);font-size:11px;font-weight:700;letter-spacing:.08em}
.phase1-analysis-summary ul{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:0;padding:0;list-style:none;background:#eadbd8}
.phase1-analysis-summary li{padding:11px 12px;background:#fff}.phase1-analysis-summary b,.phase1-analysis-summary span{display:block}.phase1-analysis-summary b{font:500 14px/1.45 var(--serif)}.phase1-analysis-summary span{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.55}

/* The two product entrances belong together, but they must not pretend that
   the unreviewed 100-style catalogue is already open for generation. */
.phase1-product-bridge{width:min(1160px,calc(100% - 64px));margin:0 auto 92px;padding:70px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:.78fr 1.22fr;gap:64px;align-items:end}.phase1-product-bridge h2{margin:0;font:500 clamp(31px,3.8vw,46px)/1.5 var(--serif);letter-spacing:.02em}.phase1-product-bridge-copy>p{margin:17px 0 0;color:var(--muted);font-size:12px;line-height:2}.phase1-product-bridge-actions{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.phase1-product-choice{min-height:260px;padding:27px 28px;display:flex;flex-direction:column;background:#fff;transition:background .18s,transform .18s}.phase1-product-choice:hover{background:#fff8f8;transform:translateY(-3px)}.phase1-product-choice>span{font:500 36px/1 Georgia,serif;color:#edc3c8}.phase1-product-choice small{margin-top:30px;color:var(--rose-dark);font-size:9px;font-weight:700;letter-spacing:.12em}.phase1-product-choice strong{margin-top:9px;font:500 22px/1.55 var(--serif)}.phase1-product-choice em{margin-top:auto;color:var(--rose-dark);font-size:11px;font-style:normal;font-weight:700}.phase1-product-choice.is-preparing{background:#fffaf9}.phase1-product-choice.is-preparing em{color:#746968}

.hairstyle-status-main{width:min(1160px,calc(100% - 64px));margin:0 auto;padding:86px 0 100px}.hairstyle-status-hero{max-width:720px;padding:22px 0 76px}.hairstyle-status-hero h1{margin:0;font:500 clamp(42px,5.3vw,66px)/1.38 var(--serif);letter-spacing:.02em}.hairstyle-status-hero h1 em{font-style:normal;color:var(--rose)}.hairstyle-status-hero>p:not(.mm-kicker){max-width:600px;margin:23px 0 0;color:var(--muted);font-size:14px;line-height:2}.hairstyle-status-hero strong{color:var(--ink)}.hairstyle-status-boundary{display:grid;grid-template-columns:1.1fr .9fr;gap:54px;padding:52px;background:var(--cream);border-top:1px solid #eadbd7}.hairstyle-status-boundary h2,.hairstyle-status-next h2{margin:0;font:500 clamp(28px,3.4vw,42px)/1.5 var(--serif)}.hairstyle-status-boundary>div>p:not(.mm-kicker),.hairstyle-status-next>div>p:not(.mm-kicker){margin:17px 0 0;color:var(--muted);font-size:12px;line-height:2}.hairstyle-status-boundary dl{margin:0;align-self:end}.hairstyle-status-boundary dl>div{display:grid;grid-template-columns:82px 1fr;gap:14px;padding:17px 0;border-top:1px solid #ddd1ca}.hairstyle-status-boundary dt{color:var(--rose-dark);font-size:10px;font-weight:700}.hairstyle-status-boundary dd{margin:0;font:500 14px/1.65 var(--serif)}.hairstyle-status-next{display:grid;grid-template-columns:1fr auto;gap:70px;align-items:end;padding:86px 52px 0}.hairstyle-status-next .mm-button{min-width:270px}
@media(max-width:800px){
  .phase1-visual-stack{gap:10px}
  .phase1-home-compare{min-height:0;aspect-ratio:4/5}
  .phase1-home-compare>img,.phase1-home-compare>div,.phase1-home-compare>div img{object-position:center 20%}
  .phase1-home-compare .compare-line i{width:32px;height:32px;font-size:12px}
  .phase1-home-compare .compare-line i img{width:18px;height:18px}
  .phase1-home-compare>small{bottom:12px;font-size:10px}.phase1-home-compare .before-label{left:12px}.phase1-home-compare .after-label{right:12px}
  .phase1-analysis-summary{padding:15px}.phase1-analysis-summary>p{font-size:11px}.phase1-analysis-summary li{padding:10px}.phase1-analysis-summary b{font-size:13px}.phase1-analysis-summary span{font-size:10px}
  .phase1-product-bridge{width:calc(100% - 36px);margin-bottom:54px;padding:50px 0 0;display:block}.phase1-product-bridge h2{font-size:29px;line-height:1.45}.phase1-product-bridge-copy>p{font-size:12px;line-height:1.8}.phase1-product-bridge-actions{margin-top:26px;grid-template-columns:1fr}.phase1-product-choice{min-height:190px;padding:21px}.phase1-product-choice>span{font-size:29px}.phase1-product-choice small{margin-top:17px;font-size:10px}.phase1-product-choice strong{font-size:21px}.phase1-product-choice em{font-size:12px}
  .hairstyle-status-main{width:calc(100% - 36px);padding:48px 0 62px}.hairstyle-status-hero{padding:10px 0 48px}.hairstyle-status-hero h1{font-size:38px;line-height:1.4}.hairstyle-status-hero>p:not(.mm-kicker){font-size:13px;line-height:1.85}.hairstyle-status-boundary{grid-template-columns:1fr;gap:31px;padding:31px 20px}.hairstyle-status-boundary h2,.hairstyle-status-next h2{font-size:29px;line-height:1.45}.hairstyle-status-boundary>div>p:not(.mm-kicker),.hairstyle-status-next>div>p:not(.mm-kicker){font-size:12px;line-height:1.85}.hairstyle-status-boundary dl>div{grid-template-columns:72px 1fr}.hairstyle-status-boundary dd{font-size:13px}.hairstyle-status-next{grid-template-columns:1fr;gap:26px;padding:53px 0 0}.hairstyle-status-next .mm-button{width:100%;min-width:0;min-height:58px;font-size:13px}
  .simulation-panel{padding:28px 18px}.simulation-panel .public-catalog-card{min-width:0}.simulation-panel #diagnosis-delivery-results{display:grid;grid-template-columns:1fr;gap:12px}.simulation-panel #diagnosis-turnstile{max-width:100%;overflow:hidden}
}

/* Homepage facts are decision copy, not decorative microtype.  Keep these
   particular labels at a readable phone size without inflating the entire
   editorial layout.  This comes last to defeat the older compact overrides. */
@media(max-width:800px){
  .phase1-analysis-summary>p{font-size:12px;line-height:1.65}
  .phase1-analysis-summary li{padding:12px}
  .phase1-analysis-summary b{font-size:14px;line-height:1.45}
  .phase1-analysis-summary span{font-size:11px;line-height:1.6}
  .simple-steps .step-mark small{font-size:10px;line-height:1.55}
  .simple-steps h3{font-size:21px;line-height:1.45}
  .simple-steps p{font-size:13px;line-height:1.7}
}

/* Final intake photo layout guard. Older :has() rules assigned a landscape
   ratio to the whole picker, leaving only the model's forehead visible. The
   example owns a portrait ratio; the upload action is a separate row. */
.phase1-intake .mm-photo-picker:has(.placeholder:not([hidden])){aspect-ratio:auto;overflow:hidden}
.phase1-intake .mm-photo-picker .placeholder:not([hidden]){position:relative;inset:auto;grid-template-rows:auto auto}
.phase1-intake .mm-photo-picker .placeholder:not([hidden]) .mm-photo-example{width:100%;aspect-ratio:3/4}
.phase1-intake .mm-photo-picker .placeholder:not([hidden]) .mm-photo-example img{object-position:center 11%}

/* Phase 1 critical decisions are never editorial microcopy on a phone. This
   is deliberately last: older responsive additions must not lower the floor. */
@media(max-width:800px){
  .phase1-entitlements p,.phase1-result-shortcut>small,.phase1-direction-card>small,
  .generation-consent,.mm-purchase-note,.phase1-caption{font-size:12px;line-height:1.7}
}

/* Flow headers can render into a notch when viewport-fit=cover is active. Keep
   the effective insets overridable only for deterministic local viewport QA. */
:root{--mm-safe-area-top:env(safe-area-inset-top,0px);--mm-safe-area-bottom:env(safe-area-inset-bottom,0px)}
.mm-flow-header{height:calc(70px + var(--mm-safe-area-top));padding-top:var(--mm-safe-area-top)}
.mm-flow{padding-bottom:calc(90px + var(--mm-safe-area-bottom))}

/* Intake answers are product decisions, including at iPad widths above the mobile breakpoint. */
.phase1-options button{min-height:44px}

.hairstyle-public-status,.simulation-panel{margin-top:34px;padding:40px 44px;background:var(--cream);border-top:1px solid #eadbd7}.hairstyle-public-status h2,.catalog-heading h2,.simulation-panel h2{margin:8px 0;font:500 clamp(27px,3vw,38px)/1.45 var(--serif)}.hairstyle-public-status dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0 0}.hairstyle-public-status dl>div{border-top:1px solid #ddd1ca;padding-top:13px}.hairstyle-public-status dt{font-size:10px;color:var(--rose-dark);font-weight:700}.hairstyle-public-status dd{margin:6px 0 0;font:500 13px/1.6 var(--serif)}.catalog-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:62px 0 22px}.public-catalog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.public-catalog-card{padding:0 0 17px;text-align:left;border:1px solid var(--line);background:#fff;cursor:pointer}.public-catalog-card img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#f3ebe7}.public-catalog-card small,.public-catalog-card strong{display:block;padding:0 14px}.public-catalog-card small{padding-top:13px;color:var(--rose-dark);font-size:10px;font-weight:700}.public-catalog-card strong{padding-top:5px;font:500 17px/1.5 var(--serif)}.simulation-panel{display:grid;gap:18px;margin-bottom:70px}.mm-upload-field{display:block;border:1px dashed #b89f98;padding:18px;color:var(--ink);font-weight:700}.mm-upload-field input{display:block;margin-top:10px}.simulation-panel img{max-width:min(100%,360px);max-height:360px;object-fit:contain;background:#fff}.mm-consent{font-size:13px;line-height:1.7}.simulation-panel .mm-button{justify-self:start}.simulation-panel .mm-button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:800px){.simulation-panel{padding:28px 18px}.simulation-panel .public-catalog-card{min-width:0}.simulation-panel #diagnosis-delivery-results{display:grid;grid-template-columns:1fr;gap:12px}.simulation-panel #diagnosis-turnstile{max-width:100%;overflow:hidden}}

/* Homepage second core product. The public name is a single 100+ hairstyle
   experience; manual try-on and AI hair change are two ways to use it. */
.phase1-hairstyle-showcase{width:100%;margin:0;padding:0 max(32px,calc((100% - 1420px)/2));display:grid;grid-template-columns:minmax(420px,.76fr) minmax(0,1.24fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fffdfb}
.phase1-hairstyle-showcase-copy{min-width:0;padding:78px 52px 78px 0;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.phase1-hairstyle-showcase h2{margin:0;font:500 clamp(35px,3.4vw,51px)/1.42 var(--serif);letter-spacing:.015em}
.phase1-hairstyle-entry-note{max-width:470px;margin:24px 0 30px;color:var(--muted);font-size:14px;line-height:2}
.phase1-hairstyle-entry{width:min(100%,430px)}
.phase1-hairstyle-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:30px}
.phase1-hairstyle-mode{min-width:0;min-height:250px;padding:24px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.phase1-hairstyle-mode:hover{transform:translateY(-3px);border-color:#e4aeb6;box-shadow:0 18px 45px rgba(65,39,37,.09)}
.phase1-hairstyle-mode:focus-visible,.phase1-hairstyle-gallery:focus-visible{outline:3px solid #8f2038;outline-offset:4px}
.phase1-hairstyle-mode small{color:var(--rose-dark);font-size:10px;font-weight:700;letter-spacing:.12em}
.phase1-hairstyle-mode strong{margin-top:10px;font:500 24px/1.45 var(--serif)}
.phase1-hairstyle-mode p{margin:13px 0 20px;color:var(--muted);font-size:12px;line-height:1.8}
.phase1-hairstyle-mode em{margin-top:auto;color:var(--rose-dark);font-size:12px;font-style:normal;font-weight:700}
.phase1-hairstyle-gallery{min-width:0;padding:36px 0 36px 32px;color:var(--ink);text-decoration:none}
.phase1-hairstyle-gallery-head{min-height:31px;display:flex;align-items:flex-start;gap:18px;margin-bottom:15px;color:var(--rose-dark);font-size:11px;font-weight:700;letter-spacing:.08em}
.phase1-hairstyle-gallery-head:after{content:"";height:1px;flex:1;margin-top:8px;background:var(--line)}
.phase1-hairstyle-gallery-head em{order:3;font-style:normal;white-space:nowrap}
.phase1-hairstyle-gallery-grid{display:grid;grid-template-columns:1.45fr repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(150px,1fr));gap:7px;height:500px;overflow:hidden}
.phase1-hairstyle-gallery-grid img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%;background:#f2ebe7}
.phase1-hairstyle-gallery-grid .is-main{grid-row:1/3}

@media(min-width:801px) and (max-width:1180px){
  .phase1-hairstyle-showcase{padding:0 28px;grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr)}
  .phase1-hairstyle-showcase-copy{padding:56px 32px 56px 0}
  .phase1-hairstyle-showcase h2{font-size:38px}
  .phase1-hairstyle-modes{grid-template-columns:1fr;gap:10px;margin-top:24px}
  .phase1-hairstyle-mode{min-height:0;padding:20px}
  .phase1-hairstyle-gallery{padding:32px 0 32px 26px}
  .phase1-hairstyle-gallery-grid{height:550px;grid-template-columns:1.25fr repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,1fr)}
  .phase1-hairstyle-gallery-grid .is-main{grid-row:1/4}
}

@media(max-width:800px){
  .phase1-hairstyle-showcase{padding:0 18px;display:block;border-bottom:0}
  .phase1-hairstyle-showcase-copy{padding:48px 0 34px;border-right:0;display:block}
  .phase1-hairstyle-showcase h2{font-size:31px;line-height:1.45}
  .phase1-hairstyle-entry-note{margin:18px 0 24px;font-size:13px;line-height:1.8}
  .phase1-hairstyle-entry{width:100%;min-height:58px;font-size:14px}
  .phase1-hairstyle-modes{grid-template-columns:1fr;gap:12px;margin-top:25px}
  .phase1-hairstyle-mode{min-height:0;padding:22px;border-radius:15px}
  .phase1-hairstyle-mode strong{font-size:23px}
  .phase1-hairstyle-mode p{font-size:13px;line-height:1.75}
  .phase1-hairstyle-mode em{min-height:44px;display:flex;align-items:flex-end;font-size:13px}
  .phase1-hairstyle-gallery{display:block;padding:25px 0 48px;border-top:1px solid var(--line)}
  .phase1-hairstyle-gallery-head{font-size:11px;letter-spacing:.06em}
  .phase1-hairstyle-gallery-grid{height:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:6px}
  .phase1-hairstyle-gallery-grid img{aspect-ratio:4/5}
  .phase1-hairstyle-gallery-grid .is-main{grid-column:1/3;grid-row:auto;aspect-ratio:16/10}
}

@media(max-width:390px){
  .phase1-hairstyle-showcase{padding:0 15px}
  .phase1-hairstyle-showcase h2{font-size:29px}
  .phase1-hairstyle-mode{padding:20px}
  .phase1-hairstyle-gallery-head em{font-size:10px}
}

/* Canonical public navigation. On compact screens every product remains
   visible as a horizontally scrollable second row; no single shortcut is
   allowed to masquerade as the site menu. */
@media(max-width:800px){
  .mm-header,.phase1-home .mm-header{
    height:auto;
    min-height:108px;
    padding:0 14px;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:64px 44px;
    align-items:center;
  }
  .mm-header .mm-brand{grid-column:1;grid-row:1;min-width:0}
  .mm-header .mm-account{
    display:inline-flex;
    grid-column:2;
    grid-row:1;
    align-items:center;
    min-height:38px;
    padding:8px 12px;
    white-space:nowrap;
  }
  .mm-header .mm-nav{
    display:flex;
    grid-column:1 / -1;
    grid-row:2;
    width:calc(100% + 28px);
    height:44px;
    margin-left:-14px;
    padding:0 14px;
    gap:22px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
    border-top:1px solid rgba(222,214,207,.6);
    background:#fffdfb;
    font-size:11px;
    white-space:nowrap;
  }
  .mm-header .mm-nav::-webkit-scrollbar{display:none}
  .mm-header .mm-nav a{flex:0 0 auto;min-height:44px}
  .mm-header .mm-menu,.phase1-home .mm-menu{display:none!important}
}

/* The comparison control stays subordinate to the face and never clips into
   the outer edge at either desktop or phone sizes. */
.phase1-home-compare .compare-line{left:clamp(18px,var(--split),calc(100% - 18px))}
.phase1-home-compare .compare-line i{width:30px;height:30px}
.phase1-home-compare .compare-line i img{width:16px;height:16px}
@media(max-width:800px){
  .phase1-home-compare .compare-line{left:clamp(16px,var(--split),calc(100% - 16px))}
  .phase1-home-compare .compare-line i{width:26px;height:26px}
  .phase1-home-compare .compare-line i img{width:14px;height:14px}
}

/* Hairstyle entry and catalog — one paid product path, no manual overlay mode. */
.hairstyle-entry-main,.hairstyle-catalog-main{width:min(1380px,calc(100% - 64px));margin:0 auto;padding:52px 0 90px}
.hairstyle-face-guide{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,360px);gap:32px;align-items:center;padding:24px 28px;border:1px solid #eadbd7;border-radius:20px;background:#fff8f7}
.hairstyle-face-guide h2{margin:4px 0 8px;font:500 clamp(22px,2.4vw,32px)/1.45 var(--serif)}
.hairstyle-face-guide p:not(.mm-kicker){margin:0;color:var(--muted);font-size:13px;line-height:1.8}
.hairstyle-face-guide .mm-button{min-height:54px}
.hairstyle-entry-hero{display:grid;grid-template-columns:minmax(0,.86fr) minmax(460px,1.14fr);min-height:620px;margin-top:22px;border:1px solid var(--line);background:#fff}
.hairstyle-entry-copy{display:flex;flex-direction:column;justify-content:center;padding:58px}
.hairstyle-entry-copy h1{margin:10px 0 20px;font:500 clamp(44px,5vw,72px)/1.35 var(--serif)}
.hairstyle-entry-copy h1 em{color:var(--rose);font-style:normal}
.hairstyle-entry-copy>p:not(.mm-kicker){max-width:600px;margin:0 0 30px;color:var(--muted);font-size:14px;line-height:2}
.hairstyle-entry-copy .mm-button{width:min(100%,440px)}
.hairstyle-entry-visual{min-width:0;margin:0;position:relative;overflow:hidden;background:#f4ece8}
.hairstyle-entry-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 12%}
.hairstyle-entry-visual figcaption{position:absolute;left:22px;right:22px;bottom:22px;padding:13px 16px;background:rgba(255,253,251,.92);font-size:11px;line-height:1.7}
.hairstyle-entry-steps{padding:74px 0 0}
.hairstyle-entry-steps>h2{margin:8px 0 28px;font:500 clamp(30px,3.6vw,46px)/1.5 var(--serif)}
.hairstyle-entry-steps>div{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.hairstyle-entry-steps article{padding:28px;border:1px solid var(--line);background:#fff}
.hairstyle-entry-steps small{color:var(--rose);font-weight:700;letter-spacing:.14em}.hairstyle-entry-steps h3{margin:12px 0 8px;font:500 22px/1.5 var(--serif)}.hairstyle-entry-steps article p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}
.hairstyle-catalog-main>.hairstyle-face-guide{margin-bottom:48px}
.hairstyle-catalog-hero{max-width:800px;margin-bottom:35px}.hairstyle-catalog-hero h1{margin:8px 0 12px;font:500 clamp(46px,6vw,78px)/1.3 var(--serif)}.hairstyle-catalog-hero>p:not(.mm-kicker){color:var(--muted);font-size:14px;line-height:1.9}
.hairstyle-catalog-filters{display:grid;gap:0;border:1px solid var(--line);background:#fff}
.hairstyle-catalog-filters fieldset{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:start;margin:0;padding:20px 22px;border:0;border-bottom:1px solid var(--line)}
.hairstyle-catalog-filters legend{display:contents;font:600 12px/1.6 var(--sans)}
.catalog-filter-row{display:flex;flex-wrap:wrap;gap:8px}
.catalog-filter-row button,.catalog-filter-reset{min-height:42px;padding:9px 15px;border:1px solid #dfd1cc;border-radius:999px;background:#fff;color:var(--ink);font:600 12px/1.4 var(--sans);cursor:pointer}
.catalog-filter-row button[aria-pressed="true"]{border-color:var(--rose);background:#fff0f2;color:var(--rose-dark)}
.catalog-filter-reset{justify-self:start;margin:16px 22px;border-color:transparent;color:var(--rose-dark);text-decoration:underline;text-underline-offset:5px}
.hairstyle-catalog-page .hairstyle-public-status{margin-top:30px;padding:24px 0;border:0;border-bottom:1px solid var(--line);background:transparent}.hairstyle-catalog-page .hairstyle-public-status h2{font-size:24px}.hairstyle-catalog-page .catalog-heading{margin-top:38px}
.hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.hairstyle-catalog-page .public-catalog-card{display:grid;grid-template-rows:auto 1fr;padding:0;overflow:hidden;cursor:default}
.public-catalog-view{display:block;width:100%;padding:0;border:0;background:#f3ebe7;cursor:pointer}
.hairstyle-catalog-page .public-catalog-media{aspect-ratio:4/5;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;background:#f1ebe7}
.hairstyle-catalog-page .public-catalog-card img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 38%;background:#f1ebe7}
.hairstyle-catalog-page .public-catalog-card>div{display:flex;flex-direction:column;align-items:stretch;padding:14px}
.hairstyle-catalog-page .public-catalog-card small,.hairstyle-catalog-page .public-catalog-card strong{padding:0}.hairstyle-catalog-page .public-catalog-card strong{padding-top:4px}
.public-catalog-faces{margin:10px 0 14px;color:var(--muted);font-size:10px;line-height:1.75}
.mm-page .public-catalog-select{width:100%;min-height:44px;margin-top:auto;padding:8px 10px;border:1px solid var(--rose);border-radius:999px;background:#fff;color:var(--rose-dark);font-size:clamp(10px,.9vw,13px);line-height:1.35;font-weight:700;white-space:nowrap;cursor:pointer}
.public-catalog-view:focus-visible,.public-catalog-select:focus-visible,.catalog-filter-row button:focus-visible,.catalog-filter-reset:focus-visible{outline:3px solid #8f2038;outline-offset:3px}
.catalog-empty{padding:44px;text-align:center;color:var(--muted)}
@media(max-width:1024px){.hairstyle-entry-main,.hairstyle-catalog-main{width:100%;padding:42px 24px 78px}.hairstyle-entry-hero{grid-template-columns:1fr 1fr;min-height:540px}.hairstyle-entry-copy{padding:36px}.hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:768px){.hairstyle-entry-main,.hairstyle-catalog-main{width:100%;padding:28px 20px 56px}.hairstyle-face-guide{grid-template-columns:1fr;gap:16px;padding:20px 18px;border-radius:16px}.hairstyle-face-guide .mm-button{width:100%}.hairstyle-entry-hero{grid-template-columns:1fr;min-height:0}.hairstyle-entry-copy{padding:30px 20px}.hairstyle-entry-copy h1{font-size:clamp(34px,9vw,46px)}.hairstyle-entry-visual{aspect-ratio:4/3}.hairstyle-entry-steps{padding-top:40px}.hairstyle-entry-steps>div{grid-template-columns:1fr}.hairstyle-catalog-main>.hairstyle-face-guide{margin-bottom:28px}.hairstyle-catalog-hero{padding-block:6px 24px}.hairstyle-catalog-hero h1{font-size:clamp(36px,10vw,50px)}.hairstyle-catalog-filters{margin-bottom:24px}.hairstyle-catalog-filters fieldset{grid-template-columns:1fr;gap:10px;padding:15px 12px}.catalog-filter-row{flex-wrap:wrap;overflow:visible;padding:0}.catalog-filter-row button{flex:0 0 auto;min-height:38px;padding:7px 12px}.catalog-filter-reset{margin-top:2px}.hairstyle-catalog-status{min-height:0;padding:22px 0}.hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hairstyle-catalog-page .public-catalog-card>div{padding:11px}.public-catalog-faces{font-size:10px}.mm-page .public-catalog-select{min-height:40px;padding:7px 5px;font-size:clamp(9px,2.65vw,11px)}}
@media(max-width:380px){.hairstyle-catalog-page .public-catalog-grid{grid-template-columns:1fr}.hairstyle-catalog-page .public-catalog-card{grid-template-columns:1fr;grid-template-rows:auto 1fr}.hairstyle-entry-copy h1{font-size:34px}}

/* Single-page hairstyle journey: face check -> browse -> colour/photo -> generate. */
.catalog-choice{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);gap:46px;align-items:end;margin-bottom:48px;padding:42px 0 46px;border-bottom:1px solid var(--line)}
.catalog-choice h1{margin:8px 0 12px;font:500 clamp(48px,6vw,78px)/1.22 var(--serif)}
.catalog-choice>div>p:not(.mm-kicker){margin:0;color:var(--muted);font-size:14px;line-height:1.9}
.catalog-choice-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.catalog-choice-card{display:flex;min-height:190px;flex-direction:column;padding:25px 24px;border:1px solid #e3d5cf;border-radius:22px;background:#fff;color:var(--ink);text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.catalog-choice-card.is-direct{background:#fff1f3;border-color:#f3cbd1}
.catalog-choice-card:hover{transform:translateY(-2px);border-color:var(--rose);box-shadow:0 16px 36px rgba(91,57,56,.08)}
.catalog-choice-card small{color:var(--rose-dark);font:700 11px/1.5 var(--sans);letter-spacing:.12em}
.catalog-choice-card strong{margin:12px 0 9px;font:500 clamp(22px,2.5vw,31px)/1.45 var(--serif)}
.catalog-choice-card span{margin-top:auto;color:var(--rose-dark);font-size:12px;font-weight:700}
.public-catalog-media{position:relative;background:#f3ebe7}
.public-catalog-media>img{cursor:pointer}
.public-catalog-angles{position:absolute;right:8px;bottom:8px;left:8px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:4px;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 4px 18px rgba(44,31,29,.1);backdrop-filter:blur(8px)}
.public-catalog-angles button{min-height:30px;padding:4px 5px;border:0;border-radius:999px;background:transparent;color:#6d615d;font:700 9px/1 var(--sans);cursor:pointer}
.public-catalog-angles button[aria-pressed="true"]{background:var(--rose);color:#fff}
.catalog-generate-drawer[hidden]{display:none!important}
.catalog-generate-drawer{position:fixed;z-index:200;inset:0;display:grid;grid-template-columns:1fr minmax(620px,760px)}
.catalog-drawer-backdrop{grid-area:1/1/2/3;border:0;background:rgba(35,27,25,.42);cursor:pointer}
.catalog-drawer-panel{position:relative;grid-area:1/2;overflow:auto;padding:34px 34px max(36px,env(safe-area-inset-bottom));background:#fffdfb;box-shadow:-16px 0 60px rgba(39,28,25,.18)}
.catalog-drawer-close{position:absolute;z-index:1;top:16px;right:18px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font:300 25px/1 var(--sans);cursor:pointer}
.catalog-drawer-heading{padding:8px 52px 16px 0}.catalog-drawer-heading h2{margin:6px 0 0;font:500 32px/1.4 var(--serif)}
.catalog-selected-views{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.catalog-selected-view{position:relative;min-width:0;margin:0;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#f3ebe7}
.catalog-selected-view img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#f3ebe7}
.catalog-selected-view figcaption{position:absolute;right:7px;bottom:7px;padding:5px 8px;border-radius:999px;background:rgba(255,253,251,.92);color:var(--ink);font:700 9px/1 var(--sans);letter-spacing:.05em}
.catalog-drawer-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:18px;border:1px solid var(--line);border-radius:16px;overflow:hidden}.catalog-drawer-details section{padding:16px 18px}.catalog-drawer-details section:nth-child(odd){border-right:1px solid var(--line)}.catalog-drawer-details section:nth-child(n+3){border-top:1px solid var(--line)}.catalog-drawer-details h3{margin:0 0 7px;color:var(--rose-dark);font:700 11px/1.5 var(--sans);letter-spacing:.06em}.catalog-drawer-details p,.catalog-drawer-details ul{margin:0;color:var(--muted);font-size:11px;line-height:1.8}.catalog-drawer-details ul{padding-left:1.25em}
.catalog-color-picker{margin:24px 0;padding:0;border:0}.catalog-color-picker legend{margin-bottom:12px;font:600 14px/1.6 var(--sans)}
#catalog-color-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#catalog-color-options label{min-width:0;cursor:pointer}#catalog-color-options input{position:absolute;width:1px;height:1px;opacity:0}.catalog-color-option{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-height:50px;padding:7px 9px;border:1px solid #dfd1cc;border-radius:12px;background:#fff;color:var(--ink)}.catalog-color-swatch{display:block;width:30px;height:30px;border:1px solid rgba(34,25,23,.2);border-radius:50%;background:var(--catalog-hair-color);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}.catalog-color-option b{min-width:0;font-size:10px;line-height:1.35;font-weight:600;overflow-wrap:anywhere}#catalog-color-options input:checked+.catalog-color-option{border-color:var(--rose);background:#fff0f2;color:var(--rose-dark);box-shadow:inset 0 0 0 1px var(--rose)}#catalog-color-options input:checked+.catalog-color-option .catalog-color-swatch{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--rose)}
.catalog-photo-field{display:grid;gap:5px;padding:20px;border:1px dashed #c9aaa4;border-radius:16px;background:#fff8f7;cursor:pointer}.catalog-photo-field strong{font:600 15px/1.5 var(--sans)}.catalog-photo-field span{color:var(--muted);font-size:11px}.catalog-photo-field input{margin-top:9px;max-width:100%}
.catalog-file-input{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0;overflow:hidden;clip-path:inset(50%)}.catalog-file-control{display:flex;align-items:center;gap:12px;margin-top:9px}.catalog-file-control b{flex:0 0 auto;min-height:42px;padding:10px 16px;border:1px solid var(--rose);border-radius:999px;background:#fff;color:var(--rose-dark);font-size:12px}.catalog-file-control em{min-width:0;color:var(--muted);font-size:11px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-photo-field:focus-within .catalog-file-control b{outline:3px solid #8f2038;outline-offset:3px}
.catalog-photo-preview{position:relative;margin-top:12px}.catalog-photo-preview img{display:block;width:100%;max-height:280px;object-fit:contain;border-radius:16px;background:#f3ebe7}.catalog-photo-preview button{position:absolute;right:10px;bottom:10px;min-height:40px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:700;cursor:pointer}
.catalog-price-note{display:flex;justify-content:space-between;gap:16px;margin:20px 0;padding:14px 16px;border-left:3px solid var(--rose);background:#fff4f5;font-size:12px;line-height:1.7}.catalog-price-note span{color:var(--muted);text-align:right}
.catalog-drawer-panel .mm-consent{display:flex;gap:9px;align-items:flex-start;margin:18px 0}.catalog-drawer-panel .mm-consent input{flex:0 0 auto;width:19px;height:19px;margin-top:2px}.catalog-drawer-panel>.mm-button{width:100%;margin-top:10px}.catalog-generate-status{min-height:1.8em;margin:14px 0 0;color:var(--rose-dark);font-size:12px;line-height:1.7}.catalog-storage-note{margin:17px 0 0;color:var(--muted);font-size:10px;line-height:1.7}.catalog-storage-note a{color:inherit}.catalog-drawer-open{overflow:hidden}
.catalog-choice-card:focus-visible,.public-catalog-angles button:focus-visible,.catalog-drawer-close:focus-visible,#catalog-color-options input:focus-visible+.catalog-color-option,.catalog-photo-field:focus-within,.catalog-photo-preview button:focus-visible{outline:3px solid #8f2038;outline-offset:3px}
@media(max-width:1024px){.catalog-choice{grid-template-columns:1fr;gap:24px}.catalog-choice-actions{max-width:760px;grid-template-columns:minmax(0,520px)}.catalog-generate-drawer{grid-template-columns:minmax(0,1fr) minmax(560px,72vw)}}
@media(max-width:768px){.catalog-choice{padding:6px 0 20px;margin-bottom:18px}.catalog-choice h1{margin-block:5px 8px;font-size:clamp(34px,9vw,46px)}.catalog-choice>div>p:not(.mm-kicker){font-size:12px;line-height:1.7}.catalog-choice-actions{grid-template-columns:1fr;gap:8px}.catalog-choice-card{width:100%;max-width:100%;min-height:0;padding:14px 16px;border-radius:16px}.catalog-choice-card small{font-size:9px}.catalog-choice-card strong{margin:7px 0 5px;font-size:clamp(20px,5.8vw,26px)}.catalog-choice-card span{font-size:11px}.hairstyle-catalog-page .hairstyle-public-status{margin-top:16px;padding:14px 0}.hairstyle-catalog-page .hairstyle-public-status h2{font-size:21px}.hairstyle-catalog-page .catalog-heading{margin:22px 0 14px}.hairstyle-catalog-page .catalog-heading h2{font-size:25px}.catalog-generate-drawer{display:block;padding-top:max(40px,env(safe-area-inset-top))}.catalog-drawer-backdrop{position:absolute;inset:0;width:100%;height:100%}.catalog-drawer-panel{position:relative;width:100%;max-width:100%;height:100%;padding:16px 14px max(20px,env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.catalog-drawer-close{top:10px;right:12px;width:38px;height:38px}.catalog-drawer-heading{padding:2px 42px 11px 0}.catalog-drawer-heading h2{font-size:clamp(21px,6vw,26px)}.catalog-selected-views{display:flex;gap:8px;padding:0 5vw 11px 0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-inline:contain;scrollbar-width:none}.catalog-selected-views::-webkit-scrollbar{display:none}.catalog-selected-view{flex:0 0 min(88vw,430px);border-radius:9px;scroll-snap-align:start}.catalog-selected-view figcaption{right:4px;bottom:4px;padding:4px 6px;font-size:8px}.catalog-drawer-details{grid-template-columns:1fr;margin-top:13px}.catalog-drawer-details section{padding:11px 13px}.catalog-drawer-details section:nth-child(odd){border-right:0}.catalog-drawer-details section:nth-child(n+2){border-top:1px solid var(--line)}.catalog-drawer-details h3{margin-bottom:4px}.catalog-drawer-details p,.catalog-drawer-details ul{font-size:10px;line-height:1.65}.catalog-color-picker{margin:17px 0}.catalog-color-picker legend{margin-bottom:9px}.catalog-photo-field{padding:14px}.catalog-price-note{display:grid;gap:2px;margin:15px 0;padding:11px 12px}.catalog-price-note span{text-align:left}.catalog-drawer-panel .mm-consent{margin:14px 0}.catalog-storage-note{margin-top:12px}.public-catalog-angles{right:5px;bottom:5px;left:5px}.public-catalog-angles button{font-size:8px}}
@media(max-width:430px){.hairstyle-entry-main,.hairstyle-catalog-main{padding:18px 14px 40px}.hairstyle-catalog-main>.hairstyle-face-guide{margin-bottom:18px}.hairstyle-catalog-filters{margin-bottom:15px}.hairstyle-catalog-filters fieldset{gap:7px;padding:11px 9px}.catalog-filter-row{gap:6px}.catalog-filter-row button,.catalog-filter-reset{min-height:34px;padding:6px 10px;font-size:10px}.catalog-filter-reset{margin:6px 10px 9px}.hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.hairstyle-catalog-page .public-catalog-card{max-width:100%}.hairstyle-catalog-page .public-catalog-media{aspect-ratio:4/5}.hairstyle-catalog-page .public-catalog-card>div{padding:8px}.hairstyle-catalog-page .public-catalog-card strong{font-size:14px;line-height:1.4}.hairstyle-catalog-page .public-catalog-card small{font-size:8px}.public-catalog-faces{margin:6px 0 8px;font-size:9px;line-height:1.55}.mm-page .public-catalog-select{min-height:36px;padding:5px 3px;font-size:9px;white-space:normal}.catalog-choice-card{padding:13px 14px}.catalog-selected-view{flex-basis:88vw;aspect-ratio:3/4}.catalog-drawer-panel{padding-inline:12px}#catalog-color-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.catalog-color-option{grid-template-columns:28px minmax(0,1fr);min-height:44px;padding:6px 7px}.catalog-color-swatch{width:26px;height:26px}.catalog-color-option b{font-size:9px}}

/* Unified hairstyle destination: the homepage has one product entrance; only
   this page separates the two ways to use the same 100+ collection. */
.hairstyle-hub-page .hairstyle-status-main{width:min(1380px,calc(100% - 64px));padding-top:70px}
.hairstyle-hub-hero{max-width:880px;padding-bottom:52px}
.hairstyle-hub-hero h1{font-size:clamp(43px,5vw,72px);line-height:1.32}
.hairstyle-hub-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding-bottom:34px}
.hairstyle-hub-mode{min-width:0;display:grid;grid-template-columns:minmax(190px,.82fr) minmax(0,1fr);min-height:520px;border:1px solid var(--line);border-radius:26px;overflow:hidden;background:#fff}
.hairstyle-hub-mode.is-ai{background:#fff9f8}
.hairstyle-hub-mode>img{display:block;width:100%;height:100%;min-height:520px;object-fit:cover;object-position:center 18%;background:#f2ebe7}
.hairstyle-hub-mode>div{min-width:0;padding:40px 34px;display:flex;flex-direction:column;align-items:flex-start}
.hairstyle-hub-mode h2{margin:5px 0 0;font:500 clamp(31px,3vw,46px)/1.4 var(--serif);letter-spacing:.015em}
.hairstyle-hub-mode div>p:not(.mm-kicker){margin:20px 0 28px;color:var(--muted);font-size:13px;line-height:1.9}
.hairstyle-hub-mode .mm-button{width:100%;min-height:58px;margin-top:auto}
.hairstyle-hub-customize{margin-top:17px;color:var(--rose-dark);font-size:12px;font-weight:700;text-decoration:none;border-bottom:1px solid #efb9c0}
.hairstyle-hub-customize:focus-visible,.hairstyle-hub-mode .mm-button:focus-visible{outline:3px solid #8f2038;outline-offset:4px}
.hairstyle-hub-page .hairstyle-public-status{margin-top:32px;border:1px solid var(--line);border-radius:20px;background:#fffaf9}
.hairstyle-hub-page .catalog-heading{margin-top:74px}

@media(min-width:801px) and (max-width:1180px){
  .hairstyle-hub-page .hairstyle-status-main{width:calc(100% - 48px);padding-top:58px}
  .hairstyle-hub-hero{max-width:760px;padding-bottom:42px}
  .hairstyle-hub-mode{grid-template-columns:1fr;min-height:0}
  .hairstyle-hub-mode>img{height:310px;min-height:310px}
  .hairstyle-hub-mode>div{padding:31px 28px}
  .hairstyle-hub-mode h2{font-size:35px}
  .public-catalog-grid{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:800px){
  .hairstyle-hub-page .hairstyle-status-main{width:calc(100% - 30px);padding-top:38px}
  .hairstyle-hub-hero{padding:0 0 30px}
  .hairstyle-hub-hero h1{font-size:36px;line-height:1.4}
  .hairstyle-hub-hero>p:not(.mm-kicker){font-size:14px;line-height:1.85}
  .hairstyle-hub-modes{grid-template-columns:1fr;gap:15px;padding-bottom:24px}
  .hairstyle-hub-mode{grid-template-columns:1fr;min-height:0;border-radius:20px}
  .hairstyle-hub-mode>img{height:auto;min-height:0;aspect-ratio:16/10;object-position:center 20%}
  .hairstyle-hub-mode>div{padding:27px 21px 25px}
  .hairstyle-hub-mode h2{font-size:30px;line-height:1.42}
  .hairstyle-hub-mode div>p:not(.mm-kicker){margin:16px 0 24px;font-size:13px;line-height:1.8}
  .hairstyle-hub-mode .mm-button{min-height:58px;font-size:14px}
  .hairstyle-hub-customize{min-height:44px;display:flex;align-items:center;font-size:13px}
  .hairstyle-hub-page .hairstyle-public-status{margin-top:28px;padding:29px 20px;border-radius:16px}
  .hairstyle-hub-page .catalog-heading{margin:48px 0 19px;align-items:flex-start;flex-direction:column}
  .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .public-catalog-card strong{font-size:15px}
}

@media(max-width:390px){
  .hairstyle-hub-page .hairstyle-status-main{width:calc(100% - 24px)}
  .hairstyle-hub-hero h1{font-size:33px}
  .hairstyle-hub-mode>div{padding:24px 18px}
  .hairstyle-hub-mode h2{font-size:28px}
  .public-catalog-card small,.public-catalog-card strong{padding-left:11px;padding-right:11px}
}

/* Approved homepage visual system. It follows the supplied mobile board:
   split hero, full-width analysis card, one unified 100+ entrance, compact
   values and three steps. These final rules intentionally win the cascade. */
.phase1-home .phase1-hero{grid-template-areas:"copy visual" "summary summary";grid-template-columns:minmax(360px,.88fr) minmax(0,1.12fr);gap:24px 46px;padding-top:44px;padding-bottom:34px;background:linear-gradient(112deg,#fffdfb 0 48%,#fff8f7 48%);align-items:stretch}
.phase1-home .phase1-hero-copy{grid-area:copy;align-self:center}
.phase1-home .phase1-visual-stack{display:contents}
.phase1-home .phase1-home-compare{grid-area:visual;min-height:540px;border:0;border-radius:28px;overflow:hidden;box-shadow:0 22px 55px rgba(120,65,72,.1)}
.phase1-home .phase1-analysis-summary{grid-area:summary;border:1px solid #f1dadd;border-radius:24px;padding:20px 24px;background:rgba(255,252,251,.96);box-shadow:0 16px 38px rgba(139,67,82,.08)}
.phase1-home .phase1-analysis-summary ul{border-radius:18px;overflow:hidden;background:#f4e7e7}
.phase1-home .phase1-analysis-summary li{position:relative;min-height:74px;padding:15px 18px 14px 64px}
.phase1-home .phase1-analysis-summary li:before{content:none}
.phase1-home .phase1-analysis-summary li>img[data-brand-icon]{position:absolute;left:18px;top:16px;width:34px;height:34px;padding:6px;border-radius:50%;display:block;box-sizing:border-box;background:#fff0f2}
.phase1-home .jp-hero-actions .mm-button{border-radius:14px;background:linear-gradient(105deg,#f36f80,#ee536c);box-shadow:0 12px 28px rgba(229,73,99,.18)}

.phase1-home .phase1-hairstyle-showcase{width:min(1160px,calc(100% - 36px));margin:28px auto 0;padding:14px;grid-template-columns:.92fr 1.08fr;align-items:center;border:0;border-radius:25px;background:linear-gradient(105deg,#fff1f2,#ffdfe4);overflow:hidden}
.phase1-home .phase1-hairstyle-showcase-copy{order:2;padding:30px 35px;border:0;justify-content:center}
.phase1-home .phase1-hairstyle-showcase h2{font-size:clamp(31px,3.7vw,46px);line-height:1.42}
.phase1-home .phase1-hairstyle-entry-note{margin:15px 0 22px;color:#564c49;line-height:1.8}
.phase1-home .phase1-hairstyle-entry{min-height:56px;border:2px solid var(--rose);border-radius:999px;background:rgba(255,255,255,.34);color:var(--rose-dark);box-shadow:none}
.phase1-home .phase1-hairstyle-gallery{order:1;align-self:center;padding:0;border-radius:18px;overflow:hidden;background:#fff}
.phase1-home .phase1-hairstyle-gallery-head{display:none}
.phase1-home .phase1-hairstyle-gallery-grid{width:100%;height:auto;aspect-ratio:5/4;grid-template-columns:1.45fr repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:5px;padding:5px}
.phase1-home .phase1-hairstyle-gallery-grid .is-main{grid-row:1/3}
.phase1-home .phase1-hairstyle-gallery-grid img{min-width:0;min-height:0;aspect-ratio:auto;object-position:50% 22%}
.phase1-home .phase1-hairstyle-gallery-grid .is-main{object-position:50% 18%}

.phase1-home .phase1-principle{padding:54px max(18px,calc((100% - 900px)/2)) 46px}
.phase1-home .phase1-principle>.mm-kicker{font-size:14px;letter-spacing:.12em}
.phase1-home .phase1-principle>h2{margin:8px 0 28px;font-size:24px;color:var(--rose-dark)}
.phase1-home .phase1-plan-roles{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;border:0}
.phase1-home .phase1-plan-roles article,.phase1-home .phase1-plan-roles article:last-child{padding:72px 10px 0;text-align:center;border:0}
.phase1-home .phase1-plan-roles article:before{content:none}
.phase1-home .phase1-plan-roles article>img[data-brand-icon]{position:absolute;left:50%;top:0;transform:translateX(-50%);width:58px;height:58px;padding:14px;border-radius:50%;display:block;box-sizing:border-box;background:#fff0f2}
.phase1-home .phase1-plan-roles small{display:none}.phase1-home .phase1-plan-roles h3{font-size:20px}.phase1-home .phase1-plan-roles p{font-size:12px;line-height:1.7;text-align:center}
.phase1-home .phase1-caption{display:none}
.phase1-home .phase1-how{padding-top:34px;padding-bottom:40px;background:#fffdfb;border-top:1px solid var(--line)}
.phase1-home .simple-steps{gap:14px}
.phase1-home .simple-steps article,.phase1-home .simple-steps article:last-child{min-height:210px;padding:58px 20px 22px!important;border:1px solid #f0dfe0!important;border-radius:22px;background:#fff;text-align:center;box-shadow:0 12px 28px rgba(95,60,61,.06)}
.phase1-home .simple-steps article:not(:last-child):after{content:"→";position:absolute;right:-24px;top:45%;z-index:2;color:#8a7d79;font-size:24px}
.phase1-home .simple-steps .step-mark{position:static}
.phase1-home .simple-steps .step-mark small{display:none}
.phase1-home .simple-steps .step-mark strong{position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:#fff;font:600 13px/1 var(--sans)}
.phase1-approved-bottom-cta{width:min(810px,calc(100% - 36px));min-height:68px;margin:22px auto 62px;padding:10px 22px 10px 12px;border-radius:999px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;background:linear-gradient(100deg,#f77988,#ec4d68);color:#fff;text-decoration:none;box-shadow:0 16px 34px rgba(225,76,100,.2)}
.phase1-approved-bottom-cta small{padding:10px 16px;border-radius:999px;background:#fff;color:var(--rose-dark);font-weight:700}.phase1-approved-bottom-cta strong{text-align:center;font:500 18px/1.4 var(--serif)}.phase1-approved-bottom-cta b{font-size:22px}

@media(max-width:800px){
  .phase1-home .mm-header{height:70px;padding:0 14px;grid-template-columns:1fr auto}
  .phase1-home .mm-menu{display:block;width:46px;height:46px;min-width:46px;padding:0;border:0;background:transparent;color:transparent;font-size:0;position:relative}
  .phase1-home .mm-menu:before,.phase1-home .mm-menu:after{content:"";position:absolute;right:4px;width:34px;height:2px;background:#241f1f;box-shadow:0 10px 0 #241f1f}.phase1-home .mm-menu:before{top:12px}.phase1-home .mm-menu:after{top:32px;box-shadow:none}
  .phase1-home .phase1-hero{grid-template-areas:"copy visual" "summary summary";grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:14px 10px;padding:18px 14px 15px;background:linear-gradient(105deg,#fffdfb 0 49%,#fff7f6 49%)}
  .phase1-home .phase1-hero-copy{min-width:0;align-self:center}
  .phase1-home .phase1-hero-copy h1{font-size:clamp(22px,6.15vw,29px);line-height:1.42}
  .phase1-home .phase1-hero-copy h1 span{white-space:normal}
  .phase1-home .phase1-hero-copy .mm-kicker{font-size:9px;line-height:1.45;letter-spacing:.08em}
  .phase1-home .phase1-lead{margin:12px 0 14px;font-size:11px;line-height:1.75}
  .phase1-home .jp-hero-actions{gap:8px}
  .phase1-home .jp-hero-actions .mm-button{min-height:52px;padding:0 14px;font-size:12px;border-radius:11px}
  .phase1-home .jp-hero-actions .face-check-link,.phase1-home .phase1-trust{display:none}
  .phase1-home .phase1-free-boundary{margin:9px 0 0;font-size:9px;line-height:1.6}
  .phase1-home .phase1-home-compare{height:100%;min-height:350px;aspect-ratio:auto;border-radius:20px}
  .phase1-home .phase1-home-compare>img,.phase1-home .phase1-home-compare>div,.phase1-home .phase1-home-compare>div img{object-position:center 17%}
  .phase1-home .phase1-analysis-summary{padding:12px;border-radius:18px}
  .phase1-home .phase1-analysis-summary>p{margin-left:4px}
  .phase1-home .phase1-analysis-summary ul{grid-template-columns:repeat(2,1fr);border-radius:13px}
  .phase1-home .phase1-analysis-summary li{min-height:66px;padding:12px 8px 10px 48px}
  .phase1-home .phase1-analysis-summary li>img[data-brand-icon]{left:10px;top:14px;width:29px;height:29px;padding:5px}
  .phase1-home .phase1-analysis-summary b{font-size:12px}.phase1-home .phase1-analysis-summary span{font-size:9px}

  .phase1-home .phase1-hairstyle-showcase{width:calc(100% - 28px);margin-top:15px;padding:8px;display:grid;grid-template-columns:.94fr 1.06fr;border-radius:20px}
  .phase1-home .phase1-hairstyle-showcase-copy{order:2;container-type:inline-size;padding:15px 11px 15px 17px}
  .phase1-home .phase1-hairstyle-showcase-copy>.mm-kicker{font-size:clamp(10px,5.5cqi,12px);letter-spacing:.08em;line-height:1.45}
  .phase1-home .phase1-hairstyle-showcase h2{font-size:clamp(17px,11cqi,24px);line-height:1.4}
  .phase1-home .phase1-hairstyle-entry-note{margin:9px 0 12px;font-size:clamp(10px,5.4cqi,13px);line-height:1.6}
  .phase1-home .phase1-hairstyle-entry{width:100%;min-height:42px;padding:0 11px;font-size:clamp(10px,5.5cqi,12px);border-width:1.5px}
  .phase1-home .phase1-hairstyle-gallery{order:1;padding:0;border:0}
  .phase1-home .phase1-hairstyle-gallery-grid{height:auto;aspect-ratio:5/4;grid-template-columns:1.45fr repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;padding:4px}
  .phase1-home .phase1-hairstyle-gallery-grid img{aspect-ratio:auto}
  .phase1-home .phase1-hairstyle-gallery-grid .is-main{grid-column:auto;grid-row:1/3;aspect-ratio:auto}

  .phase1-home .phase1-principle{padding:32px 14px 31px;text-align:center}
  .phase1-home .phase1-principle>.mm-kicker{font-size:10px;text-align:center}
  .phase1-home .phase1-principle>h2{display:none}
  .phase1-home .phase1-plan-roles{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;border:0;background:#fff}
  .phase1-home .phase1-plan-roles article,.phase1-home .phase1-plan-roles article:last-child{padding:55px 3px 0;border:0}
  .phase1-home .phase1-plan-roles article>img[data-brand-icon]{top:0;left:50%;width:45px;height:45px;padding:10px}
  .phase1-home .phase1-plan-roles h3{font-size:13px;line-height:1.35}.phase1-home .phase1-plan-roles p{font-size:9px;line-height:1.55}
  .phase1-home .phase1-how{padding:28px 12px 28px}
  .phase1-home .simple-how>header{margin-bottom:16px}.phase1-home .simple-how h2{font-size:15px}
  .phase1-home .simple-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
  .phase1-home .simple-steps article,.phase1-home .simple-steps article:last-child{min-height:165px;padding:44px 7px 12px!important;border-bottom:1px solid #f0dfe0!important;border-radius:16px;text-align:center}
  .phase1-home .simple-steps article:not(:last-child):after{right:-10px;top:48%;font-size:16px}
  .phase1-home .simple-steps .step-mark strong{width:32px;height:32px;font-size:10px}
  .phase1-home .simple-steps h3{font-size:11px;line-height:1.45}.phase1-home .simple-steps p{font-size:8px;line-height:1.55}
  .phase1-approved-bottom-cta{width:calc(100% - 24px);min-height:58px;margin:12px auto 40px;padding:8px 16px 8px 9px;gap:8px}.phase1-approved-bottom-cta small{padding:8px 10px;font-size:9px}.phase1-approved-bottom-cta strong{font-size:13px}.phase1-approved-bottom-cta b{font-size:17px}
}

@media(max-width:390px){
  .phase1-home .phase1-hero{padding-left:10px;padding-right:10px;grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr)}
  .phase1-home .phase1-hero-copy h1{font-size:23px}
  .phase1-home .phase1-lead{font-size:10px}
  .phase1-home .phase1-home-compare{min-height:330px}
  .phase1-home .phase1-hairstyle-showcase{width:calc(100% - 20px)}
  .phase1-home .phase1-hairstyle-showcase h2{font-size:clamp(17px,11cqi,20px)}
}

/* Absolute final header override: the product navigation remains available at
   every compact viewport and the account action stays in the first row. */
@media(max-width:1024px){
  .mm-header,.phase1-home .mm-header{height:auto;min-height:108px;padding:0 14px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:64px 44px;align-items:center}
  .mm-header .mm-brand{grid-column:1;grid-row:1;min-width:0}
  .mm-header .mm-account{display:inline-flex;grid-column:2;grid-row:1;align-items:center;min-height:38px;padding:8px 12px;white-space:nowrap}
  .mm-header .mm-nav{display:flex;grid-column:1/-1;grid-row:2;width:calc(100% + 28px);height:44px;margin-left:-14px;padding:0 14px;gap:22px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;border-top:1px solid rgba(222,214,207,.6);background:#fffdfb;font-size:11px;white-space:nowrap}
  .mm-header .mm-nav::-webkit-scrollbar{display:none}.mm-header .mm-nav a{flex:0 0 auto;min-height:44px}
  .mm-header .mm-menu,.phase1-home .mm-menu{display:none!important}
}

/* Approved compact homepage composition: editorial copy first, comparison
   second, evidence third. The hairstyle image leads its own section and the
   shorter explanation follows underneath. */
@media(max-width:900px){
  .phase1-home .phase1-hero{grid-template-areas:"copy" "visual" "summary";grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 14px 18px;background:linear-gradient(165deg,#fffdfb 0 46%,#fff7f6 46%)}
  .phase1-home .phase1-hero-copy{width:100%;align-self:auto}
  .phase1-home .phase1-hero-copy h1{font-size:clamp(29px,7vw,44px);line-height:1.38;word-break:keep-all;line-break:strict}
  .phase1-home .phase1-lead{max-width:35em;font-size:12px;line-height:1.75}
  .phase1-home .phase1-free-boundary{font-size:10px;line-height:1.65}
  .phase1-home .jp-hero-actions{width:100%}
  .phase1-home .jp-hero-actions .mm-button{width:100%;white-space:nowrap}
  .phase1-home .phase1-home-compare{width:min(100%,560px);height:auto;min-height:0;aspect-ratio:5/6;justify-self:center;border-radius:20px}
  .phase1-home .phase1-home-compare>img,.phase1-home .phase1-home-compare>div,.phase1-home .phase1-home-compare>div img{object-position:center 18%}
  .phase1-home .phase1-hairstyle-showcase{grid-template-columns:minmax(0,1fr);padding:9px}
  .phase1-home .phase1-hairstyle-gallery{order:1}
  .phase1-home .phase1-hairstyle-gallery-grid{aspect-ratio:5/4}
  .phase1-home .phase1-hairstyle-showcase-copy{order:2;padding:18px 15px 16px}
  .phase1-home .phase1-hairstyle-showcase-copy>.mm-kicker{font-size:10px}
  .phase1-home .phase1-hairstyle-showcase h2{font-size:22px;line-height:1.35}
  .phase1-home .phase1-hairstyle-entry-note{font-size:11px;line-height:1.6}
  .phase1-home .phase1-hairstyle-entry{font-size:11px}
  .phase1-home-compare .compare-line{left:clamp(12px,var(--split),calc(100% - 12px))}
  .phase1-home-compare .compare-line i{width:22px;height:22px}
  .phase1-home-compare .compare-line i img{width:12px;height:12px}
  .phase1-home-compare>input{min-width:44px;min-height:44px}
}

/* iPad landscape/portrait transition: retain the desktop reading order but
   reduce the two columns before the single-column breakpoint at 900px. */
@media(min-width:901px) and (max-width:1024px){
  .phase1-home .phase1-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;padding:38px 28px 28px}
  .phase1-home .phase1-hero-copy h1{font-size:clamp(38px,4.8vw,48px);word-break:keep-all;line-break:strict}
  .phase1-home .phase1-lead{font-size:12px}
  .phase1-home .phase1-home-compare{min-height:470px}
}

@media(max-width:520px){
  .phase1-home .phase1-analysis-summary ul{grid-template-columns:minmax(0,1fr)}
  .phase1-home .phase1-analysis-summary li{border-right:0;border-bottom:1px solid var(--line)}
  .phase1-home .phase1-analysis-summary li:last-child{border-bottom:0}
}

/* Final compact product navigation: the two hairstyle journeys share one
   clear entry, so all four product links fit without leaving the viewport. */
@media(max-width:600px){
  .mm-header .mm-nav{justify-content:flex-start;gap:12px;padding-inline:10px;overflow-x:auto;overflow-y:hidden;contain:inline-size}
  .mm-header .mm-nav a{padding-inline:4px;font-size:10px;letter-spacing:0;white-space:nowrap}
  .mm-flow-product-nav,.mm-static-product-nav{justify-content:flex-start;gap:12px;padding-inline:10px;overflow-x:auto;overflow-y:hidden}
  .mm-flow-product-nav a,.mm-static-product-nav a{padding-inline:3px;font-size:10px;letter-spacing:0;white-space:nowrap}
  .mm-flow-product-bar>.mm-product-account-link,.mm-static-product-bar>.mm-product-account-link{min-width:64px;padding-inline:7px;font-size:10px}
  #face-check h2,.account-main h1,#paid-empty h1,#face-empty h1,#diagnosis-status-title,#diagnosis-pending h2{max-width:100%;font-size:clamp(24px,7.2vw,31px);line-height:1.4;word-break:keep-all;line-break:strict;overflow-wrap:normal}
  #face-check h2{font-size:clamp(20px,5.8vw,26px)}
  #face-check h2 span{display:block}
}

/* Keep the intentional Japanese line breaks within a 320px content column. */
@media(max-width:340px){
  .hairstyle-status-hero h1,.mm-my-results-head h1{font-size:32px;letter-spacing:0}
  .mm-header .mm-nav{gap:5px;padding-inline:6px}
  .mm-header .mm-nav a{padding-inline:0;font-size:9px;letter-spacing:-.04em}
}

/* Catalog discovery should lead to real styles, not a full-screen filter form.
   The face check remains available as a light handoff; filters stay complete
   but collapse to one explicit control on phones. */
.hairstyle-catalog-page .catalog-choice{grid-template-columns:minmax(0,1fr) minmax(270px,.72fr);gap:32px;align-items:center;margin-bottom:24px;padding:30px 0 26px}
.catalog-face-quicklink{display:grid;grid-template-columns:1fr auto;column-gap:18px;align-items:center;min-height:82px;padding:17px 19px;border:1px solid var(--rose);background:#fff3f5;color:var(--ink);box-shadow:0 8px 20px rgba(220,78,105,.08)}
.catalog-face-quicklink span{grid-column:1;color:var(--rose-dark);font:700 10px/1.4 var(--sans);letter-spacing:.1em}
.catalog-face-quicklink strong{grid-column:1;margin-top:5px;font:500 clamp(18px,2vw,25px)/1.35 var(--serif)}
.catalog-face-quicklink b{grid-column:2;grid-row:1 / span 2;color:var(--rose-dark);font:400 21px/1 var(--sans)}
.catalog-face-quicklink:hover{border-color:var(--rose-dark);background:#ffe9ee;box-shadow:0 10px 24px rgba(220,78,105,.14)}
.catalog-face-quicklink:focus-visible,.hairstyle-catalog-filter-panel>summary:focus-visible{outline:3px solid #8f2038;outline-offset:3px}
.hairstyle-catalog-filter-panel{margin:0 0 22px;border:1px solid var(--line);background:#fff}
.hairstyle-catalog-filter-panel>summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 20px;cursor:pointer;list-style:none;font:700 12px/1.5 var(--sans)}
.hairstyle-catalog-filter-panel>summary::-webkit-details-marker{display:none}
.hairstyle-catalog-filter-panel>summary:after{content:"＋";color:var(--rose-dark);font:400 20px/1 var(--sans)}
.hairstyle-catalog-filter-panel[open]>summary{border-bottom:1px solid var(--line)}
.hairstyle-catalog-filter-panel[open]>summary:after{content:"−"}
.hairstyle-catalog-filter-panel .hairstyle-catalog-filters{border:0}
.hairstyle-catalog-filter-panel .hairstyle-catalog-filters fieldset:last-of-type{border-bottom:1px solid var(--line)}

@media(max-width:768px){
  .hairstyle-catalog-page .catalog-choice{display:block;margin-bottom:14px;padding:12px 0 16px}
  .hairstyle-catalog-page .catalog-choice h1{font-size:clamp(31px,8vw,40px)}
  .catalog-face-quicklink{grid-template-columns:1fr auto;min-height:64px;margin-top:18px;padding:12px 14px}
  .catalog-face-quicklink strong{font-size:clamp(17px,5.3vw,22px)}
  .hairstyle-catalog-filter-panel{margin-bottom:14px}
  .hairstyle-catalog-filter-panel>summary{min-height:48px;padding-inline:13px;font-size:11px}
  .hairstyle-catalog-filter-panel[open] .hairstyle-catalog-filters{margin-bottom:0}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters fieldset{padding:12px 11px}
  .hairstyle-catalog-page .hairstyle-public-status{display:grid;grid-template-columns:1fr;gap:4px;margin-top:8px;padding:9px 0}
  .hairstyle-catalog-page .hairstyle-public-status h2,.hairstyle-catalog-page .catalog-heading h2{display:none}
  .hairstyle-catalog-page .hairstyle-public-status p{margin:0;font-size:10px;line-height:1.55}
  .hairstyle-catalog-page .catalog-heading{margin:9px 0 8px}
}

/* Homepage: editorial selection tool, not a generic AI campaign. */
.phase1-home .phase1-hero{background:#fffdfb}
.phase1-home .phase1-hero-copy .mm-kicker,.phase1-home .phase1-principle>.mm-kicker{color:#8b625c;letter-spacing:.16em}
.phase1-home .phase1-home-compare{border-radius:10px;box-shadow:none}
.phase1-home .phase1-analysis-summary{border-radius:0;box-shadow:none;background:#fff;border-color:#e7ddd7}
.phase1-home .phase1-analysis-summary ul{border-radius:0;background:#e7ddd7}
.phase1-home .phase1-analysis-summary li{min-height:0;padding:15px 18px}
.phase1-home .phase1-analysis-summary li>img[data-brand-icon]{display:none}
.phase1-home .jp-hero-actions .mm-button{border-radius:3px;box-shadow:none;background:#b83f57}
.phase1-home .phase1-hairstyle-showcase{margin-top:46px;padding:0;width:min(1160px,calc(100% - 36px));border:1px solid #e6ddd7;border-radius:0;background:#f7f3ef}
.phase1-home .phase1-hairstyle-showcase-copy{order:1;padding:48px 44px;background:#fffdfb}
.phase1-home .phase1-hairstyle-entry{border-radius:3px;background:transparent;border:1px solid #b46770;color:#713f43}
.phase1-home .phase1-hairstyle-gallery{order:2;border-radius:0;background:transparent}
.phase1-home .phase1-hairstyle-gallery-grid{height:360px;aspect-ratio:auto;padding:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr;gap:1px;background:#fffdfb}
.phase1-home .phase1-hairstyle-gallery-grid .is-main{grid-row:auto}
.phase1-home .phase1-hairstyle-gallery-grid img{object-position:center 18%}
.phase1-home .phase1-principle{padding-top:74px;padding-bottom:68px;background:#fffaf7}
.phase1-home .phase1-principle>h2{color:var(--ink);font-size:clamp(30px,3vw,42px)}
.phase1-home .phase1-plan-roles{max-width:860px;margin:0 auto;gap:0;border-top:1px solid #ddd2cb;border-bottom:1px solid #ddd2cb}
.phase1-home .phase1-plan-roles article,.phase1-home .phase1-plan-roles article:last-child{min-height:170px;padding:28px 28px 24px;text-align:left;border-radius:0;border-right:1px solid #ddd2cb;background:transparent}
.phase1-home .phase1-plan-roles article:last-child{border-right:0}
.phase1-home .phase1-plan-roles article:before{display:none}
.phase1-home .phase1-plan-roles article>img[data-brand-icon]{display:none}
.phase1-home .phase1-plan-roles small{display:block;color:#9a6760;font:600 10px/1 var(--sans);letter-spacing:.16em}
.phase1-home .phase1-plan-roles h3{margin:13px 0 9px;font-size:24px}
.phase1-home .phase1-plan-roles p{text-align:left;font-size:12px}
.phase1-home .phase1-how{padding-top:58px;padding-bottom:48px;background:#fffdfb;border-top:1px solid #e6ddd7}
.phase1-home .simple-steps{max-width:980px;margin:auto;gap:0;border-top:1px solid #e1d5cf;border-bottom:1px solid #e1d5cf}
.phase1-home .simple-steps article,.phase1-home .simple-steps article:last-child{min-height:188px;padding:23px 26px 24px!important;border:0!important;border-right:1px solid #e1d5cf!important;border-radius:0;background:transparent;text-align:left;box-shadow:none}
.phase1-home .simple-steps article:last-child{border-right:0!important}
.phase1-home .simple-steps article:not(:last-child):after{display:none}
.phase1-home .simple-steps .step-mark{margin-bottom:17px;padding-bottom:12px}
.phase1-home .simple-steps .step-mark strong{position:static;display:block;width:auto;height:auto;transform:none;background:none;color:#d8aaa8;font:500 35px/1 var(--serif)}
.phase1-home .simple-steps h3{font-size:19px}
.phase1-approved-bottom-cta{width:min(810px,calc(100% - 36px));min-height:62px;margin:28px auto 72px;border:1px solid #b46770;border-radius:3px;background:#fffdfb;color:#713f43;box-shadow:none}
.phase1-approved-bottom-cta small{background:transparent;color:#9a6760;padding:0;font-size:10px;white-space:nowrap}
.phase1-approved-bottom-cta strong{min-width:0;font-size:clamp(12px,3.3vw,16px);line-height:1.25;letter-spacing:0;white-space:nowrap}
.phase1-approved-bottom-cta b{font-size:18px}
.phase1-home .face-entry{margin-top:0;background:#292525}
.phase1-home .face-entry .mm-button{border:1px solid #fff;background:transparent;color:#fff;box-shadow:none;border-radius:3px}
.phase1-hair-notes{width:min(980px,calc(100% - 36px));margin:0 auto;padding:72px 0;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:66px;border-top:1px solid #e3d8d2}
.phase1-hair-notes-intro h2{margin:8px 0 18px;font:500 clamp(29px,3vw,42px)/1.38 var(--serif);letter-spacing:.02em;overflow-wrap:anywhere;word-break:normal}
.phase1-hair-notes-intro>p:not(.mm-kicker){max-width:32em;margin:0;color:var(--muted);font-size:13px;line-height:1.9}
.phase1-hair-notes-intro>a{display:inline-flex;gap:16px;align-items:center;margin-top:24px;padding-bottom:6px;border-bottom:1px solid #9a6760;color:#713f43;font-weight:700;font-size:12px}
.phase1-hair-notes-intro>a b{font-size:17px;font-weight:400}
.phase1-hair-notes-list{border-top:1px solid #ded2cc}
.phase1-hair-notes-list a{display:grid;grid-template-columns:1fr auto;gap:9px 18px;padding:21px 0;border-bottom:1px solid #ded2cc}
.phase1-hair-notes-list small{grid-column:1;color:#9a6760;font:700 10px/1.4 var(--sans);letter-spacing:.09em}
.phase1-hair-notes-list strong{grid-column:1;font:500 clamp(16px,1.6vw,21px)/1.55 var(--serif)}
.phase1-hair-notes-list span{grid-column:2;grid-row:1 / span 2;align-self:center;color:#9a6760;font-size:11px;font-weight:700;white-space:nowrap}
.phase1-hair-notes a:focus-visible{outline:3px solid #8f2038;outline-offset:4px}
.owner-journeys-page{min-width:0;background:#fffaf7;color:var(--ink)}.owner-journeys{width:min(1040px,calc(100% - 40px));margin:0 auto;padding:72px 0}.owner-journeys h1{margin:8px 0 30px;font:500 clamp(32px,4vw,52px)/1.35 var(--serif)}.owner-journeys h2{margin:42px 0 14px;font:500 24px/1.45 var(--serif)}.owner-journeys-access{display:grid;grid-template-columns:minmax(220px,1fr) 140px auto;gap:14px;align-items:end;padding:20px;border:1px solid #e2d4cc;background:#fff}.owner-journeys-access label{display:grid;gap:7px;font-size:11px;font-weight:700}.owner-journeys-access input,.owner-journeys-access select{min-height:42px;border:1px solid #bfaeaa;background:#fff;padding:0 10px;font:14px var(--sans)}.owner-journeys-access .mm-button{min-height:42px;white-space:nowrap}.owner-journeys-table-wrap{overflow:auto;border:1px solid #e2d4cc;background:#fff}.owner-journeys table{width:100%;min-width:620px;border-collapse:collapse;font:12px/1.5 var(--sans)}.owner-journeys th,.owner-journeys td{padding:11px 13px;border-bottom:1px solid #eee4df;text-align:left;overflow-wrap:anywhere}.owner-journeys th{color:#713f43;background:#fff3f5;font-size:10px;letter-spacing:.06em}.owner-journeys-status{min-height:1.7em;margin:15px 0 0;color:var(--muted);font-size:13px}@media(max-width:650px){.owner-journeys{width:calc(100% - 28px);padding:42px 0}.owner-journeys-access{grid-template-columns:1fr}.owner-journeys-access .mm-button{width:100%}}
.mm-diagnosis-context,.mm-flow-context{min-height:42px;padding:0 max(32px,calc((100% - 1240px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fffdfb;color:var(--muted)}
.mm-diagnosis-context .mm-back,.mm-flow-context .mm-back{color:inherit;font-size:11px;text-decoration:none}
.mm-diagnosis-context .mm-flow-label,.mm-flow-context .mm-flow-label{font-size:10px;letter-spacing:.08em}

@media(max-width:900px){
  .phase1-home .phase1-hairstyle-showcase-copy{padding:32px 26px}
  .phase1-home .phase1-hairstyle-gallery-grid{height:290px}
  .phase1-home .phase1-plan-roles article,.phase1-home .phase1-plan-roles article:last-child{padding:22px 18px}
}
@media(max-width:600px){
  .phase1-home .phase1-hero{background:#fffdfb}
  .phase1-home .phase1-home-compare{border-radius:8px}
  .phase1-home .phase1-analysis-summary{border-radius:0}
  .phase1-home .phase1-hairstyle-showcase{margin-top:28px;width:calc(100% - 28px);padding:0}
  .phase1-home .phase1-hairstyle-showcase-copy{padding:28px 20px}
  .phase1-home .phase1-hairstyle-gallery-grid{height:auto;aspect-ratio:1/1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr}
  .phase1-home .phase1-hairstyle-gallery-grid .is-main{grid-column:auto;grid-row:auto}
  .phase1-home .phase1-principle{padding:48px 18px}
  .phase1-home .phase1-plan-roles{display:block;border-bottom:0}
  .phase1-home .phase1-plan-roles article,.phase1-home .phase1-plan-roles article:last-child{min-height:0;padding:20px 0;border-right:0!important;border-bottom:1px solid #ddd2cb!important;background:transparent}
  .phase1-home .phase1-plan-roles article:last-child{border-bottom:0!important}
  .phase1-home .phase1-how{padding:42px 18px}
  .phase1-home .simple-steps{display:block;border-bottom:0}
  .phase1-home .simple-steps article,.phase1-home .simple-steps article:last-child{min-height:0;padding:19px 0!important;border-right:0!important;border-bottom:1px solid #e1d5cf!important;text-align:left}
  .phase1-home .simple-steps article:last-child{border-bottom:0!important}
  .phase1-home .simple-steps .step-mark strong{font-size:29px}
  .phase1-approved-bottom-cta{width:calc(100% - 36px);margin:22px auto 52px;grid-template-columns:max-content minmax(0,1fr) max-content;gap:10px;padding:10px 14px 10px 10px}
  .phase1-hair-notes{width:calc(100% - 36px);grid-template-columns:1fr;gap:32px;padding:48px 0}
  .phase1-hair-notes-intro h2{font-size:25px;line-height:1.42}
  .phase1-hair-notes-list a{gap:7px 12px;padding:17px 0}
  .phase1-hair-notes-list strong{font-size:16px}
  .mm-diagnosis-context,.mm-flow-context{min-height:38px;padding-inline:14px}
  .mm-diagnosis-context .mm-back,.mm-diagnosis-context .mm-flow-label,.mm-flow-context .mm-back,.mm-flow-context .mm-flow-label{font-size:10px}
}
@media(max-width:340px){
  .mm-header .mm-nav{gap:5px;padding-inline:6px}
  .mm-header .mm-nav a{padding-inline:0;font-size:9px;letter-spacing:-.04em}
}

/* Five full Japanese product labels are not legible when compressed into a
   phone-width row. Keep them as reachable tabs with deliberate touch targets
   and horizontal scrolling instead of shrinking their type into a toolbar. */
@media(max-width:800px){
  .mm-header,.phase1-home .mm-header{min-height:112px;grid-template-rows:64px 48px}
  .mm-header .mm-nav{height:48px;gap:10px;padding-inline:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;touch-action:pan-x;font-size:12px;contain:none}
  .mm-header .mm-nav a{flex:0 0 auto;min-width:94px;min-height:48px;padding-inline:10px;place-items:center;scroll-snap-align:start;scroll-margin-inline:12px;letter-spacing:0;white-space:nowrap}
}
@media(max-width:340px){
  .mm-header .mm-nav{gap:10px;padding-inline:12px}
  .mm-header .mm-nav a{min-width:94px;padding-inline:10px;font-size:12px;letter-spacing:0}
}

/* Phone navigation is an actual keyboard-operable menu, rather than a row of
   five labels forced off the edge of the screen. Desktop keeps the full row. */
.mm-mobile-menu{display:none}.mm-mobile-menu-backdrop{position:fixed;inset:0;z-index:190;background:rgba(30,24,23,.42)}.mm-mobile-menu-panel{position:fixed;z-index:200;top:max(10px,env(safe-area-inset-top));right:10px;left:10px;max-width:480px;margin-left:auto;padding:18px;background:#fffdfb;border:1px solid #d8cbc4;box-shadow:0 20px 54px rgba(31,23,20,.22)}.mm-mobile-menu-panel nav{display:grid;border-top:1px solid #e3d8d1}.mm-mobile-menu-panel nav a{min-height:54px;display:flex;align-items:center;padding:0 13px;border-bottom:1px solid #e3d8d1;color:var(--ink);font:500 17px/1.4 var(--serif);text-decoration:none}.mm-mobile-menu-panel nav a[aria-current=page]{color:var(--rose-dark);background:#fff0f2}.mm-mobile-menu-panel .mm-mobile-menu-account{margin-top:10px;border:1px solid #b46770;background:#fff;color:#713f43}.mm-mobile-menu-close{display:grid;place-items:center;width:44px;height:44px;margin:0 0 12px auto;border:1px solid #c6b7b1;background:#fff;font-size:28px;line-height:1}.mm-mobile-menu-open{overflow:hidden}
@media(max-width:800px){
  html.mm-mobile-menu-enhanced .mm-header,html.mm-mobile-menu-enhanced .phase1-home .mm-header{height:64px!important;min-height:64px!important;padding:0 14px!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:64px!important}
  html.mm-mobile-menu-enhanced .mm-header .mm-nav,html.mm-mobile-menu-enhanced .mm-header .mm-account,html.mm-mobile-menu-enhanced .mm-flow-product-nav,html.mm-mobile-menu-enhanced .mm-static-product-nav,html.mm-mobile-menu-enhanced .mm-flow-product-bar>.mm-product-account-link,html.mm-mobile-menu-enhanced .mm-static-product-bar>.mm-product-account-link,html.mm-mobile-menu-enhanced .site-header .main-nav,html.mm-mobile-menu-enhanced .site-header>.mm-static-account-link{display:none!important}
  html.mm-mobile-menu-enhanced .mm-mobile-menu{display:grid!important;place-items:center;justify-self:end;min-width:64px;height:44px;min-height:44px;padding:0 9px;border:1px solid #b46770!important;background:#fffdfb;color:#713f43;font:600 13px/1 var(--sans);letter-spacing:.05em;white-space:nowrap}
  html.mm-mobile-menu-enhanced .mm-flow-product-bar,html.mm-mobile-menu-enhanced .mm-static-product-bar{min-height:0!important;padding:0!important;border:0!important;display:flex!important;justify-content:flex-end!important}

  /* With JavaScript disabled, retain a visible, scrollable source fallback.
     The enhancement class is never present in that case. */
  html:not(.mm-mobile-menu-enhanced) .mm-static-product-nav,
  html:not(.mm-mobile-menu-enhanced) .site-header .main-nav{
    display:flex!important;min-height:44px;gap:12px;padding-inline:12px;
    overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap
  }
  html:not(.mm-mobile-menu-enhanced) .mm-static-product-nav a,
  html:not(.mm-mobile-menu-enhanced) .site-header .main-nav a{
    display:flex!important;flex:0 0 auto;align-items:center;min-height:44px;
    padding-inline:4px;font-size:12px;white-space:nowrap
  }
}

/* The one principal catalog handoff stays unmistakably brand pink. */
.phase1-home .phase1-hairstyle-entry{
  border-color:var(--rose-dark);background:var(--rose);color:#fff;
  box-shadow:0 12px 24px rgba(218,76,104,.19)
}
.phase1-home .phase1-hairstyle-entry:hover{background:var(--rose-dark);color:#fff}
.phase1-home .phase1-hairstyle-entry:focus-visible{outline:3px solid #8f2038;outline-offset:3px}

/* The range itself remains a full-size, accessible hit area; only the visual
   centre marker is quieter. */
.phase1-home .home-compare .compare-line i{width:26px;height:26px}
.phase1-home .home-compare .compare-line i img{width:14px;height:14px}
@media(max-width:800px){
  .phase1-home .home-compare .compare-line i{width:22px;height:22px}
  .phase1-home .home-compare .compare-line i img{width:12px;height:12px}
}

/* Tactile, editorial feedback: the motion is intentionally short and quiet.
   It makes real controls feel responsive without making the page feel like a
   generic AI demo, and is disabled for people who opt out of motion. */
:root{--mm-motion-fast:160ms;--mm-motion-slow:280ms}
.mm-button,.phase1-approved-bottom-cta,.phase1-hairstyle-entry,.catalog-face-quicklink,.mm-mobile-menu{
  transition:transform var(--mm-motion-fast) ease,box-shadow var(--mm-motion-fast) ease,background-color var(--mm-motion-fast) ease,border-color var(--mm-motion-fast) ease,color var(--mm-motion-fast) ease
}
.phase1-home-compare .compare-line,.phase1-home-compare .compare-line i{
  transition:left 100ms linear,transform var(--mm-motion-fast) ease,box-shadow var(--mm-motion-fast) ease
}
.phase1-home-compare .compare-line i{box-shadow:0 4px 12px rgba(50,35,31,.13)}
.phase1-home-compare:focus-within .compare-line i{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 0 4px rgba(234,88,115,.17),0 6px 16px rgba(50,35,31,.17)}
.mm-button:active,.phase1-approved-bottom-cta:active,.phase1-hairstyle-entry:active,.catalog-face-quicklink:active,.mm-mobile-menu:active{transform:translateY(1px) scale(.985);box-shadow:none}
.mm-mobile-menu:focus-visible{outline:3px solid #8f2038;outline-offset:3px}
@media(hover:hover) and (pointer:fine){
  .phase1-home .phase1-hairstyle-entry:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(218,76,104,.26)}
  .catalog-face-quicklink:hover{transform:translateY(-1px)}
  .phase1-home-compare:hover .compare-line i{transform:translate(-50%,-50%) scale(1.05);box-shadow:0 0 0 4px rgba(234,88,115,.12),0 6px 16px rgba(50,35,31,.16)}
}
@media(prefers-reduced-motion:reduce){
  .mm-button,.phase1-approved-bottom-cta,.phase1-hairstyle-entry,.catalog-face-quicklink,.mm-mobile-menu,.phase1-home-compare .compare-line,.phase1-home-compare .compare-line i{transition:none!important}
}

/* Live catalog search. Cards are all present while images remain lazy-loaded,
   so the complete 105-style selector is immediately searchable. */
.catalog-search{display:grid;gap:7px;margin-bottom:18px;color:var(--ink);font-size:12px;font-weight:700}
.catalog-search input{width:100%;min-height:48px;padding:0 14px;border:1px solid #d8cbc4;border-radius:4px;background:#fff;color:var(--ink);font:500 16px var(--sans)}
.catalog-show-more{display:block;min-width:min(100%,320px);min-height:52px;margin:28px auto 0;padding:0 20px;border:1px solid #a64d61;border-radius:4px;background:#fff;color:#713f43;font:700 14px var(--sans);cursor:pointer}
.catalog-show-more:hover{background:#fff0f2}

/* Result cards stay out of the accessibility tree until synchronization is
   complete. The overview uses native progress semantics and real job counts. */
.mm-results-overview{margin-top:34px;padding:24px;border:1px solid var(--line);background:#fff}.mm-results-overview>h2{margin:0 0 18px;font:500 25px/1.4 var(--serif)}.mm-result-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}.mm-result-metrics article{min-height:128px;padding:20px;display:flex;flex-direction:column;justify-content:center;background:var(--paper)}.mm-result-metrics strong{font:600 38px/1 var(--serif);color:var(--rose-dark)}.mm-result-metrics span,.mm-result-metrics label{margin-top:9px;color:var(--muted);font-size:12px;line-height:1.5}.mm-result-metrics progress{width:100%;height:12px;margin-top:13px;accent-color:var(--rose-dark)}.mm-my-result-details{width:100%;margin:0 0 24px;display:grid;grid-template-columns:90px 1fr;border-top:1px solid var(--line)}.mm-my-result-details dt,.mm-my-result-details dd{margin:0;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.6}.mm-my-result-details dt{font-weight:700}.mm-my-result-details dd{color:var(--muted)}.mm-account-result-actions{display:flex;flex-wrap:wrap;gap:8px}.mm-account-result-actions a{min-height:40px;padding:8px 11px;display:inline-flex;align-items:center;border:1px solid var(--rose);color:var(--rose-dark);font-size:11px;font-weight:700;text-decoration:none}

@media(max-width:600px){
  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .hairstyle-catalog-page .public-catalog-card{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}
  .hairstyle-catalog-page .public-catalog-media{min-height:0;aspect-ratio:4/5}
  .hairstyle-catalog-page .public-catalog-card>div{padding:8px}
  .hairstyle-catalog-page .public-catalog-card strong{font-size:14px;line-height:1.4}
  .hairstyle-catalog-page .public-catalog-card small{font-size:8px}
  .hairstyle-catalog-page .public-catalog-faces{display:none}
  .mm-page .public-catalog-select{min-height:48px;padding:7px 4px;font-size:10px;white-space:normal}
  .mm-result-metrics{grid-template-columns:1fr}.mm-result-metrics article{min-height:104px}
}

/* Final accessible type and hit areas override the earlier compact variants. */
.mm-free-preview h2{margin:0 0 6px;font:500 16px var(--serif)}
.phase1-home .phase1-hairstyle-entry{font-size:14px}
.phase1-approved-bottom-cta strong{font-size:max(14px,1rem)}
.mm-mobile-menu-panel nav a{width:100%;min-height:54px}

/* Keep all three portraits at their native, matching scale. The long-hair
   image only needs a slightly higher source crop so its face sits lower. */
.phase1-home .phase1-hairstyle-gallery-grid .is-main{
  transform:none;object-position:50% 10%;z-index:auto
}

/* Ready-only hairstyle diagnosis is injected after the public catalog gate.
   Its form controls must not let an intrinsic select width widen the mobile grid. */
.simulation-panel{width:100%;min-width:0;max-width:100%;grid-template-columns:minmax(0,1fr)}
.simulation-panel>*{min-width:0;max-width:100%}
.simulation-panel h2{word-break:normal;line-break:auto;overflow-wrap:anywhere}
.simulation-panel label{width:100%;overflow-wrap:anywhere}
.simulation-panel select{width:100%;min-width:0}
.simulation-panel select{min-height:48px;padding:10px 12px}
.catalog-filter-row button,.catalog-filter-reset{min-height:44px}
@media(max-width:768px){.catalog-filter-row button,.catalog-filter-reset{min-height:44px}.mm-page .public-catalog-select{min-height:48px}}
@media(max-width:430px){.catalog-filter-row button,.catalog-filter-reset{min-height:44px}.mm-page .public-catalog-select{min-height:48px}}
.hairstyle-status-page{overflow-x:clip}

/* The diagnosis surface exposes the complete 105-style source set in one
   continuous selector, so users can see what the recommendations come from. */
.diagnosis-all-styles{width:min(1180px,calc(100% - 40px));margin:54px auto 90px;padding-top:34px;border-top:1px solid var(--line)}
.diagnosis-all-styles .catalog-heading{align-items:end}.diagnosis-all-styles .catalog-heading p{max-width:680px;color:var(--ink-soft);line-height:1.75}
.diagnosis-all-styles .catalog-heading>strong{color:var(--rose-dark);font:600 22px/1 var(--serif);white-space:nowrap}
.diagnosis-style-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.diagnosis-style-card{min-width:0;overflow:hidden;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.diagnosis-style-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(73,43,37,.09)}
.diagnosis-style-card img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#f3ece8}
.diagnosis-style-card span{display:grid;gap:5px;padding:12px}.diagnosis-style-card strong{font:500 15px/1.45 var(--serif)}.diagnosis-style-card small{color:var(--ink-soft);font-size:10px;line-height:1.5}
@media(max-width:900px){.diagnosis-style-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.diagnosis-all-styles{width:calc(100% - 28px);margin-top:28px}.diagnosis-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.diagnosis-style-card span{padding:7px}.diagnosis-style-card strong{font-size:12px}.diagnosis-style-card small{font-size:9px}}

/* Owner analytics: quiet, readable reporting rather than a technical console. */
.owner-journeys{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:56px 0 80px;min-width:0}
.owner-journeys h1{margin:0 0 26px;font-size:clamp(2rem,5vw,3.75rem)}
.owner-journeys-access{display:flex;align-items:end;gap:12px;padding:18px;border:1px solid var(--line);background:var(--paper);box-shadow:0 10px 28px rgba(83,45,37,.05)}
.owner-journeys-access label{display:grid;gap:7px;min-width:0;flex:1;font-size:.82rem;font-weight:700;color:var(--ink-soft)}
.owner-journeys-access input,.owner-journeys-access select{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);font:inherit}
.owner-journeys-access .mm-button{min-height:44px;white-space:nowrap}
#owner-journeys-status{min-height:1.5em;margin:14px 0 22px;color:var(--ink-soft)}
.owner-journeys-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.owner-journeys-kpis article,.owner-chart-card,.owner-journeys-details{min-width:0;border:1px solid var(--line);background:#fff;box-shadow:0 10px 28px rgba(83,45,37,.045)}
.owner-journeys-kpis article{padding:20px}
.owner-journeys-kpis span,.owner-chart-card header p{margin:0;color:var(--ink-soft);font-size:.82rem;font-weight:700;letter-spacing:.04em}
.owner-journeys-kpis strong{display:block;margin:7px 0 4px;color:var(--ink);font:500 clamp(1.75rem,4vw,2.55rem)/1 var(--font-serif,serif)}
.owner-journeys-kpis small{color:var(--ink-soft);font-size:.75rem;line-height:1.55}
.owner-journeys-charts{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px}
.owner-chart-card{padding:20px}
.owner-chart-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.owner-chart-card header h2{margin:5px 0 0;font-size:clamp(1.15rem,2.5vw,1.55rem)}
.owner-chart-key{display:flex;align-items:center;gap:6px;color:var(--ink-soft);font-size:.72rem;white-space:nowrap}
.owner-chart-key i{display:inline-block;width:14px;height:3px;background:var(--rose)}
.owner-chart-key i+ i{margin-left:5px;background:var(--ink-soft);background:repeating-linear-gradient(90deg,var(--ink-soft) 0 4px,transparent 4px 7px)}
.owner-line-chart{display:block;width:100%;height:auto;min-height:180px;overflow:visible}
.owner-chart-grid{stroke:#eadfd9;stroke-width:1}
.owner-chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.owner-chart-pages{stroke:var(--rose)}
.owner-chart-visits{stroke:var(--ink-soft);stroke-dasharray:6 5}
.owner-chart-label{fill:var(--ink-soft);font-size:11px}
.owner-bar-chart{display:grid;gap:13px;min-height:150px}
.owner-bar-row{display:grid;grid-template-columns:minmax(82px,1fr) minmax(72px,2fr) minmax(26px,.25fr);align-items:center;gap:10px;color:var(--ink);font-size:.82rem}
.owner-bar-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.owner-bar-row i{display:block;position:relative;height:9px;overflow:hidden;background:#f6eeeb}
.owner-bar-row i::before{position:absolute;inset:0 auto 0 0;width:var(--value);background:linear-gradient(90deg,#f58ba0,var(--rose));content:""}
.owner-bar-row b{text-align:right;font-size:.8rem}
.owner-journeys-paths{grid-column:1/-1;margin-top:16px}
.owner-journeys-visits{grid-column:1/-1;margin-top:16px}
.owner-visit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.owner-visit-card{min-width:0;padding:14px;border:1px solid #eee3df;background:#fffaf8}
.owner-visit-card header{display:flex;align-items:center;justify-content:space-between;margin:0;gap:10px}
.owner-visit-card header strong{font-size:.93rem}.owner-visit-card header span{color:var(--rose);font-size:.77rem;font-weight:700}
.owner-visit-card p{margin:10px 0 5px;overflow-wrap:anywhere;font-weight:700;line-height:1.6}
.owner-visit-card small{display:block;color:var(--ink-soft);font-size:.76rem;line-height:1.55}
.owner-journeys-details{margin-top:16px;padding:18px 20px}
.owner-journeys-details summary{cursor:pointer;font-weight:700}
.owner-journeys-details[open] summary{margin-bottom:16px}
.owner-journeys-table-wrap{width:100%;overflow:auto}
.owner-journeys table{width:100%;min-width:540px;border-collapse:collapse;text-align:left}
.owner-journeys th,.owner-journeys td{padding:11px 8px;border-bottom:1px solid #eee3df;font-size:.82rem;vertical-align:top}
.owner-journeys th{color:var(--ink-soft);font-weight:700}
@media(max-width:800px){.owner-journeys{width:min(100% - 28px,680px);padding-top:34px}.owner-journeys-access{align-items:stretch;flex-direction:column}.owner-journeys-access .mm-button{width:100%}.owner-journeys-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-journeys-charts{grid-template-columns:1fr}.owner-journeys-paths,.owner-journeys-visits{grid-column:auto}.owner-visit-list{grid-template-columns:1fr}.owner-chart-card{padding:17px}.owner-chart-card header{flex-wrap:wrap}.owner-line-chart{min-height:150px}}
@media(max-width:390px){.owner-journeys{width:calc(100% - 24px)}.owner-journeys-kpis article{padding:15px}.owner-journeys-kpis strong{font-size:1.65rem}.owner-bar-row{grid-template-columns:minmax(72px,1fr) minmax(52px,1fr) 24px;gap:7px}.owner-journeys-details{padding:15px}}
.mm-account-result-actions button{min-height:40px;padding:8px 11px;display:inline-flex;align-items:center;border:1px solid var(--rose);background:#fff;color:var(--rose-dark);font-size:11px;font-weight:700;cursor:pointer}.mm-account-result-actions .mm-account-result-delete{border-color:#b7aaac;color:#66595c}.mm-account-result-actions button:disabled{cursor:wait;opacity:.65}
#account-delete-confirm{display:block;width:100%;min-height:44px;margin-top:7px;padding:8px 10px;border:1px solid var(--line);background:#fff;color:var(--ink)}
#account-delete-confirm:focus-visible{outline:3px solid #8f2038;outline-offset:2px}

/* Final live-QA target sizes for card view controls and saved-result actions. */
.public-catalog-angles button{min-height:44px;padding-block:7px;font-size:10px}
.mm-account-result-actions a,.mm-account-result-actions button.mm-my-result-secondary,.mm-account-result-actions button.mm-account-result-delete{min-height:44px}
.mm-account-result-compare{--split:50%;width:100%;margin-top:8px;aspect-ratio:4/5;position:relative;overflow:hidden;border:1px solid var(--line);background:var(--soft);touch-action:none;user-select:none}.mm-account-result-compare>img,.mm-account-result-compare>div,.mm-account-result-compare>div img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.mm-account-result-compare>div{clip-path:inset(0 calc(100% - var(--split)) 0 0)}.mm-account-result-compare>i{position:absolute;z-index:2;left:clamp(18px,var(--split),calc(100% - 18px));top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(33,29,29,.12)}.mm-account-result-compare>i::after{content:'↔';position:absolute;left:50%;top:50%;width:36px;height:36px;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:50%;background:#fff;color:var(--rose-dark);font-style:normal;box-shadow:0 4px 16px rgba(33,29,29,.18)}.mm-account-result-compare>input{position:absolute;z-index:4;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.mm-account-result-compare>small{position:absolute;z-index:3;bottom:10px;padding:6px 8px;background:rgba(255,253,251,.86);color:var(--ink);font-size:9px;pointer-events:none}.mm-account-result-compare>.before-label{left:10px}.mm-account-result-compare>.after-label{right:10px}.mm-account-result-single small{display:block;margin:8px 0 0;color:var(--muted);font-size:10px;line-height:1.6}
.mm-account-result-compare{touch-action:pan-y}
.mm-account-result-compare::after{content:"";position:absolute;z-index:2;top:0;bottom:0;left:clamp(22px,var(--split),calc(100% - 22px));width:2px;background:#fff;box-shadow:0 0 0 1px rgba(33,29,29,.12);transform:translateX(-1px);pointer-events:none}
.mm-account-result-compare>i{box-sizing:border-box;z-index:4;left:clamp(22px,var(--split),calc(100% - 22px));top:50%;bottom:auto;width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 4px 16px rgba(33,29,29,.18);transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:auto;touch-action:none;cursor:grab}
.mm-account-result-compare>i:active{cursor:grabbing}
.mm-account-result-compare>i::after{position:static;width:auto;height:auto;display:block;transform:none;border-radius:0;background:transparent;box-shadow:none;color:var(--rose-dark)}
.mm-account-result-compare>input{inset:auto;top:50%;left:clamp(22px,var(--split),calc(100% - 22px));width:44px;height:44px;transform:translate(-50%,-50%);pointer-events:none;touch-action:none;cursor:default}
.mm-diagnosis-context .mm-back,.mm-flow-context .mm-back{min-width:44px;min-height:44px;display:inline-flex;align-items:center}
.catalog-filter-row button,.catalog-filter-reset{min-width:44px}

/* Shared mobile reading density.  Product screens keep 44px controls but no
   longer spend the first viewport on oversized headings and status cards. */
@media(max-width:600px){
  .hairstyle-status-page .hairstyle-status-main{width:calc(100% - 28px);padding:22px 0 70px}
  .hairstyle-status-page .hairstyle-status-hero{padding:0 0 20px}
  .hairstyle-status-page .hairstyle-status-hero .mm-kicker{margin-bottom:8px;font-size:9px}
  .hairstyle-status-page .hairstyle-status-hero h1{font-size:29px;line-height:1.36}
  .hairstyle-status-page .hairstyle-status-hero>p:not(.mm-kicker){margin-top:12px;font-size:12px;line-height:1.7}
  .hairstyle-status-page .hairstyle-public-status{margin-top:12px;padding:12px 13px}
  .hairstyle-status-page .hairstyle-public-status .mm-kicker{margin-bottom:5px;font-size:9px}
  .hairstyle-status-page .hairstyle-public-status h2{margin:3px 0;font-size:20px;line-height:1.38}
  .hairstyle-status-page .hairstyle-public-status>p{margin:5px 0 0;font-size:11px;line-height:1.6}
  .hairstyle-status-page #diagnosis-ready .catalog-heading{margin:14px 0 5px}
  .hairstyle-status-page #diagnosis-ready .catalog-heading h2{display:none}
  .hairstyle-status-page .simulation-panel{gap:12px;margin:6px 0 38px;padding:16px 14px}
  .hairstyle-status-page .simulation-panel h2{font-size:21px;line-height:1.4}
  .hairstyle-status-page .simulation-panel>p{margin:0;font-size:12px;line-height:1.65}
  .hairstyle-status-page .simulation-panel label{font-size:12px}
  .mm-my-results{width:calc(100% - 28px);padding:26px 0 64px}
  .mm-my-results-head .mm-kicker{margin-bottom:8px}
  .mm-my-results-head h1{font-size:31px;line-height:1.36}
  .mm-my-results-head>p:not(.mm-kicker){margin-top:11px;font-size:12px;line-height:1.7}
  .mm-my-results>.mm-status{margin-top:14px;font-size:11px}
  .mm-my-results-grid{margin-top:17px}
  .mm-results-overview{margin-top:15px;padding:13px}
  .mm-results-overview>h2{margin-bottom:9px;font-size:20px}
  .mm-result-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mm-result-metrics article{min-height:94px;padding:9px}
  .mm-result-metrics strong{font-size:28px}
  .mm-result-metrics span,.mm-result-metrics label{margin-top:6px;font-size:9px;line-height:1.4}
  .mm-result-metrics progress{height:8px;margin-top:8px}
  .mm-my-result-card{padding:20px 15px}
  .mm-my-result-card h2{font-size:25px}
  .mm-my-result-copy{margin:11px 0 18px;font-size:12px;line-height:1.65}
}

/* Site-wide phone density.  Keep every decision and 44px hit target, but do
   not make people scroll through poster-sized headings or decorative gaps
   before they can use the product. */
@media(max-width:600px){
  .mm-flow-header{height:56px;padding-inline:12px;grid-template-columns:54px minmax(0,1fr) 54px}
  .mm-flow-header .mm-brand{font-size:11px;letter-spacing:.08em}
  .mm-flow{width:calc(100% - 20px);padding:14px 0 58px}
  .mm-flow-card{padding:18px 14px;box-shadow:none}
  .mm-flow-title{font-size:27px;line-height:1.38;letter-spacing:0}
  .mm-flow-lead{margin:8px 0 14px;font-size:11px;line-height:1.65}
  .phase1-intake .mm-flow-layout{width:calc(100% - 20px)}
  .phase1-intake .mm-intake-photo{padding:8px}
  .mm-photo-picker,.phase1-intake .mm-photo-picker{width:min(100%,286px)}
  .mm-photo-cta{padding:11px 12px}
  .mm-photo-checks{padding-top:8px;gap:6px 12px;font-size:8px}
  .mm-choice-block{margin-top:18px}
  .mm-choice-block h2{margin-bottom:9px;font-size:16px}
  .mm-mood-grid{gap:6px}
  .mm-mood{min-height:62px;padding:9px 10px}
  .mm-free-preview{margin:14px 0 12px;padding:12px 13px}
  .mm-submit{min-height:52px;margin-top:12px}

  .mm-result,.mm-paid{width:calc(100% - 20px);padding:20px 0 58px}
  .mm-analysis,.mm-paid-intro{padding-bottom:18px}
  .mm-analysis h1,.mm-paid-intro h1{font-size:27px;line-height:1.4}
  .mm-analysis>p:last-child,.mm-paid-intro>p:last-child{font-size:11px;line-height:1.65}
  .mm-recommendation{padding:22px 0}
  .mm-rec-head{margin-bottom:11px}
  .mm-rec-head h2{font-size:23px}
  .mm-reasons p{padding:9px 0}
  .mm-paid-detail{margin-top:24px}
  .mm-order{margin-top:24px;padding:16px 12px}

  .mm-auth{min-height:100dvh}
  .mm-auth-visual{min-height:218px}
  .mm-auth-visual-content{padding:18px 16px}
  .mm-auth-visual h1{font-size:26px;line-height:1.38}
  .mm-auth-panel{padding:22px 16px 34px}
  .mm-auth-card h2{font-size:26px;line-height:1.4}
  .mm-auth-card .lead{margin:8px 0 16px;line-height:1.65}
  .mm-auth-form{gap:11px}
  .mm-auth-form input{height:48px}
  .mm-auth-form button{height:52px}
  .mm-fineprint{padding-top:11px;line-height:1.65}

  .hairstyle-status-page .hairstyle-status-main{padding-top:16px}
  .hairstyle-status-page .hairstyle-status-hero{padding-bottom:15px}
  .hairstyle-status-page .hairstyle-status-hero h1{font-size:27px;line-height:1.34}
  .hairstyle-status-page .hairstyle-public-status{margin-top:8px;padding:10px 12px}
  .hairstyle-status-page .hairstyle-public-status h2{font-size:19px}
  .hairstyle-status-page #diagnosis-ready .catalog-heading{margin:10px 0 3px}
  .hairstyle-status-page .simulation-panel{margin-top:4px;padding:13px 12px;gap:10px}
  .hairstyle-status-page .simulation-panel h2{font-size:19px}

  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .hairstyle-catalog-page .public-catalog-card>div{padding:5px}
  .hairstyle-catalog-page .public-catalog-card strong{display:-webkit-box;min-height:2.7em;overflow:hidden;font-size:10.5px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .hairstyle-catalog-page .public-catalog-card small,.hairstyle-catalog-page .public-catalog-faces{display:none}
  .mm-page .public-catalog-select{min-height:44px;padding:4px 1px;font-size:8.5px;line-height:1.2}

  .diagnosis-all-styles{width:calc(100% - 24px);margin:20px auto 54px;padding-top:22px}
  .diagnosis-all-styles .catalog-heading{margin:0 0 12px;align-items:start}
  .diagnosis-all-styles .catalog-heading h2{font-size:22px;line-height:1.4}
  .diagnosis-all-styles .catalog-heading p{margin-top:6px;font-size:10px;line-height:1.55}
  .diagnosis-all-styles .catalog-heading>strong{font-size:16px}
  .diagnosis-style-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .diagnosis-style-card span{gap:2px;padding:6px}
  .diagnosis-style-card strong{display:-webkit-box;min-height:2.7em;overflow:hidden;font-size:10px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .diagnosis-style-card small{display:none}

  .face-result{width:calc(100% - 20px);padding:20px 0 58px}
  .face-result-hero{gap:18px}
  .face-result-hero h1{font-size:29px;line-height:1.4}
  .face-result-hero>div>p:not(.mm-kicker){font-size:11px;line-height:1.7}
  .face-result-hero figure{width:min(100%,286px)}
  .face-result-metrics{margin-top:22px}
  .face-result-metrics article{padding:16px}
  .face-result-next{margin-top:22px;padding:24px 15px}
}

@media(max-width:340px){
  .hairstyle-catalog-page .public-catalog-grid,.diagnosis-style-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Brand QA refinement: one editorial component language across diagnosis,
   catalogue, account and result routes. */
.mm-kicker{letter-spacing:.17em;color:var(--rose-dark)}
.route-number{font-family:var(--serif)}
.mm-flow-card{border-top:2px solid var(--rose-dark);box-shadow:0 16px 42px rgba(61,42,37,.055)}
.simulation-panel,.hairstyle-public-status{box-shadow:none}
.simulation-panel :where(select,input),.mm-auth-form input,.owner-journeys-access :where(input,select){border-radius:2px}
.catalog-filter-row button,.catalog-filter-reset{border-radius:2px}
.catalog-filter-row button[aria-pressed="true"]{box-shadow:inset 0 -2px 0 var(--rose);background:var(--paper)}
.catalog-choice-card{border-radius:2px;box-shadow:none}
.catalog-selected-view{border-radius:2px}
.public-catalog-angles{border-radius:2px;background:rgba(255,253,251,.92);box-shadow:0 4px 14px rgba(44,31,29,.09)}
.public-catalog-angles{left:auto;width:52px;grid-template-columns:1fr;padding:4px}
.public-catalog-angles button{width:44px;min-width:44px;min-height:44px;border-radius:1px}
.mm-page .public-catalog-select{border-radius:2px}

.mm-results-overview{padding:24px 0;border-width:1px 0;background:transparent}
.mm-result-metrics{gap:0;background:transparent}
.mm-result-metrics article{border-left:1px solid var(--line);background:transparent}
.mm-result-metrics article:first-child{border-left:0}
.mm-my-results-grid{gap:0;border-width:1px 0;background:transparent}
.mm-my-result-card{position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.mm-my-result-card:nth-child(2n){border-right:0;background:linear-gradient(135deg,var(--paper),#fbf7f4)}
.mm-my-result-card:nth-last-child(-n+2){border-bottom:0}
.mm-my-result-card::before{content:"";position:absolute;left:35px;top:0;width:42px;height:2px;background:var(--rose)}
.mm-account-result{border-width:1px 0;background:transparent}

@media(max-width:600px){
  .mm-kicker{font-size:9px;letter-spacing:.15em}
  .mm-flow-card{border-right:0;border-left:0;padding-inline:12px}
  .hairstyle-status-page .hairstyle-public-status{border-left:2px solid var(--rose);background:linear-gradient(90deg,#fbf5f2,transparent)}
  .hairstyle-status-page .simulation-panel{border-top:1px solid var(--line);background:linear-gradient(180deg,#fbf7f4 0,var(--paper) 100%)}

  /* 105 styles stay simultaneously visible. Each card keeps three 44px angle
     controls, but the visual chrome no longer fights the portrait. */
  .hairstyle-catalog-page .public-catalog-grid{gap:7px 5px}
  .hairstyle-catalog-page .public-catalog-card{border-color:#e6ded9;background:var(--paper)}
  .public-catalog-angles{left:auto;right:4px;bottom:4px;width:48px;gap:0;padding:2px}
  .public-catalog-angles button{width:44px;min-width:44px;min-height:44px;padding:0;background:var(--rose);color:#fff;font-size:8px;font-weight:650;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
  .hairstyle-catalog-page .public-catalog-card>div{padding:6px 4px 5px}
  .hairstyle-catalog-page .public-catalog-card strong{min-height:2.7em;font-size:10px;line-height:1.35}
  .mm-page .public-catalog-select{min-height:44px;padding:0 2px;font-size:0;line-height:1}
  .mm-page .public-catalog-select::after{content:"詳細";font-size:10px;letter-spacing:.08em}

  .mm-results-overview{padding:12px 0}
  .mm-result-metrics article{padding:8px 10px}
  .mm-my-results-grid{border-bottom:0}
  .mm-my-result-card,.mm-my-result-card:nth-child(2n){border-right:0;border-bottom:1px solid var(--line);background:var(--paper)}
  .mm-my-result-card::before{left:15px;width:34px}
  .mm-my-result-card:last-child{border-bottom:0}
  .mm-my-result-card .mm-button{min-height:52px}
}

/* This must remain the final phone override: older catalogue rules above use
   generous desktop spacing and must not re-expand the open filter drawer. */
@media(max-width:600px){
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters{gap:0;margin:0;overflow:hidden}
  .hairstyle-catalog-filter-panel .catalog-search{gap:0;margin:0;padding:6px 8px}
  .hairstyle-catalog-filter-panel .catalog-search span{margin:0 0 4px;font-size:12px;line-height:1.45}
  .hairstyle-catalog-filter-panel .catalog-search input{height:44px;min-height:44px;padding:0 11px;border-radius:2px;font-size:14px}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters fieldset{display:block;gap:0;margin:0;padding:5px 8px 6px}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters legend{display:block;margin:0 0 4px;font-size:12px;line-height:1.45}
  .hairstyle-catalog-filter-panel .catalog-filter-row{display:flex;flex-wrap:nowrap;gap:6px;margin:0 -8px;padding:0 8px 2px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  .hairstyle-catalog-filter-panel .catalog-filter-row::-webkit-scrollbar{display:none}
  .hairstyle-catalog-filter-panel .catalog-filter-row button{flex:0 0 auto;min-width:44px;min-height:44px;padding:0 11px;border-radius:2px;font-size:12px;line-height:1.4;white-space:nowrap}
  .hairstyle-catalog-filter-panel .catalog-filter-reset{min-height:44px;margin:3px 8px 5px;padding:0 4px;border-radius:0;font-size:12px;line-height:1.45}
}

/* Final 767px phone override: in-app browsers often report a wider CSS
   viewport than 600px even on a phone. */
@media(max-width:767px){
  .mm-flow-header{height:56px;padding-inline:12px}
  .mm-flow{width:calc(100% - 20px);padding:12px 0 56px}
  .mm-flow-card{padding:16px 12px;box-shadow:none}
  .mm-flow-title{font-size:26px;line-height:1.35}
  .mm-flow-lead{margin:7px 0 12px;font-size:10.5px;line-height:1.55}
  .mm-choice-block{margin-top:16px}.mm-choice-block h2{margin-bottom:8px;font-size:16px}
  .mm-free-preview{margin:12px 0 10px;padding:11px 12px}
  .mm-auth{grid-template-columns:1fr;min-height:calc(100dvh - 66px)}
  .mm-auth-visual{min-height:148px}
  .mm-auth-visual-content{padding:14px 16px}
  .mm-auth-visual-content>div>p,.mm-auth-visual-content>small{display:none}
  .mm-auth-visual h1{font-size:23px;line-height:1.32}
  .mm-auth-panel{padding:17px 14px 28px;align-items:start}
  .mm-auth-card h2{font-size:25px;line-height:1.35}.mm-auth-card .lead{margin:7px 0 13px;line-height:1.55}
  .mm-auth-form{gap:9px}.mm-auth-form input{height:48px}.mm-auth-form button{height:50px}
  .hairstyle-status-page .hairstyle-status-main{width:calc(100% - 24px);padding:12px 0 56px}
  .hairstyle-status-page .hairstyle-status-hero{padding:0 0 11px}
  .hairstyle-status-page .hairstyle-status-hero h1{font-size:25px;line-height:1.3}
  .hairstyle-status-page .hairstyle-status-hero>p:not(.mm-kicker){margin-top:7px;font-size:10.5px;line-height:1.55}
  .hairstyle-status-page .hairstyle-public-status{margin-top:6px;padding:8px 10px}
  .hairstyle-status-page .hairstyle-public-status h2{font-size:18px;line-height:1.35}
  .hairstyle-status-page .hairstyle-public-status>p{margin-top:3px;font-size:10px;line-height:1.5}
  .hairstyle-status-page .simulation-panel{margin:3px 0 28px;padding:11px 10px;gap:8px}
  .hairstyle-catalog-page .catalog-choice{margin-bottom:10px;padding:8px 0 11px}
  .hairstyle-catalog-page .catalog-choice h1{font-size:29px;line-height:1.3}
  .catalog-face-quicklink{min-height:54px;margin-top:10px;padding:9px 11px}.catalog-face-quicklink strong{font-size:17px}
  .hairstyle-catalog-filter-panel{margin-bottom:10px}.hairstyle-catalog-filter-panel>summary{min-height:44px}
  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 4px}
  .hairstyle-catalog-page .public-catalog-card>div{padding:5px 4px}
  .hairstyle-catalog-page .public-catalog-card strong{min-height:2.7em;font-size:10px;line-height:1.35}
  .hairstyle-catalog-page .public-catalog-card small,.hairstyle-catalog-page .public-catalog-faces{display:none}
  .mm-page .public-catalog-select{min-height:44px;padding:0 2px;font-size:0;line-height:1}.mm-page .public-catalog-select::after{content:"詳細";font-size:10px;letter-spacing:.08em}
  .mm-my-results{width:calc(100% - 24px);padding:18px 0 56px}
  .mm-my-results-head h1{font-size:28px;line-height:1.32}.mm-my-results-head>p:not(.mm-kicker){margin-top:7px;font-size:10.5px;line-height:1.55}
  .mm-my-results>.mm-status{margin-top:9px;font-size:10px}.mm-my-results-grid{margin-top:12px}
  .mm-my-result-card{padding:16px 13px}.mm-my-result-card h2{font-size:22px}.mm-my-result-copy{margin:8px 0 13px;font-size:11px;line-height:1.55}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters{gap:0;margin:0;overflow:hidden}
  .hairstyle-catalog-filter-panel .catalog-search{gap:0;margin:0;padding:6px 8px}.hairstyle-catalog-filter-panel .catalog-search input{height:44px;min-height:44px}
  .hairstyle-catalog-filter-panel .hairstyle-catalog-filters fieldset{display:block;margin:0;padding:5px 8px 6px}
  .hairstyle-catalog-filter-panel .catalog-filter-row{display:flex;flex-wrap:nowrap;gap:6px;margin:0 -8px;padding:0 8px 2px;overflow-x:auto}
  .hairstyle-catalog-filter-panel .catalog-filter-row button{flex:0 0 auto;min-width:44px;min-height:44px}
}

/* FINAL revenue-flow mobile guard. */
@media(max-width:767px){
  .mm-kicker{font-size:12px;line-height:1.45}
  .mm-flow-lead,.hairstyle-status-page .hairstyle-status-hero>p:not(.mm-kicker),.hairstyle-status-page .hairstyle-public-status>p,.mm-my-results-head>p:not(.mm-kicker),.mm-my-results>.mm-status,.mm-my-result-copy{font-size:14px;line-height:1.7}
  .hairstyle-catalog-page .public-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 7px}
  .hairstyle-catalog-page .public-catalog-card{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}
  .hairstyle-catalog-page .public-catalog-card>div{padding:9px 8px 8px}
  .hairstyle-catalog-page .public-catalog-card small{display:block;font-size:12px;line-height:1.45}
  .hairstyle-catalog-page .public-catalog-card strong{display:block;min-height:2.8em;overflow:visible;font-size:14px;line-height:1.4;-webkit-line-clamp:unset}
  .hairstyle-catalog-page .public-catalog-faces{display:block;font-size:12px;line-height:1.55}
  .mm-page .public-catalog-select{min-height:48px;padding:7px 5px;font-size:12px;line-height:1.35;white-space:normal}
  .mm-page .public-catalog-select::after{content:none}
}
@media(max-width:340px){.hairstyle-catalog-page .public-catalog-grid{grid-template-columns:1fr}}
