Merge branch 'p6-w1-home-mobile' into dev

This commit is contained in:
daniel-c-harvey
2026-06-07 07:53:32 -04:00
2 changed files with 129 additions and 56 deletions
+19 -3
View File
@@ -6,13 +6,19 @@
@* Hero - split 50/50 *@ @* Hero - split 50/50 *@
<section class="hero"> <section class="hero">
<MudGrid Spacing="0" Style="height: 100%;">
<MudItem xs="12" md="6">
<div class="hero-left"> <div class="hero-left">
<DeepDrftHero /> <DeepDrftHero />
</div> </div>
</MudItem>
<MudItem xs="12" md="6">
<div class="hero-right"> <div class="hero-right">
<NowPlaying /> <NowPlaying />
</div> </div>
</MudItem>
</MudGrid>
</section> </section>
@* Divider *@ @* Divider *@
@@ -24,14 +30,18 @@
@* Sound section *@ @* Sound section *@
<section class="section"> <section class="section">
<div class="section-header"> <div class="section-header-grid">
<div> <MudGrid Style="margin-bottom: 5rem;">
<MudItem xs="12" md="4">
<div class="section-label">Genres &amp; Moods</div> <div class="section-label">Genres &amp; Moods</div>
<h2 class="section-title">Every<br /><em>Frequency</em><br />Explored</h2> <h2 class="section-title">Every<br /><em>Frequency</em><br />Explored</h2>
</div> </MudItem>
<MudItem xs="12" md="8">
<p class="section-body"> <p class="section-body">
From the hypnotic pulse of deep house to the fractal complexity of IDM, Deep DRFT refuses to be categorized. We treat genre as a palette &mdash; not a cage. Each session begins as something and ends as something else entirely. From the hypnotic pulse of deep house to the fractal complexity of IDM, Deep DRFT refuses to be categorized. We treat genre as a palette &mdash; not a cage. Each session begins as something and ends as something else entirely.
</p> </p>
</MudItem>
</MudGrid>
</div> </div>
<div class="genre-grid"> <div class="genre-grid">
@@ -104,6 +114,8 @@
@* Split: origin + connect *@ @* Split: origin + connect *@
<div class="section-split"> <div class="section-split">
<MudGrid Spacing="0" Style="height: 100%;">
<MudItem xs="12" md="6">
<div class="split-left"> <div class="split-left">
<div class="split-eyebrow">Our Origin</div> <div class="split-eyebrow">Our Origin</div>
<h2 class="split-title">Where the Holy City<br /><em>Meets the Future</em></h2> <h2 class="split-title">Where the Holy City<br /><em>Meets the Future</em></h2>
@@ -111,7 +123,9 @@
Charleston, South Carolina holds centuries of culture in its streets. We carry that weight into the studio &mdash; tradition as tension against the forward pull of electronic sound. The result is music that feels both ancient and unimagined. Charleston, South Carolina holds centuries of culture in its streets. We carry that weight into the studio &mdash; tradition as tension against the forward pull of electronic sound. The result is music that feels both ancient and unimagined.
</p> </p>
</div> </div>
</MudItem>
<MudItem xs="12" md="6">
<div class="split-right"> <div class="split-right">
<div class="connect-label">Stay Connected</div> <div class="connect-label">Stay Connected</div>
<h2 class="connect-title">Never Miss<br />a <em>Session</em></h2> <h2 class="connect-title">Never Miss<br />a <em>Session</em></h2>
@@ -139,6 +153,8 @@
@* TODO: subscription form lives behind this CTA *@ @* TODO: subscription form lives behind this CTA *@
<button class="btn-primary connect-cta" type="button">Subscribe Free</button> <button class="btn-primary connect-cta" type="button">Subscribe Free</button>
</div> </div>
</MudItem>
</MudGrid>
</div> </div>
@* CTA banner *@ @* CTA banner *@
+66 -9
View File
@@ -6,8 +6,6 @@
/* ── HERO ── */ /* ── HERO ── */
.hero { .hero {
min-height: 100vh; min-height: 100vh;
display: grid;
grid-template-columns: 1fr 1fr;
overflow: hidden; overflow: hidden;
} }
@@ -18,6 +16,7 @@
padding: 6rem 3rem; padding: 6rem 3rem;
position: relative; position: relative;
background: var(--deepdrft-white); background: var(--deepdrft-white);
height: 100%;
} }
.hero-right { .hero-right {
@@ -27,6 +26,13 @@
flex-direction: column; flex-direction: column;
justify-content: flex-end; justify-content: flex-end;
overflow: hidden; overflow: hidden;
height: 100%;
}
@media (max-width: 960px) {
.hero { min-height: auto; }
.hero-left { padding: 4rem 1.5rem 3rem; }
.hero-right { min-height: 50vh; }
} }
/* ── DIVIDER ── */ /* ── DIVIDER ── */
@@ -59,12 +65,10 @@
background: var(--deepdrft-white); background: var(--deepdrft-white);
} }
.section-header { @media (min-width: 960px) {
display: grid; .section-header-grid {
grid-template-columns: 1fr 2fr;
gap: 4rem;
margin-bottom: 5rem;
align-items: end; align-items: end;
}
} }
.section-label { .section-label {
@@ -109,6 +113,14 @@
margin-bottom: 4rem; margin-bottom: 4rem;
} }
@media (max-width: 960px) {
.genre-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
.genre-grid { grid-template-columns: repeat(2, 1fr); }
}
.genre-card { .genre-card {
background: var(--deepdrft-white); background: var(--deepdrft-white);
padding: 2rem 1.5rem; padding: 2rem 1.5rem;
@@ -191,6 +203,20 @@
.feature-card:hover { background: rgba(250, 250, 248, 0.04); } .feature-card:hover { background: rgba(250, 250, 248, 0.04); }
/* Below md: per-card border-right leaves dangling hairlines when columns
collapse, so switch to border-bottom dividers instead. */
@media (max-width: 960px) {
.features-grid { grid-template-columns: repeat(2, 1fr); }
.feature-card { border-right: none; border-bottom: 1px solid rgba(250, 250, 248, 0.08); }
.feature-card:last-child { border-bottom: none; }
}
@media (max-width: 600px) {
.features-grid { grid-template-columns: 1fr; }
.feature-card { border-right: none; border-bottom: 1px solid rgba(250, 250, 248, 0.08); }
.feature-card:last-child { border-bottom: none; }
}
.feature-icon { .feature-icon {
width: 2.5rem; width: 2.5rem;
height: 2.5rem; height: 2.5rem;
@@ -227,11 +253,13 @@
/* ── SPLIT: ORIGIN + CONNECT ── */ /* ── SPLIT: ORIGIN + CONNECT ── */
.section-split { .section-split {
display: grid;
grid-template-columns: 1fr 1fr;
min-height: 60vh; min-height: 60vh;
} }
@media (max-width: 960px) {
.section-split { min-height: auto; }
}
.split-left { .split-left {
background: var(--deepdrft-green); background: var(--deepdrft-green);
padding: 6rem 4rem; padding: 6rem 4rem;
@@ -240,6 +268,7 @@
justify-content: center; justify-content: center;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
height: 100%;
} }
.split-left::before { .split-left::before {
@@ -259,6 +288,7 @@
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
background: var(--deepdrft-white); background: var(--deepdrft-white);
height: 100%;
} }
.split-eyebrow { .split-eyebrow {
@@ -442,6 +472,7 @@
position: relative; position: relative;
z-index: 1; z-index: 1;
flex-shrink: 0; flex-shrink: 0;
flex-wrap: wrap;
} }
.btn-white { .btn-white {
@@ -480,3 +511,29 @@
} }
.btn-outline-white:hover { border-color: var(--deepdrft-white); } .btn-outline-white:hover { border-color: var(--deepdrft-white); }
@media (max-width: 600px) {
.cta-banner {
flex-direction: column;
align-items: flex-start;
gap: 2rem;
padding: 4rem 1.5rem;
}
.cta-actions {
width: 100%;
}
.btn-white,
.btn-outline-white {
flex: 1;
text-align: center;
min-width: 140px;
}
/* At 22rem the "DRFT" watermark forces horizontal scroll on mobile. */
.cta-banner::before {
font-size: 8rem;
right: -0.5rem;
}
}