/* Work process, technical profile and contact share the site's stage foundations. */
.method-flow {
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  margin-top:48px;
}
.method-step {
  --panel-tl:16px;
  --panel-br:16px;
  --panel-fill:var(--stage-surface-raised);
  --panel-line:var(--stage-line);
  position:relative;
  grid-column:var(--step-column);
  grid-row:1;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  padding:24px;
  color:var(--stage-white);
  text-align:left;
  font-family:var(--stage-font);
  cursor:pointer;
  transition:transform var(--stage-duration) var(--stage-ease);
}
.method-step:hover,.method-step[aria-expanded="true"] {
  --panel-line:var(--stage-cyan);
  --panel-fill:rgba(5,26,33,.92);
  --panel-accent:var(--stage-cyan);
  --panel-accent-size:28px;
}
.method-step:hover { transform:translateY(-3px); }
.method-step__number {
  margin-bottom:25px;
  color:var(--stage-cyan);
  font:400 30px/1 var(--stage-mono);
  letter-spacing:-.04em;
}
.method-step__title {
  margin-bottom:12px;
  font-size:clamp(21px,1.65vw,29px);
  font-weight:600;
  letter-spacing:-.025em;
}
.method-step__summary {
  flex:1;
  color:var(--stage-muted);
  font-size:15px;
  line-height:1.7;
}
.method-step__action {
  display:flex;
  width:100%;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid var(--stage-line-soft);
  color:var(--stage-cyan);
  font:400 11px/1.5 var(--stage-mono);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.method-step__action svg {
  flex-shrink:0;
  width:24px;
  height:24px;
  transition:transform var(--stage-duration) var(--stage-ease);
}
.method-step[aria-expanded="true"] .method-step__action svg { transform:rotate(45deg); }
.method-panel {
  --panel-inset:-3px -1px -1px;
  --panel-br:18px;
  --panel-fill:var(--stage-surface);
  --panel-line:var(--stage-line-active);
  --panel-accent:var(--stage-cyan);
  --panel-accent-size:56px;
  grid-column:1 / -1;
  grid-row:2;
  padding:clamp(25px,3.2vw,48px);
  border-top-width:3px;
}
.method-panel[hidden] { display:none; }
.method-panel__grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px;
}
.method-panel__grid>div+div {
  border-left:1px solid var(--stage-line-soft);
  padding-left:32px;
}
.method-panel__label {
  margin:0 0 16px;
  color:var(--stage-cyan);
  font:500 13px/1.5 var(--stage-mono);
}
.method-panel p { margin:0; }
.method-team {
  display:flex;
  gap:24px;
  max-width:1100px;
  margin:38px 0 0;
  padding:8px 0 8px 24px;
  border-left:2px solid var(--stage-line-active);
}
.method-team>svg { width:35px;height:35px;flex-shrink:0;color:var(--stage-cyan); }
.method-team h3 { margin:0 0 10px;font-size:19px;font-weight:600; }
.method-team p { margin:0; }

