.octopi-contact-block__aside{display:grid;align-content:start;gap:clamp(2.25rem,4vw,4rem)}
.octopi-contact-block__aside>div,.octopi-contact-block__aside ul{margin:0}
.octopi-contact-block__aside ul{padding:0;list-style:none}
.octopi-contact-socials{padding-top:clamp(1.25rem,2vw,2rem);border-top:1px solid var(--color-border)}
.octopi-contact-socials>.octopi-eyebrow{margin:0 0 1rem}
.octopi-contact-socials ul{display:flex;flex-wrap:nowrap;align-items:center;gap:.8rem}
.octopi-contact-socials li{display:flex;align-items:center;margin:0!important;padding:0;line-height:0}
.octopi-contact-socials a{display:inline-flex;width:30px;height:30px;box-sizing:border-box;align-items:center;justify-content:center;padding:0;border:0;border-radius:0;color:var(--color-muted);background:transparent;transform:none;transition:color var(--hover-text-duration) var(--motion-ease)}
.octopi-contact-socials a:hover,.octopi-contact-socials a:focus-visible{color:var(--color-foreground);background:transparent;transform:none}
.octopi-contact-socials__icon{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:var(--color-foreground);background:color-mix(in srgb,var(--color-foreground) 7%,transparent)}
.octopi-contact-socials a>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.octopi-contact-socials svg{width:16px;height:16px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.octopi-contact-socials svg .is-filled{fill:currentColor;stroke:none}

.octopi-portfolio-modal[hidden]{display:none}
.octopi-portfolio-modal{position:fixed;inset:0;z-index:100001;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);opacity:0;transition:opacity .28s var(--motion-ease)}
.octopi-portfolio-modal.is-open{opacity:1}
.octopi-portfolio-modal__backdrop{position:absolute;inset:0;background:rgb(3 5 8 / 82%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.octopi-portfolio-modal__dialog{position:relative;width:min(680px,100%);max-height:min(760px,calc(100vh - 2rem));box-sizing:border-box;overflow:auto;padding:clamp(2rem,6vw,4rem);border:1px solid var(--color-border);border-radius:var(--radius-card);outline:0;background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--color-background-accent) 22%,transparent),transparent 42%),var(--color-background);box-shadow:0 32px 100px rgb(0 0 0 / 55%);transform:translateY(18px) scale(.985);transition:transform .38s var(--motion-ease)}
.octopi-portfolio-modal.is-open .octopi-portfolio-modal__dialog{transform:none}
.octopi-portfolio-modal__close{position:absolute;top:1.1rem;right:1.1rem;display:grid;width:42px;height:42px;padding:0;place-items:center;border:1px solid var(--color-border);border-radius:50%;color:var(--color-foreground);background:color-mix(in srgb,var(--color-background) 78%,transparent);font:300 1.65rem/1 var(--font-body);cursor:pointer;transition:border-color var(--hover-text-duration) var(--motion-ease),background-color var(--hover-text-duration) var(--motion-ease),transform var(--hover-text-duration) var(--motion-ease)}
.octopi-portfolio-modal__close:hover,.octopi-portfolio-modal__close:focus-visible{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,var(--color-background));transform:rotate(8deg)}
.octopi-portfolio-modal .octopi-eyebrow{margin:0 0 1.4rem;color:var(--color-accent)}
.octopi-portfolio-modal h2{max-width:12ch;margin:0;font-family:var(--font-display);font-size:clamp(2.3rem,5.5vw,4.75rem);font-weight:var(--heading-weight);line-height:.94;letter-spacing:-.04em;text-wrap:balance}
.octopi-portfolio-modal h2+p{max-width:34rem;margin:1.5rem 0 0;color:var(--color-muted);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6}
.octopi-portfolio-modal__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.octopi-portfolio-modal__actions .octopi-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:50px;padding:.8rem 1.25rem;border:1px solid var(--color-border);border-radius:999px;color:var(--color-foreground);transition:color var(--hover-text-duration) var(--motion-ease),background-color var(--hover-text-duration) var(--motion-ease),border-color var(--hover-text-duration) var(--motion-ease),transform var(--hover-text-duration) var(--motion-ease)}
.octopi-portfolio-modal__actions .octopi-button--light{border-color:var(--color-button);color:var(--color-button-text);background:var(--color-button)}
.octopi-portfolio-modal__actions .octopi-button:hover,.octopi-portfolio-modal__actions .octopi-button:focus-visible{border-color:var(--color-accent);transform:translateY(-2px)}
.octopi-portfolio-modal__actions .octopi-button--light:hover,.octopi-portfolio-modal__actions .octopi-button--light:focus-visible{background:var(--color-accent)}
.octopi-portfolio-modal__actions .is-disabled{cursor:not-allowed;opacity:.45;transform:none!important}
.octopi-portfolio-modal__note{margin:1rem 0 0;color:color-mix(in srgb,var(--color-muted) 75%,transparent);font-size:.72rem}
.octopi-portfolio-gate{margin-top:2rem}
.octopi-portfolio-gate__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.octopi-portfolio-gate__fields label{display:grid;gap:.55rem}
.octopi-portfolio-gate__fields label>span{color:var(--color-muted);font:500 .7rem/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.octopi-portfolio-gate__fields em{color:var(--color-accent);font-style:normal}
.octopi-portfolio-gate__fields input{width:100%;min-height:52px;box-sizing:border-box;padding:.8rem 1rem;border:1px solid var(--color-border);border-radius:12px;outline:0;color:var(--color-foreground);background:color-mix(in srgb,var(--color-background) 82%,transparent);font:400 1rem/1.3 var(--font-body);transition:border-color var(--hover-text-duration) var(--motion-ease),box-shadow var(--hover-text-duration) var(--motion-ease),background-color var(--hover-text-duration) var(--motion-ease)}
.octopi-portfolio-gate__fields input:hover{border-color:color-mix(in srgb,var(--color-foreground) 32%,var(--color-border))}
.octopi-portfolio-gate__fields input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 14%,transparent);background:var(--color-background)}
.octopi-portfolio-gate__website{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.octopi-portfolio-gate__message{min-height:1.25em;margin:.65rem 0 0;color:var(--color-muted);font-size:.78rem}
.octopi-portfolio-gate__message:empty{display:none}
.octopi-portfolio-gate__message[data-state="success"]{color:var(--color-accent)}
.octopi-portfolio-gate__message[data-state="error"]{color:#ff9a86}
.octopi-portfolio-gate[aria-busy="true"]{opacity:.82}
body.octopi-modal-open{overflow:hidden}
@media(max-width:620px){.octopi-contact-socials__icon{background:transparent}.octopi-portfolio-modal__dialog{padding:3.75rem 1.5rem 2rem;border-radius:20px}.octopi-portfolio-gate__fields{grid-template-columns:1fr}.octopi-portfolio-modal__actions{display:grid}.octopi-portfolio-modal__actions .octopi-button{width:100%;box-sizing:border-box}}
@media(prefers-reduced-motion:reduce){.octopi-portfolio-modal,.octopi-portfolio-modal__dialog,.octopi-contact-socials a{transition:none!important}}
