@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-latin.woff2) format("woff2");font-weight:400 500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";src:url(/fonts/InstrumentSerif-normal-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";src:url(/fonts/InstrumentSerif-italic-latin.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@property --corner-c{syntax: "<color>"; inherits: false; initial-value: oklch(.38 .01 255);}:root{--bg: oklch(.17 .004 255);--bg-card: oklch(.195 .007 255);--bg-card-hi: oklch(.25 .008 255);--fg: oklch(.93 .003 255);--fg-dim: oklch(.64 .01 255);--fg-dimmer: oklch(.51 .009 255);--fg-faint: oklch(.39 .008 255);--hot: oklch(.68 .2 45);--led-green: oklch(.72 .17 155);--amber: oklch(.78 .12 75);--f-sans: "Geist", system-ui, -apple-system, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--f-serif: "Instrument Serif", Georgia, serif;--radius: 10px;--radius-lg: 14px;--gap: 14px;--corner-size: 24px;--corner-b: 1.5px}.shell{padding:24px 16px 0;flex:1;display:flex;flex-direction:column;--accent: oklch(.67 .052 196);--accent-wash: color-mix(in oklch, var(--accent) 14%, transparent);--border: oklch(.28 .007 255);--border-hi: oklch(.34 .009 255);color:var(--fg);font-family:var(--f-sans);font-size:15px;line-height:1.5}.shell a{color:inherit;text-decoration:none}.shell button{cursor:pointer}.shell .c-hero__title{font-family:var(--f-serif);font-weight:400;letter-spacing:-.015em;color:var(--fg)}.shell .c-lab__title{font-family:var(--f-sans);font-weight:700;letter-spacing:-.03em;color:var(--fg)}.shell .c-contact__title{font-family:var(--f-sans);font-weight:500;letter-spacing:-.01em;color:var(--fg)}.kicker{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dimmer);display:inline-flex;align-items:center;gap:6px}.kicker .sl{color:var(--fg-dim)}.kicker.on-accent{color:color-mix(in srgb,var(--accent) 85%,transparent)}.kicker.on-accent .sl{color:var(--accent)}.bento{display:grid;flex:1;grid-template-columns:repeat(6,1fr);grid-template-rows:1fr 1fr 1fr auto;gap:var(--gap);align-items:stretch}.cell{position:relative;--corner-c: oklch(.46 .014 220);--corner-tl: conic-gradient(from 90deg at left var(--corner-b) top var(--corner-b), transparent 90deg, var(--corner-c) 0) top left / var(--corner-size) var(--corner-size) border-box no-repeat;--corner-tr: conic-gradient(from 180deg at right var(--corner-b) top var(--corner-b), transparent 90deg, var(--corner-c) 0) top right / var(--corner-size) var(--corner-size) border-box no-repeat;--corner-bl: conic-gradient(from 0deg at left var(--corner-b) bottom var(--corner-b), transparent 90deg, var(--corner-c) 0) bottom left / var(--corner-size) var(--corner-size) border-box no-repeat;--corner-br: conic-gradient(from 270deg at right var(--corner-b) bottom var(--corner-b),transparent 90deg, var(--corner-c) 0) bottom right / var(--corner-size) var(--corner-size) border-box no-repeat;background:var(--corner-tl),var(--corner-tr),var(--corner-bl),var(--corner-br),color-mix(in oklch,var(--bg-card) 28%,transparent);border-radius:2px;overflow:hidden;display:flex;flex-direction:column;transition:--corner-c .22s ease,transform .18s ease}a.cell{cursor:pointer}@media(hover:hover)and (pointer:fine){a.cell:hover{--corner-c: oklch(.65 .02 210);background:var(--corner-tl),var(--corner-tr),var(--corner-bl),var(--corner-br),color-mix(in oklch,var(--bg-card) 48%,transparent);transform:translateY(-2px)}a.cell.c-list:hover{background:var(--corner-tl),var(--corner-tr),var(--corner-bl),var(--corner-br),color-mix(in oklch,var(--bg-card) 28%,transparent)}}a.cell:focus-visible{outline:none;--corner-c: var(--accent);box-shadow:0 0 0 3px color-mix(in oklch,var(--accent) 18%,transparent)}.btn{--btn-corner: 8px;position:relative;display:inline-flex;align-items:center;font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;color:var(--fg);text-decoration:none;clip-path:polygon(var(--btn-corner) 0,100% 0,100% calc(100% - var(--btn-corner)),calc(100% - var(--btn-corner)) 100%,0 100%,0 var(--btn-corner));transition:transform .18s ease;isolation:isolate}.btn__label{display:inline-flex;align-items:center;gap:10px;padding:11px 14px 11px 16px}.btn__prompt{font-weight:500;opacity:.9}.btn__arrow{display:inline-flex;align-items:center;justify-content:center;padding:0 14px;align-self:stretch;font-size:13px;transition:transform .22s ease;border-left:1px solid currentColor}.btn:before{content:"";position:absolute;inset:0;border:1px solid var(--border-hi);clip-path:polygon(var(--btn-corner) 0,100% 0,100% calc(100% - var(--btn-corner)),calc(100% - var(--btn-corner)) 100%,0 100%,0 var(--btn-corner));z-index:-1;transition:background .2s,border-color .2s}.btn:hover{transform:translateY(-1px)}.btn:hover .btn__arrow{transform:translate(3px)}.btn.pri{color:var(--fg)}.btn.pri:before{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.btn.pri .btn__prompt{color:var(--accent)}.btn.pri .btn__arrow{color:var(--accent);border-left-color:color-mix(in srgb,var(--accent) 40%,transparent)}.btn.pri:hover:before{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent)}.btn.sec{color:var(--fg-dim)}.btn.sec:before{border:1px dashed color-mix(in srgb,var(--fg-dim) 50%,transparent);background:transparent}.btn.sec .btn__arrow{border-left-color:color-mix(in srgb,var(--fg-dim) 40%,transparent)}.btn.sec:hover{color:var(--fg)}.btn.sec:hover:before{border-style:solid;border-color:var(--fg-dim);background:color-mix(in srgb,var(--fg) 4%,transparent)}.c-hero{grid-column:span 4;grid-row:span 2;padding:32px 36px;min-height:300px;justify-content:center;background:var(--corner-tl),var(--corner-tr),var(--corner-bl),var(--corner-br),radial-gradient(ellipse 70% 80% at 115% 100%,color-mix(in srgb,white 7%,transparent),transparent 70%),color-mix(in oklch,var(--bg-card) 28%,transparent)}.c-hero__kicker{position:absolute;top:20px;left:28px;z-index:3}.c-hero__ambient{position:absolute;right:0;top:0;bottom:0;width:55%;pointer-events:none;z-index:0;overflow:hidden;mask-image:linear-gradient(to right,transparent 0%,#000 35%,#000 85%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 15%,#000 50%,transparent 85%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 35%,#000 85%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 15%,#000 50%,transparent 85%);-webkit-mask-composite:source-in;font-family:var(--f-mono);font-size:11px;color:var(--fg-dimmer);opacity:.24;line-height:1.6;letter-spacing:.02em;padding:22px 24px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.c-hero__ambient-block{white-space:pre}.c-hero__inner{position:relative;z-index:2;max-width:520px;display:flex;flex-direction:column;gap:12px}.c-hero__title{font-family:var(--f-serif);font-weight:400;font-size:clamp(36px,4.2vw,52px);line-height:1;letter-spacing:-.015em;margin:0;color:var(--fg)}.c-hero__title em{font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:1.2em;color:var(--accent);letter-spacing:-.01em;display:inline-block}.c-hero__title b{font-family:var(--f-serif);font-weight:400;font-style:normal}.c-hero__line{margin:0;color:var(--fg-dim);font-size:14.5px;max-width:380px}.c-hero__quick{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.c-portrait{grid-column:span 2;grid-row:span 2;min-height:180px;padding:0;overflow:hidden;background:radial-gradient(ellipse 75% 55% at 68% 38%,color-mix(in srgb,white 4%,transparent) 0%,transparent 70%),color-mix(in oklch,var(--bg-card) 28%,transparent)}.c-portrait__img-wrap{position:absolute;inset:0}.c-portrait__img-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--bg) 30%,transparent) 65%,color-mix(in srgb,var(--bg) 92%,transparent) 100%);z-index:2}.c-portrait__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 15%;filter:contrast(1.03) saturate(.95);mix-blend-mode:luminosity}.c-portrait__sticker{position:absolute;top:14px;left:14px;background:color-mix(in srgb,var(--accent) 18%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--accent);font-family:var(--f-mono);font-size:10.5px;font-weight:500;padding:6px 10px;letter-spacing:.1em;text-transform:uppercase;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);z-index:2}.c-portrait__foot{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;color:var(--fg)}.c-portrait__name{font-family:var(--f-sans);font-weight:600;font-size:15px;letter-spacing:-.01em}.c-portrait__loc{font-family:var(--f-mono);font-size:11px;color:var(--fg-dim);letter-spacing:.05em;display:flex;align-items:center;gap:6px;margin-top:2px}.c-portrait__loc:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--led-green);box-shadow:0 0 0 3px color-mix(in srgb,var(--led-green) 25%,transparent)}.c-lab{grid-column:span 3;padding:18px 20px;min-height:220px;background:var(--corner-tl),var(--corner-tr),var(--corner-bl),var(--corner-br),color-mix(in oklch,var(--bg-card) 28%,transparent)}.c-lab:before{content:"";position:absolute;inset:0;background:url(/homelab-rack.webp) 80% 30% / cover no-repeat;filter:grayscale(1) contrast(1.05) brightness(.6);opacity:.32;mask-image:linear-gradient(to right,transparent 0%,#000 45%,#000 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 45%,#000 100%);pointer-events:none;z-index:0}.c-lab:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 100% at 100% 50%,color-mix(in srgb,white 4%,transparent),transparent 65%),linear-gradient(90deg,color-mix(in oklch,var(--bg-card) 85%,transparent) 0%,color-mix(in oklch,var(--bg-card) 50%,transparent) 45%,transparent 100%),linear-gradient(to top,color-mix(in oklch,var(--bg) 95%,transparent) 0%,transparent 38%);pointer-events:none;z-index:0}.c-lab>*{position:relative;z-index:1}.c-lab__main{display:flex;flex-direction:column;gap:10px;height:100%}.c-lab__content{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:10px}.c-lab__title{margin:0;font-family:var(--f-sans);font-weight:700;font-size:clamp(24px,2.8vw,34px);line-height:1;letter-spacing:-.03em}.c-lab__desc{color:var(--fg-dim);font-size:13px;max-width:320px;margin:0}.c-lab__stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.c-lab__stack .tag:before{content:"# ";letter-spacing:0}.tag{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:4px;border:1px solid var(--border-hi);color:var(--fg-dim);background:transparent}.c-list{grid-column:span 3;padding:18px 20px;gap:10px}.c-list__title{margin:0;font-family:var(--f-sans);font-size:clamp(18px,2.2vw,22px);font-weight:600;line-height:1.2;letter-spacing:-.03em;color:var(--fg)}.c-list__desc{margin:0;font-size:13px;color:var(--fg-dim);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.c-list__foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:12px;border-top:1px dashed color-mix(in srgb,var(--border) 80%,transparent)}.c-list__date{font-family:var(--f-mono);font-size:10.5px;color:var(--fg);letter-spacing:.06em}.c-list__arrow{font-family:var(--f-mono);font-size:11px;color:var(--accent);letter-spacing:.04em;transition:letter-spacing .2s ease,transform .22s ease}@media(hover:hover)and (pointer:fine){.c-list:hover .c-list__arrow{letter-spacing:.1em;transform:translate(2px)}}.c-contact{grid-column:span 6;padding:28px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.c-contact__title{margin:0;font-family:var(--f-sans);font-size:15px;font-weight:500;letter-spacing:-.01em;width:100%}.c-contact__title em{font-family:var(--f-serif);font-style:italic;color:var(--fg-dim);font-weight:400}.c-contact__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.c-contact__socials{display:flex;gap:8px;align-items:center}.c-contact__social-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-hi);display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:11px;font-weight:500;color:var(--fg-dim);letter-spacing:.02em;transition:border-color .15s,color .15s}.c-contact__social-btn:hover{border-color:var(--accent);color:var(--accent)}.c-hero__mobile-portrait{display:none;position:absolute;right:0;top:0%;bottom:6%;width:50%;overflow:hidden;pointer-events:none;z-index:1}.c-hero__mobile-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:contrast(1.04) saturate(.9);mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 55%,transparent 88%),linear-gradient(to right,transparent 0%,color-mix(in srgb,#000 50%,transparent) 18%,#000 40%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 55%,transparent 88%),linear-gradient(to right,transparent 0%,color-mix(in srgb,#000 50%,transparent) 18%,#000 40%);-webkit-mask-composite:source-in}@media(max-width:1024px){.c-hero__ambient{display:none}.btn__label{padding:10px 12px 10px 14px}.btn__arrow{padding:0 12px}.c-lab__desc{max-width:none}.c-lab:before{background-position:center center;mask-image:linear-gradient(to bottom,transparent 0%,#000 40%,#000 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 40%,#000 100%)}.c-lab:after{background:linear-gradient(180deg,color-mix(in oklch,var(--bg-card) 85%,transparent) 0%,color-mix(in oklch,var(--bg-card) 45%,transparent) 45%,transparent 100%)}.c-list__title{font-size:clamp(17px,2.8vw,21px)}}@media(min-width:641px)and (max-width:1024px){.shell{padding:20px 18px}.bento{grid-template-columns:1fr 1fr;gap:12px}.c-hero{grid-column:1 / 2;grid-row:1 / 3;padding:28px 26px 36px;min-height:380px}.c-hero__mobile-portrait{display:none}.c-hero:after{display:none}.c-hero__inner{max-width:none;gap:18px}.c-hero__title{font-size:clamp(30px,4.8vw,46px);margin-top:0}.c-hero__line{font-size:14px;max-width:none;margin-top:auto;padding-top:0;color:var(--fg-dim)}.c-hero__quick{gap:10px;margin-top:20px}.c-portrait{grid-column:2 / 3;grid-row:1 / 3;display:flex;min-height:380px}.c-portrait__img{object-fit:cover;object-position:center 15%;mask-image:linear-gradient(to bottom,transparent 0%,#000 8%,#000 70%,transparent 100%),linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 8%,#000 70%,transparent 100%),linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%);-webkit-mask-composite:source-in}.c-lab{grid-column:1 / 2;grid-row:3;padding:18px;min-height:0}.c-lab__title{font-size:clamp(22px,3.5vw,30px)}.c-lab:before{opacity:.22}.c-list{grid-column:2 / 3;grid-row:3;padding:14px 16px}.c-contact{grid-column:1 / -1;grid-row:4;padding:20px 22px;gap:12px}.kicker{font-size:10px;letter-spacing:.12em}}@media(max-width:640px){.shell{padding:16px 14px}.bento{grid-template-columns:1fr;gap:10px}.c-hero{grid-column:1 / -1;padding:32px 20px 36px;min-height:360px}.c-hero__inner{gap:12px;max-width:none;position:relative;z-index:3}.c-hero__title{font-size:clamp(28px,8.5vw,38px);margin-top:4px}.c-hero__line{font-size:14px;max-width:none;color:var(--fg);margin-top:8px;padding-top:0}.c-hero__quick{gap:10px;margin-top:20px}.c-hero__mobile-portrait{display:block;z-index:1;opacity:.45}.c-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to right,color-mix(in srgb,var(--bg-card) 88%,transparent) 55%,transparent 82%),linear-gradient(to bottom,transparent 30%,color-mix(in srgb,var(--bg-card) 60%,transparent) 70%);z-index:2;pointer-events:none}.c-portrait{display:none}.kicker{font-size:10px;letter-spacing:.1em}.c-hero{order:1}.c-lab{order:2}.c-list{order:3}.c-contact{order:4}.c-lab{grid-column:1 / -1;padding:16px 14px;min-height:0}.c-lab__title{font-size:clamp(22px,7vw,28px)}.c-lab:before{opacity:.18}.c-list{grid-column:1 / -1;padding:14px 16px}.c-list__title{font-size:clamp(20px,5.5vw,24px)}.c-contact{grid-column:1 / -1;padding:20px 16px;gap:12px}.c-contact__title{font-size:15px}.c-contact__actions{width:100%;flex-direction:column;align-items:center}.c-contact__actions .btn{width:100%;justify-content:space-between}}@media(max-width:380px){.c-hero__title{font-size:34px}.c-hero__quick{flex-direction:column;align-items:stretch}.c-hero__quick .btn{justify-content:space-between}.tag{font-size:9.5px;padding:3px 7px}}@keyframes cell-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.cell{animation:cell-in .55s cubic-bezier(.25,.46,.45,.94) backwards}.c-hero{animation-delay:0ms}.c-portrait{animation-delay:80ms}.c-lab{animation-delay:.15s}.c-list{animation-delay:.2s}.c-contact{animation-delay:.28s}@keyframes ambient-scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.c-hero__ambient-track{display:flex;flex-direction:column;animation:ambient-scroll 80s linear infinite}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.cursor{color:var(--accent);text-shadow:0 0 8px var(--accent);animation:cursor-blink 1.1s step-end infinite}.sh-pr{color:color-mix(in srgb,var(--foreground) 45%,transparent)}.sh-cm{color:var(--foreground);font-weight:500}.sh-st{color:#4ade80}.sh-nm{color:var(--accent)}.sh-vl{color:#fbbf24}.sh-mt{color:color-mix(in srgb,var(--foreground) 55%,transparent)}@keyframes led-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--led-green) 25%,transparent);opacity:1}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--led-green) 8%,transparent);opacity:.35}}.c-portrait__loc:before{animation:led-pulse 2.8s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.cell{animation:none}a.cell:hover{transform:none}.c-hero__ambient-track,.cursor{animation:none}.c-portrait__loc:before{animation:none}}
