3392 lines
76 KiB
CSS
3392 lines
76 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@keyframes accordion-down {
|
|
from {
|
|
height: 0;
|
|
}
|
|
to {
|
|
height: var(--radix-accordion-content-height);
|
|
}
|
|
}
|
|
@keyframes accordion-up {
|
|
from {
|
|
height: var(--radix-accordion-content-height);
|
|
}
|
|
to {
|
|
height: 0;
|
|
}
|
|
}
|
|
@keyframes collapsible-down {
|
|
from {
|
|
height: 0;
|
|
}
|
|
to {
|
|
height: var(--radix-collapsible-content-height);
|
|
}
|
|
}
|
|
@keyframes collapsible-up {
|
|
from {
|
|
height: var(--radix-collapsible-content-height);
|
|
}
|
|
to {
|
|
height: 0;
|
|
}
|
|
}
|
|
@keyframes slide-in-from-left {
|
|
from {
|
|
transform: translateX(-100%);
|
|
}
|
|
}
|
|
@keyframes slide-in-from-right {
|
|
from {
|
|
transform: translateX(100%);
|
|
}
|
|
}
|
|
@keyframes slide-in-from-top {
|
|
from {
|
|
transform: translateY(-100%);
|
|
}
|
|
}
|
|
@keyframes slide-in-from-bottom {
|
|
from {
|
|
transform: translateY(100%);
|
|
}
|
|
}
|
|
@keyframes slide-out-to-left {
|
|
to {
|
|
transform: translateX(-100%);
|
|
}
|
|
}
|
|
@keyframes slide-out-to-right {
|
|
to {
|
|
transform: translateX(100%);
|
|
}
|
|
}
|
|
@keyframes slide-out-to-top {
|
|
to {
|
|
transform: translateY(-100%);
|
|
}
|
|
}
|
|
@keyframes slide-out-to-bottom {
|
|
to {
|
|
transform: translateY(100%);
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
:root {
|
|
--background: 0 0% 100%;
|
|
--foreground: 222.2 84% 4.9%;
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 222.2 84% 4.9%;
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 222.2 84% 4.9%;
|
|
--primary: 222.2 47.4% 11.2%;
|
|
--primary-foreground: 210 40% 98%;
|
|
--secondary: 210 40% 96.1%;
|
|
--secondary-foreground: 222.2 47.4% 11.2%;
|
|
--muted: 210 40% 96.1%;
|
|
--muted-foreground: 215.4 16.3% 46.9%;
|
|
--accent: 210 40% 96.1%;
|
|
--accent-foreground: 222.2 47.4% 11.2%;
|
|
--destructive: 0 84.2% 60.2%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
--border: 214.3 31.8% 91.4%;
|
|
--input: 214.3 31.8% 91.4%;
|
|
--ring: 222.2 84% 4.9%;
|
|
--radius: 0.625rem;
|
|
--chart-1: 222.2 47.4% 11.2%;
|
|
--chart-2: 210 40% 44%;
|
|
--chart-3: 210 40% 57.6%;
|
|
--chart-4: 182 40% 76.5%;
|
|
--chart-5: 340 75% 55%;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--background: 222.2 84% 4.9%;
|
|
--foreground: 210 40% 98%;
|
|
--card: 222.2 84% 4.9%;
|
|
--card-foreground: 210 40% 98%;
|
|
--popover: 222.2 84% 4.9%;
|
|
--popover-foreground: 210 40% 98%;
|
|
--primary: 210 40% 98%;
|
|
--primary-foreground: 222.2 47.4% 11.2%;
|
|
--secondary: 217.2 32.6% 17.5%;
|
|
--secondary-foreground: 210 40% 98%;
|
|
--muted: 217.2 32.6% 17.5%;
|
|
--muted-foreground: 215 20.2% 65.1%;
|
|
--accent: 217.2 32.6% 17.5%;
|
|
--accent-foreground: 210 40% 98%;
|
|
--destructive: 0 62.8% 30.6%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
--border: 217.2 32.6% 17.5%;
|
|
--input: 217.2 32.6% 17.5%;
|
|
--ring: 212.9 100% 50%;
|
|
--chart-1: 217.2 91.2% 59%;
|
|
--chart-2: 160 84% 39%;
|
|
--chart-3: 30 80% 50%;
|
|
--chart-4: 280 65% 60%;
|
|
--chart-5: 340 75% 55%;
|
|
}
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border outline-ring/50;
|
|
}
|
|
body {
|
|
@apply bg-background text-foreground;
|
|
}
|
|
}
|
|
|
|
.card-hover {
|
|
@apply transition-all duration-200 hover:shadow-lg hover:ring-foreground/20;
|
|
}
|
|
|
|
/* grid-equal-height: force every direct child to fill the row */
|
|
.grid-equal-height > * {
|
|
height: 100%;
|
|
}
|
|
|
|
/* card-full-height: card fills its wrapper */
|
|
.card-full-height {
|
|
@apply h-full;
|
|
}
|
|
|
|
/* card-content-stretch: CardContent grows to push footer content down */
|
|
.card-content-stretch {
|
|
@apply flex-1;
|
|
}
|
|
|
|
.sidebar-contact-link {
|
|
@apply rounded-lg;
|
|
}
|
|
|
|
@keyframes fade-in-up {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(10px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.animate-fade-in-up {
|
|
animation: fade-in-up 0.5s ease-out both;
|
|
}
|
|
.animate-fade-in-up-delay-1 {
|
|
animation: fade-in-up 0.5s ease-out 0.1s both;
|
|
}
|
|
.animate-fade-in-up-delay-2 {
|
|
animation: fade-in-up 0.5s ease-out 0.2s both;
|
|
}
|
|
.animate-fade-in-up-delay-3 {
|
|
animation: fade-in-up 0.5s ease-out 0.3s both;
|
|
}
|
|
.animate-fade-in-up-delay-4 {
|
|
animation: fade-in-up 0.5s ease-out 0.4s both;
|
|
}
|
|
|
|
@keyframes blob {
|
|
0%,
|
|
100% {
|
|
transform: scale(1) translate(0px, 0px);
|
|
}
|
|
25% {
|
|
transform: scale(1.08) translate(40px, -30px);
|
|
}
|
|
50% {
|
|
transform: scale(0.94) translate(-25px, 50px);
|
|
}
|
|
75% {
|
|
transform: scale(1.04) translate(35px, 30px);
|
|
}
|
|
}
|
|
|
|
.animate-blob {
|
|
animation: blob 9s ease-in-out infinite;
|
|
}
|
|
/* Personal studio */
|
|
:root {
|
|
color-scheme: light;
|
|
--background: 40 20% 98%;
|
|
--foreground: 225 15% 15%;
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 225 15% 15%;
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 225 15% 15%;
|
|
--primary: 229 76% 48%;
|
|
--primary-foreground: 0 0% 100%;
|
|
--secondary: 220 13% 94%;
|
|
--secondary-foreground: 225 15% 15%;
|
|
--muted: 220 13% 94%;
|
|
--muted-foreground: 220 7% 42%;
|
|
--accent: 225 35% 94%;
|
|
--accent-foreground: 225 15% 15%;
|
|
--border: 220 10% 86%;
|
|
--input: 220 10% 86%;
|
|
--ring: 229 76% 48%;
|
|
--studio-blue: #2849d4;
|
|
--studio-muted: #62666e;
|
|
--studio-rule: #dedfe2;
|
|
}
|
|
html {
|
|
scroll-behavior: smooth;
|
|
scroll-padding-top: 110px;
|
|
}
|
|
body {
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
::selection {
|
|
background: #dce3ff;
|
|
color: #142675;
|
|
}
|
|
:focus-visible {
|
|
outline: 2px solid var(--studio-blue);
|
|
outline-offset: 5px;
|
|
}
|
|
a,
|
|
button {
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
.skip-link {
|
|
position: fixed;
|
|
top: 10px;
|
|
left: 10px;
|
|
transform: translateY(-160%);
|
|
background: white;
|
|
color: var(--studio-blue);
|
|
padding: 12px 20px;
|
|
z-index: 100;
|
|
}
|
|
.skip-link:focus {
|
|
transform: none;
|
|
}
|
|
.site-header {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 60;
|
|
background: #faf9f7ed;
|
|
backdrop-filter: blur(18px);
|
|
}
|
|
.nav-inner {
|
|
max-width: 1160px;
|
|
padding: 0 40px;
|
|
margin: auto;
|
|
height: 90px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
border-bottom: 1px solid var(--studio-rule);
|
|
}
|
|
.wordmark {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 15px;
|
|
font-size: 17px;
|
|
font-weight: 550;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
.monogram {
|
|
width: 52px;
|
|
height: 52px;
|
|
flex-shrink: 0;
|
|
}
|
|
.accent-text {
|
|
color: var(--studio-blue);
|
|
}
|
|
.wordmark-name {
|
|
font-size: 21px;
|
|
font-weight: 650;
|
|
letter-spacing: -0.055em;
|
|
}
|
|
.desktop-nav {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 27px;
|
|
font-size: 13px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.desktop-nav a:hover,
|
|
.desktop-nav a[aria-current] {
|
|
color: var(--studio-blue);
|
|
}
|
|
.nav-contact {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
color: var(--studio-blue);
|
|
}
|
|
.mobile-toggle {
|
|
display: none;
|
|
padding: 12px;
|
|
}
|
|
.mobile-menu {
|
|
padding: 10px 24px 24px;
|
|
border-bottom: 1px solid var(--studio-rule);
|
|
}
|
|
.mobile-menu a {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 13px 0;
|
|
}
|
|
.site-main {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
.studio-home {
|
|
max-width: 1160px;
|
|
margin: auto;
|
|
padding: 0 40px;
|
|
}
|
|
.studio-intro {
|
|
padding: 68px 0 77px;
|
|
}
|
|
.intro-topline {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
font-size: 12px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.intro-main {
|
|
display: grid;
|
|
grid-template-columns: 1fr 180px;
|
|
align-items: center;
|
|
gap: 60px;
|
|
margin-top: 32px;
|
|
}
|
|
.intro-main h1 {
|
|
font-size: clamp(48px, 6.4vw, 79px);
|
|
font-weight: 500;
|
|
letter-spacing: -0.075em;
|
|
line-height: 1.1;
|
|
margin-bottom: 27px;
|
|
}
|
|
.intro-main h1 span {
|
|
color: var(--studio-blue);
|
|
}
|
|
.intro-statement {
|
|
font-size: clamp(21px, 2.4vw, 28px);
|
|
line-height: 1.5;
|
|
letter-spacing: -0.04em;
|
|
max-width: 650px;
|
|
}
|
|
.intro-statement a {
|
|
color: var(--studio-blue);
|
|
text-decoration: underline;
|
|
text-decoration-color: #bcc7f2;
|
|
text-underline-offset: 5px;
|
|
text-decoration-thickness: 1px;
|
|
}
|
|
.intro-detail {
|
|
font-size: 16px;
|
|
line-height: 1.8;
|
|
color: var(--studio-muted);
|
|
max-width: 550px;
|
|
margin-top: 15px;
|
|
}
|
|
.intro-portrait {
|
|
width: 180px;
|
|
height: 215px;
|
|
object-fit: cover;
|
|
object-position: center;
|
|
border-radius: 8px;
|
|
transform: rotate(3deg);
|
|
box-shadow:
|
|
0 0 0 7px white,
|
|
0 8px 30px #20284010;
|
|
}
|
|
.intro-links {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 25px;
|
|
margin-top: 27px;
|
|
font-size: 13px;
|
|
}
|
|
.intro-links a,
|
|
.studio-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
}
|
|
.intro-links a:hover,
|
|
.studio-link:hover {
|
|
color: var(--studio-blue);
|
|
}
|
|
.studio-section-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
border-top: 1px solid var(--studio-rule);
|
|
padding: 25px 0 30px;
|
|
gap: 20px;
|
|
}
|
|
.studio-section-heading h2 {
|
|
font-size: 18px;
|
|
font-weight: 550;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
.studio-section-heading h2 span {
|
|
font-size: 11px;
|
|
color: var(--studio-muted);
|
|
vertical-align: super;
|
|
margin-left: 5px;
|
|
font-weight: 400;
|
|
}
|
|
.studio-section-heading > a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-size: 13px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.studio-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 48px 30px;
|
|
}
|
|
.studio-project {
|
|
min-width: 0;
|
|
scroll-margin-top: 115px;
|
|
}
|
|
.studio-project-image {
|
|
position: relative;
|
|
display: block;
|
|
aspect-ratio: 1.48;
|
|
overflow: hidden;
|
|
border-radius: 7px;
|
|
background: #e8ecf5;
|
|
}
|
|
.studio-project-image > img {
|
|
object-fit: contain;
|
|
width: 88% !important;
|
|
height: 86% !important;
|
|
margin: auto;
|
|
transition: transform 0.4s ease;
|
|
}
|
|
.studio-project-image:hover > img {
|
|
transform: scale(1.035);
|
|
}
|
|
.puter .studio-project-image {
|
|
background: #e1e7f2;
|
|
}
|
|
.beenvoice .studio-project-image {
|
|
background: #e8eddf;
|
|
}
|
|
.hristudio .studio-project-image {
|
|
background: #e3edea;
|
|
}
|
|
.racetix .studio-project-image > img {
|
|
width: 100% !important;
|
|
height: 100% !important;
|
|
object-fit: cover;
|
|
}
|
|
.studio-product-logo {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: grid;
|
|
place-items: center;
|
|
background: #0004;
|
|
}
|
|
.studio-product-logo img {
|
|
width: 43%;
|
|
height: auto;
|
|
}
|
|
.studio-project-title {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 15px;
|
|
margin: 20px 0 11px;
|
|
}
|
|
.studio-project-title h3 {
|
|
font-size: 23px;
|
|
font-weight: 550;
|
|
letter-spacing: -0.045em;
|
|
}
|
|
.studio-project-title h3 a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
.studio-project-title h3 svg {
|
|
color: var(--studio-muted);
|
|
}
|
|
.studio-project-title > span {
|
|
font-size: 11px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.studio-project > p {
|
|
font-size: 14px;
|
|
line-height: 1.8;
|
|
color: var(--studio-muted);
|
|
max-width: 480px;
|
|
}
|
|
.studio-stack {
|
|
font-size: 11px;
|
|
color: #737780;
|
|
margin-top: 17px;
|
|
}
|
|
.studio-hadlock {
|
|
display: grid;
|
|
grid-template-columns: 1.25fr 1fr;
|
|
gap: 55px;
|
|
align-items: center;
|
|
background: #edf0f7;
|
|
padding: 38px;
|
|
border-radius: 8px;
|
|
margin: 76px 0;
|
|
}
|
|
.studio-label {
|
|
font-size: 11px;
|
|
color: var(--studio-muted);
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
.studio-hadlock h2 {
|
|
font-size: 28px;
|
|
font-weight: 500;
|
|
letter-spacing: -0.05em;
|
|
margin: 15px 0;
|
|
}
|
|
.studio-hadlock p:not(.studio-label) {
|
|
color: var(--studio-muted);
|
|
font-size: 14px;
|
|
line-height: 1.9;
|
|
}
|
|
.studio-hadlock > img {
|
|
width: 100%;
|
|
height: auto;
|
|
aspect-ratio: 1.35;
|
|
object-fit: cover;
|
|
border-radius: 5px;
|
|
}
|
|
.studio-link {
|
|
font-size: 13px;
|
|
color: var(--studio-blue);
|
|
margin-top: 20px;
|
|
}
|
|
.studio-about {
|
|
display: grid;
|
|
grid-template-columns: 0.85fr 1.35fr;
|
|
gap: 75px;
|
|
padding: 0 0 65px;
|
|
}
|
|
.studio-about h2 {
|
|
font-size: 32px;
|
|
letter-spacing: -0.045em;
|
|
line-height: 1.3;
|
|
margin-top: 18px;
|
|
font-weight: 450;
|
|
}
|
|
.studio-about > div > p:not(.studio-label) {
|
|
color: var(--studio-muted);
|
|
font-size: 15px;
|
|
line-height: 1.9;
|
|
margin-bottom: 17px;
|
|
}
|
|
.studio-contact {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 30px;
|
|
border-top: 1px solid var(--studio-rule);
|
|
padding: 40px 0 60px;
|
|
}
|
|
.studio-contact h2 {
|
|
font-size: 29px;
|
|
letter-spacing: -0.05em;
|
|
margin-top: 13px;
|
|
}
|
|
.studio-contact > a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
color: var(--studio-blue);
|
|
font-size: 20px;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
.site-footer {
|
|
width: 100%;
|
|
max-width: 1160px;
|
|
margin: auto;
|
|
padding: 0 40px 25px;
|
|
}
|
|
.footer-top {
|
|
border-top: 1px solid var(--studio-rule);
|
|
padding: 25px 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 25px;
|
|
}
|
|
.footer-links {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 17px;
|
|
font-size: 11px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.footer-bottom {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
font-size: 10px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.interior-page {
|
|
max-width: 1160px;
|
|
width: 100%;
|
|
margin: auto;
|
|
padding: 40px 40px 80px;
|
|
}
|
|
.archive-header {
|
|
padding: 25px 0 40px;
|
|
}
|
|
.eyebrow {
|
|
color: var(--studio-muted);
|
|
font-size: 12px;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
.archive-header h1 {
|
|
font-size: clamp(40px, 5vw, 64px);
|
|
line-height: 1.1;
|
|
letter-spacing: -0.06em;
|
|
margin: 20px 0;
|
|
}
|
|
.archive-header > p:last-child {
|
|
color: var(--studio-muted);
|
|
max-width: 620px;
|
|
font-size: 16px;
|
|
line-height: 1.8;
|
|
}
|
|
.archive-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 25px;
|
|
}
|
|
.archive-card {
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
background: white;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.archive-image {
|
|
aspect-ratio: 1.7;
|
|
position: relative;
|
|
overflow: hidden;
|
|
background: #e8ecf1;
|
|
}
|
|
.archive-image img {
|
|
object-fit: cover;
|
|
object-position: top;
|
|
}
|
|
.archive-body {
|
|
padding: 26px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
}
|
|
.archive-body h2 {
|
|
font-size: 23px;
|
|
letter-spacing: -0.04em;
|
|
line-height: 1.2;
|
|
}
|
|
.archive-body p {
|
|
color: var(--studio-muted);
|
|
font-size: 14px;
|
|
line-height: 1.85;
|
|
margin-top: 16px;
|
|
}
|
|
.project-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
margin-top: 18px;
|
|
}
|
|
.project-tags span {
|
|
font-size: 11px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 4px;
|
|
padding: 4px 8px;
|
|
}
|
|
.archive-links {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 18px;
|
|
margin-top: auto;
|
|
padding-top: 23px;
|
|
}
|
|
.text-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
font-size: 13px;
|
|
color: var(--studio-blue);
|
|
}
|
|
@media (max-width: 900px) {
|
|
.intro-main {
|
|
grid-template-columns: 1fr 140px;
|
|
gap: 30px;
|
|
}
|
|
.intro-portrait {
|
|
width: 140px;
|
|
height: 180px;
|
|
}
|
|
.desktop-nav {
|
|
gap: 18px;
|
|
}
|
|
.studio-hadlock {
|
|
gap: 30px;
|
|
padding: 28px;
|
|
}
|
|
.studio-about {
|
|
gap: 40px;
|
|
}
|
|
}
|
|
@media (max-width: 700px) {
|
|
.studio-home,
|
|
.site-footer {
|
|
padding-left: 23px;
|
|
padding-right: 23px;
|
|
}
|
|
.nav-inner {
|
|
height: 75px;
|
|
padding: 0 23px;
|
|
}
|
|
.desktop-nav {
|
|
display: none;
|
|
}
|
|
.mobile-toggle {
|
|
display: block;
|
|
}
|
|
.studio-intro {
|
|
padding: 37px 0 44px;
|
|
}
|
|
.intro-topline {
|
|
font-size: 10px;
|
|
}
|
|
.intro-main {
|
|
display: block;
|
|
margin-top: 28px;
|
|
position: relative;
|
|
}
|
|
.intro-main h1 {
|
|
font-size: clamp(43px, 10vw, 65px);
|
|
margin-bottom: 24px;
|
|
}
|
|
.intro-statement {
|
|
font-size: 24px;
|
|
max-width: 450px;
|
|
}
|
|
.intro-detail {
|
|
font-size: 15px;
|
|
}
|
|
.intro-portrait {
|
|
width: 72px;
|
|
height: 84px;
|
|
margin-top: 29px;
|
|
border-radius: 5px;
|
|
}
|
|
.intro-links {
|
|
gap: 22px;
|
|
font-size: 13px;
|
|
}
|
|
.studio-grid,
|
|
.archive-grid {
|
|
grid-template-columns: 1fr;
|
|
gap: 36px;
|
|
}
|
|
.studio-project > p {
|
|
font-size: 15px;
|
|
}
|
|
.studio-project-title > span {
|
|
font-size: 10px;
|
|
}
|
|
.studio-hadlock {
|
|
grid-template-columns: 1fr;
|
|
margin: 48px 0;
|
|
padding: 26px;
|
|
gap: 28px;
|
|
}
|
|
.studio-hadlock > img {
|
|
aspect-ratio: 1.7;
|
|
}
|
|
.studio-about {
|
|
grid-template-columns: 1fr;
|
|
gap: 25px;
|
|
padding-bottom: 35px;
|
|
}
|
|
.studio-about h2 {
|
|
font-size: 30px;
|
|
}
|
|
.studio-contact {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
padding: 32px 0 40px;
|
|
gap: 22px;
|
|
}
|
|
.studio-contact > a {
|
|
font-size: 19px;
|
|
}
|
|
.footer-top {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 20px;
|
|
}
|
|
.footer-links {
|
|
gap: 14px;
|
|
}
|
|
.footer-bottom {
|
|
flex-wrap: wrap;
|
|
font-size: 9px;
|
|
gap: 9px;
|
|
}
|
|
.interior-page {
|
|
padding: 30px 23px 60px;
|
|
}
|
|
}
|
|
@media (prefers-reduced-motion: reduce) {
|
|
html {
|
|
scroll-behavior: auto;
|
|
}
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
animation: none !important;
|
|
transition: none !important;
|
|
}
|
|
}
|
|
|
|
/* Product spotlights and personal experiments */
|
|
.beenvoice .studio-project-image {
|
|
background: #dce5df;
|
|
}
|
|
.manyangles .studio-project-image > img {
|
|
width: 100% !important;
|
|
height: 100% !important;
|
|
object-fit: cover;
|
|
}
|
|
.studio-cms {
|
|
border-top: 1px solid #cdd3e0;
|
|
margin-top: 24px;
|
|
padding-top: 20px;
|
|
}
|
|
.studio-cms h3 {
|
|
font-size: 18px;
|
|
font-weight: 550;
|
|
margin-bottom: 8px;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
.studio-cms .studio-link {
|
|
margin-top: 12px;
|
|
}
|
|
.archive-card[id] {
|
|
scroll-margin-top: 115px;
|
|
}
|
|
|
|
/* Studio identity: expressive display type, quiet working typography. */
|
|
|
|
.intro-main h1,
|
|
.archive-header h1,
|
|
.studio-about h2,
|
|
.studio-contact h2 {
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-weight: 400;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
.intro-main h1 {
|
|
font-size: clamp(62px, 7.4vw, 96px);
|
|
line-height: 1.02;
|
|
}
|
|
.intro-statement {
|
|
font-size: clamp(20px, 2.1vw, 25px);
|
|
letter-spacing: -0.035em;
|
|
}
|
|
.studio-about h2 {
|
|
font-size: 43px;
|
|
line-height: 1.12;
|
|
}
|
|
.studio-contact h2 {
|
|
font-size: 42px;
|
|
}
|
|
.studio-project-title h3,
|
|
.studio-hadlock h2 {
|
|
letter-spacing: -0.045em;
|
|
font-weight: 600;
|
|
}
|
|
.coffee-link {
|
|
color: var(--studio-blue);
|
|
text-decoration: underline;
|
|
text-decoration-color: #bcc7f2;
|
|
text-underline-offset: 4px;
|
|
}
|
|
.coffee-link:hover {
|
|
text-decoration-color: currentColor;
|
|
}
|
|
@media (max-width: 700px) {
|
|
.intro-main h1 {
|
|
font-size: clamp(47px, 12vw, 76px);
|
|
letter-spacing: -0.04em;
|
|
}
|
|
.studio-about h2,
|
|
.studio-contact h2 {
|
|
font-size: 36px;
|
|
}
|
|
.monogram {
|
|
width: 46px;
|
|
height: 46px;
|
|
}
|
|
}
|
|
|
|
/* Apple product bezels: screenshots sit beneath the transparent screen apertures. */
|
|
.beenvoice-devices {
|
|
position: absolute;
|
|
inset: 0;
|
|
overflow: hidden;
|
|
background: #dce5df;
|
|
}
|
|
.product-device {
|
|
position: absolute;
|
|
filter: drop-shadow(0 10px 12px #182b2526);
|
|
}
|
|
.product-ipad {
|
|
width: 63%;
|
|
aspect-ratio: 2300 / 3000;
|
|
top: 9%;
|
|
left: 9%;
|
|
transform: rotate(-6deg);
|
|
}
|
|
.product-iphone {
|
|
width: 28%;
|
|
aspect-ratio: 1350 / 2760;
|
|
top: 22%;
|
|
right: 8%;
|
|
transform: rotate(7deg);
|
|
}
|
|
.product-device .device-screen {
|
|
object-fit: fill;
|
|
margin: 0;
|
|
}
|
|
.product-ipad .device-screen {
|
|
left: 5.13% !important;
|
|
top: 4.13% !important;
|
|
width: 89.74% !important;
|
|
height: 91.74% !important;
|
|
border-radius: 4% / 3%;
|
|
}
|
|
.product-iphone .device-screen {
|
|
left: 5.33% !important;
|
|
top: 2.5% !important;
|
|
width: 89.34% !important;
|
|
height: 95% !important;
|
|
border-radius: 13% / 6%;
|
|
}
|
|
.product-device .device-bezel {
|
|
z-index: 1;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.manyangles-preview {
|
|
position: absolute;
|
|
inset: 0;
|
|
overflow: hidden;
|
|
}
|
|
.manyangles-preview > img {
|
|
object-fit: cover;
|
|
object-position: 50% 40%;
|
|
}
|
|
.manyangles-lockup {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: flex-end;
|
|
gap: 10px;
|
|
padding: 6%;
|
|
color: white;
|
|
background: linear-gradient(transparent 45%, #101e33b3);
|
|
}
|
|
.manyangles-lockup svg {
|
|
width: 9%;
|
|
max-width: 42px;
|
|
flex-shrink: 0;
|
|
}
|
|
.manyangles-lockup span {
|
|
font-weight: 700;
|
|
font-variation-settings: "SHRP" 70;
|
|
font-size: clamp(24px, 3vw, 36px);
|
|
letter-spacing: -0.04em;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.type-study-controls {
|
|
padding: 22px 0;
|
|
border-block: 1px solid var(--studio-rule);
|
|
}
|
|
.type-study-controls label {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
max-width: 350px;
|
|
font-size: 13px;
|
|
}
|
|
.type-study-controls output {
|
|
color: var(--studio-blue);
|
|
}
|
|
.type-study-controls input {
|
|
display: block;
|
|
width: min(100%, 350px);
|
|
accent-color: var(--studio-blue);
|
|
margin: 16px 0;
|
|
}
|
|
.type-study-controls p {
|
|
font-size: 12px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.type-study-sample {
|
|
margin: 34px 0 48px;
|
|
}
|
|
.type-study-sample h2 {
|
|
font-size: 21px;
|
|
margin-bottom: 22px;
|
|
}
|
|
.type-study-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 50px;
|
|
}
|
|
.type-study-grid h3 {
|
|
font-size: 13px;
|
|
margin-bottom: 24px;
|
|
}
|
|
.type-study-grid h3 span {
|
|
display: block;
|
|
color: var(--studio-muted);
|
|
font-size: 11px;
|
|
margin-top: 7px;
|
|
}
|
|
.type-study-column {
|
|
width: 100%;
|
|
border-right: 1px dashed #cdd3e0;
|
|
}
|
|
.type-study-paragraph {
|
|
margin-bottom: 20px;
|
|
font-family: var(--font-sans), sans-serif;
|
|
font-size: 15px;
|
|
font-weight: 400;
|
|
line-height: 1.9;
|
|
letter-spacing: 0;
|
|
word-spacing: 0;
|
|
font-kerning: none;
|
|
font-variant-ligatures: none;
|
|
color: var(--studio-muted);
|
|
}
|
|
.justice-line {
|
|
display: block;
|
|
white-space: nowrap;
|
|
}
|
|
@media (max-width: 700px) {
|
|
.type-study-grid {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 25px;
|
|
}
|
|
}
|
|
|
|
.type-study-grid > div {
|
|
min-width: 0;
|
|
}
|
|
|
|
/* A compact personal workspace, across every section. */
|
|
:root {
|
|
--background: 204 44% 97%;
|
|
--card: 205 45% 99%;
|
|
--border: 202 24% 86%;
|
|
--studio-rule: #d6e1e7;
|
|
}
|
|
.site-header {
|
|
background: #f6f9fcf5;
|
|
}
|
|
.nav-inner {
|
|
height: 76px;
|
|
max-width: 1480px;
|
|
padding-inline: 30px;
|
|
}
|
|
.site-rail {
|
|
display: none;
|
|
}
|
|
.studio-intro {
|
|
padding: 36px 0 40px;
|
|
}
|
|
.intro-main {
|
|
margin-top: 20px;
|
|
gap: 30px;
|
|
grid-template-columns: 1fr 145px;
|
|
}
|
|
.intro-main h1 {
|
|
font-size: clamp(55px, 6vw, 82px);
|
|
margin-bottom: 18px;
|
|
}
|
|
.intro-portrait {
|
|
width: 145px;
|
|
height: 175px;
|
|
}
|
|
.intro-links {
|
|
margin-top: 20px;
|
|
}
|
|
.studio-grid {
|
|
gap: 30px 24px;
|
|
}
|
|
.studio-project-image {
|
|
aspect-ratio: 1.65;
|
|
border-radius: 10px;
|
|
}
|
|
.studio-project-title {
|
|
margin-top: 14px;
|
|
}
|
|
.studio-project-title h3 {
|
|
font-size: 22px;
|
|
}
|
|
.studio-stack {
|
|
margin-top: 10px;
|
|
}
|
|
.studio-hadlock {
|
|
margin: 45px 0;
|
|
padding: 28px;
|
|
gap: 28px;
|
|
background: #e7eada;
|
|
}
|
|
.studio-about {
|
|
gap: 35px;
|
|
padding-bottom: 36px;
|
|
}
|
|
.archive-header {
|
|
padding: 12px 0 25px;
|
|
}
|
|
.archive-header h1 {
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-weight: 400;
|
|
font-size: clamp(40px, 5vw, 60px);
|
|
margin: 12px 0;
|
|
}
|
|
.archive-header > p:last-child {
|
|
font-size: 15px;
|
|
}
|
|
.interior-page [data-slot="card"] {
|
|
border-radius: 9px;
|
|
background: hsl(var(--card));
|
|
backdrop-filter: none;
|
|
}
|
|
.interior-page [data-slot="card-title"] {
|
|
font-family: var(--font-sans), sans-serif;
|
|
font-weight: 600;
|
|
}
|
|
.interior-page > article > div > h1 {
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-weight: 400;
|
|
font-size: clamp(36px, 5vw, 60px);
|
|
}
|
|
.justice-paragraph {
|
|
font-kerning: none;
|
|
font-variant-ligatures: none;
|
|
letter-spacing: 0;
|
|
word-spacing: 0;
|
|
min-width: 0;
|
|
}
|
|
.personal-corners {
|
|
margin: 10px 0 38px;
|
|
}
|
|
.corners-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 18px;
|
|
}
|
|
.corner-card {
|
|
display: block;
|
|
background: #fbfdff;
|
|
border: 1px solid var(--studio-rule);
|
|
padding: 9px 9px 15px;
|
|
border-radius: 4px;
|
|
transition: transform 0.2s;
|
|
}
|
|
.corner-card:nth-child(1) {
|
|
transform: rotate(-1.5deg);
|
|
}
|
|
.corner-card:nth-child(2) {
|
|
transform: rotate(1deg);
|
|
}
|
|
.corner-card:hover {
|
|
transform: translateY(-5px) rotate(0);
|
|
}
|
|
.corner-card > img {
|
|
width: 100%;
|
|
height: 150px;
|
|
object-fit: cover;
|
|
}
|
|
.corner-card > span {
|
|
display: block;
|
|
font-weight: 600;
|
|
font-size: 15px;
|
|
margin: 14px 7px 7px;
|
|
}
|
|
.corner-card > p {
|
|
font-size: 12px;
|
|
line-height: 1.7;
|
|
color: var(--studio-muted);
|
|
margin-inline: 7px;
|
|
}
|
|
.october-stamp {
|
|
height: 150px;
|
|
background: #efc9a1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: #6c3518;
|
|
}
|
|
.october-stamp > span {
|
|
letter-spacing: 0.2em;
|
|
font-size: 12px;
|
|
}
|
|
.october-stamp strong {
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-size: 60px;
|
|
font-weight: 400;
|
|
line-height: 1.05;
|
|
}
|
|
.october-stamp small {
|
|
font-size: 10px;
|
|
}
|
|
.project-tools {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: flex-end;
|
|
gap: 18px;
|
|
margin-bottom: 24px;
|
|
padding: 18px 0;
|
|
border-block: 1px solid var(--studio-rule);
|
|
}
|
|
.project-tools label {
|
|
font-size: 11px;
|
|
flex: 1;
|
|
min-width: 200px;
|
|
}
|
|
.project-tools input {
|
|
display: block;
|
|
width: 100%;
|
|
min-width: 0;
|
|
border: 1px solid var(--studio-rule);
|
|
background: #fbfdff;
|
|
padding: 10px 12px;
|
|
border-radius: 6px;
|
|
margin-top: 8px;
|
|
font-size: 13px;
|
|
}
|
|
.project-filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
.project-filters button,
|
|
.project-empty button {
|
|
padding: 9px 12px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 6px;
|
|
font-size: 12px;
|
|
}
|
|
.project-filters button[aria-pressed="true"] {
|
|
background: var(--studio-blue);
|
|
color: white;
|
|
border-color: var(--studio-blue);
|
|
}
|
|
.project-tools > p {
|
|
font-size: 11px;
|
|
color: var(--studio-muted);
|
|
padding-bottom: 10px;
|
|
}
|
|
.archive-grid {
|
|
align-items: start;
|
|
gap: 22px;
|
|
}
|
|
.archive-body {
|
|
padding: 22px;
|
|
}
|
|
.archive-body h2 {
|
|
font-size: 21px;
|
|
}
|
|
.project-detail {
|
|
margin-top: 15px;
|
|
}
|
|
.project-detail summary {
|
|
cursor: pointer;
|
|
font-size: 12px;
|
|
color: var(--studio-blue);
|
|
}
|
|
.archive-body .project-detail p {
|
|
font-size: 14px;
|
|
}
|
|
.project-empty {
|
|
padding: 35px;
|
|
border: 1px dashed var(--studio-rule);
|
|
}
|
|
.project-empty button {
|
|
margin-top: 15px;
|
|
}
|
|
.travel-notes {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 25px;
|
|
}
|
|
.travel-note {
|
|
min-width: 0;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
background: #fbfdff;
|
|
}
|
|
.travel-strip {
|
|
display: flex;
|
|
overflow-x: auto;
|
|
scroll-snap-type: x mandatory;
|
|
}
|
|
.travel-strip img {
|
|
flex: 0 0 90%;
|
|
width: 90%;
|
|
height: 260px;
|
|
object-fit: cover;
|
|
scroll-snap-align: start;
|
|
}
|
|
.travel-caption {
|
|
padding: 22px;
|
|
}
|
|
.travel-caption h2 {
|
|
font-size: 22px;
|
|
letter-spacing: -0.04em;
|
|
margin: 10px 0 15px;
|
|
}
|
|
.travel-caption .justice-paragraph,
|
|
.press-list .justice-paragraph {
|
|
font-size: 14px;
|
|
line-height: 1.85;
|
|
color: var(--studio-muted);
|
|
}
|
|
.gallery-hint,
|
|
.press-byline {
|
|
font-size: 11px;
|
|
margin-top: 18px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.press-list {
|
|
max-width: 800px;
|
|
}
|
|
.press-list article {
|
|
padding: 25px 0;
|
|
border-top: 1px solid var(--studio-rule);
|
|
}
|
|
.press-list h2 {
|
|
font-size: 25px;
|
|
line-height: 1.4;
|
|
margin: 12px 0;
|
|
}
|
|
.press-list h2 svg {
|
|
display: inline;
|
|
}
|
|
.mobile-menu {
|
|
max-height: calc(100dvh - 76px);
|
|
overflow-y: auto;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 15px 25px;
|
|
}
|
|
.mobile-nav-group > p {
|
|
font-size: 10px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
color: var(--studio-muted);
|
|
padding-top: 10px;
|
|
}
|
|
.mobile-menu a {
|
|
font-size: 14px;
|
|
padding: 10px 0;
|
|
}
|
|
.mobile-menu a[aria-current] {
|
|
color: var(--studio-blue);
|
|
}
|
|
@media (min-width: 1100px) {
|
|
.site-rail {
|
|
display: block;
|
|
position: fixed;
|
|
top: 76px;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 224px;
|
|
overflow-y: auto;
|
|
padding: 25px 18px;
|
|
border-right: 1px solid var(--studio-rule);
|
|
background: #edf4f8;
|
|
}
|
|
.rail-group {
|
|
margin-top: 19px;
|
|
}
|
|
.rail-group:first-child {
|
|
margin-top: 0;
|
|
}
|
|
.rail-group p {
|
|
margin: 0 10px 7px;
|
|
font-size: 9px;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
color: var(--studio-muted);
|
|
}
|
|
.rail-group a {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
font-size: 12px;
|
|
padding: 8px 10px;
|
|
border-radius: 5px;
|
|
}
|
|
.rail-group a span {
|
|
opacity: 0;
|
|
}
|
|
.rail-group a:hover {
|
|
background: #e4edf3;
|
|
}
|
|
.rail-group a:hover span {
|
|
opacity: 1;
|
|
}
|
|
.rail-group a[aria-current] {
|
|
background: #dce3f9;
|
|
color: #2849d4;
|
|
font-weight: 600;
|
|
}
|
|
.rail-elsewhere {
|
|
border-top: 1px solid var(--studio-rule);
|
|
padding: 16px 10px 0;
|
|
margin-top: 22px;
|
|
}
|
|
.rail-elsewhere a {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
font-size: 10px;
|
|
margin-bottom: 12px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.site-main {
|
|
margin-left: 224px;
|
|
width: calc(100% - 224px);
|
|
}
|
|
.site-main.interior-page {
|
|
max-width: 1340px;
|
|
padding: 25px 32px 55px;
|
|
}
|
|
.studio-home {
|
|
padding-inline: 32px;
|
|
}
|
|
.site-footer {
|
|
margin-left: 224px;
|
|
width: calc(100% - 224px);
|
|
max-width: none;
|
|
padding: 0 32px 20px;
|
|
}
|
|
}
|
|
@media (max-width: 700px) {
|
|
.intro-main {
|
|
display: block;
|
|
}
|
|
.intro-portrait {
|
|
width: 72px;
|
|
height: 84px;
|
|
}
|
|
.intro-main h1 {
|
|
font-size: clamp(46px, 12vw, 70px);
|
|
}
|
|
.studio-intro {
|
|
padding: 26px 0 32px;
|
|
}
|
|
.studio-hadlock {
|
|
padding: 23px;
|
|
margin: 32px 0;
|
|
}
|
|
.corners-grid,
|
|
.travel-notes {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.corner-card {
|
|
display: grid;
|
|
grid-template-columns: 105px 1fr;
|
|
column-gap: 12px;
|
|
transform: none !important;
|
|
}
|
|
.corner-card > img,
|
|
.october-stamp {
|
|
grid-row: span 2;
|
|
height: 120px;
|
|
}
|
|
.corner-card > span {
|
|
align-self: end;
|
|
}
|
|
.corner-card > p {
|
|
margin-bottom: 8px;
|
|
}
|
|
.october-stamp strong {
|
|
font-size: 43px;
|
|
}
|
|
.project-tools {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
.project-tools > p {
|
|
padding: 0;
|
|
}
|
|
.studio-project-title {
|
|
flex-wrap: wrap;
|
|
gap: 5px;
|
|
}
|
|
}
|
|
@media (min-width: 701px) and (max-width: 1099px) {
|
|
.mobile-toggle {
|
|
display: block;
|
|
}
|
|
.mobile-menu {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
.desktop-nav {
|
|
margin-left: auto;
|
|
margin-right: 20px;
|
|
}
|
|
}
|
|
.studio-about > div,
|
|
.studio-hadlock > div {
|
|
min-width: 0;
|
|
}
|
|
.justice-line {
|
|
max-width: 100%;
|
|
}
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.corner-card {
|
|
transform: none !important;
|
|
}
|
|
}
|
|
.section-jumps {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
}
|
|
.section-jumps a {
|
|
font-size: 12px;
|
|
padding: 8px 13px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 5px;
|
|
background: #fbfdff;
|
|
color: var(--studio-blue);
|
|
}
|
|
|
|
.mark-live-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 20px;
|
|
border: 1px solid var(--studio-rule);
|
|
background: #fbfdff;
|
|
padding: 16px 24px;
|
|
border-radius: 8px;
|
|
}
|
|
.mark-live-brand {
|
|
display: flex;
|
|
gap: 12px;
|
|
align-items: center;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
}
|
|
.mark-live-brand > svg {
|
|
width: 42px;
|
|
height: 42px;
|
|
color: var(--studio-blue);
|
|
}
|
|
.mark-example-links {
|
|
display: flex;
|
|
gap: 24px;
|
|
font-size: 12px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.mark-helper {
|
|
font-size: 12px;
|
|
line-height: 1.8;
|
|
color: var(--studio-muted);
|
|
margin: 16px 0 24px;
|
|
max-width: 730px;
|
|
}
|
|
.mark-choice-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 20px;
|
|
}
|
|
.mark-choice {
|
|
min-width: 0;
|
|
text-align: left;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 9px;
|
|
overflow: hidden;
|
|
background: #fbfdff;
|
|
}
|
|
.mark-choice[aria-pressed="true"] {
|
|
border-color: var(--studio-blue);
|
|
box-shadow: 0 0 0 1px var(--studio-blue);
|
|
}
|
|
.mark-large {
|
|
height: 200px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
background: #edf3f7;
|
|
padding: 20px;
|
|
}
|
|
.mark-large svg {
|
|
width: 120px;
|
|
height: 120px;
|
|
color: var(--studio-blue);
|
|
}
|
|
.name-only-mark {
|
|
font-family: var(--font-sans), sans-serif;
|
|
font-weight: 650;
|
|
letter-spacing: -0.055em;
|
|
white-space: nowrap;
|
|
}
|
|
.name-only-mark > span {
|
|
color: var(--studio-blue);
|
|
}
|
|
.mark-large .name-only-mark {
|
|
font-size: clamp(18px, 2vw, 28px);
|
|
}
|
|
.mark-choice-body {
|
|
padding: 21px;
|
|
}
|
|
.mark-choice-body h2 {
|
|
font-size: 17px;
|
|
font-weight: 600;
|
|
}
|
|
.mark-choice-body h2 > span {
|
|
color: var(--studio-blue);
|
|
margin-right: 7px;
|
|
}
|
|
.mark-choice-body > p {
|
|
font-size: 12px;
|
|
line-height: 1.8;
|
|
color: var(--studio-muted);
|
|
margin-top: 12px;
|
|
min-height: 65px;
|
|
}
|
|
.mark-samples {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 18px;
|
|
margin-top: 20px;
|
|
}
|
|
.mark-samples > div {
|
|
display: grid;
|
|
place-items: center;
|
|
min-width: 40px;
|
|
height: 40px;
|
|
}
|
|
.mark-samples svg {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
.mark-samples .name-only-mark {
|
|
font-size: 11px;
|
|
}
|
|
.mark-reversed {
|
|
--mark-paper: #2849d4;
|
|
padding: 4px 8px;
|
|
background: #2849d4;
|
|
color: #fff;
|
|
border-radius: 5px;
|
|
}
|
|
.mark-reversed .name-only-mark > span {
|
|
color: #fff;
|
|
}
|
|
@media (max-width: 800px) {
|
|
.mark-choice-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.mark-large {
|
|
height: 150px;
|
|
}
|
|
.mark-choice-body > p {
|
|
min-height: 0;
|
|
}
|
|
.mark-example-links {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* Coffee lives alongside the rest of the personal site. */
|
|
.coffee-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
margin-bottom: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.coffee-toolbar label {
|
|
font-weight: 650;
|
|
}
|
|
.coffee-toolbar input {
|
|
flex: 1;
|
|
min-width: 180px;
|
|
padding: 12px 15px;
|
|
background: var(--studio-paper, #fbfdff);
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 6px;
|
|
}
|
|
.coffee-toolbar button {
|
|
font-size: 13px;
|
|
text-decoration: underline;
|
|
text-underline-offset: 4px;
|
|
padding: 10px 0;
|
|
}
|
|
.coffee-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) 290px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
}
|
|
.coffee-map-panel {
|
|
min-width: 0;
|
|
position: relative;
|
|
background: #e7eff4;
|
|
}
|
|
.coffee-map {
|
|
height: 520px;
|
|
z-index: 0;
|
|
font-family: inherit;
|
|
}
|
|
.coffee-map-status {
|
|
position: absolute;
|
|
top: 55px;
|
|
left: 60px;
|
|
right: 25px;
|
|
padding: 15px;
|
|
background: #fbfdff;
|
|
}
|
|
.coffee-pin {
|
|
background: var(--studio-blue);
|
|
border: 2px solid #fff;
|
|
color: white;
|
|
border-radius: 50%;
|
|
display: grid;
|
|
place-items: center;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
box-shadow: 0 2px 6px #0003;
|
|
}
|
|
.coffee-pin.is-selected {
|
|
background: #26251f;
|
|
outline: 3px solid #3949c655;
|
|
}
|
|
.coffee-shop-list {
|
|
max-height: 520px;
|
|
overflow: auto;
|
|
background: #fbfdff;
|
|
padding: 18px 12px;
|
|
}
|
|
.coffee-shop-list > .studio-label {
|
|
padding: 0 10px 12px;
|
|
}
|
|
.coffee-shop {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
width: 100%;
|
|
text-align: left;
|
|
padding: 14px 10px;
|
|
border-top: 1px solid var(--studio-rule);
|
|
border-radius: 3px;
|
|
}
|
|
.coffee-shop:hover,
|
|
.coffee-shop[aria-pressed="true"] {
|
|
background: #edf3f7;
|
|
}
|
|
.coffee-shop > span:nth-child(2) {
|
|
flex: 1;
|
|
}
|
|
.coffee-shop strong {
|
|
display: block;
|
|
font-size: 14px;
|
|
font-weight: 650;
|
|
}
|
|
.coffee-shop small {
|
|
display: block;
|
|
color: var(--studio-muted);
|
|
margin-top: 4px;
|
|
font-size: 11px;
|
|
}
|
|
.coffee-shop-number {
|
|
color: var(--studio-blue);
|
|
font-size: 12px;
|
|
}
|
|
.coffee-detail {
|
|
background: #fbfdff;
|
|
padding: 22px;
|
|
border-top: 1px solid var(--studio-rule);
|
|
}
|
|
.coffee-detail-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
}
|
|
.coffee-detail h2 {
|
|
font-size: 22px;
|
|
font-weight: 650;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
.coffee-detail-heading button {
|
|
min-width: 40px;
|
|
min-height: 40px;
|
|
font-size: 26px;
|
|
}
|
|
.coffee-detail p {
|
|
font-size: 14px;
|
|
line-height: 1.7;
|
|
margin: 8px 0;
|
|
}
|
|
.coffee-detail .coffee-address {
|
|
color: var(--studio-muted);
|
|
font-size: 12px;
|
|
}
|
|
.coffee-detail-links {
|
|
display: flex;
|
|
gap: 22px;
|
|
color: var(--studio-blue);
|
|
margin-top: 16px;
|
|
font-size: 13px;
|
|
}
|
|
.coffee-map-note {
|
|
color: var(--studio-muted);
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
margin-top: 18px;
|
|
}
|
|
.coffee-empty {
|
|
padding: 12px;
|
|
font-size: 14px;
|
|
}
|
|
@media (max-width: 800px) {
|
|
.coffee-layout {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
.coffee-map {
|
|
height: 340px;
|
|
}
|
|
.coffee-shop-list {
|
|
max-height: 340px;
|
|
border-top: 1px solid var(--studio-rule);
|
|
}
|
|
.coffee-toolbar label {
|
|
width: 100%;
|
|
}
|
|
}
|
|
.coffee-pin > span {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: grid;
|
|
place-items: center;
|
|
}
|
|
|
|
.parent-page-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 32px;
|
|
font-size: 13px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.parent-page-link:hover {
|
|
color: var(--studio-blue);
|
|
}
|
|
|
|
/* Shared editorial rhythm for the background and archive pages. */
|
|
.record-intro {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
gap: 16px;
|
|
margin-bottom: 28px;
|
|
}
|
|
.record-intro .section-jumps {
|
|
margin: 0;
|
|
}
|
|
.record-section {
|
|
margin-bottom: 48px;
|
|
scroll-margin-top: 110px;
|
|
}
|
|
.record-section > h2 {
|
|
font-family: var(--font-heading), serif;
|
|
font-size: 34px;
|
|
margin-bottom: 20px;
|
|
letter-spacing: -0.025em;
|
|
}
|
|
.record-row {
|
|
display: grid;
|
|
grid-template-columns: 180px minmax(0, 1fr);
|
|
gap: 32px;
|
|
padding: 28px 0;
|
|
border-top: 1px solid var(--studio-rule);
|
|
}
|
|
.record-meta {
|
|
font-size: 12px;
|
|
line-height: 1.7;
|
|
color: var(--studio-muted);
|
|
}
|
|
.record-meta p + p {
|
|
margin-top: 8px;
|
|
}
|
|
.record-number {
|
|
display: block;
|
|
color: var(--studio-blue);
|
|
margin-bottom: 12px;
|
|
font-size: 15px;
|
|
}
|
|
.record-body {
|
|
max-width: 780px;
|
|
min-width: 0;
|
|
}
|
|
.record-body h2,
|
|
.record-body h3 {
|
|
font-family: inherit;
|
|
font-size: 23px;
|
|
line-height: 1.3;
|
|
font-weight: 600;
|
|
letter-spacing: -0.035em;
|
|
margin: 0 0 12px;
|
|
text-wrap: balance;
|
|
}
|
|
.record-body h2 a:hover {
|
|
color: var(--studio-blue);
|
|
}
|
|
.record-body > p,
|
|
.record-body details p {
|
|
font-size: 14px;
|
|
line-height: 1.8;
|
|
color: var(--studio-muted);
|
|
margin: 10px 0;
|
|
}
|
|
.record-body .record-kicker,
|
|
.record-kicker {
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
margin: 0 0 10px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.record-body details {
|
|
margin-top: 16px;
|
|
font-size: 14px;
|
|
}
|
|
.record-body summary,
|
|
.record-disclosure summary {
|
|
cursor: pointer;
|
|
color: var(--studio-blue);
|
|
padding: 8px 0;
|
|
}
|
|
.record-body ul,
|
|
.record-disclosure ul {
|
|
list-style: disc;
|
|
padding-left: 20px;
|
|
color: var(--studio-muted);
|
|
font-size: 14px;
|
|
line-height: 1.8;
|
|
}
|
|
.record-body li + li {
|
|
margin-top: 8px;
|
|
}
|
|
.record-links {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 12px 24px;
|
|
font-size: 13px;
|
|
color: var(--studio-blue);
|
|
margin: 18px 0 8px;
|
|
}
|
|
.record-links a:hover {
|
|
text-decoration: underline;
|
|
text-underline-offset: 4px;
|
|
}
|
|
.skills-index {
|
|
border-top: 1px solid var(--studio-rule);
|
|
}
|
|
.skills-index > div {
|
|
display: grid;
|
|
grid-template-columns: 180px minmax(0, 1fr);
|
|
gap: 32px;
|
|
padding: 18px 0;
|
|
border-bottom: 1px solid var(--studio-rule);
|
|
}
|
|
.skills-index h3 {
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
}
|
|
.skills-index p {
|
|
font-size: 14px;
|
|
line-height: 1.8;
|
|
color: var(--studio-muted);
|
|
}
|
|
.record-disclosure {
|
|
border-top: 1px solid var(--studio-rule);
|
|
padding: 16px 0;
|
|
}
|
|
.record-disclosure summary {
|
|
font-size: 16px;
|
|
}
|
|
.record-disclosure summary span {
|
|
color: var(--studio-muted);
|
|
font-size: 12px;
|
|
margin-left: 8px;
|
|
}
|
|
.record-disclosure article {
|
|
padding: 18px 0;
|
|
max-width: 780px;
|
|
font-size: 14px;
|
|
line-height: 1.8;
|
|
}
|
|
.record-disclosure h3 {
|
|
font-weight: 650;
|
|
}
|
|
.document-reader {
|
|
min-width: 0;
|
|
}
|
|
.document-topbar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 16px;
|
|
padding-bottom: 20px;
|
|
}
|
|
.document-topbar .record-links {
|
|
margin: 0;
|
|
}
|
|
.document-switch {
|
|
display: flex;
|
|
gap: 4px;
|
|
padding: 4px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 8px;
|
|
}
|
|
.document-switch button {
|
|
padding: 10px 18px;
|
|
border-radius: 5px;
|
|
font-size: 14px;
|
|
}
|
|
.document-switch button[aria-pressed="true"] {
|
|
background: var(--studio-ink, #292923);
|
|
color: #fffdf8;
|
|
}
|
|
.document-controls {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
padding: 12px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 8px 8px 0 0;
|
|
background: #edf3f7;
|
|
}
|
|
.control-group {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 12px;
|
|
}
|
|
.control-group button {
|
|
min-width: 36px;
|
|
min-height: 36px;
|
|
padding: 6px 10px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 4px;
|
|
background: #fbfdff;
|
|
}
|
|
.control-group button:disabled {
|
|
opacity: 0.35;
|
|
cursor: not-allowed;
|
|
}
|
|
.control-group span {
|
|
min-width: 94px;
|
|
text-align: center;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
.document-paper {
|
|
position: relative;
|
|
height: min(76vh, 1050px);
|
|
min-height: 420px;
|
|
overflow: auto;
|
|
padding: 16px;
|
|
background: #e7eff4;
|
|
border: 1px solid var(--studio-rule);
|
|
border-top: 0;
|
|
}
|
|
.document-paper canvas {
|
|
display: block;
|
|
margin: 0 auto;
|
|
max-width: none;
|
|
background: white;
|
|
box-shadow: 0 3px 20px #24231f12;
|
|
}
|
|
.document-message {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: grid;
|
|
place-content: center;
|
|
padding: 30px;
|
|
text-align: center;
|
|
color: var(--studio-muted);
|
|
font-size: 14px;
|
|
}
|
|
.reader-note {
|
|
margin-top: 12px;
|
|
font-size: 12px;
|
|
color: var(--studio-muted);
|
|
}
|
|
@media (max-width: 700px) {
|
|
.record-row {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 12px;
|
|
padding: 24px 0;
|
|
}
|
|
.record-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px 16px;
|
|
}
|
|
.record-meta p + p {
|
|
margin: 0;
|
|
}
|
|
.record-number {
|
|
margin: 0;
|
|
}
|
|
.record-body h2,
|
|
.record-body h3 {
|
|
font-size: 21px;
|
|
}
|
|
.skills-index > div {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 6px;
|
|
}
|
|
.document-topbar {
|
|
align-items: flex-start;
|
|
}
|
|
.document-paper {
|
|
min-height: 360px;
|
|
height: 65vh;
|
|
}
|
|
}
|
|
|
|
.document-sheet + .document-sheet {
|
|
margin-top: 24px;
|
|
}
|
|
.document-sheet {
|
|
width: max-content;
|
|
min-width: 100%;
|
|
}
|
|
|
|
/* A centered site with one consistent, compact navigation. */
|
|
.site-header {
|
|
background: #f6f9fcf5;
|
|
backdrop-filter: blur(18px);
|
|
border-bottom: 1px solid var(--studio-rule);
|
|
}
|
|
.nav-inner {
|
|
max-width: 1160px;
|
|
height: 72px;
|
|
padding-inline: 40px;
|
|
border-bottom: 0;
|
|
}
|
|
.primary-links {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 28px;
|
|
font-size: 13px;
|
|
}
|
|
.primary-links a:hover {
|
|
color: var(--studio-blue);
|
|
}
|
|
.primary-links a {
|
|
padding-block: 14px;
|
|
}
|
|
.site-main {
|
|
margin-left: 0;
|
|
width: 100%;
|
|
}
|
|
.site-main.interior-page {
|
|
width: 100%;
|
|
max-width: 1160px;
|
|
margin-inline: auto;
|
|
padding: 36px 40px 60px;
|
|
}
|
|
.studio-home {
|
|
max-width: 1160px;
|
|
padding-inline: 40px;
|
|
}
|
|
.studio-home .studio-intro {
|
|
padding: 44px 0 40px;
|
|
}
|
|
.studio-home .intro-topline {
|
|
justify-content: space-between;
|
|
padding-right: 0;
|
|
}
|
|
.site-footer {
|
|
width: 100%;
|
|
max-width: 1160px;
|
|
margin-inline: auto;
|
|
padding: 0 40px 24px;
|
|
}
|
|
.studio-home section[id] {
|
|
scroll-margin-top: 96px;
|
|
}
|
|
.background-links {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 12px 24px;
|
|
margin-top: 20px;
|
|
font-size: 12px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.background-links a:hover {
|
|
color: var(--studio-blue);
|
|
text-decoration: underline;
|
|
text-underline-offset: 4px;
|
|
}
|
|
@media (max-width: 700px) {
|
|
.nav-inner {
|
|
height: 64px;
|
|
padding-inline: 20px;
|
|
}
|
|
.nav-inner .wordmark-name {
|
|
font-size: 18px;
|
|
}
|
|
.primary-links {
|
|
gap: 16px;
|
|
font-size: 12px;
|
|
}
|
|
.studio-home {
|
|
padding-inline: 23px;
|
|
}
|
|
.studio-home .studio-intro {
|
|
padding-top: 28px;
|
|
}
|
|
.site-main.interior-page {
|
|
padding: 28px 23px 44px;
|
|
}
|
|
.site-footer {
|
|
padding: 0 23px 20px;
|
|
}
|
|
.studio-home section[id] {
|
|
scroll-margin-top: 84px;
|
|
}
|
|
}
|
|
@media (max-width: 360px) {
|
|
.nav-inner {
|
|
padding-inline: 16px;
|
|
}
|
|
.nav-inner .wordmark-name {
|
|
font-size: 16px;
|
|
}
|
|
.primary-links {
|
|
gap: 12px;
|
|
}
|
|
}
|
|
|
|
.header-background {
|
|
position: relative;
|
|
}
|
|
.header-background summary {
|
|
display: flex;
|
|
gap: 7px;
|
|
align-items: center;
|
|
cursor: pointer;
|
|
list-style: none;
|
|
padding-block: 14px;
|
|
}
|
|
.header-background summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
.header-background summary[data-active="true"],
|
|
.header-background[open] summary {
|
|
color: var(--studio-blue);
|
|
}
|
|
.header-background summary .menu-chevron {
|
|
transition: transform 150ms ease;
|
|
}
|
|
.header-background[open] summary .menu-chevron {
|
|
transform: rotate(180deg);
|
|
}
|
|
.header-dropdown {
|
|
position: absolute;
|
|
top: 100%;
|
|
right: 0;
|
|
width: 190px;
|
|
padding: 6px;
|
|
border: 1px solid var(--studio-rule);
|
|
background: #fbfdff;
|
|
border-radius: 8px;
|
|
box-shadow: 0 10px 25px #24231f12;
|
|
}
|
|
.primary-links .header-dropdown a {
|
|
display: block;
|
|
padding: 12px;
|
|
border-radius: 4px;
|
|
}
|
|
.header-dropdown a:hover,
|
|
.header-dropdown a[aria-current="page"] {
|
|
background: #edf3f7;
|
|
color: var(--studio-blue);
|
|
}
|
|
.primary-links .header-resume {
|
|
color: var(--studio-blue);
|
|
font-weight: 650;
|
|
white-space: nowrap;
|
|
}
|
|
@media (max-width: 700px) {
|
|
.nav-inner {
|
|
position: relative;
|
|
height: 102px;
|
|
flex-wrap: wrap;
|
|
align-content: center;
|
|
row-gap: 2px;
|
|
}
|
|
.nav-inner > .wordmark {
|
|
height: 42px;
|
|
}
|
|
.primary-links {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
.primary-links .header-resume {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 20px;
|
|
padding: 10px 0;
|
|
}
|
|
.primary-links > a,
|
|
.header-background summary {
|
|
padding-block: 12px;
|
|
}
|
|
.header-dropdown {
|
|
right: -30px;
|
|
}
|
|
.studio-home section[id],
|
|
.record-section {
|
|
scroll-margin-top: 122px;
|
|
}
|
|
}
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.header-background summary .menu-chevron {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
/* Hadlock palette, with cool blue-white surfaces and lake-blue contour lines. */
|
|
:root {
|
|
--font-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
--background: 204 44% 97%;
|
|
--foreground: 205 34% 16%;
|
|
--card: 205 45% 99%;
|
|
--card-foreground: 205 34% 16%;
|
|
--primary: 196 100% 31%;
|
|
--ring: 196 100% 31%;
|
|
--muted-foreground: 207 10% 40%;
|
|
--studio-blue: #0076a0;
|
|
--studio-muted: #616a6e;
|
|
--studio-rule: #d6e1e7;
|
|
--studio-ink: #173441;
|
|
}
|
|
body {
|
|
background:
|
|
radial-gradient(ellipse at 95% 5%, #e4f2f7 0, transparent 38rem),
|
|
radial-gradient(ellipse at 0 65%, #edf4f8 0, transparent 40rem), #f6f9fc;
|
|
font-family: var(--font-sans);
|
|
}
|
|
::selection {
|
|
background: #c7e5ed;
|
|
color: #163542;
|
|
}
|
|
.site-header {
|
|
background: #f6f9fcf0;
|
|
border-color: #d6e1e780;
|
|
}
|
|
.wordmark-name {
|
|
font-weight: 600;
|
|
letter-spacing: -0.045em;
|
|
}
|
|
.primary-links {
|
|
font-size: 14px;
|
|
}
|
|
.header-dropdown {
|
|
background: #fbfdff;
|
|
box-shadow: 0 14px 40px #17344116;
|
|
}
|
|
.header-dropdown a:hover,
|
|
.header-dropdown a[aria-current="page"] {
|
|
background: #e4eff0;
|
|
}
|
|
.primary-links .header-resume {
|
|
padding: 9px 14px;
|
|
border: 1px solid #0076a030;
|
|
border-radius: 6px;
|
|
background: #0076a009;
|
|
}
|
|
.studio-home {
|
|
padding-top: 28px;
|
|
}
|
|
.studio-home .studio-intro {
|
|
position: relative;
|
|
isolation: isolate;
|
|
overflow: hidden;
|
|
padding: 38px 44px 42px;
|
|
margin-bottom: 44px;
|
|
border: 1px solid #245565;
|
|
border-radius: 22px;
|
|
color: #173441;
|
|
background:
|
|
radial-gradient(ellipse at 100% 110%, #8dc4d1aa, transparent 65%),
|
|
linear-gradient(115deg, #e9f3f1, #cce5e9);
|
|
box-shadow:
|
|
0 14px 40px #1734410c,
|
|
inset 0 1px 0 #ffffff10;
|
|
}
|
|
.contour-lines {
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
pointer-events: none;
|
|
z-index: -1;
|
|
opacity: 0.45;
|
|
}
|
|
.contour-lines path {
|
|
stroke: #92b8bc;
|
|
stroke-width: 1.3;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
.studio-intro .intro-topline {
|
|
color: #496f7b;
|
|
font-size: 11px;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
.studio-intro .intro-main {
|
|
grid-template-columns: minmax(0, 1fr) 145px;
|
|
gap: 32px;
|
|
margin-top: 25px;
|
|
}
|
|
.studio-intro h1 {
|
|
color: #143744;
|
|
font-size: clamp(54px, 6vw, 84px);
|
|
font-weight: 400;
|
|
letter-spacing: -0.04em;
|
|
margin-bottom: 22px;
|
|
}
|
|
.studio-intro h1 span {
|
|
color: #0076a0;
|
|
}
|
|
.studio-intro .intro-statement {
|
|
color: #173b49;
|
|
font-size: 23px;
|
|
line-height: 1.45;
|
|
letter-spacing: -0.025em;
|
|
}
|
|
.studio-intro .intro-statement a {
|
|
color: #006c90;
|
|
text-decoration-color: #0076a080;
|
|
}
|
|
.studio-intro .intro-detail {
|
|
color: #42606a;
|
|
font-size: 15px;
|
|
line-height: 1.8;
|
|
max-width: 590px;
|
|
}
|
|
.studio-intro .intro-links {
|
|
color: #173b49;
|
|
margin-top: 25px;
|
|
}
|
|
.studio-intro .intro-links a {
|
|
font-size: 13px;
|
|
}
|
|
.studio-intro .intro-links a:first-child {
|
|
border: 1px solid #47879b75;
|
|
border-radius: 5px;
|
|
padding: 9px 13px;
|
|
background: #ffffff66;
|
|
}
|
|
.studio-intro .intro-portrait {
|
|
transform: none;
|
|
width: 145px;
|
|
height: 175px;
|
|
border: 6px solid #fff8e9;
|
|
border-radius: 12px;
|
|
box-shadow: 0 14px 30px #071c2630;
|
|
}
|
|
.studio-label,
|
|
.eyebrow {
|
|
letter-spacing: 0.12em;
|
|
color: #54717c;
|
|
font-size: 10px;
|
|
font-weight: 500;
|
|
}
|
|
.studio-section-heading {
|
|
margin-bottom: 22px;
|
|
}
|
|
.studio-section-heading h2 {
|
|
font-family: var(--font-heading), serif;
|
|
font-size: 32px;
|
|
font-weight: 400;
|
|
letter-spacing: -0.025em;
|
|
}
|
|
.studio-section-heading h2 span {
|
|
font-family: var(--font-sans);
|
|
font-size: 11px;
|
|
}
|
|
.studio-grid > article {
|
|
background: #fbfdff;
|
|
padding: 12px 12px 20px;
|
|
border: 1px solid #d6e1e7;
|
|
border-radius: 16px;
|
|
box-shadow: 0 4px 12px #17344104;
|
|
}
|
|
.studio-project-image {
|
|
border-radius: 9px;
|
|
}
|
|
.studio-project-title,
|
|
.studio-project-description,
|
|
.studio-stack {
|
|
margin-left: 8px;
|
|
margin-right: 8px;
|
|
}
|
|
.studio-project-title h3 {
|
|
font-size: 23px;
|
|
letter-spacing: -0.035em;
|
|
font-weight: 500;
|
|
}
|
|
.studio-grid .justice-paragraph {
|
|
margin-inline: 8px;
|
|
}
|
|
.studio-hadlock {
|
|
background: linear-gradient(120deg, #e3eceb, #eef0e6);
|
|
border: 1px solid #ccd8d5;
|
|
border-radius: 18px;
|
|
padding: 32px;
|
|
}
|
|
.studio-hadlock > img {
|
|
border-radius: 10px;
|
|
}
|
|
.studio-about {
|
|
padding-top: 20px;
|
|
}
|
|
.corner-card {
|
|
background: #fbfdff;
|
|
border: 1px solid #d6e1e7;
|
|
box-shadow: 0 5px 16px #17344106;
|
|
border-radius: 10px;
|
|
}
|
|
.october-corner {
|
|
background: linear-gradient(145deg, #eee6d4, #f9f5e9);
|
|
}
|
|
.studio-contact {
|
|
position: relative;
|
|
isolation: isolate;
|
|
overflow: hidden;
|
|
padding: 36px;
|
|
margin: 40px 0 44px;
|
|
border: 1px solid #245565;
|
|
border-radius: 18px;
|
|
background:
|
|
radial-gradient(ellipse at 90% 120%, #0076a065, transparent 70%), #173b49;
|
|
color: #fff8e9;
|
|
}
|
|
.studio-contact .studio-label {
|
|
color: #bdd3d6;
|
|
}
|
|
.studio-contact h2 {
|
|
color: #fff8e9;
|
|
}
|
|
.studio-contact > a {
|
|
color: #bee2e8;
|
|
font-size: 22px;
|
|
}
|
|
.archive-header {
|
|
position: relative;
|
|
padding: 22px 0 30px;
|
|
margin-bottom: 26px;
|
|
border-bottom: 1px solid var(--studio-rule);
|
|
}
|
|
.archive-header h1 {
|
|
color: #173b49;
|
|
}
|
|
.record-body h2,
|
|
.record-body h3 {
|
|
font-weight: 500;
|
|
}
|
|
.document-controls {
|
|
background: #e4ebe8;
|
|
}
|
|
.document-paper {
|
|
background: linear-gradient(135deg, #e4e8e2, #eeebe2);
|
|
}
|
|
.document-switch button[aria-pressed="true"] {
|
|
background: #173b49;
|
|
}
|
|
.site-footer {
|
|
color: #616a6e;
|
|
}
|
|
@media (max-width: 700px) {
|
|
.studio-home {
|
|
padding-top: 18px;
|
|
}
|
|
.studio-home .studio-intro {
|
|
padding: 26px 24px 30px;
|
|
border-radius: 16px;
|
|
margin-bottom: 32px;
|
|
}
|
|
.studio-intro .intro-main {
|
|
display: block;
|
|
margin-top: 20px;
|
|
}
|
|
.studio-intro h1 {
|
|
font-size: clamp(42px, 10.5vw, 65px);
|
|
}
|
|
.studio-intro .intro-statement {
|
|
font-size: 20px;
|
|
}
|
|
.studio-intro .intro-detail {
|
|
font-size: 14px;
|
|
}
|
|
.studio-intro .intro-portrait {
|
|
width: 70px;
|
|
height: 84px;
|
|
margin-top: 24px;
|
|
border-width: 4px;
|
|
border-radius: 8px;
|
|
}
|
|
.studio-intro .intro-topline {
|
|
font-size: 9px;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.studio-grid {
|
|
gap: 24px;
|
|
}
|
|
.studio-project-title {
|
|
flex-wrap: wrap;
|
|
}
|
|
.studio-hadlock {
|
|
padding: 24px;
|
|
}
|
|
.studio-contact {
|
|
padding: 28px 24px;
|
|
}
|
|
.studio-contact > a {
|
|
font-size: 19px;
|
|
}
|
|
.primary-links .header-resume {
|
|
top: 10px;
|
|
padding: 9px 12px;
|
|
}
|
|
}
|
|
.contour-lines {
|
|
opacity: 0.3;
|
|
mask-image: linear-gradient(120deg, transparent 25%, #000 75%);
|
|
}
|
|
|
|
/* The hero is a full-width backdrop, not an inset card. */
|
|
.studio-home {
|
|
padding-top: 0;
|
|
}
|
|
.studio-home .studio-intro {
|
|
overflow: visible;
|
|
isolation: isolate;
|
|
background: none;
|
|
border: 0;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
padding: 44px 0 48px;
|
|
}
|
|
.studio-home .studio-intro::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset-block: 0;
|
|
left: calc((100% - 100vw) / 2);
|
|
width: 100vw;
|
|
z-index: -2;
|
|
background:
|
|
radial-gradient(ellipse at 100% 110%, #8dc4d1aa, transparent 65%),
|
|
linear-gradient(115deg, #e9f3f1, #cce5e9);
|
|
}
|
|
.studio-intro > .contour-lines {
|
|
left: calc((100% - 100vw) / 2);
|
|
width: 100vw;
|
|
}
|
|
.studio-intro > .contour-lines path { stroke: #468ca0; }
|
|
@media (max-width: 700px) {
|
|
.studio-home .studio-intro {
|
|
padding: 30px 0 36px;
|
|
border-radius: 0;
|
|
}
|
|
}
|
|
|
|
/* Shared product branding over the existing product imagery. */
|
|
.studio-product-logo {
|
|
background: radial-gradient(ellipse at center, #071c2660, #071c261c 75%);
|
|
}
|
|
.studio-product-logo img {
|
|
filter: drop-shadow(0 2px 3px #0009) drop-shadow(0 8px 18px #0008);
|
|
}
|
|
.beenvoice-logo img {
|
|
width: 55%;
|
|
filter: brightness(0) invert(1) drop-shadow(0 2px 3px #0009) drop-shadow(0 8px 18px #0008);
|
|
}
|
|
.mobile-menu-label,
|
|
.primary-links .header-dropdown .mobile-menu-link {
|
|
display: none;
|
|
}
|
|
.nav-inner { flex-wrap: nowrap; }
|
|
@media (max-width: 700px) {
|
|
.nav-inner {
|
|
height: 64px;
|
|
gap: 12px;
|
|
flex-wrap: nowrap;
|
|
}
|
|
.nav-inner > .wordmark { flex-shrink: 0; }
|
|
.primary-links {
|
|
width: auto;
|
|
gap: 12px;
|
|
}
|
|
.primary-links > a:not(.header-resume),
|
|
.desktop-menu-label { display: none; }
|
|
.mobile-menu-label { display: inline; }
|
|
.primary-links .header-resume {
|
|
position: static;
|
|
order: -1;
|
|
padding: 9px 0;
|
|
border: 0;
|
|
background: none;
|
|
}
|
|
.header-background summary {
|
|
min-height: 44px;
|
|
gap: 5px;
|
|
}
|
|
.header-dropdown { right: 0; }
|
|
.primary-links .header-dropdown .mobile-menu-link { display: block; }
|
|
.studio-home section[id], .record-section { scroll-margin-top: 84px; }
|
|
}
|
|
@media (max-width: 360px) {
|
|
.nav-inner, .primary-links { gap: 8px; }
|
|
}
|
|
|
|
/* Brand marks share a centered, shadowed treatment. */
|
|
.manyangles-lockup {
|
|
inset: 0;
|
|
justify-content: center;
|
|
align-items: center;
|
|
padding: 0;
|
|
background: radial-gradient(ellipse at center, #071c2660, #071c261c 75%);
|
|
}
|
|
.manyangles-lockup svg,
|
|
.manyangles-lockup span {
|
|
filter: drop-shadow(0 2px 3px #0009) drop-shadow(0 8px 18px #0008);
|
|
}
|
|
.hadlock-brand img { width: min(100%, 340px); height: auto; }
|
|
|
|
/* Personal postcards: photographs, editorial captions, a playful calendar. */
|
|
.personal-corners { padding-block: 20px 32px; }
|
|
.corners-grid { gap: 22px; align-items: stretch; }
|
|
.corner-card {
|
|
position: relative;
|
|
isolation: isolate;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-end;
|
|
min-height: 350px;
|
|
padding: 26px;
|
|
overflow: hidden;
|
|
border: 1px solid #ffffff40;
|
|
border-radius: 14px;
|
|
background: #173b49;
|
|
box-shadow: 0 12px 26px #17344116;
|
|
color: #fff8e9;
|
|
}
|
|
.corner-card > img {
|
|
position: absolute;
|
|
inset: 0;
|
|
height: 100%;
|
|
z-index: -2;
|
|
transition: transform 400ms ease;
|
|
}
|
|
.corner-card::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: -1;
|
|
background: linear-gradient(180deg, #102e3c00 15%, #102e3c55 45%, #102e3cf5);
|
|
}
|
|
.corner-card::after {
|
|
content: "↗";
|
|
position: absolute;
|
|
top: 18px;
|
|
right: 18px;
|
|
display: grid;
|
|
place-items: center;
|
|
width: 34px;
|
|
height: 34px;
|
|
border: 1px solid #fff8e960;
|
|
border-radius: 50%;
|
|
background: #102e3c30;
|
|
}
|
|
.corner-card:hover > img { transform: scale(1.04); }
|
|
.corner-card:focus-visible { outline: 3px solid var(--studio-blue); outline-offset: 5px; }
|
|
.corner-card > span {
|
|
margin: 0 0 10px;
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-size: 32px;
|
|
line-height: 1.1;
|
|
font-weight: 400;
|
|
}
|
|
.corner-card > p { margin: 0; color: #e2e9e6; font-size: 13px; line-height: 1.65; }
|
|
.october-corner {
|
|
background: radial-gradient(ellipse at 100% 0, #f0d9a4, transparent 70%), #e5b88b;
|
|
color: #623719;
|
|
}
|
|
.october-corner::before { background: repeating-linear-gradient(0deg, transparent 0 31px, #6237190a 31px 32px); }
|
|
.october-corner::after { border-color: #62371950; background: #fff8e930; }
|
|
.october-corner > p { color: #744f32; }
|
|
.october-stamp { background: none; height: auto; flex: 1; min-height: 170px; padding-bottom: 24px; }
|
|
.october-stamp strong { font-size: 82px; }
|
|
.october-stamp > span { font-size: 13px; letter-spacing: .3em; }
|
|
.october-stamp small { margin-top: 8px; }
|
|
|
|
/* The closing band echoes the full-bleed hero. */
|
|
.studio-contact {
|
|
overflow: visible;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: none;
|
|
padding: 48px 0;
|
|
margin: 24px 0 0;
|
|
}
|
|
.site-footer::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset-block: 0;
|
|
left: calc((100% - 100vw) / 2);
|
|
width: 100vw;
|
|
z-index: -2;
|
|
background: radial-gradient(ellipse at 100% 110%, #0076a073, transparent 65%), linear-gradient(115deg, #102e3c, #1c4b5b);
|
|
}
|
|
.site-footer > .contour-lines { left: calc((100% - 100vw) / 2); width: 100vw; }
|
|
.site-footer { position: relative; isolation: isolate; color: #fff8e9; padding-top: 0; padding-bottom: 28px; }
|
|
.site-footer .footer-top { border-top-color: #b9d4d438; padding-block: 28px; align-items: flex-start; }
|
|
.site-footer .wordmark { flex-shrink: 0; }
|
|
.site-footer .footer-links { max-width: 660px; gap: 12px 22px; color: #c0d1d6; line-height: 1.8; }
|
|
.site-footer .footer-bottom { color: #a5bec6; padding-top: 8px; }
|
|
.site-footer a:hover { color: #fff; }
|
|
@media (max-width: 700px) {
|
|
.corners-grid { gap: 18px; }
|
|
.corner-card { display: flex; min-height: 310px; padding: 26px; }
|
|
.corner-card > img { height: 100%; }
|
|
.corner-card > span { align-self: auto; }
|
|
.corner-card > p { margin: 0; }
|
|
.october-stamp { height: auto; min-height: 150px; }
|
|
.october-stamp strong { font-size: 76px; }
|
|
.studio-contact { padding: 36px 0; }
|
|
.site-footer .footer-top { flex-direction: column; gap: 20px; }
|
|
}
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.corner-card, .corner-card > img { transition: none; }
|
|
}
|
|
.hadlock-brand img { filter: brightness(0) saturate(100%) invert(16%) sepia(20%) saturate(1477%) hue-rotate(154deg) brightness(91%) contrast(89%); }
|
|
|
|
/* Responsive composition of the shadcn navigation primitives. */
|
|
.header-desktop-navigation { flex: 0 1 auto; }
|
|
.header-mobile-navigation { display: none; align-items: center; gap: 4px; }
|
|
@media (max-width: 700px) {
|
|
.header-desktop-navigation { display: none; }
|
|
.header-mobile-navigation { display: flex; }
|
|
}
|
|
/* Tailwind 3 equivalents for the registry's Tailwind 4 menu tokens. */
|
|
[data-slot="dropdown-menu-content"] {
|
|
max-height: var(--radix-dropdown-menu-content-available-height);
|
|
transform-origin: var(--radix-dropdown-menu-content-transform-origin);
|
|
background: hsl(var(--popover) / .98);
|
|
}
|
|
[data-slot="dropdown-menu-item"] { min-height: 44px; font-size: 13px; outline: none; }
|
|
[data-slot="dropdown-menu-item"][data-highlighted],
|
|
[data-slot="dropdown-menu-item"][aria-current="page"] {
|
|
background: hsl(var(--accent));
|
|
color: hsl(var(--accent-foreground));
|
|
}
|
|
:root {
|
|
--popover: 48 100% 99%;
|
|
--popover-foreground: 205 34% 16%;
|
|
--accent: 190 20% 91%;
|
|
--accent-foreground: 199 47% 20%;
|
|
}
|
|
|
|
/* One proportional logo height, independent of each wordmark's width. */
|
|
.studio-project-image {
|
|
container-type: inline-size;
|
|
--project-logo-height: 8cqw;
|
|
}
|
|
.studio-product-logo img,
|
|
.beenvoice-logo img {
|
|
width: auto;
|
|
height: var(--project-logo-height);
|
|
max-width: 84%;
|
|
object-fit: contain;
|
|
}
|
|
.manyangles-lockup { gap: 2cqw; }
|
|
.manyangles-lockup svg {
|
|
width: var(--project-logo-height);
|
|
height: var(--project-logo-height);
|
|
max-width: none;
|
|
}
|
|
.manyangles-lockup span {
|
|
/* Match visible capital height to the SVG wordmarks. */
|
|
font-size: 10.5cqw;
|
|
line-height: 1;
|
|
}
|
|
|
|
/* Contact and footer use a single shared backdrop. */
|
|
.site-footer .studio-contact { margin: 0; scroll-margin-top: 84px; }
|
|
|
|
/* The page heading already separates the writing list from its introduction. */
|
|
.writing-page .record-row:first-child { border-top: 0; padding-top: 0; }
|
|
|
|
/* Archive previews use the same proportional logo system as the homepage. */
|
|
.archive-image { container-type: inline-size; --project-logo-height: 8cqw; }
|
|
.archive-image > img { object-fit: contain; object-position: center; }
|
|
.archive-image--photo > img { object-fit: cover; }
|
|
|
|
/* September 10's full-width mobile header panel. */
|
|
.restored-header-menu {
|
|
width: 100vw;
|
|
border-radius: 0;
|
|
padding: 16px 20px;
|
|
background: hsl(var(--background) / .96);
|
|
backdrop-filter: blur(18px);
|
|
border-top: 1px solid hsl(var(--border) / .5);
|
|
}
|
|
.restored-header-menu [data-slot="dropdown-menu-item"] {
|
|
gap: 12px;
|
|
padding-inline: 12px;
|
|
}
|
|
.restored-header-menu [data-slot="dropdown-menu-item"] svg { width: 16px; height: 16px; }
|
|
|
|
.mobile-menu-backdrop {
|
|
position: fixed;
|
|
inset: 64px 0 0;
|
|
z-index: 40;
|
|
background: linear-gradient(180deg, #f6f9fc10, #f6f9fc8c 70%);
|
|
-webkit-backdrop-filter: blur(14px);
|
|
backdrop-filter: blur(14px);
|
|
-webkit-mask-image: linear-gradient(180deg, transparent, #000 42%);
|
|
mask-image: linear-gradient(180deg, transparent, #000 42%);
|
|
}
|
|
@media (min-width: 701px) {
|
|
.mobile-menu-backdrop { display: none; }
|
|
}
|
|
|
|
/* Portrait beside the introduction on tablets, above the name on phones. */
|
|
@media (min-width: 541px) and (max-width: 900px) {
|
|
.studio-intro .intro-main {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) 110px;
|
|
align-items: start;
|
|
gap: 24px;
|
|
}
|
|
.studio-intro .intro-portrait {
|
|
width: 110px;
|
|
height: 133px;
|
|
margin-top: 0;
|
|
border-width: 4px;
|
|
}
|
|
}
|
|
@media (max-width: 540px) {
|
|
.studio-intro .intro-main {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 18px;
|
|
}
|
|
.studio-intro .intro-portrait {
|
|
order: -1;
|
|
width: 64px;
|
|
height: 77px;
|
|
margin: 0;
|
|
border-width: 3px;
|
|
}
|
|
}
|
|
|
|
/* Editorial treatment for the media, writing, and work archives. */
|
|
.media-page .archive-header,
|
|
.writing-page .archive-header,
|
|
.portfolio-page .archive-header {
|
|
border-bottom: 0;
|
|
margin-bottom: 28px;
|
|
padding-bottom: 8px;
|
|
}
|
|
.media-page .archive-header > p:last-child,
|
|
.writing-page .archive-header > p:last-child,
|
|
.portfolio-page .archive-header > p:last-child {
|
|
max-width: 700px;
|
|
font-size: 17px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.media-feature {
|
|
position: relative;
|
|
isolation: isolate;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
min-height: 400px;
|
|
overflow: hidden;
|
|
padding: 32px 38px 36px;
|
|
border-radius: 16px;
|
|
color: #fff8e9;
|
|
background: radial-gradient(ellipse at 100% 100%, #0076a080, transparent 58%), linear-gradient(115deg, #102e3c, #1c4b5b);
|
|
}
|
|
.media-feature .contour-lines { left: 20%; width: 80%; }
|
|
.media-feature-top,
|
|
.media-story-top,
|
|
.media-story-bottom {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
}
|
|
.media-feature-top,
|
|
.media-story-top { font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }
|
|
.media-feature-top { color: #bad2d8; }
|
|
.media-feature-bottom { max-width: 770px; }
|
|
.media-feature h2 {
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-size: clamp(42px, 5.2vw, 70px);
|
|
font-weight: 400;
|
|
line-height: 1.03;
|
|
letter-spacing: -.035em;
|
|
text-wrap: balance;
|
|
}
|
|
.media-feature p { max-width: 610px; margin-top: 17px; font-size: 15px; line-height: 1.65; color: #d1e0e1; }
|
|
.media-feature a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-top: 25px;
|
|
padding-bottom: 6px;
|
|
border-bottom: 1px solid #b9d4d48c;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
}
|
|
.media-feature a:hover { color: #b7e1e8; }
|
|
.media-story-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
|
|
.media-story {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 335px;
|
|
padding: 28px 30px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 14px;
|
|
background: #fbfdff;
|
|
}
|
|
.media-story-top { color: #54717c; }
|
|
.media-story-top svg { flex-shrink: 0; }
|
|
.media-story h2 {
|
|
margin-top: 38px;
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-size: clamp(27px, 3vw, 39px);
|
|
font-weight: 400;
|
|
line-height: 1.13;
|
|
letter-spacing: -.025em;
|
|
text-wrap: balance;
|
|
}
|
|
.media-story h2 a:hover { color: var(--studio-blue); }
|
|
.media-story > p { margin-top: 14px; color: var(--studio-muted); font-size: 14px; line-height: 1.65; }
|
|
.media-story-bottom {
|
|
margin-top: auto;
|
|
padding-top: 25px;
|
|
font-size: 12px;
|
|
color: var(--studio-muted);
|
|
}
|
|
.media-story-bottom a { color: var(--studio-blue); white-space: nowrap; }
|
|
.media-story-bottom a:hover { text-decoration: underline; text-underline-offset: 4px; }
|
|
|
|
.writing-page .record-section {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 18px;
|
|
margin: 0;
|
|
}
|
|
.writing-page .writing-entry {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 22px;
|
|
min-height: 275px;
|
|
padding: 30px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 14px;
|
|
background: #fbfdff;
|
|
}
|
|
.writing-page .writing-entry:first-child {
|
|
position: relative;
|
|
isolation: isolate;
|
|
grid-column: 1 / -1;
|
|
min-height: 350px;
|
|
padding: 38px;
|
|
overflow: hidden;
|
|
border: 0;
|
|
color: #fff8e9;
|
|
background: radial-gradient(ellipse at 100% 100%, #0076a080, transparent 62%), linear-gradient(115deg, #102e3c, #1c4b5b);
|
|
}
|
|
.writing-entry .record-meta { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
|
|
.writing-entry:first-child .record-meta { color: #bbd1d5; }
|
|
.writing-entry .record-body { display: flex; flex-direction: column; flex: 1; max-width: none; }
|
|
.writing-entry .record-body h2 {
|
|
max-width: 630px;
|
|
margin: 0;
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-size: clamp(29px, 3vw, 39px);
|
|
font-weight: 400;
|
|
line-height: 1.14;
|
|
letter-spacing: -.025em;
|
|
}
|
|
.writing-entry:first-child .record-body h2 { font-size: clamp(44px, 5vw, 65px); }
|
|
.writing-entry .record-body h2 a:hover { color: var(--studio-blue); }
|
|
.writing-entry:first-child .record-body h2 a:hover { color: #b7e1e8; }
|
|
.writing-entry .record-body > p { margin: 12px 0 0; font-size: 14px; line-height: 1.7; }
|
|
.writing-entry:first-child .record-body > p { max-width: 540px; color: #d2e1e3; }
|
|
.writing-entry .record-body .record-kicker { margin-top: 15px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
|
|
.writing-entry:first-child .record-body .record-kicker { color: #a9c7cd; }
|
|
.writing-entry-link { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; margin-top: auto; padding-top: 22px; color: var(--studio-blue); font-size: 13px; font-weight: 600; }
|
|
.writing-entry:first-child .writing-entry-link { color: #fff8e9; }
|
|
.writing-entry-link:hover { text-decoration: underline; text-underline-offset: 4px; }
|
|
|
|
.article-page { max-width: 820px; margin-inline: auto; }
|
|
.article-page > .parent-page-link { margin-bottom: 35px; }
|
|
.article-page-header { border-bottom: 1px solid var(--studio-rule); padding-bottom: 35px; margin-bottom: 42px; }
|
|
.article-page-header h1 {
|
|
margin: 14px 0 16px;
|
|
font-family: var(--font-heading), Georgia, serif;
|
|
font-size: clamp(45px, 6vw, 74px);
|
|
font-weight: 400;
|
|
line-height: 1.05;
|
|
letter-spacing: -.035em;
|
|
text-wrap: balance;
|
|
}
|
|
.article-page-summary { max-width: 680px; font-size: 19px; line-height: 1.55; color: var(--studio-muted); }
|
|
.article-page-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 25px; color: var(--studio-muted); font-size: 12px; }
|
|
.article-page-tags { display: flex; flex-wrap: wrap; gap: 7px; }
|
|
.article-page-body { max-width: 730px; color: var(--studio-ink); font-size: 16px; line-height: 1.85; }
|
|
.article-page-body.prose h2,
|
|
.article-page-body.prose h3 { font-family: var(--font-heading), Georgia, serif; font-weight: 400; letter-spacing: -.02em; }
|
|
.article-page-body.prose h2 { font-size: 36px; }
|
|
.article-page-body.prose h3 { font-size: 29px; }
|
|
.article-page-body pre { overflow-x: auto; border-radius: 10px; }
|
|
.article-page-body img { max-width: 100%; height: auto; border-radius: 8px; }
|
|
.article-page-return { display: inline-block; margin-top: 50px; padding-top: 20px; border-top: 1px solid var(--studio-rule); color: var(--studio-blue); font-size: 13px; }
|
|
|
|
.portfolio-page .archive-header { margin-bottom: 14px; }
|
|
.portfolio-page .project-tools {
|
|
gap: 12px;
|
|
margin-bottom: 42px;
|
|
padding: 13px;
|
|
border: 1px solid var(--studio-rule);
|
|
border-radius: 12px;
|
|
background: #fbfdff;
|
|
}
|
|
.portfolio-page .project-tools label { position: relative; min-width: 260px; }
|
|
.portfolio-page .project-tools label > svg { position: absolute; top: 50%; left: 14px; transform: translateY(-50%); color: #67808a; }
|
|
.portfolio-page .project-tools input { margin: 0; padding: 11px 13px 11px 41px; border-color: transparent; background: #f4f5f0; }
|
|
.portfolio-page .project-tools input:focus { outline: 2px solid var(--studio-blue); outline-offset: 2px; }
|
|
.portfolio-page .project-tools > p { padding: 0 5px; white-space: nowrap; }
|
|
.portfolio-page .project-filters button { border-radius: 6px; }
|
|
.portfolio-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin: 0 0 22px; }
|
|
.portfolio-section-heading span { order: 2; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #54717c; }
|
|
.portfolio-section-heading h2 { font-family: var(--font-heading), Georgia, serif; font-size: clamp(32px, 3vw, 43px); line-height: 1.1; font-weight: 400; }
|
|
.portfolio-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
|
|
.portfolio-page .archive-card--featured {
|
|
padding: 12px;
|
|
border-radius: 16px;
|
|
background: #fbfdff;
|
|
box-shadow: 0 6px 18px #17344108;
|
|
}
|
|
.archive-card--featured .archive-image { border-radius: 9px; aspect-ratio: 1.62; }
|
|
.archive-card--featured .archive-body { padding: 20px 9px 10px; }
|
|
.archive-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
|
|
.archive-card-heading h2 { font-family: var(--font-heading), Georgia, serif; font-size: 31px; font-weight: 400; letter-spacing: -.025em; }
|
|
.archive-card-heading > span { font-size: 11px; color: #67808a; }
|
|
.portfolio-page .archive-body > p { margin-top: 10px; line-height: 1.6; }
|
|
.portfolio-page .project-tags { gap: 6px; margin-top: 19px; }
|
|
.portfolio-page .project-tags span { padding: 5px 8px; border: 0; border-radius: 4px; background: #eef1ec; font-size: 10px; color: #54717c; }
|
|
.portfolio-page .archive-links { display: flex; gap: 12px 25px; flex-wrap: wrap; margin-top: 22px; }
|
|
.portfolio-page .project-detail { border-top: 1px solid var(--studio-rule); margin-top: 20px; padding-top: 10px; }
|
|
.portfolio-page .project-detail summary { padding: 5px 0; }
|
|
.portfolio-more { margin-top: 65px; }
|
|
.portfolio-more-list { border-top: 1px solid var(--studio-rule); }
|
|
.portfolio-page .archive-card--compact {
|
|
display: grid;
|
|
grid-template-columns: 174px minmax(0, 1fr);
|
|
gap: 25px;
|
|
padding: 20px 0;
|
|
border: 0;
|
|
border-bottom: 1px solid var(--studio-rule);
|
|
border-radius: 0;
|
|
background: none;
|
|
}
|
|
.archive-card--compact .archive-image { aspect-ratio: 1.6; align-self: start; border-radius: 8px; }
|
|
.archive-image--fallback { display: grid; place-items: center; padding: 15px; background: radial-gradient(ellipse at 100% 100%, #0076a080, transparent 70%), #173b49; color: #fff8e9; }
|
|
.archive-image--fallback > span { font-family: var(--font-heading), Georgia, serif; font-size: clamp(15px, 2cqw, 24px); line-height: 1.1; text-align: center; }
|
|
.archive-card--compact .archive-body { padding: 0; }
|
|
.archive-card--compact .archive-card-heading h2 { font-size: 27px; }
|
|
.archive-card--compact .archive-body > p { margin-top: 6px; }
|
|
.archive-card--compact .project-tags { margin-top: 14px; }
|
|
.archive-card--compact .archive-links { margin-top: 15px; }
|
|
.archive-card--compact .archive-links { padding-top: 0; }
|
|
.archive-card--compact .project-detail { margin-top: 13px; }
|
|
|
|
@media (max-width: 700px) {
|
|
.media-feature { min-height: 410px; padding: 25px; }
|
|
.media-feature-top { flex-wrap: wrap; gap: 6px 15px; }
|
|
.media-feature h2 { font-size: clamp(42px, 11vw, 57px); }
|
|
.media-story-grid,
|
|
.writing-page .record-section,
|
|
.portfolio-feature-grid { grid-template-columns: 1fr; }
|
|
.media-story { min-height: 310px; padding: 24px; }
|
|
.media-story h2 { margin-top: 28px; }
|
|
.writing-page .writing-entry:first-child { grid-column: auto; min-height: 360px; padding: 28px; }
|
|
.writing-page .writing-entry { min-height: 270px; padding: 25px; }
|
|
.article-page-header h1 { font-size: clamp(43px, 11vw, 62px); }
|
|
.article-page-summary { font-size: 17px; }
|
|
.article-page-body { font-size: 15px; }
|
|
.portfolio-page .project-tools { padding: 12px; }
|
|
.portfolio-page .project-tools label { min-width: 100%; }
|
|
.portfolio-page .project-tools > p { width: 100%; }
|
|
.portfolio-section-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
|
|
.portfolio-section-heading span { order: -1; }
|
|
.portfolio-page .archive-card--compact { grid-template-columns: 100px minmax(0, 1fr); gap: 15px; padding: 18px 0; }
|
|
.archive-card--compact .archive-card-heading h2 { font-size: 22px; }
|
|
.archive-card--compact .archive-body > p { font-size: 13px; }
|
|
.archive-card--compact .project-tags { display: none; }
|
|
.archive-card--compact .archive-links { gap: 9px 15px; }
|
|
.portfolio-more { margin-top: 45px; }
|
|
}
|
|
@media (max-width: 380px) {
|
|
.portfolio-page .archive-card--compact { grid-template-columns: 78px minmax(0, 1fr); }
|
|
.media-story-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
|
|
}
|
|
|
|
/* The site follows the operating system's appearance, including every archive. */
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
color-scheme: dark;
|
|
--background: 202 32% 9%;
|
|
--foreground: 43 30% 94%;
|
|
--card: 201 28% 14%;
|
|
--card-foreground: 43 30% 94%;
|
|
--popover: 201 27% 16%;
|
|
--popover-foreground: 43 30% 94%;
|
|
--primary: 192 65% 66%;
|
|
--primary-foreground: 202 35% 11%;
|
|
--secondary: 201 23% 21%;
|
|
--secondary-foreground: 43 30% 94%;
|
|
--muted: 201 23% 21%;
|
|
--muted-foreground: 194 18% 70%;
|
|
--accent: 198 28% 25%;
|
|
--accent-foreground: 43 30% 94%;
|
|
--border: 198 19% 30%;
|
|
--input: 198 19% 30%;
|
|
--ring: 192 65% 66%;
|
|
--studio-blue: #83d1e5;
|
|
--studio-muted: #afc0c5;
|
|
--studio-rule: #38505a;
|
|
--studio-ink: #f2eee4;
|
|
}
|
|
|
|
body {
|
|
background:
|
|
radial-gradient(ellipse at 95% 5%, #1a3540 0, transparent 38rem),
|
|
radial-gradient(ellipse at 0 65%, #243039 0, transparent 40rem), #101d25;
|
|
color: hsl(var(--foreground));
|
|
}
|
|
::selection { background: #28586b; color: #f8f4e9; }
|
|
.skip-link { background: #1c303a; color: var(--studio-blue); }
|
|
.site-header { background: #142832f0; border-color: var(--studio-rule); }
|
|
.site-header .wordmark, .site-header a { color: hsl(var(--foreground)); }
|
|
.site-header a:hover, .site-header a[aria-current="page"] { color: var(--studio-blue); }
|
|
.restored-header-menu, .header-dropdown { background: #1c303a; color: hsl(var(--foreground)); border-color: var(--studio-rule); }
|
|
.restored-header-menu [data-slot="dropdown-menu-item"] { color: hsl(var(--foreground)); }
|
|
.restored-header-menu [data-slot="dropdown-menu-item"][data-highlighted],
|
|
.header-dropdown a:hover, .header-dropdown a[aria-current="page"] { background: #294451; color: var(--studio-blue); }
|
|
.mobile-menu-backdrop { background: linear-gradient(180deg, #10263010, #102630b8 70%); }
|
|
|
|
.studio-home .studio-intro { color: #fff8e9; }
|
|
.studio-home .studio-intro::before {
|
|
background: radial-gradient(ellipse at 100% 110%, #0076a073, transparent 65%), linear-gradient(115deg, #102e3c, #1c4b5b);
|
|
}
|
|
.studio-intro > .contour-lines path { stroke: #92b8bc; }
|
|
.studio-intro .intro-topline { color: #c0d4d7; }
|
|
.studio-intro h1, .studio-intro .intro-statement, .studio-intro .intro-links { color: #fff8e9; }
|
|
.studio-intro h1 span { color: #91c2ce; }
|
|
.studio-intro .intro-statement a { color: #b3dfe7; text-decoration-color: #8bbacb65; }
|
|
.studio-intro .intro-detail { color: #c0d1d6; }
|
|
.studio-intro .intro-links a:first-child { border-color: #b9d4d45c; background: #ffffff09; }
|
|
|
|
.studio-grid > article, .studio-hadlock, .media-story,
|
|
.writing-page .writing-entry:not(:first-child),
|
|
.portfolio-page .project-tools, .portfolio-page .archive-card--featured,
|
|
.travel-note, .mark-live-header, .mark-choice,
|
|
.section-jumps a, .project-tools input, .control-group button,
|
|
.project-filters button:not([aria-pressed="true"]), .project-empty button {
|
|
background: #1a2b34;
|
|
color: hsl(var(--foreground));
|
|
border-color: var(--studio-rule);
|
|
}
|
|
.studio-hadlock { background: linear-gradient(120deg, #1d3942, #263734); }
|
|
.hadlock-brand img { filter: brightness(0) invert(1); }
|
|
.archive-header h1, .archive-card-heading h2, .article-page-body,
|
|
.record-body h2, .record-body h3 { color: hsl(var(--foreground)); }
|
|
.media-story-top, .portfolio-section-heading span,
|
|
.archive-card-heading > span, .portfolio-page .project-tools label > svg,
|
|
.portfolio-page .project-tags span { color: var(--studio-muted); }
|
|
.portfolio-page .project-tools input { background: #12242e; }
|
|
.portfolio-page .project-tools input::placeholder { color: var(--studio-muted); }
|
|
.portfolio-page .project-tags span { background: #29434c; }
|
|
.mark-large { background: #253842; }
|
|
.mark-reversed { --mark-paper: #16323e; background: #83d1e5; color: #112630; }
|
|
.mark-reversed .name-only-mark > span { color: #112630; }
|
|
.october-corner { background: radial-gradient(ellipse at 100% 0, #774e31, transparent 70%), #573e31; color: #fff1dc; }
|
|
.october-corner::before { background: repeating-linear-gradient(0deg, transparent 0 31px, #fff1dc12 31px 32px); }
|
|
.october-corner::after { border-color: #fff1dc60; }
|
|
.october-corner > p { color: #eed6bd; }
|
|
.document-controls, .document-switch { background: #1a2b34; }
|
|
.document-paper { background: linear-gradient(135deg, #1c2c34, #293640); }
|
|
.document-switch button[aria-pressed="true"] { background: #385d6c; color: #fff; }
|
|
.article-page-body.prose { color: hsl(var(--foreground)); }
|
|
.article-page-body.prose :is(h2, h3, h4, strong, a, blockquote) { color: hsl(var(--foreground)); }
|
|
.article-page-body.prose a { color: var(--studio-blue); }
|
|
.article-page-body.prose code:not(pre code) { color: #cbeaf0; }
|
|
.article-page-body.prose pre { background: #091821; }
|
|
.site-footer::before { background: radial-gradient(ellipse at 100% 110%, #006b8773, transparent 65%), linear-gradient(115deg, #0b202b, #143746); }
|
|
.site-footer .footer-links, .site-footer .footer-bottom { color: #b9cbd0; }
|
|
}
|