/* Homepage polish: loaded after all existing stylesheets. */
.project-head{grid-template-columns:2.2fr 1.2fr}
.caption{justify-content:space-between}
.caption>div{min-width:0}
.caption>.category{display:block;margin-left:auto;text-align:right}
.section-heading{justify-content:flex-start}
.toolkit{margin-top:32px;padding-top:22px;border-top:1px solid var(--line)}
.toolkit-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 14px}
.tool-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.tool{display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 7px;border:1px solid var(--line);border-radius:14px;background:#fbfaf6;font-size:14px;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s}
.tool:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:0 8px 18px #24251f14}
.tool-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--bg);color:var(--fg);font:700 14px/1 Arial,sans-serif;letter-spacing:-.02em;box-shadow:inset 0 0 0 1.5px var(--fg);transition:transform .25s;flex-shrink:0}
.tool:hover .tool-icon{transform:rotate(-8deg) scale(1.06)}
.about-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.btn{display:inline-flex;align-items:center;gap:14px;padding:8px 8px 8px 24px;border-radius:99px;font-size:15px;line-height:1;text-decoration:none;transition:background .25s,color .25s,border-color .25s}
.btn-arrow{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:16px;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.btn-primary{background:#5B3FB0;color:#fff;border:1px solid #5B3FB0}
.btn-primary .btn-arrow{background:#fff;color:#5B3FB0}
.btn-primary:hover{background:#4a3196}
.btn-primary:hover .btn-arrow{transform:rotate(45deg)}
.btn-ghost{border:1px solid var(--ink);color:var(--ink)}
.btn-ghost .btn-arrow{background:var(--ink);color:var(--paper)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-ghost:hover .btn-arrow{background:var(--paper);color:var(--ink);transform:translateX(3px)}
.btn:focus-visible,.site-footer a:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
footer.site-footer{display:block;border-top:0;padding:0;background:#1d1b22;color:#f3f1e9;border-radius:32px 32px 0 0;margin-top:40px;overflow:hidden;font-family:Arial,sans-serif}
.footer-inner{width:90%;max-width:1600px;margin:auto;padding:72px 0 26px}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px 6%;align-items:start}
.site-footer .footer-mark{height:56px;width:auto;max-width:100%;flex-basis:auto}
/* Keep the draw/pending states, with the new visible fill when JS is off. */
.site-footer .footer-mark path{fill:#9c86ee;stroke:#9c86ee}
.site-footer .footer-mark.is-drawing path{animation-name:polish-mark-draw}
@keyframes polish-mark-draw{0%{stroke-dashoffset:1;fill:transparent}70%{stroke-dashoffset:0;fill:transparent}100%{stroke-dashoffset:0;fill:#9c86ee}}
.motion-ready .site-footer .footer-mark.motion-pending path{fill:transparent}
html.motion-paused .site-footer .footer-mark path{fill:#9c86ee!important}
.footer-brand p{max-width:340px;margin:22px 0 0;font-size:18px;line-height:1.45;color:#f3f1e9b3}
.footer-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#f3f1e980;margin:0 0 16px}
.footer-col{display:flex;flex-direction:column;gap:10px;font-size:17px}
.footer-col a{align-self:flex-start;color:#f3f1e9;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:0 1px;transition:color .25s,background-size .25s}
.footer-col a:hover{color:#b9a8f5;background-size:100% 1px}
.footer-wordmark{margin:70px 0 0;font-size:clamp(56px,11.4vw,205px);font-weight:400;line-height:.86;letter-spacing:-.065em;white-space:nowrap;color:#f3f1e9}
.footer-wordmark em{font-family:Georgia,serif;font-weight:400;color:#9c86ee;letter-spacing:-.05em}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:34px;padding-top:20px;border-top:1px solid #f3f1e91f;font-size:12px;color:#f3f1e999}
.to-top{width:48px;height:48px;flex-shrink:0;border-radius:50%;border:1px solid #f3f1e966;display:grid;place-items:center;color:#f3f1e9;font-size:18px;text-decoration:none;transition:background .25s,border-color .25s,transform .25s}
.to-top:hover{background:#5B3FB0;border-color:#5B3FB0;transform:translateY(-3px)}
@media(max-width:900px){
 .project-head{grid-template-columns:1fr}
 .project-head>p{grid-column:auto}
 .footer-top{grid-template-columns:1fr;gap:40px}
}
@media(max-width:599px){
 .caption{flex-wrap:wrap}
 .caption>.category{text-align:left;margin-left:0}
 .footer-wordmark{font-size:clamp(56px,17.6vw,105px);white-space:normal;line-height:.98}
 .footer-wordmark em{display:block}
 .footer-note{display:none}
}
@media(prefers-reduced-motion:reduce){
 .tool,.tool-icon,.btn,.btn-arrow,.footer-col a,.to-top{transition:none}
 .tool:hover,.tool:hover .tool-icon,.btn-primary:hover .btn-arrow,.btn-ghost:hover .btn-arrow,.to-top:hover{transform:none}
 .site-footer .footer-mark path{fill:#9c86ee!important}
}

@media(max-width:900px){.about,.about:has(.about-studio){row-gap:36px;column-gap:0}.footer-top{row-gap:40px;column-gap:0}}

a,button,[role=button],summary,label[for],select,.prop,.skill-card,.project-link,.publication,.travel-link,.discipline-picker button,.work-filters button,.motion-toggle,.to-top,.btn{cursor:pointer}
.skill-marquee,.prop-tag,.eyebrow,.hero-type h1,.footer-wordmark,.loader{cursor:default;-webkit-user-select:none;user-select:none}
input,textarea{cursor:text}
button:disabled,.contact-submit:disabled{cursor:not-allowed}

/* Type scale + audit fixes
   Homepage-only overrides; keep the hero and footer display sizes untouched. */
:root{
 --fs-label:12px;
 --fs-meta:13px;
 --fs-small:15px;
 --fs-body:17px;
 --fs-lead:22px;
 --fs-section:clamp(38px,4.4vw,64px);
 --fs-card-title:22px;
}
body:has(.interactive-hero){font-size:var(--fs-body)}
body:has(.interactive-hero) p{max-width:62ch}
.brand,.eyebrow,.hero-top .eyebrow,.motion-toggle,.prop-tag,
.image-link,.toolkit-label,.footer-label,.airwalk-logo span,
.work-filters button,.work-filters sup,.discipline-picker button span{
 font-size:var(--fs-label);
}
/* Longer labels and readable metadata should not be spaced-out capitals. */
.hero-top .eyebrow,.portfolio-thread-label,.portfolio-thread-label span,
.skill-meta,.category,.image-link{
 text-transform:none;letter-spacing:normal;
}
.portfolio-thread .portfolio-thread-label{font-size:var(--fs-label);text-transform:none;letter-spacing:normal}
.skill-meta,.project-head>p,.publication-caption p,.caption p,
.contact .contact-privacy,.contact .form-status,.footer-bottom,
.tool,.tool-icon,header nav,.discipline-picker button,.text-link,.explore-link{
 font-size:var(--fs-meta);
}
.category{font-size:var(--fs-meta)!important}
.skill-caption,.btn{font-size:var(--fs-small)}
.hero-type>p,.portfolio-thread p,.about-copy>p:not(.eyebrow),
.contact-copy>p:last-child,.contact-success p,.footer-brand p,.footer-col,
.travel-copy>p:not(.category),.contact-field input,.contact-field textarea,
.btn-arrow,.to-top{font-size:var(--fs-body)}
.about-copy .about-hello,.work-toolbar>p,.publication-caption>span,
.explore-link span{font-size:var(--fs-lead)!important}
.caption h3,.publication-caption h4,.contact-success h3{font-size:var(--fs-card-title)}
.section-heading h2,.portfolio-thread h2,.about-copy h2,.contact h2,
.project-head h3,.travel-copy h3{
 font-size:var(--fs-section);font-weight:400;line-height:1.1;
 text-transform:none;letter-spacing:-.045em;
}
.contact .field-error{font-size:var(--fs-label)}
/* Keep the longer mobile brand and hero top row within their containers. */
@media(max-width:599px){
 .hero-top{gap:12px}
 .hero-top .eyebrow{max-width:230px}
}
