:root{--smp-ink:#183028;--smp-green:#266b52;--smp-gold:#b98a32;--smp-line:#e9e3d7;--smp-pearl:#fbfaf6}
.smp{color:var(--smp-ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;background:#fff}
.smp *{box-sizing:border-box}
.smp a{text-decoration:none}
.smp-shell{width:min(1120px,calc(100% - 36px));margin:auto}
.smp-hero{padding:74px 0;background:radial-gradient(circle at 82% 15%,#f5e7bd 0,transparent 31%),linear-gradient(135deg,#f8fbf8,#f7f3e9)}
.smp-profile{display:grid;grid-template-columns:230px 1fr;align-items:center;gap:54px}
.smp-avatar{width:230px;height:230px;border-radius:50%;object-fit:cover;background:#e9f1ec;border:8px solid rgba(255,255,255,.8);box-shadow:0 20px 55px rgba(35,74,59,.17)}
.smp-intro>span,.smp-heading>span{color:var(--smp-gold);font-size:11px;font-weight:900;letter-spacing:.2em}
.smp-intro h1{margin:8px 0 12px;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(36px,5vw,62px)}
.smp-intro p{max-width:650px;margin:0 0 14px;color:#566b62;font-size:17px;line-height:1.9}
.smp-intro small{font-weight:800;color:#6b7d75}
.smp-stats{position:relative;margin-top:-28px}
.smp-stats .smp-shell{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 16px 40px rgba(33,54,45,.12)}
.smp-stats .smp-shell>div{text-align:center;padding:24px;border-right:1px solid var(--smp-line)}
.smp-stats .smp-shell>div:last-child{border:0}
.smp-stats span,.smp-stats strong,.smp-stats small{display:block}
.smp-stats span{font-size:22px}
.smp-stats strong{margin:5px 0;font-size:27px}
.smp-stats small{color:#697970}
.smp-section{padding:74px 0}
.smp-gallery-section{background:var(--smp-pearl)}
.smp-heading{margin-bottom:28px}
.smp-heading h2{margin:5px 0;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:32px}
.smp-heading p{margin:0;color:#697970}
.smp-badges{display:flex;flex-wrap:wrap;gap:14px}
.smp-badges>div{display:flex;align-items:center;gap:12px;padding:16px 20px;border:1px solid #eadfca;border-radius:999px;background:#fff8e9}
.smp-badges span{font-size:25px}
.smp-badges strong{font-size:14px}
.smp-rank{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}
.smp-rank p{margin:0;padding:22px;border-radius:18px;background:#f2f7f4}
.smp-rank small,.smp-rank strong{display:block}
.smp-rank small{color:#718078}
.smp-rank strong{margin-top:5px;font-size:24px}
.smp-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.smp-gallery a{overflow:hidden;border-radius:18px;background:#fff;color:var(--smp-ink);box-shadow:0 8px 25px rgba(34,48,40,.08)}
.smp-gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#eee}
.smp-gallery a div{padding:15px}
.smp-gallery strong,.smp-gallery small{display:block}
.smp-gallery small{margin-top:6px;color:#77847d}
.smp-empty{padding:38px;border-radius:18px;background:#f7f5ef;color:#68766f;text-align:center}
.smp-gallery-section .smp-empty{background:#fff}
@media(max-width:700px){.smp-hero{padding:44px 0 58px}
.smp-profile{grid-template-columns:1fr;text-align:center;gap:22px}
.smp-avatar{width:150px;height:150px;margin:auto}
.smp-intro h1{font-size:36px}
.smp-intro p{font-size:15px}
.smp-stats .smp-shell{grid-template-columns:1fr 1fr}
.smp-stats .smp-shell>div{padding:18px;border-bottom:1px solid var(--smp-line)}
.smp-section{padding:54px 0}
.smp-heading h2{font-size:27px}
.smp-rank{grid-template-columns:1fr}
.smp-gallery{grid-template-columns:1fr 1fr;gap:11px}
.smp-gallery a div{padding:11px}
.smp-gallery strong{font-size:13px}
}
.smp-portals-section{background:linear-gradient(180deg,#f7faf8,#fff)}
.smp-portals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.smp-portals>a{overflow:hidden;border-radius:18px;background:#fff;color:var(--smp-ink);box-shadow:0 10px 28px rgba(31,55,45,.09);transition:transform .25s}
.smp-portals>a:hover{transform:translateY(-3px)}
.smp-portals img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#eee}
.smp-portals a div{padding:15px}
.smp-portals small,.smp-portals strong,.smp-portals span{display:block}
.smp-portals small{color:var(--smp-gold);font-size:10px;font-weight:900;letter-spacing:.08em}
.smp-portals strong{min-height:46px;margin-top:5px;font-size:16px;line-height:1.45}
.smp-portals span{margin-top:9px;color:var(--smp-green);font-size:12px;font-weight:900}
.smp-show-all{display:block;min-height:52px;margin:26px auto 0;padding:0 25px;border:1px solid #cfe0d7;border-radius:999px;background:#fff;color:var(--smp-green);font-size:15px;font-weight:900;cursor:pointer}
.smp-show-all:hover{background:#edf6f1}
@media(max-width:900px){.smp-portals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.smp-portals{display:grid;grid-template-columns:1fr 1fr;gap:11px}.smp-portals a div{padding:11px}.smp-portals strong{min-height:0;font-size:13px}.smp-portals span{font-size:11px}.smp-show-all{width:100%}}

/* Phase2.9 登録済みポータル写真を優先表示 */
.smp-portals .smp-portal-image{display:block;position:relative;margin:0;color:inherit;font-size:inherit;font-weight:inherit;overflow:hidden}
.smp-portals .smp-portal-image img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.smp-portals .smp-portal-image em{position:absolute;right:8px;bottom:8px;padding:5px 8px;border-radius:999px;background:rgba(22,48,40,.82);color:#fff;font-size:10px;font-style:normal;font-weight:900;letter-spacing:.04em}

/* Phase3.0 公開プロフィール・フォロー */
.smp-alert{position:relative;z-index:3;width:min(1120px,calc(100% - 36px));margin:14px auto -54px;padding:15px 20px;border:1px solid #cde3d8;border-radius:14px;background:#f0f8f4;color:#245b47;font-weight:900;box-shadow:0 8px 24px rgba(33,54,45,.08)}
.smp-follow-counts{display:flex;flex-wrap:wrap;gap:18px;margin-top:15px;color:#60756b;font-size:14px}
.smp-follow-counts span{display:inline-flex;align-items:baseline;gap:5px}
.smp-follow-counts b{color:#183f32;font-size:18px}
.smp-profile-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}
.smp-profile-actions form{margin:0}
.smp-follow-button,.smp-message-button{display:inline-flex;min-width:180px;min-height:50px;align-items:center;justify-content:center;padding:0 22px;border:1px solid var(--smp-green);border-radius:999px;background:var(--smp-green);color:#fff;font-size:15px;font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(38,107,82,.18)}
.smp-follow-button.is-following{background:#fff;color:var(--smp-green);box-shadow:none}
.smp-message-button{min-width:150px;border-color:#d9c189;background:#fffaf0;color:#805d1e;box-shadow:none}
.smp-follow-button:hover,.smp-message-button:hover{transform:translateY(-1px)}
@media(max-width:700px){.smp-alert{margin-bottom:-28px}.smp-follow-counts,.smp-profile-actions{justify-content:center}.smp-profile-actions,.smp-profile-actions form,.smp-follow-button,.smp-message-button{width:100%}.smp-follow-button,.smp-message-button{min-height:56px;font-size:16px}}