.profile-approach { max-width:1070px;margin:24px 0 45px; }
.profile-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.profile-card,.profile-education,.profile-cv {
  --panel-fill:var(--stage-surface);
  --panel-line:var(--stage-line);
  --panel-accent:var(--stage-cyan);
  --panel-accent-size:32px;
  position:relative;
  min-width:0;
  padding:clamp(24px,2.4vw,38px);
}
.profile-card {
  --panel-tl:22px;
  --panel-tr:12px;
  --panel-br:22px;
  display:flex;
  flex-direction:column;
}
.profile-card:hover { --panel-line:var(--stage-line-active);--panel-fill:var(--stage-surface-raised); }
.profile-education { --panel-tr:24px;--panel-bl:24px; }
.profile-cv { --panel-tl:24px;--panel-br:24px; }
.profile-card__heading {
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:start;
}
.profile-card__heading>svg { width:56px;height:56px;color:var(--stage-cyan); }
.profile-card__index { color:var(--stage-muted);font:400 12px/1 var(--stage-mono); }
.profile-card__heading h3 {
  grid-column:1/-1;
  margin:0;
  font:600 clamp(23px,1.8vw,29px)/1.2 var(--stage-font);
  letter-spacing:-.035em;
}
.profile-card>.stage-copy { margin:18px 0 25px; }
.tech-chips {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  padding:0;
  margin:0;
  list-style:none;
}
.tech-chips li {
  --panel-tl:5px;
  --panel-br:5px;
  --panel-fill:var(--stage-surface-inset);
  --panel-line:var(--stage-line-soft);
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  min-height:47px;
  padding:9px;
  color:var(--stage-white);
  font-size:12px;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.tech-chip__icon {
  --panel-tr:3px;
  --panel-fill:transparent;
  --panel-line:var(--stage-line-active);
  display:grid;
  place-items:center;
  min-width:27px;
  height:27px;
  color:var(--stage-cyan);
  font:500 10px/1 var(--stage-mono);
}
.profile-card__more { color:var(--stage-muted);font-size:12px;line-height:1.7;margin:18px 0 0; }
.profile-card__projects { margin-top:auto;padding-top:28px; }
.profile-card__label {
  margin:0 0 12px;
  color:var(--stage-muted);
  font:400 11px/1.6 var(--stage-mono);
}
.profile-project {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  min-height:46px;
  padding:10px 0;
  border-top:1px solid var(--stage-line-soft);
  color:var(--stage-white);
  text-decoration:none;
  font-size:13px;
  line-height:1.5;
}
.profile-project svg { width:23px;height:23px;flex-shrink:0;color:var(--stage-cyan); }
.profile-project:hover { color:var(--stage-cyan); }
.profile-lower {
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:24px;
  margin-top:24px;
}
.profile-block-heading { display:flex;align-items:center;gap:20px;margin-bottom:30px; }
.profile-block-heading svg { width:44px;height:44px;flex-shrink:0;color:var(--stage-cyan); }
.profile-block-heading h3 { margin:0;font-size:clamp(23px,2vw,32px);font-weight:600;letter-spacing:-.035em; }
.profile-education__item+.profile-education__item { border-top:1px solid var(--stage-line-soft);margin-top:24px;padding-top:24px; }
.profile-education__item .stage-kicker { margin:0 0 11px;font-size:10px; }
.profile-education__title { margin:0 0 8px;font-size:19px;line-height:1.4;font-weight:500; }
.profile-education__item>.stage-copy { margin:0;font-size:14px; }
.profile-certificate {
  display:inline-flex;
  align-items:center;
  gap:16px;
  margin-top:18px;
  min-height:35px;
  color:var(--stage-cyan);
  text-decoration:underline;
  text-underline-offset:5px;
  font-size:13px;
}
.profile-certificate svg { width:22px;height:22px; }
.profile-cv>.stage-copy { margin:0 0 28px; }
.profile-cv__links { display:flex;flex-direction:column;align-items:stretch;gap:14px; }
.profile-cv__links .stage-button { gap:20px; }
.profile-cv__format { display:block;margin-top:18px;color:var(--stage-muted);font:400 11px/1.5 var(--stage-mono); }

.contact-grid { display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,6vw,100px);align-items:start;margin-top:48px; }
.contact-intro { padding-top:18px; }
.contact-intro h3 { margin:0 0 18px;font-size:clamp(26px,2.8vw,44px);font-weight:500;line-height:1.2;letter-spacing:-.04em;text-wrap:balance; }
.contact-intro>.stage-copy { margin:0 0 32px; }
.contact-context { margin-top:35px; }
.contact-context p { margin:7px 0;color:var(--stage-muted);font:400 11px/1.6 var(--stage-mono); }
.contact-channels { display:grid;gap:12px; }
.contact-channel {
  --panel-tr:12px;
  --panel-br:12px;
  --panel-fill:var(--stage-surface);
  --panel-line:var(--stage-line);
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:20px;
  padding:24px;
  text-decoration:none;
  color:var(--stage-white);
}
.contact-channel>svg { width:29px;height:29px;color:var(--stage-cyan); }
.contact-channel__label { margin:0 0 8px;color:var(--stage-muted);font:400 10px/1.4 var(--stage-mono);text-transform:uppercase;letter-spacing:.08em; }
.contact-channel__value { color:var(--stage-white);font-size:clamp(14px,1.15vw,18px);line-height:1.5;overflow-wrap:anywhere;text-decoration:none; }
.contact-channel--link:hover { --panel-line:var(--stage-cyan);--panel-fill:var(--stage-surface-raised); }
.contact-channel--link:hover .contact-channel__value,.contact-channel__value:hover { color:var(--stage-cyan); }
.contact-copy {
  --panel-tl:6px;
  --panel-br:6px;
  --panel-fill:var(--stage-surface-inset);
  --panel-line:var(--stage-line-active);
  padding:8px 10px;
  min-width:60px;
  min-height:38px;
  color:var(--stage-cyan);
  font:400 10px/1.4 var(--stage-mono);
  cursor:pointer;
}
.contact-copy:hover { --panel-fill:rgba(0,229,255,.1);--panel-line:var(--stage-cyan); }

