/* Size the composition from both viewport dimensions, keeping navigation in view. */
body.single-home{
 --home-unit:1;
 --cover-width:clamp(210px,min(22.5vw,calc(324px * var(--home-unit))),340px);
 --mascot-scale:clamp(.32,calc(.952 * var(--home-unit)),.952);
 --mascot-width:calc(225px * var(--mascot-scale));
 --mascot-height:calc(230px * var(--mascot-scale));
 --caption-height:68px;--caption-gap:8px;
 --deck-height:calc(var(--cover-width)/1.5 + var(--caption-height) + var(--caption-gap) + 60px);
}
.single-home .page-content{min-height:0}
html body.single-home #home.hero{
 min-height:var(--home-available,calc(100svh - 140px));
 height:var(--home-available,auto);max-height:none;
 padding:clamp(4px,calc(14px * var(--home-unit)),18px) 0;
 gap:clamp(5px,calc(14px * var(--home-unit)),22px);
 justify-content:center;
}
.single-home .scene-copy{flex:none}
.single-home .bloom-stage{gap:clamp(5px,calc(18px * var(--home-unit)),28px)}
.single-home .bloom-title .intro-name{
 font-size:clamp(26px,min(5.2vw,calc(74.88px * var(--home-unit))),84px);
 line-height:1.06;margin-bottom:clamp(4px,calc(10px * var(--home-unit)),12px);
 gap:clamp(8px,calc(16px * var(--home-unit)),18px);
}
.single-home .bloom-title .intro-slogan{
 font-size:clamp(38px,min(8vw,calc(115.2px * var(--home-unit))),128px);line-height:1.04;
}
.single-home .name-avatar{width:clamp(30px,calc(58px * var(--home-unit)),64px);height:clamp(30px,calc(58px * var(--home-unit)),64px)}
.single-home .identity{gap:5px}
html body.single-home #home .identity .robot-companion{transform:none!important}
.single-home .portfolio-stage{top:0;margin-top:0!important}
.single-home .film-viewport{min-height:calc(var(--cover-width)/1.5 + var(--caption-height) + var(--caption-gap) + 8px)}
.single-home .film-card .caption-name{font-size:clamp(17px,calc(20px * var(--home-unit)),20px)}
html[lang=en] body.single-home .film-card .caption-name{font-size:clamp(17px,calc(20px * var(--home-unit)),20px)}
.single-home .film-card .caption-description{font-size:clamp(12px,calc(13px * var(--home-unit)),13px)}
.single-home .film-card[data-active=true] .caption-description{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:clip}
.single-home .card-carousel-controls{height:48px;min-height:48px;margin-top:4px}
.single-home .horizontal-footer{top:5px}
/* Extremely short landscape windows retain readable cards and a docked rail. */
html body.single-home.home-scroll-layout #home.hero{height:auto;min-height:var(--home-available);padding-bottom:76px}
.single-home.home-scroll-layout .portfolio-stage{perspective:none}
.single-home.home-scroll-layout .card-carousel-controls{
 position:fixed;z-index:100;bottom:8px;left:50%;transform:translateX(-50%);
 width:min(470px,calc(100vw - 32px));padding:3px 14px;border:1px solid #cbd4db;
 border-radius:28px;background:var(--paper);box-shadow:0 4px 18px #283e5015;
}
@media(max-height:820px){.single-home .messenger-hint{display:none}}
@media(max-width:850px){
 body.single-home{
  --cover-width:clamp(210px,min(72vw,calc(250px * var(--home-unit))),310px);
  --mascot-scale:clamp(.32,calc(.748 * var(--home-unit)),.748);
 }
 html body.single-home #home.hero{gap:clamp(5px,calc(15px * var(--home-unit)),24px);padding-block:clamp(4px,calc(12px * var(--home-unit)),18px)}
 .single-home .bloom-stage{gap:clamp(5px,calc(18px * var(--home-unit)),30px)}
 .single-home .bloom-title .intro-name{font-size:clamp(21px,min(6vw,calc(27px * var(--home-unit))),48px);gap:7px}
 .single-home .bloom-title .intro-slogan{font-size:clamp(30px,min(8.7vw,calc(42px * var(--home-unit))),66px)}
 .single-home .name-avatar{width:clamp(28px,calc(34px * var(--home-unit)),40px);height:clamp(28px,calc(34px * var(--home-unit)),40px)}
 .single-home .horizontal-footer{top:2px}
}
@media(max-width:480px) and (max-height:720px){
 html body.single-home #home.hero{padding:28px 0 4px;gap:3px}
 .single-home .bloom-stage{gap:3px}
}
@media(max-width:480px) and (max-height:620px){
 body.single-home{--cover-width:clamp(190px,min(72vw,calc(250px * var(--home-unit))),310px);--deck-height:calc(var(--cover-width)/1.5 + var(--caption-height) + var(--caption-gap) + 56px)}
 .single-home .film-viewport{min-height:calc(var(--cover-width)/1.5 + var(--caption-height) + var(--caption-gap) + 4px)}
}
/* Touch devices keep the original foil optics without continuously repainting textures. */
@media(hover:none),(pointer:coarse){.single-home .film-card .card__shine{animation-play-state:paused!important}}

.single-home .messenger-hint{width:min(460px,calc(100vw - 48px));white-space:normal;text-align:center;line-height:1.5;text-wrap:balance}

/* Keep the English service name whole; the status shares the description row. */
@media(max-width:850px),(max-height:820px){
html[lang=en] .single-home .card-caption:has(.card-status){display:grid;grid-template-columns:fit-content(84px) minmax(0,1fr);grid-template-rows:29px auto;gap:2px 6px;align-items:start;justify-content:center}
html[lang=en] .single-home .card-caption:has(.card-status) .caption-heading{display:contents}
html[lang=en] .single-home .card-caption:has(.card-status) .caption-name{grid-column:1/-1;grid-row:1;justify-self:center;max-width:100%}
html[lang=en] .single-home .card-caption:has(.card-status) .card-status{grid-column:1;grid-row:2;align-self:center;justify-self:start;width:max-content;max-width:100%}
html[lang=en] .single-home .card-caption:has(.card-status) .caption-description{grid-column:2;grid-row:2;margin:0!important;max-width:100%!important;text-align:left}
}
