/* Shared portfolio contact and footer. Services and portfolio routes use one stylesheet. */
.aw-site-contact,.aw-site-footer{--sf-ink:#103e34;--sf-muted:#49675b;--sf-paper:#fffdf7;--sf-body:'IBM Plex Sans',Arial,sans-serif;--sf-display:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-family:var(--sf-body);box-sizing:border-box}
.aw-site-contact *,.aw-site-footer *{box-sizing:border-box}
.aw-site-contact{background:#103e34;color:#fffdf7;padding:52px 0;margin:0;width:100%;max-width:none;border:0;border-radius:0;scroll-margin-top:100px}
.aw-site-contact .sf-wrap,.aw-site-footer .sf-footer-inner{width:calc(100% - clamp(32px,7vw,112px));max-width:1260px;margin-inline:auto}
.aw-site-contact .sf-contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.aw-site-contact .sf-contact-copy{min-width:0}
.aw-site-contact .sf-kicker{margin:0 0 12px;font:700 .76rem/1.45 var(--sf-body);letter-spacing:.12em;text-transform:uppercase;color:#9be2d1}
.aw-site-contact .sf-contact-copy h2{font:700 clamp(2.7rem,4.4vw,4.3rem)/1.08 var(--sf-display);letter-spacing:-.015em;color:#fffdf7;margin:0 0 18px;max-width:none;text-wrap:pretty}
.aw-site-contact .sf-contact-copy>p:not(.sf-kicker){font:400 1.1rem/1.7 var(--sf-body);margin:0;color:#dbe8df;max-width:40ch}
.aw-site-contact .sf-contact-person{display:flex;align-items:center;gap:24px;margin-top:30px}
.aw-site-contact .sf-portrait{flex:0 0 160px;width:160px;min-width:0;height:auto;aspect-ratio:auto;margin:0;padding:7px;border:1px solid #86ab9a;border-radius:23px;background:#306555;overflow:hidden;box-shadow:none;transform:none}
.aw-site-contact .sf-portrait-clip{aspect-ratio:977 / 1610;border-radius:16px;overflow:hidden;background:#d7d2cb;isolation:isolate;clip-path:inset(0 round 16px)}
.aw-site-contact .sf-portrait img{display:block;width:100%;height:100%;max-width:100%;margin:0;padding:0;border:0;border-radius:16px;object-fit:contain;aspect-ratio:977 / 1610;box-shadow:none;transform:none}
.aw-site-contact .sf-contact-person>div{display:flex;flex-direction:column;align-items:start;min-width:0;gap:8px}
.aw-site-contact .sf-contact-person strong{font:700 1.6rem/1.2 var(--sf-display);color:#fffdf7}
.aw-site-contact .sf-contact-person span{font:.9rem/1.5 var(--sf-body);color:#c9ded1}
.aw-site-contact .sf-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:100%;width:fit-content;padding:10px 14px;border:1px solid #8cae9c;border-radius:8px;background:transparent;color:var(--sf-ink);font:600 .9rem/1.3 var(--sf-body);text-decoration:none;text-align:center;cursor:pointer;box-shadow:none;transition:background .16s,border-color .16s}
.aw-site-contact .sf-button:hover{background:#dae9de;border-color:#0e7564}
.aw-site-contact .sf-button-primary{background:#103e34;border-color:#103e34;color:#fffdf7}
.aw-site-contact .sf-button-primary:hover{background:#17634f;color:#fffdf7}
.aw-site-contact .sf-contact-person .sf-button{margin-top:8px;border-color:#a8c5b5;color:#fffdf7}
.aw-site-contact .sf-contact-person .sf-button:hover{background:#285d4a}
.aw-site-contact .sf-contact-form{position:relative;min-width:0;display:grid;gap:18px;padding:28px;border:1px solid #c7d5c7;border-radius:18px;background:#fffdf7;color:var(--sf-ink);margin:0;box-shadow:none}
.aw-site-contact .sf-contact-form label{display:flex;flex-direction:column;min-width:0;gap:7px;margin:0;font:600 .92rem/1.4 var(--sf-body);color:var(--sf-ink)}
.aw-site-contact .sf-contact-form :is(input:not([type=hidden]):not(.honeypot),select,textarea){width:100%;min-width:0;max-width:100%;min-height:46px;padding:11px 12px;border:1px solid #99b3a3;border-radius:7px;background:white;color:var(--sf-ink);font:400 1rem/1.4 var(--sf-body);box-shadow:none}
.aw-site-contact .sf-contact-form input::placeholder,.aw-site-contact .sf-contact-form textarea::placeholder{color:#6d796f;opacity:1}
.aw-site-contact .sf-contact-form textarea{resize:vertical;min-height:144px}
.aw-site-contact .sf-contact-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.aw-site-contact .sf-contact-form .sf-button{min-height:48px;font-size:1rem}
.aw-site-contact .sf-button[disabled]{opacity:.65;cursor:wait}
.aw-site-contact .sf-contact-form .form-note{font:.8rem/1.5 var(--sf-body);color:var(--sf-muted);margin:0}
.aw-site-contact .sf-contact-form .form-note.is-error{color:#9b2920}
.aw-site-contact .sf-contact-form .form-note.is-success{color:#17634f}
.aw-site-contact .sf-contact-form .form-note a{font:inherit;color:inherit;text-decoration:underline}
.aw-site-contact :is(a,button,input,textarea,select):focus-visible{outline:3px solid #40bca3;outline-offset:3px}
.aw-site-contact .honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important}
.aw-site-footer{display:block!important;background:#f5efe4;color:#103e34;border-top:1px solid #bdcfc2;padding:24px 0;margin:0;width:100%;max-width:none;border-radius:0;font-size:1rem}
.aw-site-footer .sf-footer-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.aw-site-footer .sf-footer-identity{display:grid;gap:5px}
.aw-site-footer .sf-footer-identity strong{font:700 1.25rem/1.25 var(--sf-display);letter-spacing:0;color:#103e34}
.aw-site-footer .sf-footer-identity span{font:.85rem/1.5 var(--sf-body);color:#49675b}
.aw-site-footer .sf-footer-nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;position:static;background:transparent;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}
.aw-site-footer a{display:inline-flex;align-items:center;min-height:44px;padding:4px 0;font:600 .87rem/1.35 var(--sf-body);color:#103e34;text-decoration:none}
.aw-site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.aw-site-footer a:focus-visible{outline:3px solid #0e7564;outline-offset:4px}
.aw-site-footer .sf-footer-meta{display:flex;align-items:center;justify-self:end;gap:16px;font:.8rem/1.5 var(--sf-body);color:#49675b}
/* Match supplied avatar mattes and remove only the source-image canvas border. */
.workroom-page .projection-image-wrap.is-avatar-preview{background:#ded6d4!important;box-shadow:none;overflow:hidden!important;display:flex;align-items:center;justify-content:center}
.workroom-page .projection-image-wrap.is-avatar-preview img{background:#ded6d4!important;width:auto!important;height:100%!important;max-width:100%!important;max-height:330px!important;object-fit:contain!important;object-position:center;box-shadow:none;border:0;clip-path:inset(0 2.3% round 11%);transform:scale(1.02);transform-origin:center}
.aw-avatar-matte,.aw-avatar-matte img{background:#ded6d4!important;box-shadow:none!important}
.aw-avatar-matte{overflow:hidden;border-radius:20px;isolation:isolate}
.aw-avatar-matte img{object-fit:contain!important;display:block;transform:scale(1.06);transform-origin:center}
/* The static mobile performance portrait fills the card like the retired loop did. */
.music-card{background:#ded6d4}
.music-card>.music-card-avatar{background:#ded6d4;object-fit:cover!important;object-position:center 28%!important;clip-path:none!important;transform:scale(1.02);transform-origin:center}
@media(max-width:1050px){.aw-site-contact .sf-contact-layout{gap:32px}.aw-site-contact .sf-contact-person{gap:16px}.aw-site-contact .sf-portrait{flex-basis:120px;width:120px}.aw-site-footer .sf-footer-inner{grid-template-columns:1fr auto}.aw-site-footer .sf-footer-nav{grid-column:1/-1;grid-row:2}.aw-site-footer .sf-footer-meta{grid-column:2;grid-row:1}}
@media(max-width:760px){.aw-site-contact{padding-block:34px}.aw-site-contact .sf-wrap,.aw-site-footer .sf-footer-inner{width:calc(100% - 32px)}.aw-site-contact .sf-contact-layout{grid-template-columns:1fr;gap:26px}.aw-site-contact .sf-contact-copy h2{font-size:2.7rem}.aw-site-contact .sf-contact-copy>p:not(.sf-kicker){font-size:1rem}.aw-site-contact .sf-contact-person{margin-top:22px}.aw-site-contact .sf-contact-form{padding:22px 18px}.aw-site-contact .sf-contact-form .form-row{grid-template-columns:1fr}.aw-site-footer{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.aw-site-footer .sf-footer-inner{gap:14px}.aw-site-footer .sf-footer-meta{gap:10px;flex-wrap:wrap;max-width:110px}.aw-site-footer .sf-footer-nav{gap:4px 18px}}
@media(prefers-reduced-motion:reduce){.aw-site-contact .sf-button{transition:none}}
.sticky-contact[hidden]{display:none!important}
