/* Isolated review of the hero only. Existing homepage stays unchanged. */
.portrait-preview { background:#fff; color:#151715; font-family:Inter,"Noto Sans JP",sans-serif; }
.portrait-preview .poster-header { background:#fff; border-color:#dadcd6; }
.portrait-hero { max-width:1600px; margin:0 auto; padding:48px 4% 32px; }
.portrait-hero-intro { position:relative; min-height:250px; margin-bottom:38px; }
.portrait-company { font:400 19px/1.4 Inter,sans-serif; letter-spacing:.14em; margin:0 0 24px; }
.portrait-preview #portrait-title { font:300 clamp(42px,4.2vw,72px)/1.08 Inter,sans-serif; letter-spacing:.07em; margin:0; }
#portrait-title span { display:block; }
.portrait-ja { position:absolute; right:0; bottom:5px; margin:0; font:400 17px/1.8 "Noto Sans JP",sans-serif; letter-spacing:.14em; }
.portrait-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.portrait-card { margin:0; min-width:0; }
.portrait-crop { position:relative; overflow:hidden; aspect-ratio:410/512; background:#f2f3ef; }
.portrait-crop img { position:absolute; display:block; height:auto; max-width:none; }
.album-smile img { width:202%; left:-.5%; top:-101%; }
.master-otoha img { width:219.5122%; left:-114.6341%; top:-7.03125%; }
.master-ari img { width:219.5122%; left:-4.87805%; top:-126.171875%; }
.portrait-card figcaption { padding-top:12px; font:400 10px/1.4 Inter,sans-serif; letter-spacing:.18em; }
.portrait-caption { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:30px; }
.portrait-ip-label { margin:0 0 10px; font:500 10px/1.5 Inter,sans-serif; letter-spacing:.12em; }
.portrait-ip-ja { margin:0; font:400 12px/1.9 "Noto Sans JP",sans-serif; color:#50584f; }
.portrait-sorwa-link { display:inline-flex; gap:28px; align-items:center; padding:13px 0; border-bottom:1px solid #859080; font:400 12px/1.5 "Noto Sans JP",sans-serif; color:inherit; text-decoration:none; white-space:nowrap; }
.portrait-sorwa-link:hover { color:#456147; }
.portrait-about-strip { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 4%; border-top:1px solid #dadcd6; border-bottom:1px solid #dadcd6; }
.portrait-about-strip > a { padding:8px 0; font:400 12px/1.5 Inter,sans-serif; letter-spacing:.08em; }
.portrait-about-strip > div { display:flex; flex-wrap:wrap; gap:24px; font:400 9px/1.6 Inter,sans-serif; letter-spacing:.08em; }
.portrait-preview a:focus-visible { outline:2px solid #263d33; outline-offset:5px; }
@media(min-width:1100px) { .portrait-hero { display:grid; grid-template-columns:.72fr 2fr; gap:28px 44px; align-items:center; padding-top:68px; padding-bottom:38px; } .portrait-hero-intro { margin:0; min-height:0; } .portrait-company { font-size:16px; margin-bottom:32px; } .portrait-ja { position:static; font-size:14px; margin-top:24px; } .portrait-gallery { gap:20px; } .portrait-caption { grid-column:2; margin-top:0; } }
@media(max-width:700px) { .portrait-hero { padding:32px 6% 28px; } .portrait-hero-intro { min-height:0; margin-bottom:26px; } .portrait-company { font-size:13px; margin-bottom:19px; } .portrait-preview #portrait-title { font-size:clamp(36px,10.8vw,58px); line-height:1.08; } .portrait-ja { position:static; margin-top:15px; font-size:11px; letter-spacing:.13em; } .portrait-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; } .portrait-card figcaption { padding-top:7px; font-size:8px; } .portrait-caption { display:block; margin-top:24px; } .portrait-ip-label { font-size:9px; } .portrait-ip-ja { font-size:11px; } .portrait-sorwa-link { font-size:11px; margin-top:9px; } .portrait-about-strip { align-items:flex-start; flex-direction:column; padding:19px 6%; gap:14px; } .portrait-about-strip > div { gap:6px 14px; font-size:8px; } }
