/* Midnight grand tour. Surface radii: outer 16px, inner/controls 8px. Existing content, navigation and audio controls retain their contracts. */ :root { --canvas: #080d18; --surface: rgb(12 20 32 / 98.5%); --surface-strong: #0c1420; --surface-soft: #132130; --line: rgb(160 196 212 / 18%); --line-strong: rgb(150 211 224 / 38%); --text: #eff4f5; --text-muted: #b3c2ce; --accent: #9edce2; --radius-surface: 16px; --radius-control: 8px; --panel-shadow: 0 24px 80px rgb(2 8 18 / 24%); --site-navigation-block-size: 76px; } body { min-height: 100dvh; } .site-navigation { inset: 14px max(24px, calc((100vw - 1400px) / 2)) auto; min-block-size: 52px; border: 1px solid var(--line); border-radius: 10px; background: rgb(10 18 30 / 94%); box-shadow: 0 8px 32px rgb(2 8 18 / 12%); } .site-navigation ul { grid-auto-rows: 50px; padding-inline: 8px; } .site-navigation a { font-family: var(--sans); font-size: 0.82rem; font-weight: 520; letter-spacing: 0; border-block-end-width: 1px; } .site-navigation a[aria-current='page'] { background: rgb(158 220 226 / 5%); } .hero-journey { min-block-size: calc(100dvh - var(--site-navigation-block-size)); padding: clamp(38px, 7vh, 72px) max(5vw, calc((100vw - 1360px) / 2)) 150px; position: relative; align-content: start; } .hero-journey__content { inline-size: min(620px, 47vw); padding: 0; gap: 22px; border: 0; border-radius: 0; background: none; box-shadow: none; } .hero-journey h1 { font-size: clamp(76px, 7.5vw, 116px); line-height: 0.96; font-weight: 560; letter-spacing: -0.065em; max-inline-size: 6.3ch; text-wrap: initial; } .hero-journey__role { max-inline-size: 28ch; font-size: clamp(21px, 1.8vw, 28px); font-weight: 450; letter-spacing: -0.025em; line-height: 1.3; } .hero-journey__value { max-inline-size: 38ch; line-height: 1.55; } .hero-journey__availability { max-inline-size: 42ch; font-size: 0.83rem; line-height: 1.5; } .hero-journey__actions { gap: 26px; padding-block-start: 4px; } .hero-journey__action, .contact-link, .project-link { border-radius: 8px; white-space: nowrap; font-family: var(--sans); letter-spacing: 0; font-size: 0.9rem; } .hero-journey__action--primary, .contact-link { padding: 0 23px; min-block-size: 49px; font-weight: 650; } .hero-journey__action--primary:hover, .contact-link:hover { color: #08151c; background: #c2edf0; } .hero-journey__action:active, .contact-link:active, .project-link:active, .drive-start:active, .drive-control-button:active { transform: translateY(1px) scale(0.98); } .portfolio-main { max-inline-size: 1920px; margin-inline: auto; } .portfolio-section { padding: clamp(28px, 4vw, 64px); margin-block: clamp(140px, 23vh, 250px); border-color: var(--line); } .portfolio-section > h2 { font-size: clamp(42px, 4.7vw, 72px); font-weight: 500; letter-spacing: -0.055em; margin-block-end: 36px; } .portfolio-section[data-layout='right-rail'] { inline-size: 46%; margin-inline: 49% 5%; } .portfolio-section[data-layout='left-timeline'] { inline-size: 63%; margin-inline: 5% 32%; } .portfolio-section[data-layout='full-diagram'], .portfolio-section[data-layout='toolkit-field'] { inline-size: 84%; margin-inline: 8%; padding: clamp(28px, 4vw, 64px); border: 1px solid var(--line); border-radius: var(--radius-surface); background: var(--surface); } .portfolio-section[data-layout='project-stage'] { inline-size: 90%; margin-inline: 5%; } .portfolio-section[data-layout='compact-rail'] { inline-size: 80%; margin-inline: 15% 5%; } .portfolio-section[data-layout='destination'] { inline-size: min(680px, 53%); margin-inline: 5% auto; } .portfolio-section[data-layout='project-stage'] > h2, .portfolio-section[data-layout='project-stage'] > .section-eyebrow { padding: 0; border: 0; background: transparent; text-shadow: 0 2px 24px #080d18; } .section-eyebrow { font-weight: 500; font-size: 0.7rem; letter-spacing: 0.1em; } .portfolio-section[data-layout='right-rail'] > p { font-size: clamp(19px, 1.5vw, 24px); line-height: 1.6; letter-spacing: -0.02em; } .profile-facts { margin-block-start: 34px; gap: 0 20px; } .profile-facts dt { font-family: var(--sans); text-transform: none; letter-spacing: 0; font-size: 0.8rem; } .profile-facts dd { font-size: 0.95rem; } .experience-timeline { padding-inline-start: 2rem !important; } .experience-timeline::before { background: linear-gradient(var(--cyan), var(--line), transparent); } .experience-timeline > li::before { inset-inline-start: -2.02rem; border-radius: 50%; transform: none; } .experience-record { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr); column-gap: 36px; } .experience-record h3 { grid-column: 1; font-size: clamp(22px, 2.1vw, 32px); font-weight: 500; } .experience-record__meta { grid-column: 1; } .experience-record ul { grid-column: 2; grid-row: 1 / span 3; margin-block-start: 0; font-size: 0.95rem; } .systems-operations { padding: 28px; border-color: var(--cyan); border-radius: 0 8px 8px 0; } .systems-operations h3 { font-weight: 500; } .infrastructure-case > h3, .infrastructure-case > p, .portfolio-section[data-layout='full-diagram'] > h2 { padding: 0; background: none; } .infrastructure-case > h3 { font-size: clamp(25px, 2.5vw, 38px); font-weight: 480; } .infrastructure-case > p { max-inline-size: 66ch; } .portfolio-section .infrastructure-flow-figure { padding: 20px; background: #101e2d; border: 0; border-radius: 12px; margin-block: 36px; } .infrastructure-node { border-inline-start-width: 1px; border-radius: 8px; min-block-size: 150px; background: #172b3b; box-shadow: 0 12px 28px rgb(4 12 24 / 22%); } .infrastructure-node__sequence { font-size: 0.6rem; color: var(--text-muted); } .infrastructure-node strong { font-weight: 550; font-size: clamp(16px, 1.4vw, 21px); letter-spacing: -0.02em; } .infrastructure-node--operations { border-color: var(--line-strong); } .operations-proof { padding: 32px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); gap: 24px 36px; } .operations-proof > h4 { font-size: 1.5rem; font-weight: 520; letter-spacing: -0.03em; } [data-testid='infrastructure-text-equivalent'] { margin-block: 30px; } .project-stage__projects { gap: clamp(90px, 14vh, 160px); } .project-case-study, .project-case-study[data-project-priority='supporting'], .project-case-study[data-project-id][data-media-layout] { inline-size: 100%; margin-inline: 0; padding: clamp(28px, 4vw, 64px); border: 1px solid var(--line); background: var(--surface); border-radius: 16px; } .project-case-study__header { max-inline-size: 810px; border: 0; padding-block-end: 0; gap: 20px; } .project-case-study__header h3, .project-case-study[data-project-priority='supporting'] .project-case-study__header h3 { font-size: clamp(32px, 4vw, 60px); font-weight: 480; letter-spacing: -0.045em; } .project-case-study__header p { max-inline-size: 65ch; font-size: 1.05rem; line-height: 1.65; } .project-media-gallery { margin-block: 40px; } .portfolio-section .project-media { background: transparent; padding: 0; border: 0; border-radius: 0; } .project-media img { border-radius: 10px; border-color: var(--line); } .portfolio-section figcaption { margin-block-start: 15px; font-size: 0.84rem; line-height: 1.5; } .project-media-gallery[data-media-layout='portrait-strip'] { gap: clamp(20px, 4vw, 60px); padding: 36px clamp(16px, 6vw, 88px); border-radius: 12px; background: #172532; } .project-media-gallery[data-media-layout='portrait-strip'] > .project-media-gallery__item + .project-media-gallery__item { margin-inline-start: 0; } .project-media-gallery[data-media-layout='portrait-strip'] > .project-media-gallery__item:nth-child(even) { margin-block-start: 42px; } .project-media-gallery[data-media-layout='portrait-strip'] > .project-media-gallery__item:nth-child(3n) { margin-block-start: 0; } .project-media-gallery[data-media-layout='portrait-strip'] img { box-shadow: 0 18px 40px rgb(3 9 18 / 35%); border-radius: 18px; } .project-media-gallery[data-media-layout='single'] { max-inline-size: 1080px; } .project-evidence { grid-template-columns: 1fr 1.3fr; gap: 28px 46px; margin-block-start: 32px; } .project-evidence > div { display: block; padding-block: 20px 0; border-block-start: 1px solid var(--line); border-block-end: 0; } .project-evidence > div:last-child { grid-column: 1 / -1; } .project-evidence dt { font-family: var(--sans); font-size: 0.9rem; text-transform: none; letter-spacing: 0; margin-block-end: 12px; } .project-evidence dd { font-size: 0.98rem; line-height: 1.65; } .project-evidence ul { columns: 2; column-gap: 48px; } .project-evidence li { break-inside: avoid; } .project-link { padding-inline: 20px; margin-block-start: 32px; min-block-size: 48px; } .compact-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 42px; } .project-card, .project-card[data-maturity] { margin-inline: 0; padding: 24px 0 0; } .project-card h3 { font-size: 1.5rem; font-weight: 530; letter-spacing: -0.03em; } .toolkit-grid { grid-template-columns: 1fr; gap: 0; } .toolkit-group { display: grid; grid-template-columns: minmax(150px, 0.75fr) minmax(0, 2fr); padding-block: 28px; gap: 28px; } .toolkit-group h3 { font-weight: 500; font-size: clamp(22px, 2vw, 30px); } .toolkit-items { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block: 0; gap: 12px 24px; padding: 0 !important; } .toolkit-item { grid-template-columns: 26px minmax(0, 1fr); gap: 12px; min-block-size: 56px; border: 0; font-size: 0.91rem; } .toolkit-item .brand-icon { inline-size: 24px; block-size: 24px; color: var(--text); } .contact-destination__copy { font-size: clamp(32px, 3vw, 46px); font-weight: 450; letter-spacing: -0.045em; max-inline-size: 22ch; } .contact-social { border-block-start: 1px solid var(--line); padding-block-start: 24px !important; } .drive-controls { inset-inline-start: 24px; inset-block-end: 22px; } .drive-controls__dock { border-radius: 9px; padding: 4px; } .drive-start { min-inline-size: 175px; border-radius: 6px; box-shadow: none; font-size: 0.64rem; letter-spacing: 0.06em; } .drive-control-button { border-radius: 6px; } .drive-controls__settings-trigger { border-radius: 8px; } .drive-popover { border-radius: 10px; } .journey-hud { inset-inline-end: 24px; inset-block-end: 22px; border-radius: 8px; padding: 14px 18px; } @media (prefers-reduced-motion: no-preference) { .hero-journey__content > * { animation: grand-tour-enter 900ms cubic-bezier(0.16, 1, 0.3, 1) both; } .hero-journey__content > :nth-child(2) { animation-delay: 90ms; } .hero-journey__content > :nth-child(3) { animation-delay: 180ms; } .hero-journey__content > :nth-child(4) { animation-delay: 240ms; } .hero-journey__content > :nth-child(5) { animation-delay: 300ms; } .project-media img { transition: transform 650ms cubic-bezier(0.16, 1, 0.3, 1); } .project-media:hover img { transform: translateY(-4px); } @supports (animation-timeline: view()) { .portfolio-section > h2, .project-case-study__header { animation: grand-tour-enter linear both; animation-timeline: view(); animation-range: entry 0% entry 95%; } } } @keyframes grand-tour-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } } @media (min-width: 768px) and (max-width: 1100px) { .hero-journey__content { inline-size: 55%; } .hero-journey h1 { font-size: clamp(76px, 9vw, 100px); } .portfolio-section[data-layout='right-rail'] { inline-size: 65%; margin-inline: 30% 5%; } .portfolio-section[data-layout='left-timeline'] { inline-size: 75%; margin-inline: 5% 20%; } .experience-record { display: block; } .experience-record ul { margin-block-start: 20px; } .portfolio-section[data-layout='full-diagram'], .portfolio-section[data-layout='toolkit-field'] { inline-size: 90%; margin-inline: 5%; } .infrastructure-flow { padding-inline: 0; } .infrastructure-flow__route { gap: 36px 20px; } .infrastructure-node { padding: 12px; } .infrastructure-node__connector { inline-size: 20px; } .infrastructure-boundary { font-size: 0.51rem; } .toolkit-items { grid-template-columns: repeat(2, minmax(0, 1fr)); } .portfolio-section[data-layout='compact-rail'] { inline-size: 90%; margin-inline: 5%; } } @media (max-width: 767px) { :root { --site-navigation-block-size: 70px; } .site-navigation { inset: 10px 12px auto; } .site-navigation summary { min-block-size: 48px; } .site-navigation ul { padding: 8px; border-radius: 0 0 10px 10px; } .hero-journey { min-block-size: calc(100dvh - 70px); padding: 32px 24px 260px; } .hero-journey__content { inline-size: 100%; max-inline-size: 460px; gap: 16px; background: none; padding: 0; } .hero-journey h1 { font-size: clamp(62px, 17vw, 94px); line-height: 0.98; } .hero-journey__role { font-size: 20px; max-inline-size: 30ch; } .hero-journey__value { font-size: 0.96rem; max-inline-size: 33ch; } .hero-journey__availability { font-size: 0.78rem; } .hero-journey__actions { gap: 20px; } .hero-journey__action { font-size: 0.83rem; } .hero-journey__action--primary { min-block-size: 46px; padding-inline: 18px; } .portfolio-section, .portfolio-section[data-layout] { inline-size: calc(100% - 24px); margin: 110px 12px; padding: 28px 22px; background: var(--surface-strong); border-radius: 14px; } .portfolio-section[data-layout='project-stage'] { padding: 0; background: transparent; } .portfolio-section > h2 { font-size: 44px; margin-block-end: 26px; } .portfolio-section[data-layout='project-stage'] > h2, .portfolio-section[data-layout='project-stage'] > .section-eyebrow { margin-inline: 12px; } .portfolio-section[data-layout='right-rail'] > p { font-size: 20px; } .experience-record { display: block; } .experience-record ul { margin-block-start: 18px; } .systems-operations { padding: 20px; } .operations-proof { padding: 20px; } .portfolio-section .infrastructure-flow-figure { padding: 15px; } .infrastructure-node { min-block-size: 125px; } .project-case-study, .project-case-study[data-project-priority='supporting'], .project-case-study[data-project-id][data-media-layout] { padding: 28px 22px; border-radius: 14px; } .project-case-study__header h3, .project-case-study[data-project-priority='supporting'] .project-case-study__header h3 { font-size: 34px; } .project-case-study__header p { font-size: 1rem; } .project-media-gallery[data-media-layout='portrait-strip'] { grid-template-columns: minmax(0, 1fr); padding: 22px; gap: 32px; } .project-media-gallery[data-media-layout='portrait-strip'] > .project-media-gallery__item:nth-child(even) { margin-block-start: 0; } .project-media-gallery[data-media-layout='portrait-strip'] img { max-inline-size: 290px; margin-inline: auto; } .project-evidence { grid-template-columns: 1fr; gap: 12px; } .project-evidence ul { columns: auto; } .compact-projects { grid-template-columns: 1fr; } .toolkit-group { grid-template-columns: 1fr; gap: 20px; } .toolkit-items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .toolkit-item { font-size: 0.82rem; gap: 8px; } .drive-controls { inset-inline-start: 10px; inset-block-end: 10px; } .drive-start { min-inline-size: 144px; font-size: 0.58rem; } .journey-hud { inset-inline-end: 10px; inset-block-end: 10px; max-inline-size: 90px; padding: 14px 10px; } .contact-destination__copy { font-size: 34px; } } @media (max-width: 360px) { .hero-journey { padding-inline: 20px; } .hero-journey h1 { font-size: 59px; } .hero-journey__role { font-size: 18px; } .drive-start { min-inline-size: 132px; padding-inline: 8px; } .journey-hud { max-inline-size: 78px; font-size: 0.6rem; } } @media (max-height: 650px) and (min-width: 768px) { .hero-journey { padding-block: 24px 90px; } .hero-journey__content { gap: 12px; inline-size: 52%; } .hero-journey h1 { font-size: 68px; max-inline-size: none; } .hero-journey__role { font-size: 20px; } .hero-journey__value { font-size: 0.92rem; } } @media print { .hero-journey__content > *, .portfolio-section > h2, .project-case-study__header { animation: none !important; } } /* An open atmospheric scrim protects copy without restoring the old hero card. */ .hero-journey { isolation: isolate; } .hero-journey::before { content: ''; position: absolute; z-index: -1; inset: -76px 0 0; pointer-events: none; background: linear-gradient( 90deg, rgb(var(--night-ink-rgb, 8 13 24) / 98%), rgb(var(--night-ink-rgb, 8 13 24) / 88%) 31%, rgb(var(--night-ink-rgb, 8 13 24) / 25%) 51%, transparent 70% ); } @media (min-width: 1100px) { .project-case-study[data-media-layout='none'] { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 0 64px; } .project-case-study[data-media-layout='none'] .project-case-study__header { grid-column: 1; align-content: start; } .project-case-study[data-media-layout='none'] .project-evidence { grid-column: 2; grid-row: 1 / span 2; margin-block-start: 0; grid-template-columns: 1fr; } .project-case-study[data-media-layout='none'] .project-evidence ul { columns: auto; } .project-case-study[data-media-layout='none'] .project-link { grid-column: 1; align-self: end; } } @media (max-width: 767px) { .hero-journey::before { inset-block-start: -70px; background: linear-gradient( 180deg, rgb(var(--night-ink-rgb, 8 13 24) / 98%) 0%, rgb(var(--night-ink-rgb, 8 13 24) / 92%) 43%, rgb(var(--night-ink-rgb, 8 13 24) / 35%) 64%, transparent 85% ); } } /* Dense approved copy uses a reading scale, with hierarchy carried by headings. */ .contact-destination__copy { font-size: clamp(26px, 2.25vw, 34px); line-height: 1.25; max-inline-size: 30ch; } .portfolio-section .toolkit-item { margin-block-start: 0; } .project-media--image > a { display: block; max-inline-size: none; cursor: zoom-in; border-radius: 10px; } .project-media--image > a:focus-visible { outline-offset: 6px; } .journey-hud__route { flex-shrink: 0; white-space: nowrap; } .journey-hud__section { min-inline-size: 0; } @media (min-width: 768px) and (max-aspect-ratio: 59/50) { .hero-journey::before { background: linear-gradient( 180deg, rgb(var(--night-ink-rgb, 8 13 24) / 96%) 0%, rgb(var(--night-ink-rgb, 8 13 24) / 90%) 55%, rgb(var(--night-ink-rgb, 8 13 24) / 28%) 73%, transparent 90% ); } } @media (max-width: 767px) { .hero-journey::before { background: linear-gradient( 180deg, rgb(var(--night-ink-rgb, 8 13 24) / 98%) 0%, rgb(var(--night-ink-rgb, 8 13 24) / 92%) 53%, rgb(var(--night-ink-rgb, 8 13 24) / 48%) 66%, transparent 85% ); } } /* Preserve the sign corridor while landing headings above the unchanged journey activation line, including short windows and padded panels. */ html[data-expressway='live'] .portfolio-section { scroll-margin-block-start: min( max( var( --chapter-landing-space, calc(var(--sign-stage-bottom, 188px) + 18px) ), calc( var(--sign-reading-top, 220px) + var(--chapter-reading-inset, 4px) - var(--chapter-heading-offset, 70px) ) ), calc(35svh - var(--chapter-heading-offset, 70px) - 6px) ); } html[data-expressway='live'] .portfolio-section[data-layout='project-stage'] { --chapter-landing-space: calc(var(--sign-stage-bottom, 188px) + 50px); --chapter-reading-inset: 30px; } /* The physical roadside family has a compact reading corridor. Land the eyebrow immediately beneath its feather instead of retaining the shelf's extra panel padding. Narrow and short-screen navigation keeps its staging. */ @media (min-width: 1100px) and (min-height: 650px) and (min-aspect-ratio: 1.18) { html[data-expressway='live'] .portfolio-section, html[data-expressway='live'] .portfolio-section[data-layout='project-stage'] { --chapter-landing-space: 0px; --chapter-reading-inset: 30px; } } @media print { .portfolio-main, .portfolio-main > * { clip-path: none !important; mask-image: none !important; } } /* A more deliberate typographic cadence; approved role wording stays intact. */ .hero-journey__role { text-wrap: balance; } .site-navigation a { transition: background-color 220ms ease, color 220ms ease; } .site-navigation a:hover { background: rgb(158 220 226 / 8%); } .portfolio-section > h2 { text-wrap: balance; } .project-case-study { box-shadow: 0 25px 100px rgb(0 7 15 / 28%), inset 0 1px rgb(195 232 240 / 5%); } .project-case-study__header { border-inline-start: 2px solid var(--line-strong); padding-inline-start: 24px; } .project-media-gallery[data-media-layout='portrait-strip'] { background: radial-gradient(ellipse at 50% 30%, #203a47, #101e2a 80%); border-block: 1px solid var(--line); } .project-media-gallery[data-media-layout='portrait-strip'] > .project-media-gallery__item:nth-child(2) { margin-block-start: 56px; } .project-media-gallery[data-media-layout='portrait-strip'] figcaption { max-inline-size: 30ch; } .toolkit-group + .toolkit-group { border-block-start: 1px solid var(--line); } .toolkit-item { transition: background-color 220ms ease; border-radius: 5px; padding-inline: 8px; } .toolkit-item:hover { background: rgb(158 220 226 / 6%); } @media (max-width: 767px) { .project-case-study__header { padding-inline-start: 14px; } .project-media-gallery[data-media-layout='portrait-strip'] > .project-media-gallery__item:nth-child(2) { margin-block-start: 0; } } /* Measured chapter anchors must not move during their reveal: journey/audio measure these headings. Reveal opacity alone, leaving their geometry stable. */ @media (prefers-reduced-motion: no-preference) { @supports (animation-timeline: view()) { .portfolio-section > h2 { animation-name: expressway-heading; } } } @keyframes expressway-heading { from { opacity: 0; } to { opacity: 1; } } @media (max-height: 650px) { html[data-expressway='live'] .portfolio-section { --chapter-landing-space: calc(var(--sign-stage-bottom) - 28px); } html[data-expressway='live'] #contact { --chapter-landing-space: calc(var(--sign-stage-bottom) - 52px); } html[data-expressway='live'] .portfolio-section[data-layout='project-stage'] { --chapter-landing-space: calc(var(--sign-stage-bottom) - 22px); } } @media (min-width: 768px) and (max-width: 900px) { .infrastructure-node strong { font-size: 14px; letter-spacing: -0.025em; } } @media (max-width: 360px) { .portfolio-section > h2 { font-size: 32px; } } @media (max-height: 559px) { html[data-expressway='live'] .portfolio-section, html[data-expressway='live'] #contact { --chapter-landing-space: calc(var(--sign-stage-bottom) + 12px); } html[data-expressway='live'] .portfolio-section[data-layout='project-stage'] { --chapter-landing-space: calc(var(--sign-stage-bottom) + 34px); } } @media (min-width: 768px) and (max-height: 559px) { html[data-expressway='live'] .portfolio-section[data-layout] { inline-size: 60%; margin-inline: 5% 35%; padding: 24px; } html[data-expressway='live'] .portfolio-section[data-layout='project-stage'] { padding: 0; } .portfolio-section > h2 { font-size: 38px; } .experience-record { display: block; } .experience-record ul { margin-block-start: 18px; } .compact-projects, .toolkit-group, .toolkit-items { grid-template-columns: 1fr; } }