427 lines
8.0 KiB
CSS
427 lines
8.0 KiB
CSS
/* ========================================
|
||
CSS Custom Properties & Reset
|
||
======================================== */
|
||
|
||
:root {
|
||
--color-red-bg: #6b0f1a;
|
||
--color-red-dark: #3d0a10;
|
||
--color-black-bg: #0e0e0e;
|
||
--color-white: #ffffff;
|
||
--color-white-dim: rgba(255, 255, 255, 0.35);
|
||
--color-capture-btn: #1a1f3d;
|
||
--color-progress-fill: #d4a017;
|
||
|
||
--font-display: 'Playfair Display', Georgia, serif;
|
||
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
||
|
||
--phone-width: 190px;
|
||
--phone-height: 380px;
|
||
--phone-radius: 26px;
|
||
}
|
||
|
||
*,
|
||
*::before,
|
||
*::after {
|
||
margin: 0;
|
||
padding: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
html {
|
||
font-size: 16px;
|
||
-webkit-font-smoothing: antialiased;
|
||
-moz-osx-font-smoothing: grayscale;
|
||
}
|
||
|
||
body {
|
||
font-family: var(--font-body);
|
||
background: #000;
|
||
color: var(--color-white);
|
||
overflow-x: hidden;
|
||
margin: 0;
|
||
}
|
||
|
||
/* ========================================
|
||
Showcase Section – Full-width wrapper
|
||
======================================== */
|
||
|
||
.showcase {
|
||
position: relative;
|
||
width: 100%;
|
||
min-height: 100vh;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* ========================================
|
||
Background Panels – Decorative, full-width
|
||
======================================== */
|
||
|
||
.bg-panels {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
display: flex;
|
||
z-index: 0;
|
||
}
|
||
|
||
.bg-panel {
|
||
flex: 1;
|
||
will-change: flex;
|
||
}
|
||
|
||
.bg-panel--red {
|
||
background: linear-gradient(135deg, var(--color-red-bg) 0%, var(--color-red-dark) 100%);
|
||
}
|
||
|
||
.bg-panel--black {
|
||
background: linear-gradient(135deg, #1a1a1a 0%, var(--color-black-bg) 100%);
|
||
}
|
||
|
||
/* ========================================
|
||
Container – 1320px centered content
|
||
======================================== */
|
||
|
||
.container {
|
||
position: relative;
|
||
z-index: 1;
|
||
width: 100%;
|
||
max-width: 1320px;
|
||
margin: 0 auto;
|
||
padding: 60px 40px;
|
||
display: grid;
|
||
grid-template-columns: 1fr auto 1fr;
|
||
align-items: center;
|
||
gap: 30px;
|
||
}
|
||
|
||
/* ========================================
|
||
Content Columns (Left / Right text)
|
||
======================================== */
|
||
|
||
.content-col {
|
||
width: 100%;
|
||
}
|
||
|
||
.content-col--left {
|
||
text-align: left;
|
||
}
|
||
|
||
.content-col--right {
|
||
text-align: left;
|
||
justify-self: end;
|
||
}
|
||
|
||
.content-col__title {
|
||
font-family: var(--font-display);
|
||
font-weight: 500;
|
||
font-style: italic;
|
||
font-size: 1.85rem;
|
||
line-height: 1.2;
|
||
margin-bottom: 36px;
|
||
letter-spacing: -0.02em;
|
||
color: var(--color-white);
|
||
}
|
||
|
||
/* ========================================
|
||
Spec List
|
||
======================================== */
|
||
|
||
.spec-list {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.spec-list__row {
|
||
display: flex;
|
||
align-items: baseline;
|
||
padding: 9px 0;
|
||
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
||
}
|
||
|
||
.spec-list__row:last-child {
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
||
}
|
||
|
||
.spec-list__label {
|
||
font-size: 0.65rem;
|
||
font-weight: 500;
|
||
letter-spacing: 0.12em;
|
||
text-transform: uppercase;
|
||
color: var(--color-white-dim);
|
||
width: 90px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.spec-list__value {
|
||
font-size: 1rem;
|
||
font-weight: 500;
|
||
color: var(--color-white);
|
||
letter-spacing: -0.01em;
|
||
}
|
||
|
||
/* ========================================
|
||
Phone Mockups – Center column
|
||
======================================== */
|
||
|
||
.phones {
|
||
display: flex;
|
||
gap: 14px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.phone {
|
||
width: var(--phone-width);
|
||
height: var(--phone-height);
|
||
background: #ffffff;
|
||
border-radius: var(--phone-radius);
|
||
padding: 12px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
position: relative;
|
||
box-shadow:
|
||
0 25px 60px rgba(0, 0, 0, 0.4),
|
||
0 8px 20px rgba(0, 0, 0, 0.25),
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||
overflow: hidden;
|
||
will-change: transform, opacity;
|
||
transform-origin: center center;
|
||
}
|
||
|
||
/* Phone Notch */
|
||
.phone__notch {
|
||
width: 80px;
|
||
height: 5px;
|
||
background: #1a1a1a;
|
||
border-radius: 10px;
|
||
margin: 0 auto 8px;
|
||
}
|
||
|
||
/* Phone Header */
|
||
.phone__header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 0 4px 6px;
|
||
}
|
||
|
||
.phone__icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
color: #1a1a1a;
|
||
cursor: pointer;
|
||
}
|
||
|
||
/* Viewfinder */
|
||
.phone__viewfinder {
|
||
position: relative;
|
||
width: 100%;
|
||
aspect-ratio: 1 / 0.85;
|
||
background: #f0f0f0;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.phone__corners {
|
||
position: absolute;
|
||
inset: 12px;
|
||
pointer-events: none;
|
||
}
|
||
|
||
.corner {
|
||
position: absolute;
|
||
width: 20px;
|
||
height: 20px;
|
||
}
|
||
|
||
.corner::before,
|
||
.corner::after {
|
||
content: '';
|
||
position: absolute;
|
||
background: #555;
|
||
}
|
||
|
||
.corner--tl { top: 0; left: 0; }
|
||
.corner--tl::before { width: 20px; height: 2px; top: 0; left: 0; }
|
||
.corner--tl::after { width: 2px; height: 20px; top: 0; left: 0; }
|
||
|
||
.corner--tr { top: 0; right: 0; }
|
||
.corner--tr::before { width: 20px; height: 2px; top: 0; right: 0; }
|
||
.corner--tr::after { width: 2px; height: 20px; top: 0; right: 0; }
|
||
|
||
.corner--bl { bottom: 0; left: 0; }
|
||
.corner--bl::before { width: 20px; height: 2px; bottom: 0; left: 0; }
|
||
.corner--bl::after { width: 2px; height: 20px; bottom: 0; left: 0; }
|
||
|
||
.corner--br { bottom: 0; right: 0; }
|
||
.corner--br::before { width: 20px; height: 2px; bottom: 0; right: 0; }
|
||
.corner--br::after { width: 2px; height: 20px; bottom: 0; right: 0; }
|
||
|
||
.phone__shoe-img {
|
||
width: 85%;
|
||
height: 85%;
|
||
object-fit: contain;
|
||
position: relative;
|
||
z-index: 1;
|
||
}
|
||
|
||
/* Caption */
|
||
.phone__caption {
|
||
font-size: 0.65rem;
|
||
color: #444;
|
||
text-align: center;
|
||
margin-top: 6px;
|
||
font-weight: 400;
|
||
}
|
||
|
||
/* Progress */
|
||
.phone__progress {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
margin-top: 4px;
|
||
padding: 0 2px;
|
||
}
|
||
|
||
.phone__progress-text {
|
||
font-size: 0.5rem;
|
||
color: #888;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.phone__progress-bar {
|
||
flex: 1;
|
||
height: 3px;
|
||
background: #e0e0e0;
|
||
border-radius: 3px;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.phone__progress-fill {
|
||
height: 100%;
|
||
background: var(--color-progress-fill);
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.phone__progress-count {
|
||
font-size: 0.5rem;
|
||
color: #888;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
/* Phone Buttons */
|
||
.phone__btn {
|
||
display: block;
|
||
width: 100%;
|
||
border: none;
|
||
cursor: pointer;
|
||
font-family: var(--font-body);
|
||
font-weight: 500;
|
||
transition: transform 0.15s ease, opacity 0.15s ease;
|
||
}
|
||
|
||
.phone__btn:active {
|
||
transform: scale(0.97);
|
||
}
|
||
|
||
.phone__btn--capture {
|
||
background: var(--color-capture-btn);
|
||
color: #fff;
|
||
font-size: 0.72rem;
|
||
padding: 10px 0;
|
||
border-radius: 20px;
|
||
margin-top: 10px;
|
||
letter-spacing: 0.02em;
|
||
}
|
||
|
||
.phone__btn--capture:hover {
|
||
background: #252b55;
|
||
}
|
||
|
||
.phone__btn--skip {
|
||
background: transparent;
|
||
color: #555;
|
||
font-size: 0.68rem;
|
||
padding: 6px 0;
|
||
margin-top: 2px;
|
||
}
|
||
|
||
.phone__btn--skip:hover {
|
||
color: #222;
|
||
}
|
||
|
||
/* ========================================
|
||
Responsive
|
||
======================================== */
|
||
|
||
@media (max-width: 1100px) {
|
||
:root {
|
||
--phone-width: 190px;
|
||
--phone-height: 380px;
|
||
}
|
||
|
||
.content-col__title {
|
||
font-size: 1.5rem;
|
||
}
|
||
|
||
.container {
|
||
padding: 0 30px;
|
||
}
|
||
|
||
.content-col {
|
||
width: 220px;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 900px) {
|
||
.container {
|
||
flex-direction: column;
|
||
padding: 60px 30px;
|
||
gap: 40px;
|
||
}
|
||
|
||
.content-col {
|
||
width: 100%;
|
||
max-width: 400px;
|
||
text-align: center;
|
||
}
|
||
|
||
.spec-list__row {
|
||
justify-content: center;
|
||
}
|
||
|
||
.phones {
|
||
justify-content: center;
|
||
}
|
||
|
||
.channel-icons {
|
||
align-items: center;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 520px) {
|
||
:root {
|
||
--phone-width: 160px;
|
||
--phone-height: 340px;
|
||
}
|
||
|
||
.phones {
|
||
gap: 10px;
|
||
}
|
||
|
||
.content-col__title {
|
||
font-size: 1.3rem;
|
||
}
|
||
|
||
.spec-list__label {
|
||
width: 80px;
|
||
}
|
||
}
|