/* ===========================================================
   Beauly Design System  (マスタープラン §3 準拠)
   透明感 / 淡いピンク+ゴールド / Playfair Display + Noto Sans JP
   コスメカード = Apple Wallet風(薄い影) / アイコン = Instagram風
   =========================================================== */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Noto+Sans+JP:wght@300;400;500;700&display=swap');

:root{
  --bg:#FFFDFB; --paper:#FFFFFF;
  --pink:#F6C9D6; --pink-soft:#FCE7EE; --pink-deep:#E07FA3;
  --gold:#C7A45E; --gold-soft:#E3CE9E;
  --ink:#342E33; --sub:#9A8C86; --line:rgba(52,46,51,.08);
  --serif:'Playfair Display',serif;
  --sans:'Noto Sans JP',-apple-system,system-ui,sans-serif;
  --shadow-card:0 1px 2px rgba(52,46,51,.04), 0 6px 18px rgba(52,46,51,.06); /* Apple Wallet風=かなり薄い */
  --radius:22px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}
body{background:#EAE6E1;font-family:var(--sans);color:var(--ink);
  display:flex;flex-wrap:wrap;gap:32px;justify-content:center;padding:40px 16px}

/* ---- 端末フレーム ---- */
.phone{width:390px;height:844px;background:var(--bg);border-radius:46px;
  box-shadow:0 30px 80px rgba(52,46,51,.22), 0 0 0 11px #1c1a1b, 0 0 0 12px #2c2a2b;
  overflow:hidden;position:relative}
