.contact-network{isolation:isolate;max-width:1060px;margin-top:40px;position:relative}[data-endpoint=email],[data-spoke=email],[data-socket=email]{--card-accent:var(--tone-rose)}[data-endpoint=linkedin],[data-spoke=linkedin],[data-socket=linkedin]{--card-accent:var(--tone-ice)}[data-endpoint=github],[data-spoke=github],[data-socket=github]{--card-accent:var(--tone-lilac)}[data-endpoint=resume],[data-spoke=resume],[data-socket=resume]{--card-accent:color-mix(in srgb, var(--tone-rose) 50%, var(--tone-lilac))}.contact-spokes{z-index:0;pointer-events:none;visibility:hidden;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.contact-spokes[data-ready]{visibility:visible}.contact-spokes path{fill:none;stroke:var(--card-accent);stroke-width:1.25px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;stroke-opacity:.42}.contact-spokes circle{fill:var(--card-accent);transform-box:fill-box;transform-origin:50%}.contact-hub{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:14px;width:156px;height:fit-content;margin:auto;display:flex;position:absolute;inset:0}.contact-node{border:1px solid color-mix(in srgb, var(--tone-lilac) 55%, var(--line));background:radial-gradient(circle at 32% 28%, var(--raised), color-mix(in srgb, var(--tone-lilac) 16%, var(--raised)));width:84px;height:84px;box-shadow:0 0 0 8px color-mix(in srgb, var(--tone-rose) 8%, transparent), 0 14px 30px -20px color-mix(in srgb, var(--tone-lilac) 70%, transparent);color:var(--accent-text);letter-spacing:-.03em;border-radius:50%;place-items:center;font-size:24px;font-weight:600;display:grid;position:relative}.contact-node-pulse{border:1.5px solid var(--tone-rose);visibility:hidden;border-radius:50%;position:absolute;inset:-1px}.contact-hub-text{flex-direction:column;gap:3px;margin:0;display:flex}.contact-hub-text strong{letter-spacing:-.02em;font-size:16px}.contact-hub-text span{color:var(--muted);font-size:13px;line-height:1.45}.contact-hub-text .contact-hub-place{letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font:500 11px/1.4 Consolas,monospace}.contact-cards{z-index:1;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) minmax(232px,.85fr) minmax(0,1fr);gap:18px 0;margin:0;padding:0;list-style:none;display:grid;position:relative}.contact-cards>li{grid-column:1;align-items:center;display:flex}:is(.contact-cards>li:has([data-endpoint=github]),.contact-cards>li:has([data-endpoint=resume])){grid-column:3}:is(.contact-cards>li:has([data-endpoint=email]),.contact-cards>li:has([data-endpoint=github])){grid-row:1}:is(.contact-cards>li:has([data-endpoint=linkedin]),.contact-cards>li:has([data-endpoint=resume])){grid-row:2}.contact-tile{isolation:isolate;border:1px solid color-mix(in srgb, var(--line) 65%, transparent);border-radius:var(--radius-card);background:var(--raised);flex:1;grid-template-columns:42px minmax(0,1fr);align-content:start;gap:6px 16px;padding:22px;transition:transform .2s cubic-bezier(.2,.7,.15,1),border-color .2s,box-shadow .2s;display:grid;position:relative}.contact-tile>:not(.contact-icon){grid-column:2}.contact-tile>.contact-icon{grid-row:1/span 4}.contact-tile h2{letter-spacing:-.02em;margin:8px 0 2px;font-size:18px}.contact-tile p{margin:0;font-size:14px;line-height:1.55}.contact-main{overflow-wrap:anywhere;text-underline-offset:4px;font-weight:600}.contact-main:after{content:"";border-radius:inherit;position:absolute;inset:0}.contact-tile-actions{z-index:2;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex;position:relative}.contact-tile-actions a:not([class]){align-items:center;min-height:44px;font-size:14px;display:inline-flex}.contact-tile:has(.contact-main:focus-visible){outline:3px solid var(--focus,var(--text));outline-offset:4px}.contact-main:focus-visible{outline:none}.contact-icon{width:42px;height:42px;color:var(--card-accent);background:color-mix(in srgb, var(--card-accent) 10%, var(--bg));border-radius:12px;place-items:center;transition:translate .22s cubic-bezier(.3,1.32,.5,1),rotate .22s cubic-bezier(.3,1.32,.5,1);display:grid}.contact-icon svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.contact-tile:after{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(260px circle at var(--glow-x,50%) var(--glow-y,50%), color-mix(in srgb, var(--card-accent) 14%, transparent), transparent 70%);opacity:0;transition:opacity .22s;position:absolute;inset:0}.contact-tile:is(:hover,:focus-within){border-color:color-mix(in srgb, var(--card-accent) 55%, var(--line))}.contact-tile:is(:hover,:focus-within) .contact-icon{translate:0 -3px;rotate:-5deg}@media (hover:hover) and (pointer:fine){.contact-tile:hover{box-shadow:0 14px 28px -20px color-mix(in srgb, var(--card-accent) 50%, transparent);transform:translateY(-3px)}.contact-tile:hover:after{opacity:1}}@media (prefers-reduced-motion:reduce){.contact-tile,.contact-icon,.contact-tile:after{transition:none!important}.contact-tile:hover{box-shadow:none;transform:none}.contact-tile:is(:hover,:focus-within) .contact-icon{translate:none;rotate:none}.contact-tile:after{display:none}}@media (max-width:900px){.contact-hub{text-align:left;flex-direction:row;width:auto;margin:0 0 20px;position:static}.contact-node{width:44px;height:44px;box-shadow:0 0 0 5px color-mix(in srgb, var(--tone-rose) 8%, transparent);flex-shrink:0;font-size:15px}.contact-hub-text .contact-hub-place{margin-top:2px}.contact-cards{grid-template-rows:none;grid-template-columns:minmax(0,1fr);gap:14px;max-width:600px;margin-left:44px}:is(.contact-cards>li,.contact-cards>li:has([data-endpoint])){grid-area:auto/1}.contact-tile{padding:18px}}