.site-footer {
  --footer-cut:24px;
  --footer-outline:rgba(203,235,240,.48);
  --footer-shape:polygon(var(--footer-cut) 0,100% 0,100% calc(100% - var(--footer-cut)),calc(100% - var(--footer-cut)) 100%,0 100%,0 var(--footer-cut));
  padding:0 var(--stage-gutter) 32px;
  color:var(--stage-white);
}
.site-footer__inner {
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:30px 48px;
  max-width:calc(1600px - 2 * var(--stage-gutter));
  margin:0 auto;
  padding:38px clamp(26px,3.1vw,48px) 28px;
}
/* Only the background is cut. The border gradients trace that same polygon;
   content and focus rings stay outside the clipping context. */
.site-footer__inner::before,.site-footer__inner::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
}
.site-footer__inner::before {
  background:var(--stage-surface-raised);
  clip-path:var(--footer-shape);
}
.site-footer__inner::after {
  background:
    linear-gradient(135deg,transparent calc(50% - .6px),var(--footer-outline) calc(50% - .6px),var(--footer-outline) calc(50% + .6px),transparent calc(50% + .6px)) left top / var(--footer-cut) var(--footer-cut),
    linear-gradient(135deg,transparent calc(50% - .6px),var(--footer-outline) calc(50% - .6px),var(--footer-outline) calc(50% + .6px),transparent calc(50% + .6px)) right bottom / var(--footer-cut) var(--footer-cut),
    linear-gradient(var(--stage-cyan),var(--stage-cyan)) right top / 40px 2px,
    linear-gradient(var(--stage-cyan),var(--stage-cyan)) left bottom / 40px 2px,
    linear-gradient(var(--footer-outline),var(--footer-outline)) right top / calc(100% - var(--footer-cut)) 1px,
    linear-gradient(var(--footer-outline),var(--footer-outline)) right top / 1px calc(100% - var(--footer-cut)),
    linear-gradient(var(--footer-outline),var(--footer-outline)) left bottom / calc(100% - var(--footer-cut)) 1px,
    linear-gradient(var(--footer-outline),var(--footer-outline)) left bottom / 1px calc(100% - var(--footer-cut));
  background-repeat:no-repeat;
}
.site-footer__identity { min-width:0; }
.site-footer__brand {
  display:inline-flex;
  align-items:center;
  max-width:100%;
  color:var(--stage-white);
  text-decoration:none;
}
.site-footer__wordmark {
  display:block;
  width:clamp(170px,18vw,240px);
  max-width:100%;
  height:auto;
}
.site-footer__identity p {
  margin:18px 0 0;
  color:var(--stage-muted);
  font:400 13px/1.6 var(--stage-font);
}
.site-footer__copyright {
  grid-column:1 / -1;
  margin:0;
  padding-top:22px;
  border-top:1px solid var(--stage-line-soft);
  color:var(--stage-muted);
  font:400 11px/1.7 var(--stage-mono);
}
.site-footer__top {
  justify-self:end;
  gap:30px;
  min-height:54px;
  font-size:13px;
}
.site-footer__top svg {
  width:23px;
  height:23px;
  color:var(--stage-cyan);
}
.site-footer__top:hover svg { transform:translateY(-4px); }
@media(max-width:700px) {
  .site-footer { --footer-cut:20px;padding-bottom:24px; }
  .site-footer__inner { grid-template-columns:minmax(0,1fr);gap:26px;padding:30px 24px 24px; }
  .site-footer__top { justify-self:stretch; }
  .site-footer__wordmark { width:200px; }
  .site-footer__identity p { margin-top:16px; }
  .site-footer__copyright { padding-top:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .site-footer__top,.site-footer__top svg { transition:none; }
  .site-footer__top:hover,.site-footer__top:hover svg { transform:none; }
}
.method-step:focus-visible,.technical-profile a:focus-visible,.contact-hub a:focus-visible,.contact-hub button:focus-visible,.site-footer a:focus-visible { outline:2px solid var(--stage-white);outline-offset:5px; }

@media(max-width:1100px) {
  .method-flow { gap:14px; }
  .method-step { padding:22px 18px; }
  .profile-grid { gap:16px; }
  .profile-card { padding:24px 20px; }
  .profile-card__heading { gap:20px; }
  .tech-chips { grid-template-columns:1fr; }
  .contact-grid { gap:30px; }
  .contact-channel { padding:20px;gap:14px; }
  .contact-channel--email { grid-template-columns:28px minmax(0,1fr); }
  .contact-copy { grid-column:2;justify-self:start; }
}
@media(max-width:850px) {
  .method-flow { grid-template-columns:1fr;gap:14px;margin-top:35px; }
  .method-step { grid-column:1;grid-row:auto;display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px 20px;padding:24px; }
  .method-step__number { grid-column:1;grid-row:1/3;margin:4px 0 0;font-size:26px; }
  .method-step__title { grid-column:2;margin:0; }
  .method-step__summary { grid-column:2;font-size:14px; }
  .method-step__action { grid-column:2;margin-top:8px;padding-top:12px; }
  .method-panel { grid-column:1;grid-row:auto;margin-top:-15px; }
  .method-panel__grid { grid-template-columns:1fr;gap:24px; }
  .method-panel__grid>div+div { padding:24px 0 0;border-left:0;border-top:1px solid var(--stage-line-soft); }
  .method-panel__label { margin-bottom:10px; }
  .method-team { gap:18px;padding-left:18px; }
  .profile-grid { grid-template-columns:1fr;gap:20px; }
  .profile-card { padding:30px; }
  .profile-card__heading { grid-template-columns:50px minmax(0,1fr) auto;gap:20px;align-items:center; }
  .profile-card__heading>svg { width:50px;height:50px; }
  .profile-card__index { grid-column:3;grid-row:1; }
  .profile-card__heading h3 { grid-column:2;grid-row:1;font-size:27px; }
  .tech-chips { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .profile-lower { grid-template-columns:1fr;gap:20px;margin-top:20px; }
  .profile-cv__links { flex-direction:row; }
  .profile-cv__links .stage-button { flex:1; }
  .contact-grid { grid-template-columns:1fr;gap:40px;margin-top:32px; }
  .contact-intro { padding-top:0; }
  .contact-channel--email { grid-template-columns:30px minmax(0,1fr) auto; }
  .contact-copy { grid-column:auto;justify-self:auto; }
  .contact-context { display:flex;flex-wrap:wrap;gap:5px 24px;margin-top:24px; }
}
@media(max-width:560px) {
  .method-step { --panel-tl:12px;--panel-br:12px;grid-template-columns:30px minmax(0,1fr);gap:8px 15px;padding:22px 18px; }
  .method-panel { --panel-br:14px;--panel-accent-size:36px; }
  .method-step__number { font-size:23px; }
  .method-step__title { font-size:23px; }
  .method-team>svg { display:none; }
  .profile-approach { margin-bottom:30px; }
  .profile-card { --panel-tl:16px;--panel-tr:10px;--panel-br:16px;padding:24px; }
  .profile-education { --panel-tr:18px;--panel-bl:18px; }
  .profile-cv { --panel-tl:18px;--panel-br:18px; }
  .profile-card__heading { grid-template-columns:40px minmax(0,1fr) auto;gap:14px; }
  .profile-card__heading>svg { width:40px;height:40px; }
  .profile-card__heading h3 { font-size:23px; }
  .tech-chips { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tech-chips li { padding:8px;font-size:11px; }
  .profile-block-heading { gap:14px;margin-bottom:24px; }
  .profile-block-heading svg { width:34px;height:34px; }
  .profile-block-heading h3 { font-size:23px; }
  .profile-cv__links { flex-direction:column; }
  .contact-intro .stage-button { width:100%;gap:18px;padding:15px 21px;font-size:14px; }
  .contact-channel { --panel-tr:10px;--panel-br:10px;grid-template-columns:25px minmax(0,1fr) auto;padding:20px 16px;gap:12px; }
  .contact-channel>svg { width:25px;height:25px; }
  .contact-channel--email { grid-template-columns:25px minmax(0,1fr); }
  .contact-copy { grid-column:2;justify-self:start; }
  .contact-channel__value { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
  .method-step,.method-step__action svg,.profile-card,.contact-channel--link { transition:none; }
  .method-step:hover { transform:none; }
}
