/* Hoshi Showcase 0.3.0; typography inherits the active theme. */
.hoshi-showcase{--hs-ink:#102443;--hs-accent:#b94324;--hs-highlight:#ffab7f;--hs-surface:#f3f4f3;box-sizing:border-box;color:var(--hs-ink);font-family:inherit;line-height:1.6;max-width:1440px;margin-inline:auto;overflow-wrap:anywhere}
.hoshi-showcase *,.hoshi-showcase *::before,.hoshi-showcase *::after{box-sizing:inherit}
.hoshi-showcase ::selection{background:var(--hs-accent);color:#fff}
.hoshi-showcase a{color:var(--hs-accent);text-underline-offset:.2em}
.hoshi-showcase a:focus-visible{outline:3px solid var(--hs-accent);outline-offset:5px}
.hoshi-showcase p{margin:0 0 1rem;max-width:70ch}
.hoshi-showcase h1,.hoshi-showcase h2,.hoshi-showcase h3{font-family:inherit;color:var(--hs-ink);text-wrap:balance;font-weight:700;letter-spacing:-.035em}
.hoshi-showcase.hoshi-showcase--hero{position:relative;isolation:isolate;display:grid;align-items:center;min-height:620px;background:#102443;margin:0 auto;color:#fff;overflow:hidden}
.hoshi-showcase--hero::after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(9,25,48,.97) 0%,rgba(9,25,48,.92) 37%,rgba(9,25,48,.55) 70%,rgba(9,25,48,.18) 100%);pointer-events:none}
.hoshi-showcase__hero-copy{position:relative;z-index:1;width:100%;max-width:850px;padding:clamp(2rem,6vw,5.5rem)}
.hoshi-showcase .hoshi-showcase__eyebrow{display:flex;align-items:center;gap:.85rem;color:var(--hs-highlight);font-size:.8rem;font-weight:700;letter-spacing:.14em;line-height:1.5;text-transform:uppercase;margin:0 0 1.75rem}
.hoshi-showcase__eyebrow::before{content:"";width:2rem;height:2px;background:currentColor;flex:none}
.hoshi-showcase .hoshi-showcase__title{color:#fff;font-size:clamp(2.5rem,5.3vw,4.9rem);line-height:1.02;margin:0 0 1.6rem;max-width:15ch;letter-spacing:-.045em}
.hoshi-showcase .hoshi-showcase__intro{color:#e2e8f0;font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.65;max-width:43ch;margin-bottom:0}
.hoshi-showcase__hero-visual{position:absolute;inset:0;z-index:-1;min-width:0}
.hoshi-showcase .hoshi-showcase__hero-image{width:100%;height:100%;max-width:none;object-fit:cover;object-position:65% center;display:block}
.hoshi-showcase__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.25rem}
.hoshi-showcase .hoshi-showcase__button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:.85rem 1.45rem;background:var(--hs-accent);color:#fff;text-decoration:none;font-size:1rem;font-weight:700;line-height:1.5;border:1px solid var(--hs-accent);transition:background-color .18s ease-out,border-color .18s ease-out}
.hoshi-showcase .hoshi-showcase__button:hover{background:#92331b;border-color:#92331b;color:#fff}
.hoshi-showcase .hoshi-showcase__button--secondary{color:#fff;background:rgba(9,25,48,.3);border-color:#b9c3cf}
.hoshi-showcase .hoshi-showcase__button--secondary:hover{background:#fff;border-color:#fff;color:var(--hs-ink)}
.hoshi-showcase--hero a:focus-visible{outline-color:var(--hs-highlight)}
.hoshi-showcase.hoshi-showcase--catalogue{padding:clamp(1.5rem,5vw,4.5rem);background:#fff;margin:0 auto;scroll-margin-top:120px}
.hoshi-showcase .hoshi-showcase__section-title{font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.1;margin:0 0 2.25rem}
.hoshi-showcase__section-title::before{content:"";display:block;width:2.5rem;height:3px;background:var(--hs-accent);margin-bottom:1rem}
.hoshi-showcase__expertises{counter-reset:hs-expertise;list-style:none!important;padding:0!important;margin:0 0 clamp(3.5rem,7vw,6rem)!important;display:grid;gap:0 2rem;grid-template-columns:repeat(3,minmax(0,1fr))}
.hoshi-showcase__expertises li{counter-increment:hs-expertise;position:relative;padding:1.5rem 0 1.5rem 2.5rem;border-top:1px solid #d8dde2;margin:0!important}
.hoshi-showcase__expertises li::before{content:counter(hs-expertise,decimal-leading-zero);position:absolute;left:0;top:1.65rem;color:var(--hs-accent);font-size:.75rem;letter-spacing:.05em;font-weight:700}
.hoshi-showcase__expertises h3{font-size:1.15rem;line-height:1.3;margin:0 0 .55rem}
.hoshi-showcase__expertises p{color:#4a5869;font-size:.95rem}
.hoshi-showcase__filters{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 2rem}
.hoshi-showcase__filters a{display:inline-flex;align-items:center;min-height:44px;padding:.55rem 1rem;border:1px solid #c5cdd6;background:#fff;color:var(--hs-ink);font-size:.9rem;line-height:1.5;text-decoration:none}
.hoshi-showcase__filters a[aria-current=true]{background:var(--hs-ink);border-color:var(--hs-ink);color:#fff}
.hoshi-showcase__filters a:hover{border-color:var(--hs-accent)}
.hoshi-showcase__projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem 1.75rem}
.hoshi-showcase__project{min-width:0;padding:0 0 1.25rem;border:0;border-bottom:1px solid #d8dde2;background:transparent}
.hoshi-showcase__project-visual{display:block;overflow:hidden;margin-bottom:1.4rem;background:var(--hs-surface)}
.hoshi-showcase .hoshi-showcase__project-image{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .3s ease-out}
@media(hover:hover){.hoshi-showcase__project-visual:hover .hoshi-showcase__project-image{transform:scale(1.035)}}
.hoshi-showcase .hoshi-showcase__domains{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin:0 0 .65rem;color:var(--hs-accent)}
.hoshi-showcase__project h3{font-size:1.5rem;line-height:1.2;margin:0 0 .85rem}
.hoshi-showcase__project h3 a{color:var(--hs-ink);text-decoration:none}
.hoshi-showcase__project h3 a:hover{text-decoration:underline}
.hoshi-showcase__project>p:not(.hoshi-showcase__domains){color:#4a5869;font-size:.95rem}
.hoshi-showcase__project-link{display:inline-flex;align-items:center;min-height:44px;font-weight:700;font-size:.9rem;text-decoration:none;border-bottom:1px solid currentColor}
.hoshi-showcase__pagination{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:2.5rem;font-size:.95rem;font-variant-numeric:tabular-nums}
.hoshi-showcase__pagination a{display:inline-flex;align-items:center;min-height:44px}
.hoshi-showcase__empty{padding:1.5rem;background:var(--hs-surface)}
.hoshi-showcase__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hoshi-showcase--motion .hoshi-showcase__hero-copy{animation:hoshi-showcase-reveal .55s cubic-bezier(.16,1,.3,1) both}
@keyframes hoshi-showcase-reveal{from{opacity:.2;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1023px){.hoshi-showcase__projects,.hoshi-showcase__expertises{grid-template-columns:repeat(2,minmax(0,1fr))}.hoshi-showcase__hero-copy{max-width:740px}.hoshi-showcase--hero::after{background:linear-gradient(90deg,rgba(9,25,48,.95),rgba(9,25,48,.62))}}
@media(max-width:639px){.hoshi-showcase.hoshi-showcase--hero{min-height:640px;align-items:end}.hoshi-showcase__hero-copy{padding:2.5rem 1.5rem}.hoshi-showcase--hero::after{background:linear-gradient(0deg,rgba(9,25,48,.98) 0%,rgba(9,25,48,.9) 48%,rgba(9,25,48,.42) 100%)}.hoshi-showcase .hoshi-showcase__title{font-size:clamp(2.25rem,10vw,3.5rem)}.hoshi-showcase .hoshi-showcase__eyebrow{font-size:.7rem;letter-spacing:.1em}.hoshi-showcase__hero-image{object-position:70% center}.hoshi-showcase__projects,.hoshi-showcase__expertises{grid-template-columns:minmax(0,1fr)}.hoshi-showcase__actions{flex-direction:column;align-items:stretch;gap:.75rem}.hoshi-showcase__filters a{padding:.55rem .8rem}.hoshi-showcase.hoshi-showcase--catalogue{scroll-margin-top:90px}}
@media(prefers-reduced-motion:reduce){.hoshi-showcase--motion .hoshi-showcase__hero-copy{animation:none}.hoshi-showcase .hoshi-showcase__button,.hoshi-showcase .hoshi-showcase__project-image{transition:none}.hoshi-showcase__project-visual:hover .hoshi-showcase__project-image{transform:none}}
/* Optional mixed-media Hero. Legacy single-image settings retain their sizing. */
.hoshi-showcase.hoshi-showcase--carousel{min-height:clamp(620px,82svh,920px)}
.hoshi-showcase--carousel .hoshi-showcase__hero-copy{padding-bottom:7rem}
.hoshi-showcase__hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility 0s .7s;overflow:hidden}
.hoshi-showcase__hero-slide.is-active{opacity:1;visibility:visible;transition:opacity .7s ease,visibility 0s}
.hoshi-showcase__hero-slide .hoshi-showcase__hero-image{height:100%;width:100%;object-fit:cover}
.hoshi-showcase--carousel.hoshi-showcase--motion .hoshi-showcase__hero-slide.is-active>.hoshi-showcase__hero-image{animation:hoshi-media-pan 12s linear both}
.hoshi-showcase--carousel.is-paused .hoshi-showcase__hero-image{animation-play-state:paused}
.hoshi-showcase__hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s ease}
.hoshi-showcase__hero-slide.is-playing .hoshi-showcase__hero-video{opacity:1}
.hoshi-showcase__hero-controls{position:absolute;z-index:2;inset:auto clamp(1.5rem,5vw,5rem) 1.5rem;display:flex;gap:1rem;align-items:center;justify-content:space-between}
.hoshi-showcase__hero-controls[hidden]{display:none}
.hoshi-showcase__media-note{font-size:12px;line-height:1.5;color:#fff;text-shadow:0 1px 4px #000;max-width:32ch}
.hoshi-showcase__transport{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:5px;border:1px solid #ffffff55;border-radius:5px;background:#0b1829cc;color:#fff}
.hoshi-showcase__transport button{min-width:44px;min-height:44px;margin:0;padding:8px 12px;border:0;border-radius:2px;background:transparent;color:#fff;font:inherit;font-size:14px;line-height:1.2;cursor:pointer;letter-spacing:normal;text-transform:none}
.hoshi-showcase__transport button:hover{background:#ffffff22;color:#fff}
.hoshi-showcase__transport button:focus-visible{outline:3px solid #fff;outline-offset:2px}
.hoshi-showcase__transport [data-hs-prev],.hoshi-showcase__transport [data-hs-next]{font-size:27px}
.hoshi-showcase__slide-count{font-size:12px;min-width:3ch;text-align:center}
@keyframes hoshi-media-pan{from{transform:scale(1.015)}to{transform:scale(1.07)}}
@media(max-width:639px){.hoshi-showcase.hoshi-showcase--carousel{min-height:max(700px,88svh)}.hoshi-showcase--carousel .hoshi-showcase__hero-copy{padding-bottom:9.5rem}.hoshi-showcase__hero-controls{flex-wrap:wrap;gap:.6rem}.hoshi-showcase__media-note{max-width:100%;width:100%}.hoshi-showcase__transport{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.hoshi-showcase__hero-slide,.hoshi-showcase__hero-video{transition:none!important}.hoshi-showcase--carousel.hoshi-showcase--motion .hoshi-showcase__hero-slide.is-active>.hoshi-showcase__hero-image{animation:none!important}}
