/* Page colors deliberately keep every reading surface light. */
body{--surface:#f4f4ee;--footer-surface:#dce5f4;--paper:var(--surface);--line:#171b1930;background-color:var(--surface);transition:background-color .65s cubic-bezier(.22,1,.36,1)}
body[data-page="about"]{--surface:#ece8f5;--footer-surface:#d9e4d9;--blue:#534b8c}
body[data-page="works"]{--surface:#f7f4e8;--footer-surface:#efd878;--blue:#725a08;--category-accent:#c58000}
body[data-page="resume"]{--surface:#e7eee2;--footer-surface:#ede6d6;--blue:#3d6546}
body[data-page="contact"]{--surface:#f5dfaf;--footer-surface:#e6d3be;--blue:#694913}
body[data-page="project"]{--surface:#e6eedf;--footer-surface:#d5e1ce;--blue:#446246}
body[data-project="xy-lock"]{--surface:#e9e6f3;--footer-surface:#dad5ec;--blue:#625189}
body[data-project="hiar"]{--surface:#e0eaf1;--footer-surface:#cddde9;--blue:#315f7d}
.site-header nav a:last-child{background:var(--ink);color:var(--paper)}.site-header nav a:last-child:after{display:none}.footer-message{background:var(--footer-surface);transition:background-color .65s}.site-footer .footer-message .eyebrow,.footer-message .spark{color:var(--ink)}.page .portrait,.page .contact-art{background:var(--footer-surface)}.chapter-nav{background:var(--surface)}
body[data-page="home"] .discipline-marquee{background:#f2df91;border:0;padding:32px 0;margin-top:40px}body[data-page="home"] .selected{background:#e4eaf3;padding-top:55px;padding-bottom:70px}body[data-page="home"] .home-capabilities{margin:0;padding:75px 4%;background:#ece7f2}body[data-page="home"] .home-about{margin:0;padding:65px 4%;background:#e3ecdf;border:0}body[data-page="home"] .site-footer{padding-top:65px}
.category-works{padding:35px 4% 100px;max-width:none;overflow:clip}.category-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:38px}.category-heading h1{font:650 clamp(36px,4.5vw,70px)/.96 Archivo,Arial,sans-serif;letter-spacing:-.06em;margin-top:18px}.category-heading h1 i{font-weight:450}.category-heading>p{font-size:12px;line-height:1.8}.category-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:17px 0}.all-category{font:11px var(--mono);padding:12px 16px;border:1px solid var(--line);border-radius:30px;display:flex;gap:22px;align-items:center}.all-category span{font-size:8px}.all-category[aria-pressed=true]{background:var(--ink);color:var(--surface)}.category-help{font-size:10px;color:var(--muted)}
.category-stage{position:relative;padding:45px 0 65px;isolation:isolate}.category-row{position:static}.category-row h2{position:relative;z-index:2;margin:0 auto;width:58%}.category-title{width:100%;padding:8px 0 13px;display:flex;align-items:center;justify-content:center;position:relative;line-height:.98;min-height:145px}.category-title>span:nth-child(2){font-family:Archivo,Arial,sans-serif;font-size:clamp(70px,10.5vw,182px);font-weight:680;letter-spacing:-.065em;transition:color .3s,transform .5s cubic-bezier(.2,.7,.2,1)}.category-title:hover>span:nth-child(2),.category-row.active .category-title>span:nth-child(2){color:var(--category-accent);transform:skew(-3deg)}.category-no{position:absolute;left:0;top:26px;font:9px var(--mono);color:var(--muted)}.category-label{position:absolute;right:-6px;top:28px;font-size:9px;text-align:left;color:var(--muted);line-height:1.6}.category-label small{font:7px var(--mono);display:block;margin-top:4px}.category-panel{position:absolute;left:0;right:0;top:var(--preview-y);height:0;z-index:3;pointer-events:none}.category-panel[hidden]{display:none}.category-project,.category-placeholder{position:absolute;top:0;transform:translateY(-50%) rotate(var(--card-angle));width:21%;max-width:320px;pointer-events:auto;animation:category-appear .5s cubic-bezier(.22,1,.36,1) both}.side-left{left:.5%;--card-angle:-9deg;--card-direction:-1}.side-right{right:.5%;--card-angle:8deg;--card-direction:1}.category-project{display:block;transition:transform .35s;outline-offset:8px}.category-project:hover,.category-project:focus-visible{transform:translateY(-53%) rotate(0deg);z-index:5}.category-image{aspect-ratio:1.25;position:relative;overflow:hidden;box-shadow:0 25px 35px -22px #171b1955;background:#dce3d0;border-radius:3px}.category-image img{transition:transform .55s;object-fit:cover}.category-project:hover img{transform:scale(1.06)}.category-image .tag{position:absolute;left:8px;bottom:8px;padding:4px 7px;font-size:6px}.category-image-arrow{position:absolute;right:9px;top:9px;width:26px;height:26px;display:grid;place-items:center;background:#f7f4e8;border-radius:50%;color:var(--ink);font-size:16px}.category-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;font:8px var(--mono);margin-top:12px;color:var(--ink)}.category-caption strong{font-weight:500;font-size:11px}.category-placeholder{aspect-ratio:1.25;background:#e9e5da;border:1px dashed #b6b0a0;border-radius:3px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;color:#716b5d;text-align:center}.placeholder-symbol{font:50px Archivo,Arial}.category-placeholder>span:last-child{font:9px var(--mono);letter-spacing:.05em}.category-placeholder small{display:block;font:10px var(--sans);margin-top:8px}.category-status{min-height:42px;text-align:center;font:9px var(--mono);color:var(--muted);line-height:1.8;padding:12px 0;border-top:1px solid var(--line)}
.project-index{margin:65px auto 0;max-width:1100px}.index-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.index-heading h2{font:550 30px Archivo;letter-spacing:-.045em}.project-index-link{display:grid;grid-template-columns:40px 1fr auto 25px;align-items:center;gap:20px;padding:25px 0;border-top:1px solid var(--line);transition:color .25s,padding .3s}.project-index-link:last-child{border-bottom:1px solid var(--line)}.project-index-link strong{font:600 25px Archivo;letter-spacing:-.04em}.project-index-link>span{font:9px var(--mono)}.project-index-link:hover{color:var(--blue);padding-left:10px}.category-empty{padding:30px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:25px;flex-wrap:wrap}.category-empty>p{font-size:18px}.category-empty>span{font-size:12px;color:var(--muted)}.category-empty button{margin-left:auto}
@keyframes category-appear{from{opacity:0;transform:translate(calc(var(--card-direction)*22px),-40%) rotate(calc(var(--card-angle)*1.4)) scale(.92)}to{opacity:1;transform:translate(0,-50%) rotate(var(--card-angle)) scale(1)}}
@media(min-width:701px){.category-no{left:50px}.category-label{right:40px}}
@media(min-width:1800px){.category-title{min-height:190px}.category-row h2{width:56%}.category-project,.category-placeholder{width:22%;max-width:none}.category-stage{padding-top:80px;padding-bottom:90px}}
@media(max-width:1050px){.category-title{min-height:122px}.category-title>span:nth-child(2){font-size:10.5vw}.category-no{top:12px}.category-label{top:10px;right:3px;font-size:8px}.category-label small{font-size:6px}.category-caption{display:block}.category-caption span{display:block;margin-top:6px}.category-help{display:none}.category-placeholder{gap:10px}.placeholder-symbol{font-size:32px}.category-row h2{width:56%}}
@media(max-width:700px){body[data-page="home"] .selected{padding-top:35px}body[data-page="home"] .home-capabilities{padding:45px 6%}body[data-page="home"] .home-about{padding:45px 6%}body[data-page="home"] .site-footer{padding-top:40px}.category-works{padding:28px 6% 65px}.category-heading{margin-bottom:27px;gap:20px}.category-heading h1{font-size:11vw;margin-top:16px}.category-heading>p{font-size:10px;line-height:1.7}.category-heading .eyebrow{font-size:7px}.category-toolbar{padding:13px 0;gap:15px}.category-toolbar>.eyebrow{font-size:7px;text-align:right;max-width:155px;line-height:1.6}.all-category{font-size:9px;min-height:44px;padding:10px 16px}.category-stage{padding:20px 0 25px}.category-row h2{width:100%}.category-title{justify-content:flex-start;min-height:96px;padding:24px 0 14px}.category-title>span:nth-child(2){font-size:19vw;line-height:1}.category-no{left:0;top:8px;font-size:7px}.category-label{right:0;top:35px;font-size:8px}.category-label small{font-size:6px}.category-row.active .category-title>span:nth-child(2){transform:none}.category-panel{position:static;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px 5px 28px;pointer-events:auto}.category-project,.category-placeholder{position:relative;inset:auto;width:100%;max-width:none;transform:rotate(var(--card-angle));animation:mobile-category .4s cubic-bezier(.22,1,.36,1) both}.side-left{--card-angle:-5deg}.side-right{--card-angle:5deg}.category-project:hover,.category-project:focus-visible{transform:rotate(0deg) translateY(-3px)}.category-image{aspect-ratio:1.1}.category-image .tag{font-size:5px;left:5px;bottom:5px;padding:3px 5px}.category-image-arrow{width:22px;height:22px;font-size:14px;right:6px;top:6px}.category-caption{font-size:6px;margin-top:10px}.category-caption strong{font-size:10px}.category-placeholder{aspect-ratio:1.1;gap:12px}.category-placeholder>span:last-child{font-size:8px}.category-placeholder small{font-size:8px}.placeholder-symbol{font-size:34px}.category-status{font-size:8px;padding:14px 8px}.project-index{margin-top:40px}.index-heading{gap:18px}.index-heading h2{font-size:25px}.index-heading>.eyebrow{font-size:7px}.project-index-link{grid-template-columns:20px 1fr auto 15px;gap:10px;padding:22px 0}.project-index-link strong{font-size:21px}.project-index-link>span{font-size:7px}.category-empty{gap:16px}.category-empty>span{font-size:11px}.category-empty button{margin-left:0}.site-header nav a:last-child{background:none;color:var(--ink)}}
@keyframes mobile-category{from{opacity:0;transform:translateY(15px) rotate(0deg)}to{opacity:1;transform:translateY(0) rotate(var(--card-angle))}}
@media(prefers-reduced-motion:reduce){body,.footer-message{transition:none}.category-project,.category-placeholder{animation:none}.category-title:hover>span:nth-child(2),.category-row.active .category-title>span:nth-child(2){transform:none}.category-project:hover,.category-project:focus-visible{transform:translateY(-50%) rotate(var(--card-angle))}.category-project:hover img{transform:none}}
@media(prefers-reduced-motion:reduce) and (max-width:700px){.category-project:hover,.category-project:focus-visible{transform:rotate(var(--card-angle))}}
.motion-paused .category-project,.motion-paused .category-placeholder{animation:none!important}
/* Explicit route restoration owns scrolling; expanded previews must not anchor it. */
body{overflow-anchor:none}.category-stage{overflow-anchor:none}
@media(max-width:700px){.category-heading{display:block}.category-heading>p{margin-top:20px;text-align:right}.category-heading h1{max-width:100%}}
