﻿@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/plex-sans-300.woff2") format("woff2");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:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/plex-sans-400.woff2") format("woff2");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:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/plex-sans-500.woff2") format("woff2");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:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/plex-sans-600.woff2") format("woff2");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:"IBM Plex Sans";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/plex-sans-300-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/plex-sans-400-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/plex-sans-500-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/plex-sans-600-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/plex-mono-400.woff2") format("woff2");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:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/plex-mono-500.woff2") format("woff2");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:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/plex-mono-400-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/plex-mono-500-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;background:#fafaf8;color:#15161a;-webkit-font-smoothing:antialiased}body{min-height:100dvh;display:flex;flex-direction:column}a{color:#3a3a3a;text-decoration:none}a:hover{text-decoration:underline}a.email span{unicode-bidi:bidi-override;direction:rtl}.site-header{position:sticky;top:0;z-index:100;background:rgba(250,250,248,.7);backdrop-filter:blur(8px);border-bottom:1px solid rgba(21,22,26,.1)}.site-header .header-inner{max-width:1160px;margin:0 auto;padding:0 80px;height:56px;display:flex;align-items:center;justify-content:space-between}.site-identity{display:flex;align-items:center;gap:10px;text-decoration:none}.site-identity .identity-logos{display:flex;align-items:center;gap:8px;flex-shrink:0}.site-identity .sketch-logo{height:26px;width:auto;display:block}.site-identity .logo-sep{display:block;width:1px;height:20px;background:rgba(21,22,26,.25);flex-shrink:0}.site-identity .hlrs-logo{height:18px;width:auto;display:block}.site-identity .identity-text{display:flex;flex-direction:column;gap:1px}.site-identity .identity-name{font-size:15px;font-weight:600;color:#15161a;line-height:1.2}.site-identity .identity-sub{font-size:12px;color:rgba(21,22,26,.55);line-height:1.2}.site-nav{display:flex;align-items:center;gap:28px;list-style:none}.site-nav a{font-size:14px;font-weight:500;color:rgba(21,22,26,.7);text-decoration:none;padding-bottom:2px;border-bottom:2px solid rgba(0,0,0,0);transition:color .15s,border-color .15s}.site-nav a:hover{color:#15161a}.site-nav a.active{color:#15161a;border-bottom-color:#3a3a3a}.site-footer{margin-top:auto;background:#f4f3f0;border-top:1px solid rgba(21,22,26,.1)}.site-footer .footer-inner{max-width:1160px;margin:0 auto;padding:20px 80px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer-brand{display:flex;align-items:center;gap:8px}.footer-brand .sketch-logo-sm{height:16px;width:auto;display:block;flex-shrink:0;opacity:.6}.footer-brand span{font-size:12.5px;color:rgba(21,22,26,.55)}.footer-links{display:flex;align-items:center;gap:20px;list-style:none;flex-wrap:wrap}.footer-links a{font-size:12.5px;color:rgba(21,22,26,.55)}.footer-links a:hover{color:#15161a}main.page.home{padding-bottom:40px}main.page .tech-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:36px 0 0}main.page .tech-tags li{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:#3a3a3a;border:1px solid rgba(58,58,58,.3);border-radius:3px;padding:4px 10px;letter-spacing:.02em;margin-bottom:0}.stats-row{display:flex;gap:40px;margin:40px 0 0;padding:0}.stats-row__item{display:flex;flex-direction:column;gap:2px}.stats-row__item dt{font-size:22px;font-weight:600;letter-spacing:-.4px;color:#15161a}.stats-row__item dd{font-size:12px;color:rgba(21,22,26,.55);font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.04em}.home-strip{border-top:1px solid rgba(21,22,26,.1);background:#fff}.home-strip__inner{max-width:1160px;margin:0 auto;padding:24px 80px;display:grid;grid-template-columns:1fr 1fr;gap:48px}.home-strip__col{display:flex;flex-direction:column;gap:6px}.home-strip__col+.home-strip__col{border-left:1px solid rgba(21,22,26,.1);padding-left:48px}.home-strip__label{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:rgba(21,22,26,.55);margin-bottom:4px}.home-strip__title{font-size:16px;font-weight:500;color:#15161a;text-decoration:none}.home-strip__title:hover{color:#3a3a3a}.home-strip__meta{font-size:13px;color:rgba(21,22,26,.55)}.home-strip__notes{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:#3a3a3a}main.page{flex:1;max-width:1160px;margin:0 auto;width:100%;padding:56px 80px 48px}main.page .eyebrow{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;font-weight:400;text-transform:uppercase;letter-spacing:.04em;color:#3a3a3a;margin-bottom:16px}main.page h1{font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:54px;font-weight:500;line-height:1.05;letter-spacing:-1.4px;margin-bottom:18px}main.page h1+p{font-size:18px;line-height:1.55;color:rgba(21,22,26,.7);max-width:720px;margin-bottom:28px}main.page p{font-size:16px;line-height:1.6;max-width:72ch;margin-bottom:20px;color:#15161a}main.page ul,main.page ol{font-size:16px;line-height:1.6;max-width:72ch;margin-bottom:20px;padding-left:1.5em}main.page ul li,main.page ol li{margin-bottom:4px}main.page h2{font-size:26px;font-weight:600;letter-spacing:-.4px;margin:48px 0 14px}main.page h3{font-size:18px;font-weight:600;margin:32px 0 10px}main.page table{width:100%;max-width:72ch;border-collapse:collapse;font-size:15px;margin-bottom:32px}main.page table th{text-align:left;font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:rgba(21,22,26,.55);padding:0 16px 10px 0;border-bottom:1px solid rgba(21,22,26,.1)}main.page table td{padding:12px 16px 12px 0;border-bottom:1px solid rgba(21,22,26,.1);color:#15161a;vertical-align:top}main.page table td:last-child{color:rgba(21,22,26,.55)}main.page table a{color:#15161a;font-weight:500}main.page table a:hover{color:#3a3a3a;text-decoration:none}main.page table tr.past-row td{color:rgba(21,22,26,.55)}main.page table tr.past-row a{color:rgba(21,22,26,.55);font-weight:400}main.page table tr.past-row a:hover{color:rgba(21,22,26,.55)}main.page .pub-entry{display:flex;align-items:flex-start;gap:28px;max-width:calc(72ch + 188px);margin-bottom:8px}main.page .pub-entry__text{flex:1;min-width:0}main.page .pub-entry__text p{margin-bottom:4px}main.page .pub-thumb{flex-shrink:0;margin-top:2px;display:block;width:160px;position:relative}main.page .pub-thumb img{width:160px;display:block;border:1px solid rgba(21,22,26,.1);border-radius:3px;box-shadow:0 1px 5px rgba(0,0,0,.09);transition:box-shadow .15s}main.page .pub-thumb::after{content:"↗";position:absolute;top:5px;right:5px;width:20px;height:20px;background:rgba(255,255,255,.88);color:#15161a;font-size:11px;line-height:20px;text-align:center;border-radius:3px;opacity:.55;transition:opacity .15s;pointer-events:none}main.page .pub-thumb:hover img{box-shadow:0 2px 10px rgba(0,0,0,.18)}main.page .pub-thumb:hover::after{opacity:1}main.page .section-divider{font-size:11px;font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.04em;color:rgba(21,22,26,.55);font-weight:400;margin:56px 0 16px}main.page details{margin:10px 0 24px;max-width:72ch}main.page details summary{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:rgba(21,22,26,.55);cursor:pointer;user-select:none}main.page details summary:hover{color:#3a3a3a}main.page details p{margin-top:14px;color:rgba(21,22,26,.7)}main.page code{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:rgba(0,0,0,.06);padding:2px 5px;border-radius:3px}.post-list{list-style:none;padding:0;margin:40px 0 0;max-width:72ch}.post-list__item{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:16px 0;border-top:1px solid rgba(21,22,26,.1)}.post-list__item:last-child{border-bottom:1px solid rgba(21,22,26,.1)}.post-list__item time{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:rgba(21,22,26,.55);padding-top:3px}.post-list__item a{font-size:16px;font-weight:500;color:#15161a;text-decoration:none}.post-list__item a:hover{color:#3a3a3a}.job-meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin:32px 0 0;padding:20px 0;border-top:1px solid rgba(21,22,26,.1);border-bottom:1px solid rgba(21,22,26,.1)}.job-meta div{display:flex;gap:6px;align-items:baseline}.job-meta dt{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:rgba(21,22,26,.55)}.job-meta dd{font-size:14px;color:#15161a}.job-card{border:1px solid rgba(21,22,26,.1);border-radius:4px;padding:24px;max-width:72ch;margin-bottom:16px}.job-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.job-card__title{font-size:17px;font-weight:500;color:#15161a;text-decoration:none}.job-card__title:hover{color:#3a3a3a}.job-card__status{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:2px;white-space:nowrap;flex-shrink:0}.job-card__status--open{background:rgba(0,0,0,.06);color:#3a3a3a}.job-card__status--closed{background:rgba(0,0,0,.04);color:rgba(21,22,26,.55)}.job-card__status--mock{background:rgba(0,0,0,.04);color:rgba(21,22,26,.55)}.job-card__meta{display:flex;flex-wrap:wrap;gap:6px 28px}.job-card__meta div{display:flex;gap:6px;align-items:baseline}.job-card__meta dt{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:rgba(21,22,26,.55)}.job-card__meta dd{font-size:14px;color:#15161a}@media (max-width: 900px){.site-header .header-inner,.site-footer .footer-inner,main.page,.home-strip__inner{padding-left:32px;padding-right:32px}main.page h1{font-size:38px;letter-spacing:-.8px}}@media (max-width: 768px){.site-header .header-inner{flex-direction:column;align-items:flex-start;height:auto;padding-top:14px;padding-bottom:14px;gap:12px}.site-nav{flex-wrap:wrap;gap:10px 20px}}@media (max-width: 600px){.site-header .header-inner,.site-footer .footer-inner,main.page,.home-strip__inner{padding-left:20px;padding-right:20px}main.page h1{font-size:28px;letter-spacing:-.3px}main.page table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.home-strip__inner{grid-template-columns:1fr;gap:0}.home-strip__col+.home-strip__col{border-left:none;padding-left:0;border-top:1px solid rgba(21,22,26,.1);padding-top:20px;margin-top:20px}.stats-row{gap:20px 32px;flex-wrap:wrap}.site-footer .footer-inner{flex-direction:column;gap:12px}.footer-links{gap:12px 20px;flex-wrap:wrap}}