/* Modern art direction. Existing content, controls and brand palette. */
.site-header { border-radius: 0; border: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
.brand-mark { border-radius: 50%; font-family: var(--body); font-weight: 500; }
.header-cta { border-radius: 3rem; }
.section-title { font-family: var(--body); font-weight: 500; font-size: clamp(3rem,5.5vw,6.5rem); line-height: 1; letter-spacing: -.065em; }
.section-title em { font-family: var(--display); font-size: 1.15em; line-height: .9; }
.section-index { padding-top: 1.25rem; }
.text-link { min-height: 2.75rem; font-size: .875rem; }
.digital-page .hero { background: var(--paper); color: var(--forest-deep); min-height: max(52rem,100svh); }
.digital-page .hero-copy { min-height: max(52rem,100svh); padding-top: 9rem; padding-bottom: 3rem; }
.digital-page .hero-media { top: 0; right: 0; width: 42%; height: 100%; }
.digital-page .hero-media img { height: 100%; filter: none; object-position: center; }
.digital-page .hero-shade { display: none; }
.digital-page .hero-meta { color: var(--muted); }
.digital-page .hero-meta > span:last-child { color: #e9e6dc; }
.digital-page .hero-role { color: var(--muted); margin-top: clamp(2.5rem,5vh,4rem); font-size: .75rem; }
.digital-page .hero-role span { border-color: var(--line); color: var(--forest); }
.digital-page .hero h1 { position: relative; z-index: 2; max-width: 58%; margin: 1.5rem 0 1rem; font-family: var(--body); font-size: clamp(3.8rem,6.3vw,7.4rem); font-weight: 500; line-height: .9; letter-spacing: -.075em; }
.digital-page .hero h1 em { margin-left: 0; color: var(--clay); font-family: var(--display); font-size: .95em; line-height: .9; }
.digital-hero-intro { max-width: min(32rem,52%); margin-block: .75rem 1.5rem; color: var(--muted); }
.digital-page .hero-actions { display: flex; margin-top: 0; }
.digital-page .hero-actions a { min-width: 12rem; border-color: var(--line); border-radius: 3rem; font-size: .75rem; background: var(--forest); color: var(--paper); }
.digital-page .hero-actions a + a { background: transparent; color: var(--forest); }
.digital-page .hero-actions a:hover { background: var(--clay); color: var(--paper); }
.digital-page .hero-note { display: none; }
.hero-feature { position: absolute; z-index: 3; width: 38%; right: 4%; top: 40%; transform: perspective(1200px) rotateY(-12deg) rotateZ(-5deg); text-decoration: none; box-shadow: 0 3rem 5rem #0005; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.hero-feature img { width: 100%; height: auto; }
.hero-feature > span { display: flex; align-items: center; justify-content: space-between; padding: 1rem; background: var(--forest-deep); color: var(--paper); font-size: .75rem; }
.hero-feature:hover { transform: perspective(1200px) rotateY(0) rotateZ(-1deg) translateY(-.5rem); }
.services { padding-block: 7rem; background: var(--forest-deep); color: var(--paper); }
.services .section-index { border-color: #ffffff2e; color: #c8d0c2; }
.services-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 3rem; align-items: end; margin: 3rem 0 4rem; }
.services-heading h2 { margin: 0; font: 500 clamp(3.5rem,6.4vw,7.4rem)/.92 var(--body); letter-spacing: -.07em; }
.services-heading > p { max-width: 25rem; justify-self: end; color: #c8d0c2; font-size: 1rem; line-height: 1.8; }
.services .micro-label { color: #d7bc8d; }
.services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.service-card { display: flex; min-height: 21rem; flex-direction: column; padding: 2rem; border: 1px solid #ffffff2e; border-radius: 1.5rem; background: #f1eee50a; }
.service-card__number { color: #d7bc8d; font-size: .75rem; font-weight: 600; letter-spacing: .1em; }
.service-card h3 { margin-top: auto; font: 500 clamp(2rem,3vw,3.25rem)/1 var(--display); letter-spacing: -.04em; }
.service-card p { margin-top: 1.25rem; color: #c8d0c2; line-height: 1.75; }
.services-cta { display: inline-flex; min-width: 14rem; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: 3rem; margin-top: 2rem; padding: .85rem 1.2rem; border-radius: 3rem; background: var(--clay); color: var(--paper); font-size: .8rem; font-weight: 600; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; transition: background .3s ease, transform .2s ease; }
.services-cta:hover { background: #b86738; transform: translateY(-2px); }
.digital-intro { grid-template-columns: 1.5fr 1fr; gap: 3rem; padding-block: 6rem; }
.digital-intro__copy { grid-column: 1; margin-top: 2rem; }.digital-intro > .section-aside { grid-column: 2; margin-top: 2rem; max-width: 25rem; justify-self: end; }
.discipline-line { grid-column: 1/-1; margin-top: 0; }
.project-story { background: var(--forest-deep); color: var(--paper); border-bottom: 1px solid #ffffff25; --project-accent: #d7bc8d; }
.project-story--orbit { background: #173a2b; }.project-story--vanta { background: #171915; }
.project-story--aurum { background: #181d18; }.project-story--eclat { background: #24251f; }
.project-copy h2 small { display: block; margin-top: .9rem; font: 500 1rem/1.4 var(--body); letter-spacing: .2em; }
.project-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.project-copy > .project-actions { grid-column: 1; grid-row: 3; margin-top: .5rem; }
.project-actions .text-link,.project-copy .project-actions .text-link { margin-top: 0; font-size: .875rem; }
.project-live { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 3rem; padding: .8rem 1.1rem; border: 1px solid #d7bc8d; border-radius: 999px; background: #d7bc8d; color: #172019; font-size: .875rem; font-weight: 600; text-decoration: none; }
.project-live:hover { background: #efddba; }
.playground { display: grid; grid-template-columns: .85fr 1.4fr; gap: 4rem; align-items: center; padding-block: 6rem; }
.playground-copy h2 { margin: 1.5rem 0; font: 500 clamp(2.5rem,4.2vw,4.5rem)/1.05 var(--body); letter-spacing: -.06em; }
.playground-copy h2 em { font-family: var(--display); font-weight: 400; color: var(--forest); }
.playground-copy > p:not(.micro-label) { max-width: 34rem; font-size: 1rem; line-height: 1.75; }
.playground-note { margin-top: 1rem; color: var(--muted); }
.playground .project-actions { margin-top: 1.75rem; }
.playground-preview { display: block; overflow: hidden; border: 1px solid var(--line); text-decoration: none; background: var(--forest-deep); color: var(--paper); }
.playground-preview img { display: block; width: 100%; height: auto; }
.playground-preview > span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 1.2rem; font-size: .875rem; }
.playground-preview b { font-weight: 400; color: #d7bc8d; }
@media (max-width: 1000px) { .playground { grid-template-columns: 1fr; gap: 2rem; padding-block: 4rem; }.playground-preview { max-width: 100%; } }
.project-wash { display: none; }
.project-layout { grid-template-columns: 1fr; grid-template-rows: auto auto auto; min-height: 0; gap: 2rem; padding-block: 3rem 5rem; }
.project-meta { color: #c8d0c2; border-color: #ffffff30; }
.project-copy { grid-column: 1; grid-row: 2; display: grid; grid-template-columns: 1.3fr 1fr; gap: 1rem 4rem; margin: 0; align-items: start; }
.project-concept { grid-column: 1; grid-row: 1; color: #d7bc8d; }
.project-copy h2 { grid-column: 1; grid-row: 2; margin: 0; font: 500 clamp(3rem,7.3vw,8rem)/.95 var(--body); letter-spacing: -.075em; }
.project-description { grid-column: 2; grid-row: 2; color: #c8d0c2; max-width: none; }
.project-details { grid-column: 2; grid-row: 3; margin: .5rem 0 0; border-color: #ffffff25; }
.project-details div { border-color: #ffffff25; }.project-details dt { color: #d7bc8d; }.project-details dd { color: #c8d0c2; }
.project-copy .text-link { grid-column: 1; grid-row: 3; justify-self: start; margin-top: 1rem; }.project-copy .text-link span { color: #d7bc8d; }
.project-visual { grid-column: 1; grid-row: 3; width: 88%; aspect-ratio: 1.5; margin: 1rem auto 0; }
.project-frame--main { border: 1px solid #ffffff25; box-shadow: 0 2rem 4rem #0004; }
.project-frame--back,.project-frame--front { width: 12%; }.project-frame--back { right: 15%; }
.gallery-controls button { border-radius: 50%; margin-right: .5rem; border: 1px solid #ffffff65; background: transparent; }
.gallery-controls button + button { border-left: 1px solid #ffffff65; }
.archive-bridge { padding-block: 6rem; }.archive-bridge > a { font-family: var(--body); font-size: clamp(2.5rem,4.5vw,5rem); line-height: 1; }.archive-bridge em { font-family: var(--display); }
.toolkit,.process,.about { padding-block: 6rem; }
.toolkit-heading,.process-heading { margin: 3rem 0; }.toolkit-heading .section-title { font-size: clamp(3rem,5.5vw,6rem); }
.toolkit-experience { border: 0; gap: 1rem; }.toolkit-list { gap: .5rem; border: 0; }.toolkit-list button { border: 1px solid var(--line); border-radius: 3rem; min-height: 3.5rem; padding: .8rem 1.2rem; }.toolkit-list button[aria-selected="true"] { padding-left: 1.2rem; background: var(--forest); color: var(--paper); }
.toolkit-panel { border: 1px solid var(--line); }.skill-copy h3 { font-family: var(--body); font-weight: 500; font-size: clamp(2.5rem,3.8vw,4.5rem); line-height: 1; }.skill-copy { padding: 3rem; }
.process-experience { border: 0; }.process-panel { background: var(--forest); color: var(--paper); }.process-panel h3 { font-family: var(--body); font-weight: 500; letter-spacing: -.06em; }.process-panel > p { color: #c8d0c2; }
.about-heading { margin: 3rem 0; }.about-grid { gap: 1rem; }.about-bio { background: var(--forest); }.about-status h3 { font-family: var(--body); font-size: clamp(2.5rem,4vw,4rem); line-height: 1; }
.contact-heading { margin: 3rem 0; }.contact-heading h2 { font-family: var(--body); font-size: clamp(3rem,6vw,7rem); font-weight: 500; line-height: 1; }.contact-heading h2 em { font-family: var(--display); }
.contact-form { border: 0; border-top: 1px solid var(--line); padding-inline: 0; background: transparent; backdrop-filter: none; }
.world-bridge { min-height: 29rem; }.world-bridge__copy strong { font-family: var(--body); font-weight: 500; letter-spacing: -.06em; }.world-bridge__copy strong em { font-family: var(--display); }
.photo-hero { display: flex; flex-direction: column; justify-content: end; min-height: max(48rem,100svh); max-width: none; overflow: hidden; isolation: isolate; color: var(--paper); padding-top: 10rem; padding-bottom: 2rem; background: var(--forest-deep); }
.photo-hero__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; margin: 0; }
.photo-hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 56%; }
.photo-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,#0d2017ed,transparent 80%); }
.photo-hero__copy { grid-template-columns: 1.4fr .6fr; gap: 3rem; padding-bottom: 3rem; }
.photo-hero .micro-label { color: #d2dacb; }.photo-hero h1 { font-family: var(--body); font-size: clamp(5rem,12vw,13rem); font-weight: 500; letter-spacing: -.08em; line-height: .85; }.photo-hero h1 em { font-family: var(--display); color: #e1c9a0; }
.photo-hero__intro { color: #d2dacb; }.photo-hero .text-link span { color: #e1c9a0; }.photo-hero__foot { border-top: 1px solid #ffffff40; padding-top: 1rem; color: #d2dacb; }
.journal-heading { margin-block: 3rem; }.journal-heading h2 { font-family: var(--body); font-weight: 500; font-size: clamp(3rem,5.4vw,6rem); line-height: .98; }.journal-heading h2 em { font-family: var(--display); }
.photo-grid[data-layout="journal"] .photo-item { margin: 0; }.photo-grid[data-layout="journal"] .photo-item:nth-child(6n+1) { grid-column: 2/12; }.photo-grid[data-layout="journal"] .photo-item:nth-child(6n+2) { grid-column: 1/6; }.photo-grid[data-layout="journal"] .photo-item:nth-child(6n+3) { grid-column: 7/-1; margin-top: 6rem; }.photo-grid[data-layout="journal"] .photo-item:nth-child(6n+4) { grid-column: 3/11; }.photo-grid[data-layout="journal"] .photo-item:nth-child(6n+5) { grid-column: 1/6; }.photo-grid[data-layout="journal"] .photo-item:nth-child(6n+6) { grid-column: 7/-1; margin-top: 6rem; }
.journal-views { border: 1px solid var(--line); border-radius: 3rem; padding: .25rem; }.journal-views button { border: 0; border-radius: 3rem; }
.archive-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; }.archive-back { grid-column: 1/-1; }.archive-heading h1 { font-family: var(--body); font-size: clamp(3rem,7vw,8rem); font-weight: 500; letter-spacing: -.065em; line-height: .95; margin: 0; }.archive-heading h1 em { font-family: var(--display); }.archive-heading > p { max-width: 25rem; justify-self: end; }
.archive-grid { gap: 4rem 2rem; }.archive-card__visual { border: 0; background: var(--forest); padding: 1.5rem; }.archive-card__visual > img { box-shadow: 0 1rem 2rem #0003; }.archive-card__name { font-family: var(--body); font-size: 1.7rem; font-weight: 500; }.archive-card__open { border-radius: 3rem; border: 1px solid var(--line); padding: .55rem .85rem; }.archive-contact h2 { font-family: var(--body); font-weight: 500; line-height: .95; font-size: clamp(3rem,7vw,8rem); }
@media (max-width: 1000px) {
 .digital-page .hero h1 { max-width: 58%; font-size: 7.8vw; }.hero-feature { top: 42%; }.digital-page .hero-actions { flex-direction: column; align-items: start; }.digital-page .hero-actions a { width: 15rem; }.digital-hero-intro { max-width: 52%; }.project-copy { gap: 1rem 2rem; }.project-visual { width: 100%; }.skill-copy { padding: 2rem; }.photo-hero__copy { gap: 2rem; }
}
@media (max-width: 800px) {
 .services-heading { grid-template-columns: 1fr; gap: 1.5rem; }.services-heading > p { justify-self: start; }.services-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
 .digital-page .hero,.digital-page .hero-copy { min-height: 0; }.digital-page .hero-copy { padding-top: 8rem; padding-bottom: 22rem; }.digital-page .hero-media { inset: auto 0 0; width: 100%; height: 20rem; }.digital-page .hero-meta > span:last-child { color: var(--muted); }.digital-page .hero-role { margin-top: 2rem; line-height: 1.6; }.digital-page .hero h1 { max-width: 100%; font-size: clamp(3rem,13vw,4.5rem); }.digital-hero-intro { max-width: 100%; margin-bottom: 1.5rem; line-height: 1.65; }.digital-page .hero-actions { flex-direction: row; flex-wrap: wrap; }.digital-page .hero-actions a { min-width: 0; width: auto; gap: 1rem; }.hero-feature { top: auto; bottom: 4rem; right: 9%; width: 80%; }.hero-feature > span { padding: .6rem 1rem; }
 .services { padding-block: 4rem; }.services-heading { margin: 2.5rem 0 3rem; }.services-heading h2 { font-size: clamp(3rem,15vw,4.5rem); }.service-card { min-height: 17rem; padding: 1.5rem; }.service-card h3 { font-size: 2.5rem; }.services-cta { width: 100%; }
 .digital-intro { grid-template-columns: 1fr; padding-block: 4rem; gap: 2rem; }.digital-intro__copy,.digital-intro > .section-aside { grid-column: 1; margin: 0; justify-self: start; }.discipline-line { grid-template-columns: 1fr 1fr; }.discipline-line li:nth-child(3) { padding-left: 0; }
 .project-layout { padding-block: 2rem 3rem; }.project-copy { display: flex; flex-direction: column; gap: 1rem; }.project-copy h2 { font-size: 12vw; }.project-description { max-width: 100%; }.project-details { width: 100%; }.project-copy .text-link { margin-top: 0; }.project-visual { aspect-ratio: 1.25; margin-top: 0; }.project-frame--back,.project-frame--front { width: 18%; }.project-frame--back { right: 21%; }
 .archive-bridge,.toolkit,.process,.about { padding-block: 4rem; }.toolkit-heading,.process-heading { margin: 2.5rem 0; }.toolkit-list { padding-bottom: .5rem; }.skill-copy { padding: 2rem 1.3rem; }.skill-copy h3 { font-size: 2.5rem; }.process-panel h3 { font-size: 2.5rem; }.contact-heading h2 { font-size: 3rem; }.about-status h3 { font-size: 2.7rem; }
 .photo-hero { min-height: max(48rem,100svh); padding-top: 9rem; }.photo-hero__copy { grid-template-columns: 1fr; gap: 2rem; padding-bottom: 2rem; }.photo-hero h1 { font-size: 24vw; }.photo-hero__aside { margin: 0; }.photo-hero__intro { max-width: 18rem; }.photo-hero__image { width: 100%; margin: 0; }.photo-hero__image img { object-position: 58% center; }
 .photo-grid[data-layout="journal"] .photo-item { width: 100%; margin: 0 0 3.5rem; }.photo-grid[data-layout="journal"] .photo-item:nth-child(3n) { width: 85%; margin: 0 0 3.5rem auto; }.journal-heading h2 { font-size: 2.7rem; }.journal-toolbar { gap: .7rem; }
 .archive-heading { grid-template-columns: 1fr; gap: 1.5rem; }.archive-heading h1 { font-size: 13vw; }.archive-heading > p { justify-self: start; }.archive-card__visual { padding: .75rem; }.archive-grid { gap: 2.5rem; }.archive-card__name { font-size: 1.5rem; }.archive-card__open { font-size: .75rem; }.world-bridge__copy strong { font-size: 2.8rem; }
}
.hero-feature { animation: feature-arrive 1.6s cubic-bezier(.16,1,.3,1); }
.photo-hero__image img { animation: photo-arrive 2.2s cubic-bezier(.16,1,.3,1); }
.process-panel .micro-label { color: #d7bc8d; }
@keyframes feature-arrive { from { opacity: .2; transform: perspective(1200px) rotateY(-25deg) rotateZ(-10deg) translateY(4rem); } }
@keyframes photo-arrive { from { transform: scale(1.12); } to { transform: scale(1); } }
@media (max-width: 650px) { .digital-page .hero h1 { font-size: clamp(3rem,13vw,4.5rem); }.digital-page .hero-actions { align-items: stretch; }.digital-page .hero-actions a { flex: 1; min-height: 3.5rem; }.mobile-panel nav a { font-family: var(--body); font-size: clamp(2rem,8.5vw,3.2rem); line-height: 1.2; }.mobile-panel nav .mobile-world-switch { font-family: var(--display); } }
@media (prefers-reduced-motion: reduce) { .hero-feature,.portal-backdrop img { transition: none; }.hero-feature,.photo-hero__image img { animation: none; } }