.screen{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
.screen::-webkit-scrollbar{display:none}
.statusbar{position:sticky;top:0;z-index:50;height:50px;display:flex;align-items:flex-end;
  justify-content:space-between;padding:0 26px 6px;font-size:14px;font-weight:600;
  color:#fff;mix-blend-mode:difference;pointer-events:none}
.notch{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:120px;height:30px;
  background:#1c1a1b;border-radius:18px;z-index:60}

/* ---- 雑誌表紙ヒーロー ---- */
.cover{position:relative;height:560px;background-size:cover;background-position:center 18%;
  color:#fff;display:flex;flex-direction:column}
.cover::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(40,30,36,.28)0%,rgba(40,30,36,0)26%,rgba(40,30,36,0)52%,rgba(40,30,36,.62)100%)}
.cover>*{position:relative;z-index:2}
.cover-top{display:flex;justify-content:space-between;align-items:center;padding:6px 22px 0}
.issue{font-family:var(--serif);font-style:italic;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.92;text-shadow:0 1px 6px rgba(0,0,0,.3)}
.masthead{font-family:var(--serif);font-weight:700;font-size:50px;line-height:.9;text-align:center;
  margin:2px 0 0;letter-spacing:.01em;text-shadow:0 2px 18px rgba(0,0,0,.25)}
.masthead .dot{color:var(--gold-soft)}
.cover-tag{text-align:center;font-family:var(--serif);font-style:italic;font-size:15px;
  letter-spacing:.04em;margin-top:2px;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.coverlines{margin-top:auto;padding:0 22px 22px}
.cl-main{font-size:27px;font-weight:700;line-height:1.32;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.cl-main em{font-family:var(--serif);font-style:italic;font-weight:600;color:var(--gold-soft)}
.cl-sub{margin-top:12px;display:flex;flex-direction:column;gap:7px}
.cl-sub span{font-size:13px;font-weight:400;opacity:.96;display:flex;align-items:center;gap:8px;
  text-shadow:0 1px 8px rgba(0,0,0,.45)}
.cl-sub span::before{content:"";width:16px;height:1.5px;background:var(--gold-soft);flex:none}
.cover-credit{position:absolute;right:18px;bottom:120px;writing-mode:vertical-rl;font-size:10px;
  letter-spacing:.18em;opacity:.8;font-family:var(--serif);font-style:italic}

/* ---- セクション ---- */
.sec{padding:26px 22px 4px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.sec-en{font-family:var(--serif);font-style:italic;font-size:21px;font-weight:600;color:var(--ink)}
.sec-en .num{color:var(--gold);font-size:15px;margin-right:7px;letter-spacing:.05em}
.sec-jp{font-size:11px;color:var(--sub);font-weight:500}
.more{font-size:11px;color:var(--gold);font-weight:600;letter-spacing:.04em}

/* ---- キャストカード(Apple Wallet風・横スクロール) ---- */
.rail{display:flex;gap:14px;overflow-x:auto;padding:2px 22px 8px;margin:0 -22px;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.castcard{flex:none;width:158px;background:var(--paper);border-radius:var(--radius);
  box-shadow:var(--shadow-card);overflow:hidden;border:1px solid var(--line)}
.castcard .ph{height:200px;background-size:cover;background-position:center 20%;position:relative}
.castcard .heart{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.82);backdrop-filter:blur(6px);display:grid;place-items:center}
.castcard .area{position:absolute;top:10px;left:10px;font-size:10px;font-weight:600;color:#fff;
  background:rgba(52,46,51,.32);backdrop-filter:blur(4px);padding:3px 9px;border-radius:20px;letter-spacing:.04em}
.castcard .meta{padding:11px 13px 14px}
.castcard .nm{font-size:15px;font-weight:700}
.castcard .role{font-size:10.5px;color:var(--sub);margin-top:2px}
.castcard .chips{display:flex;gap:5px;margin-top:9px}
.chip{font-size:9.5px;color:var(--pink-deep);background:var(--pink-soft);border-radius:20px;
  padding:3px 8px;font-weight:600}
.chip.g{color:var(--gold);background:#F7F0E2}

/* ---- ランキング ---- */
.rank{display:flex;flex-direction:column;gap:2px}
.rank-row{display:flex;align-items:center;gap:13px;padding:11px 4px;border-bottom:1px solid var(--line)}
.rank-no{font-family:var(--serif);font-style:italic;font-weight:700;font-size:22px;width:30px;text-align:center;color:var(--gold)}
.rank-no.top{color:var(--pink-deep)}
.rank-thumb{width:50px;height:50px;border-radius:14px;background:var(--pink-soft);flex:none;
  display:grid;place-items:center;font-size:20px;box-shadow:var(--shadow-card);overflow:hidden}
.rank-thumb img{width:100%;height:100%;object-fit:contain;padding:5px;border-radius:14px;background:#fff}
.rank-info{flex:1;min-width:0}
.rank-brand{font-size:10px;color:var(--gold);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.rank-name{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-save{font-size:10.5px;color:var(--sub);margin-top:2px}
.rank-save b{color:var(--pink-deep)}

/* ---- CTA(診断/マイブック) ---- */
.cta{border-radius:26px;padding:24px 22px;color:#fff;position:relative;overflow:hidden;
  box-shadow:var(--shadow-card)}
.cta.diag{background:linear-gradient(135deg,#F6C9D6 0%,#E07FA3 60%,#C98AA0 100%)}
.cta.book{background:linear-gradient(135deg,#FBEFE0 0%,#E3CE9E 55%,#C7A45E 100%);color:#5a4a2f}
.cta .k{font-family:var(--serif);font-style:italic;font-size:13px;opacity:.9}
.cta .t{font-size:21px;font-weight:700;line-height:1.4;margin-top:4px}
.cta .d{font-size:11.5px;margin-top:8px;opacity:.92;line-height:1.6}
.cta .btn{display:inline-flex;align-items:center;gap:6px;margin-top:15px;background:rgba(255,255,255,.9);
  color:var(--ink);font-size:12px;font-weight:700;padding:9px 17px;border-radius:30px}
.cta .deco{position:absolute;font-family:var(--serif);font-style:italic;font-size:120px;opacity:.13;
  right:-10px;bottom:-46px;line-height:1}

/* 新体験の宣言(セクション4) */
.manifesto{margin:26px 22px 4px;text-align:center;padding:26px 18px;border:1px solid var(--gold-soft);
  border-radius:24px;background:linear-gradient(180deg,#fff,#FFF8F1)}
.manifesto .q{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ink);line-height:1.5}
.manifesto .a{font-size:12px;color:var(--sub);margin-top:10px;line-height:1.8}
.manifesto .a b{color:var(--pink-deep)}

/* ---- タブバー(Instagram風) ---- */
.tabbar{position:sticky;bottom:0;z-index:50;height:calc(78px + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-around;
  align-items:flex-start;padding:11px 0 env(safe-area-inset-bottom,0px);background:rgba(255,253,251,.86);backdrop-filter:blur(18px);
  border-top:1px solid var(--line)}
.tab{min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9.5px;color:var(--sub);font-weight:500}
.tab.on{color:var(--pink-deep)}
.tab svg{width:25px;height:25px;stroke-width:1.7}
.tab .plus{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#F6C9D6,#E07FA3);
  display:grid;place-items:center;margin-top:-7px;box-shadow:0 6px 16px rgba(224,127,163,.4)}
.tab .plus svg{stroke:#fff;width:22px;height:22px}
.spacer{height:14px}
.foot{text-align:center;font-family:var(--serif);font-style:italic;font-size:11px;color:var(--sub);padding:18px 0 26px}

/* キャプション(プロト説明・端末外) */
.cap{width:390px;text-align:center;color:#6b625c;font-family:var(--sans);font-size:12.5px;line-height:1.7}
.cap b{color:#342e33}

/* ===========================================================
   ユーザー個人ページ（マイビューティーブック）追加スタイル
   =========================================================== */
.u-head{position:relative;padding:calc(14px + env(safe-area-inset-top,0px)) 22px 6px;text-align:center}
.u-cover{position:absolute;inset:0 0 auto;height:calc(120px + env(safe-area-inset-top,0px));
  background:linear-gradient(135deg,#FCE7EE,#F7F0E2 60%,#FBEFE0);z-index:0}
.u-ava{position:relative;z-index:2;width:96px;height:96px;border-radius:50%;margin:46px auto 0;
  background-size:cover;background-position:center;border:4px solid #fff;box-shadow:var(--shadow-card)}
.u-badge{position:relative;z-index:2;display:inline-flex;align-items:center;gap:6px;margin-top:11px;
  font-size:10.5px;font-weight:700;color:var(--gold);background:#F7F0E2;border:1px solid var(--gold-soft);
  padding:5px 12px;border-radius:30px}
.u-name{font-size:20px;font-weight:700;margin-top:9px}
.u-name .en{font-family:var(--serif);font-style:italic;color:var(--sub);font-size:14px;font-weight:500;margin-left:6px}
.u-bio{font-size:11.5px;color:var(--sub);margin-top:5px;line-height:1.6}
.u-sns{display:flex;justify-content:center;gap:16px;margin:13px 0 4px}
.u-sns a{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-card)}
.u-sns svg{width:20px;height:20px}
.u-stats{display:flex;justify-content:center;gap:26px;margin:12px 0 2px}
.u-stat b{font-size:16px;font-weight:700}.u-stat span{font-size:10px;color:var(--sub);display:block}
.u-actions{display:flex;gap:10px;padding:8px 22px 2px}
.u-actions .b{flex:1;text-align:center;font-size:12.5px;font-weight:700;padding:11px;border-radius:30px}
.u-actions .b.pink{background:linear-gradient(135deg,#F6C9D6,#E07FA3);color:#fff}
.u-actions .b.line{background:#fff;border:1px solid var(--line);color:var(--ink)}

/* 診断結果 */
.diag-card{margin:16px 22px 0;border-radius:24px;border:1px solid var(--line);background:#fff;
  box-shadow:var(--shadow-card);overflow:hidden}
.diag-card .top{padding:16px 18px 12px;background:linear-gradient(135deg,#FFF8F1,#FCE7EE)}
.diag-card .lab{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--gold)}
.diag-card .type{font-size:22px;font-weight:700;margin-top:2px}
.diag-card .type b{color:var(--pink-deep)}
.bars{padding:12px 18px 16px;display:flex;flex-direction:column;gap:9px}
.bar{display:flex;align-items:center;gap:10px;font-size:11px}
.bar .nm{width:64px;color:var(--sub);font-weight:500;flex:none}
.bar .track{flex:1;height:7px;background:#F1ECE8;border-radius:6px;overflow:hidden}
.bar .fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#F6C9D6,#E07FA3)}
.bar .fill.g{background:linear-gradient(90deg,#E3CE9E,#C7A45E)}
.bar .pc{width:34px;text-align:right;font-weight:700;color:var(--ink)}

/* 近いキャスト一致率 */
.match{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 0 8px}
.match::-webkit-scrollbar{display:none}
.match .m{text-align:center}
.match .mph{width:100%;height:158px;border-radius:18px;background-size:cover;background-position:center 20%;
  box-shadow:var(--shadow-card);position:relative}
.match .pc{position:absolute;left:8px;bottom:8px;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);
  border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700;color:var(--pink-deep)}
.match .mn{font-size:12px;font-weight:600;margin-top:7px}
.match .ms{font-size:9.5px;color:var(--sub);margin-top:1px}

/* セグメント */
.seg{display:flex;gap:6px;padding:14px 22px 4px}
.seg .s{flex:1;text-align:center;font-size:11.5px;font-weight:600;color:var(--sub);padding:9px;border-radius:14px}
.seg .s.on{background:var(--ink);color:#fff}

/* マイブック プレビュー（作成導線 or 完成） */
.book-prev{margin:10px 22px 0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-card);border:1px solid var(--line);position:relative}
.book-prev img{width:100%;display:block}
.book-prev .ov{position:absolute;inset:auto 0 0;padding:14px;background:linear-gradient(0deg,rgba(40,30,36,.6),transparent);color:#fff}
.book-prev .ov .t{font-family:var(--serif);font-style:italic;font-size:15px}
.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 22px 4px}
.estep{background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px;box-shadow:var(--shadow-card)}
.estep .i{width:34px;height:34px;border-radius:11px;background:var(--pink-soft);display:grid;place-items:center;font-size:17px}
.estep .t{font-size:12.5px;font-weight:700;margin-top:9px}
.estep .d{font-size:10px;color:var(--sub);margin-top:2px;line-height:1.5}
.estep .n{float:right;font-family:var(--serif);font-style:italic;color:var(--gold-soft);font-size:18px}

/* 美容レコード（施術・時系列） */
.rec{padding:6px 22px 4px}
.rec-row{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}
.rec-date{font-family:var(--serif);font-style:italic;font-size:12px;color:var(--gold);width:54px;flex:none;padding-top:2px}
.rec-cat{font-size:9.5px;font-weight:700;color:var(--pink-deep);background:var(--pink-soft);padding:2px 8px;border-radius:20px;align-self:flex-start}
.rec-body{flex:1}.rec-body .t{font-size:13px;font-weight:600}.rec-body .d{font-size:10.5px;color:var(--sub);margin-top:2px}
.rec-lock{font-size:10px;color:var(--sub)}
.share-btn{margin:16px 22px;display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--ink);color:#fff;font-size:13px;font-weight:700;padding:14px;border-radius:30px}
