/* Portfolio editorial edition — project assets and data are preserved. */
:root {
  color-scheme: light;
  --bg: #f6f7f8;
  --surface: #fff;
  --surface-soft: #eceff0;
  --surface-strong: #f6f7f8;
  --text: #191b1d;
  --muted: #5c6267;
  --line: #dce1e3;
  --accent: #124c50;
  --accent-2: #124c50;
  --accent-3: #52666c;
  --work-card-bg: #edf0f1;
  --radius: 8px;
  --page-gutter: clamp(22px, 4.6vw, 88px);
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
}
html {scroll-padding-top:100px;}
body * {text-shadow:none;}
[hidden] {display:none!important;}
html.is-page-loading .site-header,html.is-page-loading .hero-liquid .hero-copy,html.is-page-loading .hero-liquid h1,html.is-page-loading .hero-liquid .hero-summary,html.is-page-loading .hero-liquid .hero-actions,html.is-page-loading .hero-liquid .hero-index {opacity:1;transform:none;}
h1,h2,h3,h4,h5,h6,.hero-title-primary,.hero-title-secondary,.section-heading h2,.profile-copy h2,.resume-block-heading h3,.card-title,.modal-content h2 {font-family:inherit;}
html.is-page-entered .site-header,html.is-page-entered .hero-copy,html.is-page-entered .hero-liquid h1,html.is-page-entered .hero-liquid .hero-summary,html.is-page-entered .hero-liquid .hero-actions,html.is-page-entered .hero-liquid .hero-index {animation:none;opacity:1;filter:none;}
body {background:var(--bg); color:var(--text); line-height:1.65;}
main {overflow:clip;}
body::selection {background:#b7d1d0; color:#102f30;}
button,a {-webkit-tap-highlight-color:transparent;}
button:focus-visible,a:focus-visible,[tabindex="0"]:focus-visible {outline:3px solid #1b747a; outline-offset:5px;}
button:active,.primary-link:active,.secondary-link:active {transform:scale(.975);}
.site-header {
  position:fixed; inset:0 0 auto; display:grid; grid-template-columns:1fr auto 1fr;
  min-height:82px; padding:16px var(--page-gutter); gap:32px;
  color:#191b1d; background:rgba(246,247,248,.94); border:0;
  transition:background-color 180ms ease, box-shadow 180ms ease;
}
.site-header.is-scrolled {background:rgba(246,247,248,.97); box-shadow:0 8px 30px rgba(20,32,38,.055);}
.brand {gap:10px;}
.brand-mark {width:29px; height:34px;}
.brand-mark img {filter:brightness(0);}
.brand-name {font-size:17px; font-weight:650;}
.nav-links {gap:34px; color:#5c6267; font-size:15px;}
.nav-links a {padding:10px 0; background:none; border:0; border-radius:0;}
.nav-links a::after {display:none;}
.nav-links a:hover,.nav-links a.is-current {color:#124c50; background:none;}
.header-actions {justify-self:end;}
.language-switch {backdrop-filter:none;padding:0; border:0; background:transparent; gap:4px; border-radius:4px;}
.lang-btn {backdrop-filter:none;min-width:44px; min-height:40px; padding:8px; background:transparent; color:#63696d; border-radius:4px; font-size:14px;}
.language-switch.gooey-language-nav .lang-btn.is-active {background:#e5e9ea; color:#152f32; box-shadow:none;}
.gooey-language-visual,.gooey-filter-visual,.gooey-viewer-visual {display:none;}
.language-switch.gooey-language-nav {--gooey-color-1:#b4d9fb;--gooey-color-2:#a6cef5;--gooey-color-3:#c8e4ff;--gooey-color-4:#97c6f2;display:grid;grid-template-columns:repeat(2,50px);gap:4px;width:114px;padding:4px;border:1px solid rgba(153,193,226,.6);border-radius:999px;background:rgba(213,234,252,.161);box-shadow:0 5px 18px rgba(48,91,127,.12);backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);}
.language-switch.gooey-language-nav .lang-btn {height:40px;min-height:40px;border-radius:999px;}
.language-switch.gooey-language-nav .lang-btn.is-active {background:transparent;color:#163c5e;}
.language-switch.gooey-language-nav .gooey-language-visual {display:block;filter:blur(.5px);opacity:.7;}
.language-switch.gooey-language-nav .gooey-language-indicator {left:calc(var(--gooey-left,4px) + (var(--gooey-width,50px) - var(--gooey-height,40px))/2);width:var(--gooey-height,40px);background:rgba(180,217,251,.7);border-radius:50%;}
/* Reflected surroundings and soft rim highlights travel with the selected language. */
.language-switch.gooey-language-nav .gooey-language-indicator {box-shadow:0 2px 7px rgba(89,137,176,.12),inset 0 0 3px rgba(255,255,255,.28);}
.language-switch.gooey-language-nav .gooey-language-indicator::before,
.language-switch.gooey-language-nav .gooey-language-indicator::after {content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:2.5px;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;}
.language-switch.gooey-language-nav .gooey-language-indicator::before {inset:-1px;padding:3px;background:rgba(255,255,255,.08);backdrop-filter:blur(3px) saturate(1.8) brightness(1.12);-webkit-backdrop-filter:blur(3px) saturate(1.8) brightness(1.12);filter:blur(.65px);}
.language-switch.gooey-language-nav .gooey-language-indicator::after {z-index:1;inset:1px;padding:2px;filter:blur(.6px);background:conic-gradient(from 0deg,rgba(255,255,255,.18),rgba(255,255,255,.95) 50deg,rgba(255,255,255,.35) 76deg,transparent 112deg,transparent 150deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.92) 230deg,rgba(255,255,255,.35) 256deg,transparent 292deg,transparent 330deg,rgba(255,255,255,.18));}

.hero.hero-liquid {
  position:relative; display:grid; grid-template-columns:.88fr 1.12fr;
  gap:38px; align-items:center; width:100%; min-height:760px; height:auto;
  padding:140px var(--page-gutter) 96px; background:var(--bg); color:var(--text);
}
.hero.hero-liquid::before,.hero.hero-liquid::after {display:none;}
.hero-liquid .hero-copy {display:block; justify-self:stretch; align-items:flex-start; position:relative; z-index:2; inset:auto; width:100%; max-width:none; margin:0; padding:0; text-align:left; transform:none;}
.hero-liquid h1 {font-family:inherit;margin:0; max-width:none; color:var(--text); font-weight:650; letter-spacing:-.055em; line-height:1.17;}
.hero-title-primary {display:block; font-size:clamp(3.3rem, 5.6vw, 6.7rem); line-height:1.12; font-weight:650; letter-spacing:-.06em;}
.hero-title-secondary {display:block; margin-top:14px; font-size:clamp(2rem, 3.55vw, 4.1rem); line-height:1.26; font-weight:600; color:#191b1d; letter-spacing:-.055em;}
.hero-liquid .hero-summary {text-shadow:none;max-width:470px; margin:30px 0 0; color:#555e63; font-size:clamp(16px, 1.35vw, 20px); font-weight:400; line-height:1.8; transform:none;}
.hero-liquid .hero-actions {display:flex; justify-content:flex-start; gap:22px; margin-top:34px;}
.hero-liquid .primary-link,.hero-liquid .secondary-link {min-width:0; min-height:50px; padding:13px 24px; border:0; border-radius:5px; font-size:15px; font-weight:550;}
.hero-liquid .primary-link {background:#124c50; color:#fff; box-shadow:none;}
.hero-liquid .primary-link:hover {background:#0e3b3e; transform:translateY(-2px);}
.hero-liquid .secondary-link {padding-inline:8px; color:#124c50; background:transparent;}
.hero-liquid .secondary-link:hover {background:#e6edee;}
.hero-artworks {position:relative; width:100%; height:clamp(440px, 44vw, 650px);}
.hero-art {position:absolute; overflow:hidden; padding:0; background:#e2e6e7; border:0; border-radius:4px; text-align:left; transition:transform 500ms var(--ease-out);}
.hero-art img {width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform 900ms var(--ease-out);}
.hero-art-main {top:0; right:0; width:76%; height:83%; background:#150f0c;}
.hero-art-secondary {left:-8%; bottom:0; width:69%; height:47%; background:#e9eff3;}
.hero-art-secondary img {object-position:center top;}
.hero-art > span {position:absolute; bottom:0; left:0; right:0; padding:12px 16px; color:white; background:rgba(16,24,28,.86); font-size:13px; opacity:1; transform:none; transition:opacity 220ms ease,transform 300ms var(--ease-out);}
.hero-art:hover > span,.hero-art:focus-visible > span {opacity:1;transform:none;}
.hero-art:hover img {transform:scale(1.025);}
.hero-liquid .hero-index {transform:none; animation:none; width:auto; max-width:none; position:absolute; left:var(--page-gutter); bottom:30px; right:var(--page-gutter); display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0; padding:0; border:0; font-size:13px;}
.hero-index-item {display:flex; align-items:center; gap:15px;}
.hero-index-item span {color:#60696e; font-size:13px;}
.hero-index-item strong {color:#243338; font-size:13px; font-weight:500;}
.scroll-reveal,.scroll-reveal.is-reveal-pending,.scroll-reveal.is-revealed {opacity:1; transform:none; filter:none;}
.work-section,.archive-section,.profile-section {margin:0; padding:110px var(--page-gutter); scroll-margin-top:82px;}
.work-section {background:#fff;}
.section-heading {display:flex; justify-content:space-between; align-items:end; gap:40px; margin:0 0 56px;}
.section-heading .eyebrow,.profile-copy > .eyebrow {display:none;}
.section-heading h2,.profile-copy h2,.portfolio-footer h2 {margin:0; font-size:clamp(30px, 3.65vw, 56px); line-height:1.25; letter-spacing:-.05em; font-weight:600;}
.section-note {max-width:420px; margin:0; color:#bec8cc; font-size:16px; line-height:1.7;}
.quick-browse.editorial-gallery {width:100%; max-width:none; margin:0; padding:0; height:auto; min-height:0; aspect-ratio:auto; overflow:visible; perspective:none; touch-action:pan-y; border:0; border-radius:0; background:transparent; contain:none;}
.quick-browse.editorial-gallery::before,.quick-browse.editorial-gallery::after {display:none;}
.featured-projects {display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(30px,5.4vw,88px); row-gap:64px; align-items:start;}
.editorial-project {min-width:0;}
.editorial-project:nth-child(2) {padding-top:140px;}
.editorial-project:nth-child(3) {margin-top:-70px;}
.editorial-project:nth-child(4) {padding-top:65px;}
.editorial-project-image {position:relative; display:block; width:100%; height:auto; aspect-ratio:1/1.13; padding:0; overflow:hidden; border:0; border-radius:4px; background:#eaeff1; cursor:pointer;}
.editorial-project:nth-child(2) .editorial-project-image {aspect-ratio:1/1.02;}
.editorial-project:nth-child(3) .editorial-project-image {aspect-ratio:1.24;}
.editorial-project:nth-child(4) .editorial-project-image {aspect-ratio:1.15;}
.editorial-project-image img {width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform 800ms var(--ease-out);}
.editorial-project-image:hover img {transform:scale(1.025);}
.project-image-action {position:absolute; bottom:18px; left:18px; padding:9px 15px; border-radius:4px; background:white; color:#153a3e; font-size:14px; opacity:0; transform:translateY(6px); transition:opacity 200ms ease,transform 300ms var(--ease-out);}
.editorial-project-image:hover .project-image-action,.editorial-project-image:focus-visible .project-image-action {opacity:1;transform:none;}
.editorial-project-caption {padding:22px 0 0;}
.editorial-category {margin:9px 0 0; color:#687278; font-size:14px;}
.editorial-project-caption h3 {margin:0; color:#191b1d; font-size:clamp(22px,2vw,30px); line-height:1.4; letter-spacing:-.035em; font-weight:600;}
.editorial-project-caption h3 button {padding:0; background:none; text-align:left;}
.editorial-project-caption > p:last-child {max-width:580px; margin:12px 0 0; font-size:16px; line-height:1.85; color:#46535b;}
.contact-sheet-heading {display:flex; justify-content:space-between; align-items:end; gap:24px; margin:110px 0 28px;}
.contact-sheet-heading h3 {margin:0; font-size:clamp(24px,2.5vw,36px); letter-spacing:-.04em; font-weight:600;}
.contact-sheet-heading p {margin:10px 0 0; color:#5c666c; font-size:16px;}
.reel-controls {display:flex; gap:8px; flex-shrink:0;}
.reel-controls button {display:grid; place-items:center; min-width:44px; height:44px; padding:0 12px; background:#edf0f1; color:#263a3e; border-radius:4px; font-size:17px; transition:background 180ms ease,transform 140ms ease;}
.reel-controls button[data-reel-action="pause"] {font-size:14px;min-width:60px;}
.reel-controls button:hover {background:#dfe8e9;}
.project-contact-sheet {display:grid; grid-template-rows:repeat(2,180px); grid-auto-flow:column; grid-auto-columns:230px; gap:12px; overflow-x:auto; overscroll-behavior-x:contain; touch-action:pan-x pan-y; scrollbar-width:thin; scrollbar-color:#a8b6ba #f2f4f5; padding-bottom:18px; cursor:grab;}
.project-contact-sheet.is-dragging {cursor:grabbing; user-select:none;}
.contact-sheet-item {position:relative; width:100%; min-width:0; padding:0; overflow:hidden; border:0; border-radius:3px; background:#edf0f1; text-align:left;}
.contact-sheet-item > img {width:100%;height:100%;object-fit:cover;object-position:center top;}
.contact-sheet-caption {position:absolute;bottom:0;left:0;right:0;display:block;padding:9px 11px;background:rgba(16,24,28,.87);color:#fff;font-size:13px;line-height:1.4;}
.contact-sheet-play {position:absolute;top:12px;right:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.94);color:#17484c;font-size:12px;}
.intro-band {display:grid;grid-template-columns:repeat(3,1fr);gap:45px;min-height:0;padding:90px var(--page-gutter) 100px;background:#eef1f2;border:0;}
.intro-title {grid-column:1/-1;max-width:820px;margin:0 0 8px;font-size:clamp(28px,3.4vw,48px);line-height:1.3;letter-spacing:-.05em;font-weight:600;}
.intro-band .metric {padding:0;border:0;background:transparent;box-shadow:none;}
.metric > span {display:none;}
.metric > strong {display:block;color:#27383d;font-size:22px;font-weight:600;}
.metric > p {max-width:370px;margin:15px 0 0;color:#46535b;font-size:16px;line-height:1.85;}
.archive-section {border:0; background:#151c20;color:#f5f7f8;min-height:0;}
.archive-section .section-heading {margin-bottom:50px;}
.archive-grid {display:block;min-height:0;}
.archive-console.capability-console {display:flex;flex-direction:column;gap:8px;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;}
.archive-hover-pill {display:none;}
.archive-node.capability-node {display:grid;grid-template-columns:minmax(180px,1fr) 120px 240px 105px;align-items:center;gap:24px;min-height:110px;padding:17px 22px;border:0;border-radius:5px;background:#1d262b;color:#f5f7f8;text-align:left;box-shadow:none;transform:none;transition:background 220ms ease,transform 350ms var(--ease-out);}
.archive-node::before,.archive-node::after {display:none;}
.archive-node.capability-node:hover,.archive-node.capability-node:focus-visible {background:#29383e;transform:translateX(4px);color:#fff;}
.archive-node strong {font-size:clamp(21px,2vw,29px);font-weight:550;letter-spacing:-.035em;color:inherit;}
.archive-node small {font-size:15px;color:#b9c5ca;}
.archive-preview {display:block;width:240px;height:76px;object-fit:cover;object-position:50% 24%;border-radius:3px;}
.archive-open-label {color:#ccdbdf;font-size:14px;justify-self:end;}
.archive-page-heading {display:flex;align-items:center;gap:20px;margin-bottom:35px;}
.archive-page-heading > span {display:none;}
.archive-page-heading h3 {font-size:32px;margin:0;}
.archive-page-heading small {color:#b8c6cc;font-size:15px;}
.archive-back {position:static;opacity:1;transform:none;visibility:visible;flex-shrink:0;margin:0;padding:10px 16px;border:0;background:#32494f;color:#fff;border-radius:4px;}
.archive-page-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px;}
.archive-work-card.work-card {display:block;height:auto;padding:0;overflow:visible;border:0;border-radius:3px;background:none;box-shadow:none;transform:none;animation:editorial-card-enter 380ms var(--ease-out) backwards;}
.archive-work-card.work-card:hover {background:none;box-shadow:none;transform:none;}
.archive-work-card .card-media {height:270px;aspect-ratio:auto;overflow:hidden;border-radius:4px;background:#263239;}
.archive-work-card .card-media > img {height:100%;width:100%;object-fit:cover;object-position:center top;}
.archive-work-card .card-body {padding:18px 0 0;}
.archive-work-card .card-index {display:none;}
.archive-work-card .card-title {font-size:22px;line-height:1.4;letter-spacing:-.03em;color:#f6f7f8;}
.archive-work-card .card-category {color:#b8c9cf;font-size:14px;}
.archive-work-card .card-description {display:block;-webkit-line-clamp:unset;max-height:none;overflow:visible;color:#c6d1d5;font-size:15px;line-height:1.8;}
.archive-work-card .card-skills {display:flex;flex-wrap:wrap;gap:7px;}
.archive-work-card .skill-chip {padding:4px 8px;border:0;border-radius:3px;background:#2b3b43;color:#d2e0e5;font-size:12px;}
.profile-section {display:grid;grid-template-columns:1.1fr 1fr;gap:60px 70px;border:0;background:#f6f7f8;color:#191b1d;}
.profile-copy p:not(.eyebrow) {max-width:620px;margin-top:25px;color:#57636a;font-size:17px;line-height:1.9;}
.profile-highlights {gap:16px;margin-top:32px;border:0;background:transparent;overflow:visible;}
.profile-highlights > div {min-height:0;padding:18px 0;background:transparent;animation:none!important;}
.profile-highlights span {color:#66757c;font-size:14px;font-weight:400;}
.profile-highlights strong {margin-top:10px;color:#26383f;font-size:17px;line-height:1.5;}
.profile-identity {grid-template-columns:145px 1fr;align-self:start;align-items:center;gap:26px;}
.profile-identity::before {display:none;}
.profile-photo {width:145px;padding:0;margin:0;border:0;border-radius:4px;background:#e7ecee;transform:none;}
.profile-meta div {grid-template-columns:48px 1fr;gap:14px;padding:10px 0;border:0;}
.profile-meta dt {color:#69757b;font-size:14px;}
.profile-meta dd {font-size:15px;font-weight:500;overflow-wrap:anywhere;color:#27383e;}
.profile-meta a {text-decoration:none;}
.resume-grid {grid-template-columns:1fr 1fr;gap:46px 65px;padding-top:12px;border:0;}
.resume-block {display:block;grid-column:auto;min-height:0;padding:0;border:0;border-radius:0;background:transparent;}
.resume-block-wide {grid-column:1/-1;}
.resume-block-heading {padding:0 0 20px;border:0;}
.resume-block-heading > span {display:none;}
.resume-block-heading h3 {color:#223238;font-size:26px;font-weight:600;letter-spacing:-.04em;}
.resume-entry {margin:0 0 30px;}
.resume-entry header {display:flex;flex-direction:column;align-items:start;gap:5px;}
.resume-entry header > span {color:#63747d;font-size:14px;}
.resume-entry header strong {color:#24383f;font-size:17px;font-weight:600;}
.resume-entry p,.resume-entry li {color:#46535b;font-size:16px;line-height:1.85;}
.resume-entry ul {padding-left:20px;}
.skill-stack {display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px;}
.skill-stack > span {min-width:46px;padding:10px 13px;border:0;border-radius:4px;background:#e6ecee;color:#284249;font-size:16px;box-shadow:none;}
.skill-list > div {padding:15px 0;border:0;}
.skill-list dt {color:#253b42;font-size:16px;font-weight:600;}
.skill-list dd {margin:8px 0 0;color:#46535b;font-size:16px;line-height:1.85;}
.portfolio-footer {padding:85px var(--page-gutter) 28px;background:#e5edee;color:#153a3f;}
.portfolio-footer h2 {max-width:1000px;font-size:clamp(28px,3.2vw,48px);}
.contact-link {display:inline-block;margin-top:25px;font-size:clamp(21px,2.4vw,34px);letter-spacing:-.03em;transition:color 180ms ease;}
.contact-link:hover {color:#39808a;}
.footer-meta {display:flex;justify-content:space-between;gap:24px;margin-top:80px;font-size:14px;color:#516a73;}
.modal-panel {border:0;border-radius:12px;background:white;color:#1b252a;box-shadow:0 22px 85px rgba(0,0,0,.25);}
.modal-content {background:#fff;color:#1b252a;}
.modal-content h2 {color:#1b252a;}
.modal-content > p,#modal-description {color:#53636c;}
.modal-kicker {color:#4e747e;}
.modal-close {border:0;background:#eaf0f1;color:#243f48;}
.modal-close:hover {background:#d7e3e6;color:#163a43;}
.modal-skills .skill-chip {border:0;background:#edf2f3;color:#355a65;}
.modal-case {border:0;background:#f2f5f6;color:#263b42;}
.modal-case p {color:#53636b;}
.modal-meta {border:0;color:#53636c;}
.modal-original-link,.modal-report-link {border:0;background:#e7eef0;color:#244c58;}
.gallery-strip {border:0;}
.image-viewer {--text:#fff;--muted:#d2dbe0;--surface:#1b2429;--line:rgba(255,255,255,.2);color:white;}
.video-kind-badge {border:0;background:rgba(17,31,38,.86);color:white;}
@keyframes editorial-card-enter {from {opacity:0;transform:translateY(12px);}to {opacity:1;transform:none;}}
@media (min-width:1500px) {.hero.hero-liquid {min-height:850px;padding-top:145px;padding-bottom:110px;}.hero-artworks {height:650px;}}
@media (max-width:1120px) {
  .site-header {grid-template-columns:1fr auto auto;gap:18px;min-height:74px;}
  .site-header .brand {grid-column:1;grid-row:1;}
  .site-header .header-actions {grid-column:2;grid-row:1;}
  .mobile-nav-toggle {grid-column:3;grid-row:1;display:block;order:3;width:44px;height:44px;border:0;background:#e6ebed;color:#233b44;border-radius:4px;}
  .header-actions {order:2;}
  .nav-links {position:absolute;top:74px;left:var(--page-gutter);right:var(--page-gutter);display:none;padding:18px;background:#edf2f3;border:0;border-radius:5px;color:#253f49;box-shadow:0 18px 35px rgba(20,40,50,.1);}
  .site-header.is-mobile-nav-open .nav-links {display:flex;justify-content:space-around;}
  .hero.hero-liquid {min-height:690px;padding-top:125px;gap:28px;}
  .hero-artworks {height:470px;}
  .hero-title-primary {font-size:clamp(44px,5.5vw,65px);}
  .hero-title-secondary {font-size:clamp(29px,3.3vw,40px);}
  .archive-node.capability-node {grid-template-columns:1fr 90px 160px;}
  .archive-preview {width:160px;}
  .archive-open-label {display:none;}
  .profile-section {grid-template-columns:1fr;}
  .profile-identity {grid-template-columns:145px 1fr;max-width:600px;}
}
@media (max-width:760px) {
  :root {--page-gutter:22px;}
  html {scroll-padding-top:80px;}
  .site-header {min-height:70px;padding-block:12px;gap:10px;}
  .brand-name {font-size:15px;}.brand-mark {width:24px;height:30px;}
  .brand {gap:7px;}.lang-btn {backdrop-filter:none;min-width:38px;font-size:13px;padding-inline:6px;}
  .mobile-nav-toggle {width:40px;height:40px;}
  .nav-links {top:70px;}
  .hero.hero-liquid {display:flex;flex-direction:column;gap:36px;min-height:0;height:auto;padding:120px var(--page-gutter) 86px;align-items:stretch;}
  .hero-liquid .hero-copy {text-align:left;}
  .hero-title-primary {font-size:clamp(40px,10vw,60px);}
  .hero-title-secondary {font-size:clamp(27px,6.8vw,38px);margin-top:10px;line-height:1.3;}
  .hero-liquid .hero-summary {font-size:16px;max-width:520px;margin-top:20px;line-height:1.8;}
  .hero-liquid .hero-actions {gap:16px;margin-top:24px;flex-wrap:nowrap;}
  .hero-liquid .primary-link,.hero-liquid .secondary-link {padding:12px 20px;min-height:48px;font-size:14px;}
  .hero-artworks {height:410px;max-width:540px;align-self:center;width:100%;}
  .hero-art-main {width:78%;height:85%;}
  .hero-art-secondary {left:0;width:73%;height:45%;}
  .hero-liquid .hero-index {bottom:24px;gap:18px;font-size:12px;}
  .hero-index-item {gap:8px;}.hero-index-item span,.hero-index-item strong {font-size:13px;}
  .work-section,.archive-section,.profile-section {padding:70px var(--page-gutter);}
  .section-heading {display:block;margin-bottom:34px;}
  .section-heading h2,.profile-copy h2 {font-size:30px;line-height:1.35;}
  .section-note {max-width:560px;font-size:15px;margin-top:18px;}
  .featured-projects {grid-template-columns:1fr;gap:42px;}
  .editorial-project:nth-child(n) {padding:0;margin:0;}
  .editorial-project:nth-child(n) .editorial-project-image {aspect-ratio:1/1.03;}
  .editorial-project:nth-child(3) .editorial-project-image {aspect-ratio:1.22;}
  .editorial-project:nth-child(4) .editorial-project-image {aspect-ratio:1.12;}
  .editorial-project-caption {padding-top:18px;}
  .editorial-project-caption h3 {font-size:23px;}
  .editorial-project-caption > p:last-child {font-size:16px;line-height:1.85;}
  .editorial-category {font-size:13px;line-height:1.6;}
  .project-image-action {opacity:1;transform:none;font-size:13px;bottom:12px;left:12px;}
  .contact-sheet-heading {align-items:start;flex-direction:column;margin:64px 0 24px;gap:20px;}
  .contact-sheet-heading h3 {font-size:25px;line-height:1.4;}
  .contact-sheet-heading p {font-size:15px;}
  .project-contact-sheet {grid-auto-columns:190px;grid-template-rows:repeat(2,160px);gap:10px;}
  .intro-band {grid-template-columns:1fr;gap:28px;padding:64px var(--page-gutter);}
  .intro-title {font-size:28px;margin:0 0 7px;line-height:1.4;}
  .metric > strong {font-size:21px;}.metric > p {max-width:100%;margin-top:10px;}
  .archive-section .section-heading {margin-bottom:32px;}
  .archive-node.capability-node {grid-template-columns:1fr 65px 85px;gap:12px;min-height:94px;padding:16px 14px;}
  .archive-node strong {font-size:19px;line-height:1.4;}
  .archive-node small {font-size:13px;}
  .archive-preview {width:85px;height:56px;}
  .archive-page-heading {flex-wrap:wrap;gap:16px;}
  .archive-page-heading h3 {font-size:26px;}
  .archive-back {width:100%;text-align:center;}
  .archive-page-grid {grid-template-columns:1fr;gap:32px;}
  .archive-work-card .card-media {height:300px;}
  .profile-section {gap:32px;}
  .profile-copy p:not(.eyebrow) {font-size:16px;line-height:1.9;margin-top:20px;}
  .profile-highlights {gap:18px;margin-top:20px;}
  .profile-highlights strong {font-size:15px;}.profile-highlights > div {padding:8px 0;}
  .profile-identity {grid-template-columns:105px 1fr;gap:20px;}
  .profile-photo {width:105px;}.profile-meta div {gap:8px;grid-template-columns:34px 1fr;padding:7px 0;}
  .profile-meta dt {font-size:13px;}.profile-meta dd {font-size:13px;}
  .resume-grid {grid-template-columns:1fr;gap:32px;padding-top:10px;}
  .resume-block-wide {grid-column:auto;}
  .resume-block-heading h3 {font-size:25px;}.resume-entry header strong {font-size:16px;}
  .portfolio-footer {padding:62px var(--page-gutter) 26px;}
  .portfolio-footer h2 {font-size:28px;line-height:1.4;}
  .footer-meta {font-size:13px;margin-top:54px;gap:14px;}
  .modal-panel {inset:8px;border-radius:8px;}
  .modal-content {padding:26px 22px;}.modal-content h2 {font-size:26px;}
  .modal-media {min-height:280px;padding:14px;}.modal-media img {max-height:48svh;}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  *,*::before,*::after {animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .scroll-reveal,.hero-copy,.hero-artworks,.editorial-project,.archive-work-card {opacity:1!important;transform:none!important;}
}
@media (prefers-reduced-transparency:reduce) {.site-header,.site-header.is-scrolled {background:#f6f7f8;}}
@media (prefers-contrast:more) {body {--muted:#35434b;}.hero-liquid .hero-summary,.editorial-project-caption > p:last-child {color:#26373e;}}

.modal-document-link {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:4px;background:#124c50;color:white;font-size:14px;text-decoration:none;}
.modal-meta {flex-wrap:wrap;gap:16px;}
.reel-controls button:disabled {cursor:default;color:#53636c;}

/* Revision 2 — annotated changes from the portfolio owner. */
.brand-initials {display:flex;align-items:center;justify-content:center;width:35px;height:34px;font-family:Georgia,serif;font-size:24px;letter-spacing:-5px;padding-right:5px;color:#191b1d;}
.hero.hero-liquid {display:grid;grid-template-columns:1fr;place-items:center;min-height:100svh;height:auto;padding:150px var(--page-gutter) 140px;background:#fff;}
.hero-liquid .hero-copy {display:flex;position:relative;inset:auto;justify-self:center;align-items:center;flex-direction:column;width:100%;max-width:1050px;margin:0;text-align:center;transform:none;}
.hero-liquid h1 {max-width:100%;margin:0;transform:none;}
.hero-title-primary {font-size:clamp(30px,4.05vw,64px);font-weight:600;letter-spacing:.06em;line-height:1.25;}
.hero-title-secondary {margin-top:24px;color:#374c63;font-size:clamp(21px,1.83vw,30px);font-weight:400;letter-spacing:.08em;line-height:1.6;}
.hero-liquid .hero-summary {max-width:680px;margin:34px 0 0;color:#3d5367;font-size:17px;line-height:1.9;}
.hero-liquid .hero-actions {justify-content:center;gap:29px;margin-top:54px;}
.liquid-ether-stage {inset:0;width:100%;height:100%;opacity:.78;animation:none!important;transform:none!important;}
.liquid-ether-mount {background:#fff;}
.liquid-ether-mount.is-motion-reduced {background:radial-gradient(ellipse at 25% 35%,#cee6ff,transparent 48%),radial-gradient(ellipse at 80% 70%,#e2f2ff,transparent 45%),#fff;}
.featured-projects {gap:48px;}
.featured-projects .editorial-project:nth-child(n) {position:relative;aspect-ratio:210/297;padding:0;margin:0;overflow:hidden;background:#f6f8fa;border-radius:5px;isolation:isolate;}
.featured-projects .editorial-project-image:nth-child(n) {position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;padding:0;border-radius:0;background:#f6f8fa;}
.featured-projects .editorial-project-image img {position:absolute;inset:18px 18px auto;width:calc(100% - 36px);height:64%;object-fit:contain;object-position:center;}
.featured-projects .editorial-project-image:hover img {transform:none;}
.featured-projects .editorial-project-caption {position:absolute;inset:auto 0 0;z-index:2;min-height:34%;padding:48px 30px 28px;background:linear-gradient(to top,#fff 0%,#fff 76%,rgba(255,255,255,0) 100%);pointer-events:none;}
.featured-projects .editorial-project-caption h3 {font-size:clamp(23px,2vw,30px);}
.editorial-project-caption h3 button {pointer-events:auto;}
.featured-projects .editorial-project-caption > p:last-child {font-size:15px;line-height:1.8;max-width:none;}
.project-image-action {top:20px;bottom:auto;left:20px;}
.three-d-section {margin-top:110px;}
.three-d-section h3 {margin:0 0 28px;font-size:clamp(26px,2.5vw,36px);font-weight:600;letter-spacing:-.04em;}
.three-d-reserved {display:grid;place-items:center;min-height:460px;background:#f7f9fb;border-radius:5px;}
.three-d-reserved p {margin:0;color:#788692;font-size:14px;letter-spacing:.08em;}
.project-contact-sheet {position:relative;width:calc(100% + 2*var(--page-gutter));margin-inline:calc(-1*var(--page-gutter));scrollbar-width:none;scroll-behavior:auto;overflow-y:hidden;}
.project-contact-sheet::-webkit-scrollbar {display:none;}
.contact-sheet-item {transform-origin:center;backface-visibility:hidden;}
.contact-sheet-instructions {margin:0;padding-top:6px;text-align:center;color:#6a777f;font-size:13px;line-height:1.8;}
.archive-node.capability-node:hover,.archive-node.capability-node:focus-visible {background:#fff;color:#172b33;transform:translateX(4px);}
.archive-node.capability-node:hover small,.archive-node.capability-node:focus-visible small {color:#52646d;}
.archive-node.capability-node:hover .archive-open-label,.archive-node.capability-node:focus-visible .archive-open-label {color:#124c50;}
@media (max-width:1120px) {
  .hero.hero-liquid {min-height:100svh;padding-top:140px;padding-bottom:135px;}
  .featured-projects {gap:28px;}
  .featured-projects .editorial-project-image img {height:55%;inset:14px 14px auto;width:calc(100% - 28px);}
  .featured-projects .editorial-project-caption {padding:35px 20px 20px;min-height:43%;}
  .featured-projects .editorial-project-caption h3 {font-size:22px;}
  .featured-projects .editorial-category {font-size:12px;line-height:1.65;}
  .featured-projects .editorial-project-caption > p:last-child {font-size:13px;line-height:1.7;margin-top:8px;}
}
@media (max-width:760px) {
  .hero.hero-liquid {display:grid;gap:0;min-height:100svh;padding:125px var(--page-gutter) 130px;}
  .hero-liquid .hero-copy {text-align:center;}
  .hero-title-primary {font-size:clamp(28px,7vw,46px);letter-spacing:.015em;}
  .hero-title-secondary {font-size:20px;margin-top:20px;letter-spacing:.025em;}
  .hero-liquid .hero-summary {font-size:15px;margin-top:26px;line-height:1.85;}
  .hero-liquid .hero-actions {margin-top:35px;gap:24px;}
  .hero-liquid .hero-index {gap:12px;}
  .hero-index-item {gap:6px;}.hero-index-item span,.hero-index-item strong {font-size:11px;}
  .featured-projects {gap:30px;}
  .featured-projects .editorial-project-image img {height:48%;}
  .featured-projects .editorial-project-caption {min-height:50%;padding:30px 18px 18px;}
  .featured-projects .editorial-project-caption h3 {font-size:22px;line-height:1.3;}
  .featured-projects .editorial-project-caption > p:last-child {font-size:13px;line-height:1.65;}
  .three-d-section {margin-top:70px;}
  .three-d-reserved {min-height:300px;}
  .contact-sheet-instructions {font-size:12px;}
}
@media (prefers-reduced-motion:reduce) {.contact-sheet-item {transform:none!important;}.liquid-ether-stage {opacity:1;}}

.three-d-reserved p {color:#5c6b77;}
.hero-index-item span,.hero-index-item strong {font-size:13px;}
.featured-projects .editorial-project-caption > p:last-child {font-size:16px;}
@media (max-width:1120px) {.featured-projects .editorial-project-caption > p:last-child {font-size:14px;}.featured-projects .editorial-category {font-size:13px;}}
@media (min-width:761px) and (max-width:1000px) {.featured-projects {grid-template-columns:1fr;}.featured-projects .editorial-project-image img {height:64%;}.featured-projects .editorial-project-caption {min-height:34%;padding:48px 30px 28px;}.featured-projects .editorial-project-caption > p:last-child {font-size:16px;}.featured-projects .editorial-project-caption h3 {font-size:28px;}}
@media (max-width:760px) {.featured-projects .editorial-project-caption {padding-top:24px;}.featured-projects .editorial-project-image img {height:45%;}.contact-sheet-instructions {font-size:13px;}}

/* Shared sliding hero control and a true rotating archive. */
.hero-liquid .hero-actions {position:relative;display:grid;grid-template-columns:1fr 1fr;width:320px;max-width:100%;gap:0;padding:5px;border:1px solid #738da1;border-radius:13px;background:transparent;isolation:isolate;}
.hero-liquid .hero-actions::before {content:"";position:absolute;z-index:-1;inset:5px auto 5px 5px;width:calc(50% - 5px);border-radius:9px;background:#087fae;opacity:0;transform:translateX(0);transition:transform 430ms cubic-bezier(.22,1,.36,1),opacity 160ms ease;pointer-events:none;}
.hero-liquid .hero-actions[data-active]::before {opacity:1;}
.hero-liquid .hero-actions[data-active="1"]::before {transform:translateX(100%);}
.hero-liquid .hero-actions .primary-link,.hero-liquid .hero-actions .secondary-link {display:grid;place-items:center;min-width:0;margin:0;padding:13px 18px;background:transparent;border:0;border-radius:9px;color:#174b66;box-shadow:none;transform:none;transition:color 200ms ease;}
.hero-liquid .hero-actions[data-active="0"] .primary-link,.hero-liquid .hero-actions[data-active="1"] .secondary-link {color:#fff;}
.hero-liquid .hero-actions a:active {transform:scale(.98);}
.featured-projects {row-gap:28px;}
.featured-projects .editorial-project:nth-child(n) {aspect-ratio:auto;}
.featured-projects .editorial-project-image:nth-child(n) {position:relative;inset:auto;display:block;aspect-ratio:1.1;height:auto;margin:0;}
.featured-projects .editorial-project-image img {inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);}
.featured-projects .editorial-project-caption {position:relative;inset:auto;min-height:0;margin-top:-12px;padding:24px 28px 20px;background:linear-gradient(to top,#fff 0%,#fff 84%,rgba(255,255,255,0) 100%);}
.project-contact-sheet.orbit-gallery {display:block;height:390px;padding-bottom:18px;overflow:hidden;perspective:calc(var(--orbit-radius,900px)*3.2);perspective-origin:50% 50%;touch-action:pan-y;background:#fff;}
.archive-orbit {position:absolute;left:50%;top:0;width:0;height:372px;transform-style:preserve-3d;will-change:transform;}
.archive-orbit-column {position:absolute;top:0;left:calc(var(--orbit-width,230px)/-2);width:var(--orbit-width,230px);height:372px;display:grid;grid-template-rows:180px 180px;gap:12px;transform:rotateY(var(--orbit-angle)) translateZ(var(--orbit-radius));transform-style:preserve-3d;backface-visibility:hidden;}
.orbit-gallery .contact-sheet-item {position:relative;display:block;width:100%;height:180px;transform:none;backface-visibility:hidden;margin:0;}
.contact-sheet-caption {padding:28px 11px 10px;background:linear-gradient(to top,#fff 0%,rgba(255,255,255,.98) 43%,rgba(255,255,255,0) 100%);color:#151c20;font-weight:500;}
@media (max-width:760px) {
  .hero-liquid .hero-actions {width:300px;}
  .featured-projects .editorial-project-caption {padding:22px 18px 18px;}
  .project-contact-sheet.orbit-gallery {height:348px;}
  .archive-orbit,.archive-orbit-column {height:330px;}
  .archive-orbit-column {grid-template-rows:160px 160px;gap:10px;}
  .orbit-gallery .contact-sheet-item {height:160px;}
}
@media (prefers-reduced-motion:reduce) {
  .hero-liquid .hero-actions::before {transition:none;}
  .project-contact-sheet.orbit-gallery {overflow-x:auto;perspective:none;touch-action:pan-x pan-y;}
  .archive-orbit {position:static;display:flex;gap:12px;width:max-content;transform:none!important;}
  .archive-orbit-column {position:static;transform:none!important;}
}

/* Reference archive: original black cards arranged as vertical strips. */
#archive {background:#000;color:#f8f5fc;}
#archive .section-heading .eyebrow {display:block;margin-bottom:22px;color:#e49cde;font-size:15px;}
#archive .section-heading h2 {font-family:Georgia,"Songti SC","STSong",serif;font-size:clamp(42px,5vw,76px);font-weight:400;letter-spacing:0;}
#archive .section-note {color:#c3b9ce;}
#archive .archive-console {gap:14px;}
#archive .archive-node.capability-node {position:relative;display:grid;grid-template-columns:50px 1fr;grid-template-rows:auto auto;column-gap:24px;row-gap:7px;align-content:center;min-height:136px;margin:0;padding:22px 28px;border:1px solid #29272d;border-radius:17px;background:#000;color:#faf7ff;overflow:hidden;transform:none;transition:background-color 240ms ease,color 240ms ease,border-color 240ms ease;}
#archive .archive-node .archive-number {grid-column:1;grid-row:1/3;align-self:start;padding-top:5px;color:#19a4bf;font-size:17px;font-weight:700;}
#archive .archive-node strong {grid-column:2;grid-row:1;margin:0;position:relative;z-index:1;color:inherit;font-size:clamp(24px,2.3vw,34px);font-weight:650;line-height:1.35;}
#archive .archive-node small {grid-column:2;grid-row:2;position:relative;z-index:1;color:#c3b9ce;font-size:15px;}
#archive .archive-node::after {display:block;position:absolute;inset:auto 22px -9px auto;content:attr(data-ability);font-family:Georgia,"Times New Roman",serif;font-size:clamp(62px,6.8vw,112px);font-weight:500;line-height:1;color:#654261;opacity:.72;z-index:0;pointer-events:none;}
#archive .archive-node:hover,#archive .archive-node:focus-visible {background:#faf6ff;border-color:#faf6ff;color:#16131f;transform:none;}
#archive .archive-node:hover small,#archive .archive-node:focus-visible small,#archive .archive-node:hover .archive-number,#archive .archive-node:focus-visible .archive-number {color:#575060;}
#archive .archive-node:hover::after,#archive .archive-node:focus-visible::after {color:#a49aaa;opacity:.52;}
#archive .archive-page-heading {min-height:0;display:flex;align-items:center;gap:20px;padding:22px 0;margin-bottom:32px;border:0;border-bottom:1px solid #302a35;border-radius:0;background:none;color:#faf7ff;}
#archive .archive-page-heading h3 {color:#faf7ff;}
#archive .archive-page-heading small {color:#c3b9ce;}
#archive .archive-back {position:static;background:#faf6ff;color:#211a2b;border:0;box-shadow:none;}
@media (max-width:760px) {
  #archive .section-heading h2 {font-size:44px;}
  #archive .archive-node.capability-node {grid-template-columns:28px 1fr;column-gap:14px;min-height:124px;padding:20px 18px;border-radius:13px;}
  #archive .archive-node strong {font-size:23px;}
  #archive .archive-node::after {right:12px;bottom:-2px;font-size:55px;opacity:.48;}
  #archive .archive-node small {font-size:14px;}
  #archive .archive-page-heading {gap:14px;}
}

/* Restore the original shared hover pill and its original 520 ms motion. */
#archive .archive-hover-pill {display:block;border-radius:17px;background:#faf6ff;}
#archive .archive-console .archive-node.capability-node,
#archive .archive-console .archive-node.capability-node:hover,
#archive .archive-console .archive-node.capability-node:focus-visible {background:transparent;}
#archive .archive-console .archive-node.is-pill-active {color:#16131f;border-color:transparent;}
#archive .archive-console .archive-node.is-pill-active small,
#archive .archive-console .archive-node.is-pill-active .archive-number {color:#575060;}
#archive .archive-console .archive-node.is-pill-active::after {color:#a49aaa;opacity:.52;}
@media (max-width:760px) {#archive .archive-hover-pill {border-radius:13px;}}

/* White archive surface; keep purple display lettering and shared-pill motion. */
#archive {background:#fff;color:#111;}
#archive .section-heading h2,#archive .section-heading .eyebrow,#archive .section-note {color:#111;}
#archive .archive-node.capability-node {color:#111;border-color:#ddd8e1;}
#archive .archive-node .archive-number,#archive .archive-node small {color:#111;}
#archive .archive-hover-pill {background:#eeeaf3;}
#archive .archive-console .archive-node.is-pill-active,
#archive .archive-console .archive-node.is-pill-active small,
#archive .archive-console .archive-node.is-pill-active .archive-number,
#archive .archive-node:hover,#archive .archive-node:focus-visible,
#archive .archive-node:hover small,#archive .archive-node:focus-visible small,
#archive .archive-node:hover .archive-number,#archive .archive-node:focus-visible .archive-number {color:#111;}
#archive .archive-page-heading {border-bottom-color:#ddd8e1;color:#111;animation:none;transform:none;}
#archive .archive-page-heading h3,#archive .archive-page-heading small {color:#111;}
#archive .archive-back {position:fixed;z-index:30;top:calc(96px + env(safe-area-inset-top,0px));left:var(--page-gutter);width:max-content;max-width:calc(100vw - 32px);padding:11px 17px;border:1px solid rgba(153,193,226,.6);border-radius:999px;background:rgba(213,234,252,.161);color:#234c6b;box-shadow:0 5px 18px rgba(48,91,127,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;visibility:hidden;pointer-events:none;transform:none;}
#archive .archive-back.is-visible {opacity:1;visibility:visible;pointer-events:auto;transform:none;}
#archive .archive-back {isolation:isolate;}
#archive .archive-back > .archive-back-lens {position:absolute;inset:1px;z-index:-1;display:block;margin:0;padding:0;overflow:hidden;border-radius:inherit;pointer-events:none;gap:0;background:transparent;}
#archive .archive-back > .archive-back-lens::after {content:"";position:absolute;inset:0;background:rgba(213,234,252,.161);pointer-events:none;}
#archive .archive-back > .archive-back-lens > .archive-work-card {filter:blur(2.2px);}
#archive .archive-back > .archive-back-reflection {position:absolute;inset:0;z-index:-1;display:block;margin:0;padding:3px;overflow:hidden;border-radius:inherit;pointer-events:none;background:transparent;opacity:.85;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;}
#archive .archive-back > .archive-back-reflection > .archive-work-card {filter:blur(6px) saturate(1.6) brightness(1.12);}
#archive .archive-back::after,.language-switch.gooey-language-nav::after {content:"";position:absolute;inset:1px;z-index:3;pointer-events:none;border-radius:inherit;background:linear-gradient(to left,rgba(255,255,255,.98),rgba(218,239,255,.65) 35%,transparent 90%) top right / 85% 1.5px no-repeat,linear-gradient(to right,rgba(255,255,255,.98),rgba(194,225,250,.65) 35%,transparent 90%) bottom left / 85% 1.5px no-repeat;}
#archive .archive-back::after {padding:2.7px;filter:blur(.75px);clip-path:inset(0 round 999px);background:conic-gradient(from 0deg,rgba(255,255,255,.18) 0deg,rgba(255,255,255,.35) 18deg,rgba(255,255,255,.55) 30deg,rgba(255,255,255,.98) 55deg,rgba(255,255,255,.35) 70deg,transparent 96deg,transparent 152deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.35) 198deg,rgba(255,255,255,.55) 210deg,rgba(255,255,255,.98) 235deg,rgba(255,255,255,.35) 250deg,transparent 276deg,transparent 332deg,rgba(255,255,255,.18) 360deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;}
#archive .archive-back.is-visible:hover,#archive .archive-back.is-visible:focus-visible {background:rgba(200,227,250,.172);border-color:rgba(157,198,231,.5);color:#163d5b;box-shadow:0 7px 22px rgba(48,91,127,.18);transform:none;}
@media(max-width:760px){#archive .archive-back {top:calc(84px + env(safe-area-inset-top,0px));left:16px;}}
#archive .archive-work-card .card-title,#archive .archive-work-card .card-category,#archive .archive-work-card .card-description {color:#111;}

/* Archive captions: pale blue pigment capped at 70% opacity. */
.contact-sheet-caption {background:linear-gradient(to top,rgba(205,232,255,.7) 0%,rgba(205,232,255,.686) 43%,rgba(205,232,255,0) 100%);}

/* Four translucent blue planes frame the rotating exhibition. */
.orbit-space {position:absolute;inset:0;z-index:4;pointer-events:none;transform:translateZ(0);}
.orbit-space-face {position:absolute;display:block;pointer-events:none;}
.orbit-space-left,.orbit-space-right {top:0;bottom:0;width:12%;}
.orbit-space-left {left:0;clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);background:linear-gradient(to right,rgba(133,193,247,.7),rgba(181,219,252,.38) 46%,rgba(205,232,255,0));}
.orbit-space-right {right:0;clip-path:polygon(0 18%,100% 0,100% 100%,0 82%);background:linear-gradient(to left,rgba(133,193,247,.7),rgba(181,219,252,.38) 46%,rgba(205,232,255,0));}
.orbit-space-top,.orbit-space-bottom {left:0;right:0;height:18%;}
.orbit-space-top {top:0;clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);background:linear-gradient(to bottom,rgba(133,193,247,.65),rgba(181,219,252,.32) 48%,rgba(205,232,255,0));}
.orbit-space-bottom {bottom:0;clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);background:linear-gradient(to top,rgba(133,193,247,.65),rgba(181,219,252,.32) 48%,rgba(205,232,255,0));}

/* Put the four reversed blue planes behind the rotating artwork. */
.orbit-space {z-index:0;}
.archive-orbit {z-index:1;}
.orbit-space-left {background:linear-gradient(to right,#fff 0%,rgba(232,244,255,.9) 40%,rgba(122,188,246,.8) 100%);}
.orbit-space-right {background:linear-gradient(to left,#fff 0%,rgba(232,244,255,.9) 40%,rgba(122,188,246,.8) 100%);}
.orbit-space-top {background:linear-gradient(to bottom,#fff 0%,rgba(232,244,255,.9) 40%,rgba(122,188,246,.75) 100%);}
.orbit-space-bottom {background:linear-gradient(to top,#fff 0%,rgba(232,244,255,.9) 40%,rgba(122,188,246,.75) 100%);}

/* Gently concave upper and lower edges on the two side planes. */
.orbit-space-left {clip-path:url(#orbit-left-curve);}
.orbit-space-right {clip-path:url(#orbit-right-curve);}

/* More vertical space, symmetric side planes and a soft synchronized reflection. */
.project-contact-sheet.orbit-gallery {--orbit-art-height:372px;--orbit-headroom:48px;--orbit-reflection-height:150px;height:600px;perspective-origin:50% calc(var(--orbit-headroom) + var(--orbit-art-height)/2);}
.orbit-gallery > .archive-orbit {top:var(--orbit-headroom);z-index:2;}
.orbit-space {top:0;bottom:auto;height:486px;}
.orbit-reflection {position:absolute;left:0;right:0;top:calc(var(--orbit-headroom) + var(--orbit-art-height) + 10px);height:var(--orbit-reflection-height);overflow:hidden;z-index:1;pointer-events:none;opacity:.24;filter:blur(2px);mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.5) 45%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.5) 45%,transparent 100%);}
.orbit-reflection-stage {position:relative;width:100%;height:var(--orbit-art-height);perspective:calc(var(--orbit-radius)*3.2);perspective-origin:50% 50%;transform:scaleY(-1);}
.archive-orbit-reflection {position:absolute;top:0;left:50%;width:0;height:var(--orbit-art-height);transform-style:preserve-3d;}
.orbit-reflection-tile {position:relative;display:block;width:100%;height:180px;margin:0;padding:0;overflow:hidden;border:0;border-radius:3px;background:#edf0f1;backface-visibility:hidden;}
.orbit-reflection-tile > img {width:100%;height:100%;object-fit:cover;object-position:center top;}
@media (max-width:760px) {
 .project-contact-sheet.orbit-gallery {--orbit-art-height:330px;--orbit-headroom:34px;--orbit-reflection-height:130px;height:520px;}
 .orbit-space {height:416px;}
 .orbit-reflection-tile {height:160px;}
}
@media (prefers-reduced-motion:reduce) {.orbit-reflection {display:none;}.project-contact-sheet.orbit-gallery {height:calc(var(--orbit-art-height) + var(--orbit-headroom) + 20px);}}

/* Soft blue-violet shared highlight at 40% opacity. */
.hero-liquid .hero-actions::before {background:rgba(145,147,224,.256);}
.hero-liquid .hero-actions[data-active="0"] .primary-link,.hero-liquid .hero-actions[data-active="1"] .secondary-link {color:#25294d;}

/* Rounded project-entry label on featured artwork hover. */
.project-image-action {display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 18px;border-radius:12px;}

/* Flat mirror: use the upper artwork's projected x bounds without a 3D arc. */
.orbit-reflection-stage {height:var(--orbit-reflection-height);perspective:none;transform:none;}
.archive-orbit-reflection {left:0;top:0;width:100%;height:100%;transform:none!important;transform-style:flat;}
.archive-orbit-reflection .archive-orbit-column {top:0;transform:none!important;transform-style:flat;backface-visibility:visible;}
.archive-orbit-reflection .orbit-reflection-tile:first-child {display:none;}
.archive-orbit-reflection .orbit-reflection-tile:last-child {transform:scaleY(-1);transform-origin:center;backface-visibility:visible;}

/* White image detail stage with gently concave blue side planes. */
#project-modal .modal-media {position:relative;isolation:isolate;background:#fff;}
.modal-image-space {position:absolute;inset:0;z-index:0;opacity:.7;pointer-events:none;overflow:hidden;}
.modal-image-space > span {position:absolute;top:0;bottom:0;width:16%;pointer-events:none;}
.modal-space-left {left:0;clip-path:url(#orbit-left-curve);background:linear-gradient(to right,#fff,rgba(232,244,255,.9) 40%,rgba(153,204,248,.6));}
.modal-space-right {right:0;clip-path:url(#orbit-right-curve);background:linear-gradient(to left,#fff,rgba(232,244,255,.9) 40%,rgba(153,204,248,.6));}
#project-modal #modal-image,#project-modal #modal-video,#project-modal #modal-pdf {position:relative;z-index:1;}
.modal-media.is-video .modal-image-space {display:none;}
#project-modal .modal-image-nav {background:rgba(240,247,253,.9);border-color:#c4d7e7;color:#294c68;}
#project-modal .modal-image-nav:hover {background:#e1effc;color:#183f60;}

/* Reflection upper contour follows each artwork's lower edge. */
.orbit-reflection {top:0;height:100%;mask-image:none;-webkit-mask-image:none;}
.orbit-reflection-stage {height:100%;}
.archive-orbit-reflection .archive-orbit-column {overflow:hidden;mask-image:linear-gradient(to bottom,#000,rgba(0,0,0,.45) 48%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000,rgba(0,0,0,.45) 48%,transparent 100%);}

/* Softer, taller image-detail side gradients with a much shallower arc. */
.modal-image-space {filter:blur(12px);mask-image:linear-gradient(to bottom,transparent 0%,#000 15%,#000 85%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 15%,#000 85%,transparent 100%);}
.modal-image-space > span {top:-8%;bottom:-8%;}
.modal-space-left {clip-path:url(#modal-left-soft-curve);}
.modal-space-right {clip-path:url(#modal-right-soft-curve);}

/* Outline-only detail notes and tags; unfilled thumbnail surroundings. */
#project-modal .modal-case-item,#project-modal .modal-skills .modal-skill-chip {background:transparent;border:1px solid #d8dfe4;box-shadow:none;}
#project-modal .thumb-btn,#project-modal .thumb-btn.is-active {background:transparent;box-shadow:none;}
#project-modal .thumb-btn::after {content:"";position:absolute;left:0;right:0;top:0;height:25%;background:linear-gradient(to bottom,rgba(205,232,255,.38),rgba(205,232,255,0));pointer-events:none;}
/* Lower purple display lettering opacity by 40% in each interaction state. */
#archive .archive-node::after {opacity:.346;}
#archive .archive-node:hover::after,#archive .archive-node:focus-visible::after,#archive .archive-console .archive-node.is-pill-active::after {opacity:.25;}
@media(max-width:760px){#archive .archive-node::after{opacity:.23;}}

/* Lighter side scenery; blue shared category hover surface. */
.orbit-space {opacity:.8;}
#archive .archive-hover-pill {background:#e6f2fc;}

/* Transparent detail group with restrained glass edges and reflected highlights. */
#project-modal #modal-case {background:transparent;box-shadow:none;}
#project-modal .modal-case-item {position:relative;isolation:isolate;overflow:hidden;background:transparent;border:1px solid rgba(175,198,216,.48);border-radius:12px;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(178,205,227,.12),0 3px 12px rgba(62,99,129,.045);}
#project-modal .modal-case-item::before {content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.65),rgba(255,255,255,0) 34%,rgba(207,232,250,.10) 62%,rgba(255,255,255,.42));}
/* Lighter archive captions; white lettering stays opaque. */
.orbit-gallery .contact-sheet-caption {background:linear-gradient(to top,rgba(205,232,255,.56) 0%,rgba(205,232,255,.549) 43%,rgba(205,232,255,0) 100%);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.95),0 2px 6px rgba(0,0,0,.8),0 0 10px rgba(0,0,0,.6);}

/* Fade the footer upward; larger, compact software labels and profile identity. */
.portfolio-footer {background:linear-gradient(to top,#dcebf5 0%,#edf4f9 48%,#fff 100%);}
.skill-stack > span {font-family:inherit;font-size:23px;font-weight:750;line-height:1.2;min-width:58px;padding:13px 15px;text-align:center;}
.profile-identity {grid-template-columns:180px minmax(0,1fr);align-items:start;gap:28px;}
.profile-photo {width:180px;height:auto;}
.profile-meta {align-self:start;}
.profile-meta dt {font-size:17px;}
.profile-meta dd {font-size:18px;font-weight:600;}
.profile-meta div {grid-template-columns:48px minmax(0,1fr);padding:9px 0;}
.profile-meta div:first-child {padding-top:0;}
@media(min-width:1101px){.profile-identity {margin-top:calc(clamp(37.5px,4.5625vw,70px) + 25px);}}
@media(max-width:760px){.profile-identity {grid-template-columns:130px minmax(0,1fr);gap:20px;}.profile-photo{width:130px;}.profile-meta dt{font-size:14px;}.profile-meta dd{font-size:15px;}.profile-meta div{grid-template-columns:34px minmax(0,1fr);padding:7px 0;}.skill-stack > span{font-size:20px;padding:11px 13px;min-width:52px;}}
@media(max-width:400px){.profile-identity{grid-template-columns:105px minmax(0,1fr);gap:14px;}.profile-photo{width:105px;}}

/* Spaced personal-information labels; preserve the portrait's native proportions. */
.profile-meta dt {letter-spacing:.28em;white-space:nowrap;}
.profile-meta div {grid-template-columns:58px minmax(0,1fr);}
@media(max-width:760px){.profile-meta div{grid-template-columns:44px minmax(0,1fr);}}

/* Outline software badges with larger serif lettering. */
.skill-stack > span {background:transparent;border:1px solid #c8d2d9;border-radius:11px;font-family:Georgia,"Times New Roman",serif;font-size:27px;font-weight:700;line-height:1.2;}
/* Fade only the lower edge of the blue scenery, keeping artwork untouched. */
.orbit-space {mask-image:linear-gradient(to bottom,#000 0%,#000 74%,rgba(0,0,0,.72) 87%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 74%,rgba(0,0,0,.72) 87%,transparent 100%);}
@media(max-width:760px){.skill-stack > span{font-size:24px;}}

/* User-provided transparent JW monogram, framed without source whitespace. */
.brand .brand-mark {display:flex;align-items:center;justify-content:center;width:40px;height:34px;}
.brand .brand-mark img {display:block;width:100%;height:100%;object-fit:contain;filter:none;}
@media(max-width:760px){.brand .brand-mark {width:34px;height:30px;}}

/* Divider between identity summary and education. */
#about .resume-grid {border-top:1px solid #d3dce3;padding-top:44px;}
@media(max-width:760px){#about .resume-grid{padding-top:30px;}}

/* Clean lavender display type, retaining the requested reduced opacity. */
#archive .archive-node::after,#archive .archive-node:hover::after,#archive .archive-node:focus-visible::after,#archive .archive-console .archive-node.is-pill-active::after {color:#b5a7cf;}

.skill-stack > span {text-transform:uppercase;}

.skill-list dt {font-size:26px;font-weight:600;letter-spacing:-.04em;color:#223238;}
@media(max-width:760px){.skill-list dt{font-size:25px;}}

/* Serif styling scoped to the About heading. */
#about .profile-copy h2 {font-family:Georgia,"Times New Roman","Songti SC","Noto Serif CJK SC",SimSun,serif;letter-spacing:.1em;}

/* Wrap every artwork and caption around the common cylindrical surface. */
.archive-orbit > .archive-orbit-column > .contact-sheet-item.is-curved {overflow:visible;background:transparent;border-radius:0;transform-style:preserve-3d;}
.archive-orbit .is-curved > img,.archive-orbit .is-curved > .contact-sheet-caption,.archive-orbit .is-curved > .contact-sheet-play {visibility:hidden;}
.curved-surface {position:absolute;left:50%;top:0;width:0;height:100%;transform-style:preserve-3d;pointer-events:none;}
.curved-strip {position:absolute;top:0;left:0;height:100%;overflow:hidden;backface-visibility:hidden;}
.curved-strip-content {display:block;position:absolute;top:0;height:100%;}
.curved-strip-content > img {display:block;width:100%;height:100%;object-fit:cover;object-position:center top;}
@media(prefers-reduced-motion:reduce){.archive-orbit .is-curved > img,.archive-orbit .is-curved > .contact-sheet-caption,.archive-orbit .is-curved > .contact-sheet-play{visibility:visible;}.curved-surface{display:none;}}

/* Lift the complete selected work, including its image and text, on pointer or keyboard focus. */
.featured-projects .editorial-project {position:relative;z-index:0;transition:transform 360ms var(--ease-out),box-shadow 360ms var(--ease-out);}
.featured-projects .editorial-project:hover,.featured-projects .editorial-project:focus-within {z-index:2;transform:translateY(-12px);box-shadow:0 22px 48px rgba(30,49,64,.14);}
@media (prefers-reduced-motion:reduce) {.featured-projects .editorial-project,.featured-projects .editorial-project:hover,.featured-projects .editorial-project:focus-within {transition:none;transform:none;box-shadow:none;}}

/* Give the lower edge of the blue side planes a long fade so it dissolves into the white floor. */
.project-contact-sheet.orbit-gallery > .orbit-space {mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.18) 8%,rgba(0,0,0,.65) 20%,#000 34%,#000 45%,rgba(0,0,0,.92) 57%,rgba(0,0,0,.56) 75%,rgba(0,0,0,.2) 91%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.18) 8%,rgba(0,0,0,.65) 20%,#000 34%,#000 45%,rgba(0,0,0,.92) 57%,rgba(0,0,0,.56) 75%,rgba(0,0,0,.2) 91%,transparent 100%);}

/* Keep the archive gallery compact on desktop with a two-column grid. */
#archive .archive-page-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:42px clamp(30px,5.4vw,88px);align-items:start;}
#archive .archive-page-grid > .archive-work-card:nth-child(n) {grid-column:auto;min-width:0;width:100%;}
#archive .archive-work-card .card-media {height:auto;aspect-ratio:210/297;background:#f6f7f9;padding:18px;}
#archive .archive-work-card .card-media > img {object-fit:contain;object-position:center;}
#archive .archive-work-card .card-media.is-video-media {position:relative;aspect-ratio:210/297;max-height:none;background:#f6f7f9;}
#archive .archive-work-card .card-media.is-video-media .video-preview-shell {inset:18px;background:transparent;}
#archive .archive-work-card .card-media.is-video-media .video-preview-cover {width:100%;height:100%;object-fit:contain;object-position:center;background:transparent;transform:none;}
#archive .archive-work-card .video-play-mark,#archive .archive-work-card:hover .video-play-mark,#archive .archive-work-card:focus-visible .video-play-mark {background:transparent;border-color:rgba(180,215,245,.9);box-shadow:0 5px 18px rgba(136,190,238,.45);backdrop-filter:none;-webkit-backdrop-filter:none;}
#archive .archive-work-card .video-play-mark::before {filter:drop-shadow(0 1px 3px rgba(112,170,221,.7));}
#archive .archive-work-card .card-body {padding:24px 28px 20px;}
#archive .archive-work-card .skill-chip {display:inline-flex;align-items:center;padding:5px 10px;border:1px solid rgba(151,171,187,.48);border-radius:9px;background:transparent;color:#354b5c;box-shadow:inset 0 1px 1px rgba(255,255,255,.95),0 3px 8px rgba(42,67,88,.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:12px;line-height:1.4;}
@media (max-width:760px) {#archive .archive-page-grid {grid-template-columns:1fr;gap:32px;}#archive .archive-work-card .card-body {padding:22px 18px 18px;}}

/* Clickable entry for the SketchUp model. */
.three-d-project-card {position:relative;display:grid;width:100%;grid-template-columns:minmax(260px,.95fr) minmax(280px,1fr) auto;align-items:center;gap:clamp(24px,4vw,64px);padding:clamp(18px,2.2vw,30px);border:1px solid #e0e6ec;border-radius:8px;background:linear-gradient(130deg,#f7f9fc,#fff 58%,#f2f7fd);color:#18242b;text-align:left;cursor:pointer;transition:transform 360ms var(--ease-out),box-shadow 360ms var(--ease-out),border-color 260ms ease;}
.three-d-project-card:hover,.three-d-project-card:focus-visible {transform:translateY(-6px);border-color:#c8d8e8;box-shadow:0 20px 48px rgba(48,77,102,.12);}
.three-d-project-cover {position:relative;display:block;min-width:0;min-height:0;aspect-ratio:1.55;overflow:hidden;border-radius:4px;background:transparent;}
.three-d-project-cover img {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.three-d-project-copy {display:grid;gap:10px;}
.three-d-project-kicker {color:#6b8295;font-size:12px;letter-spacing:.14em;}
.three-d-project-copy strong {font-size:clamp(24px,2.8vw,38px);line-height:1.25;font-weight:600;}
.three-d-project-copy > span:last-child {max-width:520px;color:#5c6b76;font-size:16px;line-height:1.85;}
.three-d-project-action {justify-self:end;padding:12px 17px;border:1px solid #bacbd9;border-radius:11px;color:#355c78;font-size:14px;white-space:nowrap;}

/* Model viewer occupies the media pane and keeps controls above the WebGL canvas. */
#project-modal .modal-media.is-model {position:relative;display:block;min-height:420px;padding:0;overflow:hidden;background:#f7f9fc;touch-action:none;}
.modal-model-stage {position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fff 0%,#f6f9fc 70%,#edf3f8 100%);touch-action:none;}
.modal-model-canvas {display:block;width:100%;height:100%;touch-action:none;outline:none;}
.model-viewer-status {position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);padding:11px 16px;border:1px solid rgba(181,199,215,.7);border-radius:12px;background:rgba(255,255,255,.86);color:#37566f;font-size:14px;white-space:nowrap;pointer-events:none;}
.model-viewer-status.is-error {max-width:min(90%,460px);white-space:normal;text-align:center;color:#9c3d43;}
.model-viewer-hint {position:absolute;left:20px;top:18px;padding:7px 11px;border:1px solid rgba(177,197,214,.48);border-radius:9px;background:rgba(255,255,255,.72);color:#61788a;font-size:12px;letter-spacing:.04em;pointer-events:none;}
.model-viewer-toolbar {position:absolute;left:50%;bottom:18px;display:flex;align-items:center;gap:7px;max-width:calc(100% - 24px);padding:7px;border:1px solid rgba(172,194,212,.6);border-radius:14px;background:rgba(255,255,255,.84);box-shadow:0 8px 24px rgba(35,67,93,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translateX(-50%);}
.model-viewer-toolbar button {min-height:36px;padding:0 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:#294d68;font-size:13px;white-space:nowrap;cursor:pointer;}
.model-viewer-toolbar button:hover,.model-viewer-toolbar button.is-active {border-color:#c8d9e8;background:#eaf3fa;color:#173d59;}
.model-viewer-toolbar button:first-child,.model-viewer-toolbar button:nth-child(2) {min-width:38px;font-size:20px;}
.model-viewer-toolbar {isolation:isolate;border-radius:22px;}
.model-toolbar-indicator {position:absolute;left:0;top:0;z-index:-1;pointer-events:none;border-radius:14px;background:rgba(174,215,252,.65);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),0 2px 7px rgba(90,144,190,.12);opacity:0;transition:transform 380ms cubic-bezier(.22,1,.36,1),width 380ms cubic-bezier(.22,1,.36,1),height 250ms ease,opacity 150ms ease;}
.model-toolbar-indicator.is-visible {opacity:1;}
.model-viewer-toolbar button {position:relative;border-radius:14px;}
.model-viewer-toolbar button:hover {background:transparent;}
.model-viewer-toolbar button.is-active {background:transparent;border-color:#b4cee2;box-shadow:inset 0 -2px 0 rgba(95,156,203,.45);}
@media(prefers-reduced-motion:reduce){.model-toolbar-indicator {transition:none;}}
#project-modal .modal-media.is-model .modal-close {z-index:5;}
@media (max-width:1120px) {.three-d-project-card {grid-template-columns:minmax(220px,.9fr) minmax(230px,1fr);}.three-d-project-action {grid-column:2;justify-self:start;margin-top:-12px;}}
@media (max-width:760px) {
 .three-d-project-card {grid-template-columns:1fr;gap:16px;padding:15px;border-radius:12px;}
 .three-d-project-cover {aspect-ratio:1.5;}
 .three-d-project-copy {gap:7px;}
 .three-d-project-copy strong {font-size:24px;}
 .three-d-project-copy > span:last-child {font-size:14px;}
 .three-d-project-action {grid-column:1;margin-top:0;}
 #project-modal .modal-media.is-model {min-height:0;max-height:56svh;flex-basis:clamp(300px,54svh,480px);padding:0;}
 .model-viewer-hint {left:10px;top:10px;font-size:11px;}
 .model-viewer-toolbar {bottom:10px;gap:3px;padding:5px;}
 .model-viewer-toolbar button {min-height:34px;padding:0 9px;font-size:12px;}
}
@media (max-width:420px) {.model-viewer-toolbar {gap:2px}.model-viewer-toolbar button {padding:0 7px;font-size:11px;}}

/* Reuse the established model entries in a vertical stack. */
.three-d-project-card + .three-d-project-card {margin-top:24px;}
#modal-original {position:relative;isolation:isolate;overflow:hidden;padding:10px 17px;border:1px solid rgba(115,161,199,.65);border-radius:13px;background:transparent;color:#244c68;cursor:pointer;transition:color 340ms ease,border-color 340ms ease;}
#modal-original::before {content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:#b4d9fb;transform:translateY(105%);transition:transform 480ms cubic-bezier(.22,1,.36,1);pointer-events:none;}
#modal-original:hover::before,#modal-original:focus-visible::before {transform:translateY(0);}
#modal-original:hover,#modal-original:focus-visible {color:#173e60;border-color:#9fc9ed;}
@media(prefers-reduced-motion:reduce) {#modal-original::before {transform:none;opacity:0;transition:opacity 120ms ease;}#modal-original:hover::before,#modal-original:focus-visible::before {opacity:1;}}

/* Model renderings remain in the information pane while the 3D stage stays interactive. */
.model-render-gallery {flex:none;margin-top:18px;}
.model-render-gallery[hidden] {display:none;}
.model-render-gallery h3 {margin:0 0 12px;color:#273d4a;font-size:16px;font-weight:650;}
.model-render-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;}
.model-render-thumb {display:block;min-width:0;padding:0;border:1px solid rgba(157,181,198,.35);border-radius:8px;overflow:hidden;background:transparent;cursor:zoom-in;transition:transform 250ms ease,box-shadow 250ms ease;}
.model-render-thumb img {display:block;width:100%;height:auto;object-fit:contain;}
.model-render-thumb:hover,.model-render-thumb:focus-visible {transform:translateY(-2px);box-shadow:0 6px 16px rgba(44,73,97,.14);}
@media(prefers-reduced-motion:reduce) {.model-render-thumb {transition:none;}.model-render-thumb:hover,.model-render-thumb:focus-visible {transform:none;}}

/* The hero's existing sliding actions use the confirmed translucent glass material. */
.hero-liquid .hero-actions {border:1px solid rgba(153,193,226,.6);border-radius:18px;background:transparent;box-shadow:0 5px 18px rgba(48,91,127,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.hero-liquid .hero-actions::before {border-radius:13px;background:transparent;box-shadow:inset 0 1px 2px rgba(255,255,255,.6),0 2px 7px rgba(70,116,152,.08);}
.hero-liquid .hero-actions .primary-link,.hero-liquid .hero-actions .secondary-link {position:relative;z-index:2;border-radius:13px;color:#234c6b;}
.hero-liquid .hero-actions[data-active="0"] .primary-link,.hero-liquid .hero-actions[data-active="1"] .secondary-link {color:#163d5b;}
.hero-glass-lens,.hero-glass-reflection {position:absolute;inset:1px;z-index:-2;overflow:hidden;border-radius:inherit;pointer-events:none;}
.hero-glass-lens {filter:blur(2.2px);opacity:.72;}
.hero-glass-lens canvas,.hero-glass-reflection canvas {position:absolute;inset:0;width:100%;height:100%;}
.hero-glass-reflection {inset:0;padding:3px;opacity:.85;filter:blur(1px);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;}
.hero-glass-reflection canvas {filter:blur(6px) saturate(1.6) brightness(1.12);}
.hero-liquid .hero-actions::after {content:"";position:absolute;inset:1px;z-index:3;padding:2.7px;border-radius:inherit;pointer-events:none;filter:blur(.75px);background:conic-gradient(from 0deg,rgba(255,255,255,.18),rgba(255,255,255,.55) 30deg,rgba(255,255,255,.98) 55deg,rgba(255,255,255,.35) 70deg,transparent 96deg,transparent 152deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.55) 210deg,rgba(255,255,255,.98) 235deg,rgba(255,255,255,.35) 250deg,transparent 276deg,transparent 332deg,rgba(255,255,255,.18));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;}

/* Resting state is one continuous pane; only the hover/focus outline moves. */
.hero-liquid .hero-actions .primary-link,.hero-liquid .hero-actions .secondary-link {backdrop-filter:none;-webkit-backdrop-filter:none;background:transparent;box-shadow:none;}
.hero-liquid .hero-actions:not([data-active])::before {opacity:0;box-shadow:none;}
/* A soft frosted-white selection appears only while choosing a hero action. */
.hero-liquid .hero-actions[data-active]::before {background:rgba(255,255,255,.42);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);box-shadow:inset 0 1px 3px rgba(255,255,255,.9),0 2px 9px rgba(255,255,255,.24);}
/* Round the visible landscape cover itself, including its contained image edges. */
.three-d-project-card[data-open-project="gaodigang-sketchup-3d"] .three-d-project-cover {display:flex;align-items:center;justify-content:center;border-radius:14px;}
.three-d-project-card[data-open-project="gaodigang-sketchup-3d"] .three-d-project-cover img {position:static;inset:auto;width:auto;height:100%;max-width:100%;max-height:100%;border-radius:14px;object-fit:contain;}

/* Match the purple edition's type hierarchy; retain this edition's materials. */
.hero-liquid .hero-copy {max-width:min(1020px,100%);}
.hero-title-primary {font-size:clamp(24px,4.05vw,64px);letter-spacing:.08em;line-height:1.22;}
.hero-title-secondary {margin-top:24px;font-size:clamp(19.2px,1.83vw,30px);letter-spacing:.12em;line-height:1.55;}
.hero-liquid .hero-summary {max-width:42rem;margin:78px 0 0;font-size:13px;font-weight:100;line-height:2;}
.hero-liquid .hero-actions {width:340px;margin-top:49px;}
.hero-liquid .hero-actions .primary-link,.hero-liquid .hero-actions .secondary-link {min-height:50px;font-size:15px;}
@media (min-width:760px) and (max-width:1679px) {
 .hero-title-secondary {margin-top:30px;font-size:24px;}
}
@media (min-width:1680px) and (min-height:900px) {
 .hero-liquid .hero-copy {max-width:min(1280px,100%);}
 .hero-title-primary {font-size:clamp(64px,3.75vw,92px);}
 .hero-title-secondary {margin-top:clamp(24px,1.45vw,36px);font-size:clamp(30px,1.82vw,46px);}
 .hero-liquid .hero-summary {max-width:54rem;font-size:clamp(13px,.72vw,18px);}
 .hero-liquid .hero-actions {width:clamp(340px,20.5vw,445px);margin-top:clamp(49px,3.2vw,82px);}
 .hero-liquid .hero-actions .primary-link,.hero-liquid .hero-actions .secondary-link {min-height:clamp(50px,2.65vw,66px);font-size:clamp(15px,.84vw,17px);}
}
@media (max-width:760px) {
 .hero-title-primary {font-size:clamp(28px,7vw,46px);letter-spacing:.015em;}
 .hero-title-secondary {font-size:20px;margin-top:20px;letter-spacing:.025em;}
 .hero-liquid .hero-summary {margin-top:42px;font-size:13px;line-height:2;}
 .hero-liquid .hero-actions {width:280px;margin-top:35px;}
 .hero-liquid .hero-actions .primary-link,.hero-liquid .hero-actions .secondary-link {min-height:46px;font-size:14px;}
}
/* The planes and artwork share the same cylinder geometry, including wide screens. */
.project-contact-sheet.orbit-gallery > .orbit-space {left:50%;right:auto;width:var(--orbit-plane-width,100%);max-width:100%;transform:translateX(-50%);}
@media (min-width:761px) {
 .project-contact-sheet.orbit-gallery {--orbit-art-height:calc(372px * var(--orbit-scale,1));--orbit-headroom:calc(48px * var(--orbit-scale,1));--orbit-reflection-height:calc(150px * var(--orbit-scale,1));height:calc(600px * var(--orbit-scale,1));}
 .orbit-gallery .archive-orbit-column {height:var(--orbit-art-height);grid-template-rows:repeat(2,calc(180px * var(--orbit-scale,1)));gap:calc(12px * var(--orbit-scale,1));}
 .orbit-gallery .contact-sheet-item,.orbit-gallery .orbit-reflection-tile {height:calc(180px * var(--orbit-scale,1));}
 .project-contact-sheet.orbit-gallery > .orbit-space {height:calc(486px * var(--orbit-scale,1));}
}

/* Phone controls and captions stay clear of the artwork. */
.project-caption-action {display:none;}
@media (max-width:1120px) {
 .site-header {grid-template-columns:1fr auto;}
 .site-header .header-actions {grid-column:2;grid-row:1;justify-self:end;}
}
@media (max-width:760px) {
 .featured-projects .project-image-action {display:none;}
 .editorial-project-caption h3 {display:flex;align-items:center;justify-content:space-between;gap:12px;}
 .editorial-project-caption h3 > button:first-child {min-width:0;}
 .editorial-project-caption h3 .project-caption-action {display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;padding:7px 10px;border:1px solid rgba(153,193,226,.6);border-radius:10px;background:transparent;color:#244c68;font-size:12px;font-weight:500;white-space:nowrap;}
 .orbit-gallery.is-lightweight {overscroll-behavior-x:contain;}
 .orbit-gallery.is-lightweight .contact-sheet-item {border-radius:0;}
 .orbit-gallery.is-lightweight .orbit-reflection {filter:none;}
}

@media (max-width:760px), (pointer:coarse) {
 #modal-model-stage [data-model-fullscreen] {display:none;}
 .orbit-gallery.is-lightweight {touch-action:auto;}
}
