@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 900;font-display:swap;src:url('../fonts/schibsted-grotesk-latin-wght-normal.woff2') format('woff2-variations')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2')}:root{color-scheme:dark;--bg:#0e0f10;--window:#141517;--panel:#111313;--panel-alt:#17191b;--field:#121414;--field-top:#1b1d1d;--field-hover:#202222;--border-dark:#000103;--border:#1d1f1f;--border-high:#2e3031;--bevel-outer:#3a3a3d;--gloss-low:#2c2d31;--gloss-high:#5c5f65;--text:#f4f6f5;--text-soft:#c3c5c4;--text-dim:#8a8c8c;--text-disabled:#4a494e;--accent:#5a5d63;--accent-peak:#7a7e85;--accent-soft:rgb(122 126 133 / 16%);--good:#6a9e67;--warning:#be9a58;--danger:#ae4a4e;--font-sans:'Schibsted Grotesk','Segoe UI',system-ui,sans-serif;--font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;--radius:2px;--bevel:inset 0 1px 0 var(--border-high),inset 0 -1px 0 #0a0b0b;--bevel-pressed:inset 0 1px 0 #0a0b0b,inset 0 -1px 0 var(--border-high);--shell:inset 0 0 0 1px var(--bevel-outer),inset 0 0 0 2px var(--border-dark),inset 0 0 0 4px #1b1c1f,inset 0 0 0 5px var(--border-dark);--content:1120px;--gutter:clamp(16px, 4vw, 32px);--nav-h:62px;--control-h:36px;--ease:cubic-bezier(0.2, 0.8, 0.2, 1);--t-fast:120ms;--t-med:200ms;--t-slow:320ms}*,::after,::before{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 24px)}body{min-height:100vh;display:flex;flex-direction:column;margin:0;color:var(--text-soft);background:var(--bg);font-family:var(--font-sans);font-size:15px;line-height:1.55;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body>main{flex:1 0 auto}h1,h2,h3,h4{margin:0;color:var(--text);font-weight:600;line-height:1.2;letter-spacing:-.01em}p{margin:0}ul{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none;transition:color var(--t-fast) var(--ease)}img,svg{display:block}code{font-family:var(--font-mono)}::selection{color:var(--text);background:rgb(122 126 133 / 40%)}:focus{outline:0}:focus-visible{outline:1px solid var(--accent-peak);outline-offset:2px}[hidden]{display:none!important}*{scrollbar-width:thin;scrollbar-color:var(--bevel-outer) var(--panel)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--panel)}::-webkit-scrollbar-thumb{background:var(--bevel-outer);border:2px solid var(--panel)}.tabular,time{font-variant-numeric:tabular-nums}.container{width:min(100% - 2 * var(--gutter),var(--content));margin-inline:auto}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:8px 14px;color:var(--text);background:var(--window);border:1px solid var(--accent-peak);transform:translateY(-160%);transition:transform var(--t-med) var(--ease)}.skip-link:focus{transform:none}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.wordmark{display:inline-block;padding:0 .06em .08em 0;color:transparent;background:linear-gradient(180deg,#fff 0,#d4d7d8 50%,#8e9294 100%);-webkit-background-clip:text;background-clip:text;font-weight:750;letter-spacing:-.05em;line-height:1}.metal-text{color:transparent;background:linear-gradient(180deg,#fff 0,#eceeee 50%,#c3c5c4 100%);-webkit-background-clip:text;background-clip:text}.steel-text{color:transparent;background:linear-gradient(180deg,#d9dcdd 0,#a3a7ab 55%,#666a6f 100%);-webkit-background-clip:text;background-clip:text}.gloss{position:relative}.gloss::after,.gloss::before{content:'';position:absolute;top:0;right:0;left:0;height:2px;pointer-events:none}.gloss::before{background:linear-gradient(90deg,var(--gloss-low),var(--gloss-high) 55%,var(--gloss-low))}.gloss::after{background:linear-gradient(90deg,rgb(255 255 255 / 0%),#fff 35%,rgb(255 255 255 / 0%)) 0 0/72px 100% no-repeat;filter:drop-shadow(0 0 3px rgb(255 255 255 / 70%)) drop-shadow(0 0 8px rgb(255 255 255 / 35%));animation:6s ease-in-out infinite alternate glint}@keyframes glint{from{background-position:0 0}to{background-position:100% 0}}.window{position:relative;padding:6px;background:var(--window);border:1px solid var(--border-dark);border-radius:var(--radius);box-shadow:var(--shell)}.window-inner{display:flex;flex-direction:column;height:100%;background:linear-gradient(var(--window),var(--panel));border:1px solid var(--border-dark);box-shadow:inset 0 0 0 1px var(--border)}.window-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;padding:2px 16px 0;background:linear-gradient(var(--panel-alt),var(--window));border-bottom:1px solid var(--border-dark);box-shadow:inset 0 -1px 0 var(--border)}.window-title{display:inline-flex;align-items:center;gap:10px;color:var(--text);font-size:15px;font-weight:600;letter-spacing:-.01em}.window-title svg{width:16px;height:16px;color:var(--text-dim);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.window-title .is-filled{fill:currentColor;stroke:none}.window-meta{color:var(--text-dim);font-family:var(--font-mono);font-size:12px}.window-body{display:grid;gap:22px;padding:26px 20px 22px}.window-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-top:auto;padding:10px 16px;color:var(--text-dim);background:var(--panel);border-top:1px solid var(--border-dark);box-shadow:inset 0 1px 0 var(--border);font-size:12px}.group{position:relative;display:grid;align-content:start;gap:8px;padding:20px 16px 16px;background:var(--spot-layer,none),linear-gradient(var(--panel-alt),var(--panel));border:1px solid var(--border-dark);box-shadow:inset 0 0 0 1px var(--border)}.group-title{position:absolute;top:-9px;left:10px;max-width:calc(100% - 20px);padding:0 5px;overflow:hidden;color:var(--text);background:var(--window);font-size:13px;font-weight:600;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.led{flex:none;width:10px;height:10px;background:linear-gradient(#5a5c60,#3a3c40);border:1px solid var(--border-dark);box-shadow:inset 0 1px 0 rgb(255 255 255 / 15%)}.led.is-good{background:linear-gradient(#8fd08b,#5a8a57);box-shadow:inset 0 1px 0 rgb(255 255 255 / 30%),0 0 8px rgb(106 158 103 / 55%)}.led.is-warning{background:linear-gradient(#e0bd78,#a5844a);box-shadow:inset 0 1px 0 rgb(255 255 255 / 30%),0 0 8px rgb(190 154 88 / 55%)}.led.is-danger{background:linear-gradient(#d56a6e,#963d41);box-shadow:inset 0 1px 0 rgb(255 255 255 / 30%),0 0 8px rgb(174 74 78 / 55%)}.led.is-live{animation:pulse 1.8s var(--ease) infinite}@keyframes pulse{50%{opacity:.55}}.pill{display:inline-flex;align-items:center;gap:8px;min-height:26px;padding:0 10px 0 8px;color:var(--text-soft);background:linear-gradient(var(--field-top),var(--field));border:1px solid var(--border-dark);border-radius:var(--radius);box-shadow:var(--bevel);font-size:12px;font-weight:500;line-height:1;white-space:nowrap}.pill .led{width:8px;height:8px}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-h);padding:0 16px;color:var(--text-soft);background:linear-gradient(var(--field-top),var(--field));border:1px solid var(--border-dark);border-radius:var(--radius);box-shadow:var(--bevel);font-size:13px;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;user-select:none;transition:color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),filter var(--t-fast) var(--ease)}.btn svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--t-med) var(--ease)}.btn .is-filled{fill:currentColor;stroke:none}.btn:hover{color:var(--text);filter:brightness(1.18)}.btn:hover svg:last-child:not(:first-child){transform:translateX(2px)}.btn:active{transform:translateY(1px);box-shadow:var(--bevel-pressed);filter:brightness(.94)}.btn--primary{color:var(--text);background:linear-gradient(#686b72,#4b4e54);box-shadow:inset 0 1px 0 rgb(255 255 255 / 16%),inset 0 -1px 0 rgb(0 0 0 / 28%)}.btn--ghost{background:0 0;border-color:var(--border-high);box-shadow:none}.btn--ghost:hover{background:var(--field-hover);filter:none}.btn--lg{min-height:42px;padding:0 20px;font-size:14px}.btn--sm{min-height:30px;padding:0 12px;font-size:12px}.nav{position:sticky;top:0;z-index:50;padding-top:10px;pointer-events:none}.nav>*{pointer-events:auto}.nav-inner{display:flex;align-items:center;gap:4px;padding:6px;background:#1a1c1c;border:1px solid var(--border-dark);box-shadow:var(--shell)}.nav-cell{display:flex;align-items:center;height:38px;padding:2px 10px 0;background:linear-gradient(var(--field-hover),#0e1010);border:1px solid var(--border-dark);box-shadow:inset 0 0 0 1px #1f2121}.nav-start{gap:10px;min-width:150px;padding-inline:12px}.nav-start .mark{width:22px;height:22px}.nav-start .wordmark{font-size:22px}.nav-brand{display:inline-flex;align-items:center;gap:9px;transition:filter var(--t-fast) var(--ease)}.nav-brand:hover{filter:brightness(1.15)}.nav-links{flex:1;justify-content:center;gap:4px}.nav-link{position:relative;display:inline-flex;align-items:center;height:30px;padding:0 16px;color:var(--text-dim);font-size:14px;font-weight:500}.nav-link::after{content:'';position:absolute;right:12px;bottom:-4px;left:12px;height:1px;background:var(--accent-peak);transform:scaleX(0);transition:transform var(--t-med) var(--ease)}.nav-link:hover,.nav-link[aria-current]{color:var(--text)}.nav-link[aria-current]::after{transform:scaleX(1)}.nav-actions{gap:4px;padding-inline:4px}.nav-icon{display:grid;place-items:center;width:34px;height:30px;color:var(--text-dim);border:1px solid transparent;transition:color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.nav-icon svg{width:18px;height:18px;fill:currentColor}.nav-icon:hover{color:var(--text);background:rgb(255 255 255 / 3%);border-color:var(--border-dark)}.hero{position:relative;overflow:hidden;margin-top:calc(-1 * var(--nav-h));padding:calc(112px + var(--nav-h)) 0 104px;background:radial-gradient(60% 80% at 50% 0,rgb(255 255 255 / 5%),transparent 70%),var(--bg)}.hero::before{content:'';position:absolute;top:-10%;left:50%;width:70%;height:90%;background:radial-gradient(closest-side,rgb(255 255 255 / 4.5%),transparent);transform:translateX(-50%);animation:16s ease-in-out infinite alternate drift;pointer-events:none}@keyframes drift{from{transform:translateX(-62%) scale(1)}to{transform:translateX(-38%) scale(1.12)}}.hero-inner{position:relative;display:grid;justify-items:center;gap:20px;text-align:center}.hero-logo{margin:0 -.08em 8px;padding:0 .08em .04em;color:transparent;background:linear-gradient(180deg,#fff 0,#d9dcdd 38%,#9a9ea1 70%,#5d6164 100%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 2px 0 rgb(0 0 0 / 85%));font-size:clamp(84px, 16.5vw, 212px);font-weight:800;letter-spacing:-.065em;line-height:.82;user-select:none}.hero-logo.is-chop{position:relative;background:0 0;-webkit-background-clip:border-box}.chop-word{display:inline-block;white-space:nowrap}.chop-letter{position:relative;display:inline-block}.chop-spacer{visibility:hidden}.chop-half{position:absolute;inset:-0.22em -0.14em;padding:.22em .14em;color:transparent;background:linear-gradient(180deg,#fff 0,#d9dcdd 38%,#9a9ea1 70%,#5d6164 100%);-webkit-background-clip:text;background-clip:text;transition:transform 560ms cubic-bezier(.22, .9, .24, 1),opacity 420ms var(--ease),filter 420ms var(--ease);transition-delay:calc(var(--i, 0) * 38ms);will-change:transform}.chop-half.is-top{clip-path:polygon(0 0,100% 0,100% 48%,0 58%)}.chop-half.is-bottom{clip-path:polygon(0 56.5%,100% 46.5%,100% 100%,0 100%)}.chop-letter.is-cut>.is-top{opacity:0;filter:blur(2px);transform:translate(-.16em,-.34em) rotate(-8deg)}.chop-letter.is-cut>.is-bottom{opacity:0;filter:blur(2px);transform:translate(.18em,.3em) rotate(7deg)}.chop-letter.is-entering>.chop-half{opacity:0;transition:none}.chop-letter.is-entering>.is-top{transform:translate(.42em,-.06em)}.chop-letter.is-entering>.is-bottom{transform:translate(-.42em,.06em)}.chop-slash{position:absolute;top:52%;left:-6%;width:112%;height:3px;background:linear-gradient(90deg,transparent,#fff 18%,#fff 82%,transparent);filter:drop-shadow(0 0 6px rgb(255 255 255 / 90%)) drop-shadow(0 0 18px rgb(255 255 255 / 45%));opacity:0;transform:rotate(-4deg) scaleX(0);transform-origin:left center;pointer-events:none}.hero-logo.is-slashing .chop-slash{animation:420ms cubic-bezier(.3,.7,.2,1) both chop-slash}@keyframes chop-slash{0%{opacity:1;transform:rotate(-4deg) scaleX(0)}55%{opacity:1;transform:rotate(-4deg) scaleX(1)}100%{opacity:0;transform:rotate(-4deg) scaleX(1) translateX(4%)}}.hero h1{font-size:clamp(22px, 3vw, 30px);font-weight:600;letter-spacing:-.025em}.hero-inner>p{max-width:46ch;color:var(--text-dim);font-size:17px}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px}@property --spot{syntax:'<number>';inherits:false;initial-value:0}.spot{--spot-layer:radial-gradient(280px circle at var(--mx, 50%) var(--my, 50%), rgb(255 255 255 / calc(var(--spot) * 6%)), transparent 70%);transition:--spot var(--t-slow) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),filter var(--t-fast) var(--ease),transform var(--t-med) var(--ease)}.spot:hover{--spot:1}.section{padding-top:104px}.section:last-of-type{padding-bottom:32px}.section-head{display:grid;gap:10px;max-width:600px;margin-bottom:34px}.section-head.is-center{justify-items:center;margin-inline:auto;text-align:center}.section-head .eyebrow{color:var(--text-dim);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.section-head h2{font-size:clamp(30px, 3.8vw, 42px);font-weight:700;letter-spacing:-.035em;line-height:1.05}.section-head p{color:var(--text-dim);font-size:16px}.about{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:stretch}.focus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.focus .group{min-height:112px}.focus h3{display:flex;align-items:center;gap:10px;font-size:15px}.focus p{color:var(--text-dim);font-size:14px}.about-text{color:var(--text-soft);font-size:15px;line-height:1.7}.about .window-body{flex:1;grid-template-rows:auto 1fr}.about .focus{grid-auto-rows:1fr}.presence .window-body{gap:0;padding:0}.presence-banner{position:relative;aspect-ratio:960/338;max-height:190px;width:100%;overflow:hidden;background:radial-gradient(120% 140% at 20% 0,rgb(255 255 255 / 9%),transparent 60%),linear-gradient(180deg,#24262a,#141517);border-bottom:1px solid var(--border-dark)}.presence-banner img{width:100%;height:100%;object-fit:cover}.presence-main{position:relative;display:grid;gap:14px;padding:0 18px 18px}.presence-badges{position:absolute;top:10px;right:18px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px;max-width:calc(100% - 140px);padding:4px;background:var(--panel);border:1px solid var(--border-dark);box-shadow:inset 0 1px 0 var(--border)}.presence-badges li{display:grid;place-items:center;width:24px;height:24px}.presence-badges img{width:20px;height:20px;object-fit:contain;transition:transform var(--t-fast) var(--ease)}.presence-badges li:hover img{transform:scale(1.15)}.presence-avatar{position:relative;width:84px;height:84px;margin-top:-42px;background:var(--panel);border:1px solid var(--border-dark);box-shadow:0 0 0 4px var(--window),0 0 0 5px var(--border-dark)}.presence-avatar img{width:100%;height:100%;object-fit:cover}.presence-avatar .led{position:absolute;right:-6px;bottom:-6px;width:16px;height:16px;box-shadow:0 0 0 3px var(--window)}.presence-name h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:20px;letter-spacing:-.02em}.presence-tag{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;color:var(--text-soft);background:linear-gradient(var(--field-top),var(--field));border:1px solid var(--border-dark);box-shadow:var(--bevel);font-size:12px;font-weight:600;letter-spacing:.02em}.presence-tag img{width:14px;height:14px;object-fit:contain}.presence-name p{color:var(--text-dim);font-family:var(--font-mono);font-size:12px}.presence-activity{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center;padding-top:22px}.presence-activity .art{display:grid;place-items:center;width:64px;height:64px;overflow:hidden;color:var(--text-dim);background:var(--panel);border:1px solid var(--border-dark)}.presence-activity .art img{width:100%;height:100%;object-fit:cover}.presence-activity .art svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5}.presence-activity strong{display:block;overflow:hidden;color:var(--text);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.presence-activity span{display:block;overflow:hidden;color:var(--text-dim);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.presence-activity time{color:var(--good);font-family:var(--font-mono);font-size:12px}.presence-idle{padding-top:22px;color:var(--text-dim);font-size:13px}.presence-meta{display:grid;gap:8px}.presence-meta div{padding:10px 12px;background:var(--panel);border:1px solid var(--border-dark);box-shadow:inset 0 1px 0 var(--border)}.presence-meta dt{color:var(--text-dim);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.presence-meta dd{margin:4px 0 0;color:var(--text-soft);font-size:13px}.stack-groups{display:grid;gap:26px}.tiles{display:flex;flex-wrap:wrap;gap:10px}.tile{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px 0 6px;color:var(--text-soft);background:var(--spot-layer,none),linear-gradient(var(--field-top),var(--field));border:1px solid var(--border-dark);box-shadow:var(--bevel);font-size:14px;font-weight:500}.tile:hover{color:var(--text);filter:brightness(1.15);transform:translateY(-1px)}a.tile{position:relative;cursor:pointer}.tile-go{position:absolute;top:4px;right:4px;display:grid;color:var(--text-dim);opacity:0;transform:translate(-2px,2px);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease)}.tile-go svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tile:focus-visible .tile-go,.tile:hover .tile-go{opacity:.9;transform:none}.tile:focus-visible .tile-icon img{filter:none;opacity:1}.tile-icon{display:grid;place-items:center;width:32px;height:32px;background:linear-gradient(180deg,#24262a,#141517 70%,#101112);border:1px solid var(--border-dark);box-shadow:inset 0 0 0 1px #33353a}.tile-icon img{width:18px;height:18px;object-fit:contain;filter:grayscale(1) brightness(1.35) contrast(.9);opacity:.75;transition:filter var(--t-med) var(--ease),opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease)}.tile:hover .tile-icon img{filter:none;opacity:1;transform:scale(1.12)}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project{position:relative;display:flex;flex-direction:column;gap:12px;min-height:168px;padding:18px 16px 14px;background:var(--spot-layer,none),linear-gradient(var(--panel-alt),var(--panel));border:1px solid var(--border-dark);box-shadow:inset 0 0 0 1px var(--border)}.project:hover{border-color:var(--accent);transform:translateY(-2px)}.project-head{display:flex;align-items:center;gap:10px}.project-head svg{width:16px;height:16px;flex:none;color:var(--text-dim);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.project-head h3{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.project-head .arrow{margin-left:auto;transition:transform var(--t-med) var(--ease)}.project:hover .project-head .arrow{color:var(--text);transform:translate(2px,-2px)}.project p{flex:1;color:var(--text-dim);font-size:14px;line-height:1.55}.project p.is-empty{color:var(--text-disabled);font-style:italic}.project-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--text-dim);font-family:var(--font-mono);font-size:12px}.project-meta span{display:inline-flex;align-items:center;gap:6px}.project-meta .led{width:8px;height:8px}.project-meta svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.projects-empty{padding:28px 20px;color:var(--text-dim);text-align:center}.projects-foot{display:flex;justify-content:center;margin-top:22px}.contact{max-width:720px;margin-inline:auto}.contact .window-body{gap:16px}.contact-lead{color:var(--text-dim);font-size:15px;text-align:center}.links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.links.is-single{grid-template-columns:minmax(0,420px);justify-content:center}.link-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px 12px 12px;background:var(--spot-layer,none),linear-gradient(var(--panel-alt),var(--panel));border:1px solid var(--border-dark);box-shadow:inset 0 0 0 1px var(--border),inset 0 2px 0 var(--border-high)}.link-card:hover{border-color:var(--accent);filter:brightness(1.08)}.link-card .icon{display:grid;place-items:center;width:44px;height:44px;color:var(--text-soft);background:linear-gradient(#24262a,#141517);border:1px solid var(--border-dark);box-shadow:inset 0 0 0 1px #33353a}.link-card .icon svg{width:20px;height:20px;fill:currentColor}.link-card b{display:block;overflow:hidden;color:var(--text);font-size:15px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.link-card small{display:block;color:var(--text-dim);font-size:13px}.link-card>svg{width:18px;height:18px;color:var(--text-dim);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--t-med) var(--ease)}.link-card:hover>svg{color:var(--text);transform:translateX(3px)}.footer{padding:56px 0 28px}.footer .window-inner{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;padding:14px 18px}.footer-brand{display:inline-flex;align-items:center;gap:10px}.footer-brand .mark{width:22px;height:22px}.footer-brand .wordmark{font-size:20px}.footer small{color:var(--text-dim);font-size:12px}.footer-counter{height:34px;width:auto;max-width:180px;object-fit:contain;opacity:.85}.has-js [data-reveal]{opacity:0;transform:translateY(8px);transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}.has-js [data-reveal].is-visible{opacity:1;transform:none}@media (max-width:960px){.about{grid-template-columns:1fr}.projects{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.nav-links{display:none}.nav-start{flex:1;min-width:0}.focus,.links{grid-template-columns:1fr}.section{padding-top:80px}}@media (max-width:560px){.projects{grid-template-columns:1fr}.hero{padding-top:calc(80px + var(--nav-h));padding-bottom:80px}.presence-meta{grid-template-columns:1fr}.footer .window-inner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::after,::before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0s!important}.has-js [data-reveal]{transform:none}}