summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsoryu-co <bot@soryu.co>2026-05-06 12:58:43 +0000
committersoryu-co <bot@soryu.co>2026-05-06 12:58:43 +0000
commit9948609a01e8d132a030b82694413d67aa6be822 (patch)
treeeec9112439b7c45319f06076a2916dff0cf07f91
parent30bfe2149fdead196c08a8cfaf5bb5415e6ee7c4 (diff)
downloadsoryu-9948609a01e8d132a030b82694413d67aa6be822.tar.gz
soryu-9948609a01e8d132a030b82694413d67aa6be822.zip
Center hero on homepage, image-left text-right on mission/makima
- Default homepage now uses single-column grid; the SORYU masthead is absolutely positioned in the upper-left of the cover frame, so the hero typewriter is genuinely centered on the page (verified taglineCenterX === pageCenter at 1280px). - Mission/MAKIMA on desktop (>=1025px) switch to a flex layout with the image absolutely positioned in a 360px left gutter and all body text (badge -> headline -> paragraphs) flowing on the right. - Mobile and tablet (<=1024px) keep the stacked layout; masthead returns to inline flow under the navbar. - MAKIMA badge uses flex `order: -1` so it appears above the headline visually, even though the JSX renders headline first.
-rw-r--r--frontend/src/styles/heisei.css96
1 files changed, 90 insertions, 6 deletions
diff --git a/frontend/src/styles/heisei.css b/frontend/src/styles/heisei.css
index 4017f83..2500ff8 100644
--- a/frontend/src/styles/heisei.css
+++ b/frontend/src/styles/heisei.css
@@ -186,29 +186,59 @@ body { background: var(--hz-night); color: var(--hz-ink); }
3. Cover layout — breathe (top padding accounts for header + navbar)
---------------------------------------------------------------- */
-.modern-landing-page.manga-style .taisho-cover .cover-content {
- grid-template-columns: 200px 1fr;
+/* Default homepage: single column so the hero is genuinely page-centered.
+ The masthead is overlaid in the top-left corner of the cover frame. */
+.modern-landing-page.manga-style .taisho-cover:not(.mission-mode) .cover-content {
+ grid-template-columns: 1fr;
grid-template-rows: 1fr; /* CTA is no longer in this grid */
- grid-template-areas: "masthead hero";
- gap: 40px;
+ grid-template-areas: "hero";
+ gap: 0;
+ position: relative; /* anchor for absolutely-positioned masthead */
/* wrapper is now top: 72px, so we only clear the 52px navbar + breathing */
padding: 84px 56px 56px;
}
-/* Mission / MAKIMA panels: hug the navbar — no big void above the headline */
+/* Hero spans the whole row in default mode */
+.modern-landing-page.manga-style .taisho-cover:not(.mission-mode) .hero {
+ grid-area: hero;
+}
+
+/* Masthead: float above the hero in the upper-left corner of the frame */
+.modern-landing-page.manga-style .taisho-cover:not(.mission-mode) .masthead {
+ position: absolute;
+ top: 84px; /* matches cover-content padding-top */
+ left: 56px; /* matches cover-content padding-left */
+ z-index: 5;
+ pointer-events: auto;
+}
+
+/* Mission / MAKIMA panels: keep the 2-col grid (masthead column + hero column)
+ so the SORYU branding column doesn't overlap the panel content. */
.modern-landing-page.manga-style .taisho-cover.mission-mode .cover-content {
+ grid-template-columns: 200px 1fr;
+ grid-template-rows: 1fr;
+ grid-template-areas: "masthead hero";
padding: 72px 56px 48px; /* 52 nav + 20 breathing */
gap: 32px;
}
@media (max-width: 1024px) {
- .modern-landing-page.manga-style .taisho-cover .cover-content {
+ /* Restore stacked layout on tablet/phone: masthead above hero, in flow */
+ .modern-landing-page.manga-style .taisho-cover:not(.mission-mode) .cover-content {
grid-template-columns: 1fr;
+ grid-template-rows: auto 1fr;
grid-template-areas: "masthead" "hero";
padding: 76px 24px 40px; /* 48 nav + 28 breathing */
gap: 28px;
}
+ .modern-landing-page.manga-style .taisho-cover:not(.mission-mode) .masthead {
+ position: static;
+ top: auto;
+ left: auto;
+ }
.modern-landing-page.manga-style .taisho-cover.mission-mode .cover-content {
+ grid-template-columns: 1fr;
+ grid-template-areas: "masthead" "hero";
padding: 64px 20px 28px; /* 48 nav + 16 breathing */
gap: 16px;
}
@@ -418,6 +448,60 @@ body { background: var(--hz-night); color: var(--hz-ink); }
display: block;
}
+/* ----- Desktop (≥1025px): image on the left, copy on the right ----- */
+@media (min-width: 1025px) {
+ .mission-screen {
+ /* Override pc98's grid; use flex-column for the right-column text flow.
+ Image is absolutely positioned in the reserved left gutter. */
+ display: flex !important;
+ flex-direction: column;
+ align-items: stretch;
+ gap: 0;
+ position: relative;
+ max-width: 980px;
+ padding-left: calc(360px + 32px) !important;
+ border-left: 0 !important;
+ min-height: clamp(220px, 44vh, 420px);
+ }
+ .mission-screen .mission-image {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 360px;
+ height: clamp(220px, 44vh, 420px);
+ object-fit: cover;
+ /* Pc98 sets `grid-area: hero` etc — clear leftover row hints */
+ grid-area: auto;
+ }
+ /* Right-column text: each block owns its own accent rule */
+ .mission-screen .mission-headline,
+ .mission-screen .mission-paragraph {
+ padding-left: 18px;
+ border-left: 2px solid var(--hz-amber);
+ margin: 0;
+ }
+ .mission-screen .mission-headline + .mission-paragraph {
+ margin-top: 14px;
+ }
+ .mission-screen .mission-paragraph + .mission-paragraph {
+ margin-top: 8px;
+ }
+ /* Makima — magenta rule */
+ .mission-screen.makima-screen .mission-headline,
+ .mission-screen.makima-screen .mission-paragraph {
+ border-left-color: var(--hz-mag);
+ }
+ /* Badge: align with the rule's left edge, sit above the headline.
+ JSX order is headline→badge→…; reorder visually with flex order. */
+ .mission-screen.makima-screen .makima-badge {
+ align-self: flex-start;
+ margin: 0 0 12px 18px;
+ order: -1;
+ }
+ .mission-screen.makima-screen .mission-headline { order: 0; }
+ .mission-screen.makima-screen .mission-paragraph { order: 1; }
+}
+
.mission-paragraph {
font-family: 'Inter', 'Noto Sans JP', system-ui, sans-serif;
font-size: 14px;