/* Site footer ("Got a project?"), shared by the résumé page. Extracted from index.html and
   assets/mobile-about-rail.css so both pages render the same footer. */
/* Final contact stage: dark editorial grid and a living halftone portrait. */
    .site-footer{position:relative;isolation:isolate;overflow:hidden;height:100svh;min-height:560px;padding:clamp(40px,10svh,130px) clamp(28px,4.2vw,90px) 36px;background:#0b0b0b;color:#f6f5ef;font-family:'RagInter',Inter,Arial,sans-serif;scroll-margin-top:0}
.site-footer::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(8vw - 1px),#ffffff0c calc(8vw - 1px),#ffffff0c 8vw);background-position:2.8vw 0}
.site-footer-copy{position:relative;z-index:2;max-width:1100px;pointer-events:none}
.site-footer-copy a{pointer-events:auto}
.site-footer h2{margin:0;font-size:clamp(62px,8.8vw,178px);font-weight:600;line-height:.99;letter-spacing:-.07em}
.site-footer-subtitle{margin:29px 0 0;color:#93938f;font-size:clamp(20px,2.05vw,40px);line-height:1.4;letter-spacing:-.045em}
.site-footer-email{display:inline-block;margin-top:clamp(30px,6svh,78px);font-size:clamp(21px,3.05vw,61px);line-height:1.25;letter-spacing:-.055em;text-decoration:none;border-bottom:1px solid #77766e;color:inherit;transition:color .2s,border-color .2s}
.site-footer-email:hover{color:#d6d4ff;border-color:#d6d4ff}
.site-footer-links{position:absolute;z-index:3;left:clamp(28px,4.2vw,90px);bottom:clamp(75px,11svh,125px);width:46%;display:grid;grid-template-columns:1fr 1fr;gap:25px}
.site-footer-links a{width:fit-content;color:inherit;font-size:clamp(22px,2.35vw,45px);line-height:1.2;font-weight:550;letter-spacing:-.045em;text-decoration:none}
.site-footer-links a span{display:inline-block;font-size:.7em;vertical-align:top;transition:translate .18s}
.site-footer-links a:hover span{translate:3px -3px}
.site-footer-meta{position:absolute;z-index:3;left:clamp(28px,4.2vw,90px);bottom:32px;margin:0;color:#777873;font-size:13px;letter-spacing:-.02em}
.site-footer-portrait{position:absolute;right:1.8%;bottom:0;width:44%;height:76%;margin:0;isolation:isolate}
.site-footer-portrait>canvas,.site-footer-portrait>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}
.site-footer-portrait>img{opacity:.62;object-fit:contain;filter:grayscale(1)}
.site-footer-portrait.is-ready>img{display:none}
.site-footer-portrait>canvas{pointer-events:none}
.site-footer-play{position:absolute;bottom:26px;right:clamp(24px,3vw,60px);z-index:5;width:48px;height:48px;border:1px solid #eee9e7;border-radius:50%;display:grid;place-items:center;color:#111;background:#f6f5ef;font-size:17px}
.site-footer-play:hover{background:#d6d4ff}
.site-footer-toys{position:absolute;z-index:4;left:52%;bottom:31px;display:flex;gap:27px}
.site-footer-toys button{padding:3px 0;border:0;background:none;color:#999b94;font:13px 'RagInter',Inter,sans-serif;text-align:left}
.site-footer-toys button:hover{color:#f6f5ef}
.site-footer a:focus-visible,.site-footer button:focus-visible{outline:2px solid #a9f6ed;outline-offset:6px}
.site-footer-play:disabled,.site-footer-toys button:disabled{opacity:.45;cursor:default}
body.portfolio-case-open .site-footer{display:none!important}
@media(min-width:761px) and (max-height:680px){.site-footer{padding-top:40px;min-height:460px}.site-footer h2{font-size:min(8.8vw,18svh)}.site-footer-subtitle{margin-top:18px;font-size:26px}.site-footer-email{margin-top:26px}.site-footer-portrait{height:82%}.site-footer-links{bottom:78px}.site-footer-meta,.site-footer-toys{bottom:23px}}
@media(max-width:760px){.site-footer{height:auto;min-height:100svh;padding:65px 25px 0}.site-footer h2{max-width:580px;font-size:clamp(56px,12.4vw,94px);letter-spacing:-.065em}.site-footer-subtitle{font-size:22px;margin-top:22px;max-width:300px}.site-footer-email{font-size:clamp(19px,4.9vw,34px);margin-top:35px;letter-spacing:-.035em}.site-footer-links{position:relative;left:auto;bottom:auto;width:100%;margin-top:55px;gap:25px}.site-footer-links a{font-size:26px}.site-footer-portrait{position:relative;right:auto;width:100%;height:460px;margin:26px 0 0}.site-footer-meta{bottom:21px;left:25px;right:75px;font-size:11px}.site-footer-toys{left:25px;bottom:70px;gap:25px}.site-footer-play{right:22px;bottom:21px;width:42px;height:42px}.site-footer-portrait>canvas{inset:0 0 35px;height:calc(100% - 35px)}}
@media(prefers-reduced-motion:reduce){.site-footer a,.site-footer a span{transition:none}}
/* From assets/project-ui.css (footer controls and tips). */
.site-footer .site-footer-toys{position:absolute;left:auto;right:clamp(24px,3vw,60px);bottom:26px;display:flex;align-items:center;gap:7px;padding:6px;max-width:fit-content;border:1px solid #ffffff2a;border-radius:99px;background:#151918ed;box-shadow:0 5px 25px #0004;z-index:5}
.site-footer-toys>button,.site-footer-toys>.site-footer-play{position:relative;left:auto;right:auto;top:auto;bottom:auto;display:grid;place-items:center;flex:none;width:44px;height:44px;min-width:44px;min-height:44px;padding:9px;border:1px solid #ffffff20;border-radius:50%;background:#ffffff08;color:#edf3ed;cursor:pointer;transition:background .16s,color .16s,transform .16s}
.site-footer-toys>button svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s}
#footer-change-ink{color:var(--portrait-action-ink,#f6f5ef)}
.site-footer-toys>button:hover,.site-footer-toys>button:focus-visible{background:#d5eee8;color:#172d2a}
.site-footer-toys>button:active{transform:scale(.94)}
.site-footer-toys>button:hover svg{transform:rotate(-8deg)}
.site-footer-toys>.site-footer-play{background:#edf3ed;color:#162c27}
.footer-action-tip{position:absolute;left:50%;bottom:calc(100% + 12px);padding:7px 10px;border:1px solid #ffffff30;border-radius:7px;background:#202b27;color:#edf3ed;font:11px/1.3 'RagInter',Inter,sans-serif;white-space:nowrap;opacity:0;transform:translate(-50%,4px);pointer-events:none;transition:opacity .14s,transform .14s}
.site-footer-toys>button:hover .footer-action-tip,.site-footer-toys>button:focus-visible .footer-action-tip{opacity:1;transform:translate(-50%,0)}
@media(max-width:820px){.site-footer .site-footer-toys{position:relative;right:auto;left:auto;bottom:auto;margin:16px auto 0;max-width:fit-content}.site-footer-toys>.site-footer-play{position:relative;right:auto;bottom:auto}}
@media(prefers-reduced-motion:reduce){.site-footer-toys>button,.site-footer-toys>button svg,.footer-action-tip{transition:none!important}}
/* Footer on phones: dark all the way to the bottom (under the nav), compact and centred. */
@media(max-width:960px){
  .site-footer#contact{display:flex!important;flex-direction:column;align-items:stretch;gap:0;margin-bottom:-96px!important;padding:44px 20px calc(118px + env(safe-area-inset-bottom,0px))!important;min-height:0!important;height:auto!important}
  .site-footer-copy{position:static!important;width:auto!important;text-align:left}
  .site-footer-copy h2{font-size:clamp(38px,11vw,48px)!important;line-height:1.05!important;margin:0!important}
  .site-footer-subtitle{margin:12px 0 0!important;font-size:17px!important}
  .site-footer-email{display:inline-block;margin-top:22px!important;font-size:18px!important;word-break:break-all}
  .site-footer-phone{display:block;margin-top:10px!important;font-size:16px!important}
  .site-footer-links{position:static!important;display:grid!important;grid-template-columns:1fr 1fr;gap:10px;width:auto!important;margin:24px 0 0!important}
  .site-footer-links a{display:flex!important;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 14px!important;border:1.4px solid #ffffffcc!important;border-radius:7px 15px 8px 13px!important;font-size:17px!important;text-decoration:none!important;box-shadow:2px 3px 0 #ffffff26;rotate:-.6deg}
  .site-footer-links a+a{rotate:.7deg;border-radius:14px 7px 15px 8px!important}
  .site-footer-portrait{position:relative!important;inset:auto!important;width:min(76%,300px)!important;height:auto!important;aspect-ratio:3/4;margin:30px auto 0!important;transform:none!important}
  .site-footer-portrait>img,.site-footer-portrait>canvas{width:100%!important;height:100%!important}
  .site-footer-toys{position:relative!important;inset:auto!important;align-self:center;margin:-30px auto 0!important;z-index:2;transform:none!important}
  .site-footer-meta{position:static!important;margin:22px 0 0!important;text-align:center!important;width:auto!important;transform:none!important}
}
@media(max-width:960px){
  .site-footer-links a{width:100%!important;max-width:none!important;justify-self:stretch}
  .site-footer-meta{display:block!important;align-self:stretch!important;width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;padding:0!important;left:auto!important}
}
/* Résumé: Download résumé sits beside LinkedIn and Portfolio. */
.site-footer-links .site-footer-download{display:inline-flex;align-items:center;gap:8px}
.site-footer-download svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.site-footer-download>span{font-size:.7em;opacity:.7;letter-spacing:.04em}
@media(max-width:960px){.site-footer-links .site-footer-download{grid-column:1/-1}}

/* Desktop: LinkedIn, Portfolio and Download résumé flow in one row; the download stays on one line. */
@media(min-width:961px){
  .site-footer-links{display:flex!important;flex-wrap:wrap;align-items:baseline;column-gap:clamp(32px,4vw,64px);row-gap:18px}
  .site-footer-links .site-footer-download{white-space:nowrap;gap:12px}
  .site-footer-download svg{width:.62em;height:.62em;align-self:center}
  .site-footer-download>span{font-size:.36em;letter-spacing:.06em;align-self:center}
}
