:root{--bg: #ffffff;--card: #f2f2f0;--card-hover: #ebebe8;--chip: #e2e2de;--ink: #0b0b0b;--ink-2: #2e2e2c;--muted: #7a7a76;--line: #e4e4e0;--accent: #ff5b2e;--sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;--mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--gutter: clamp(16px, 4vw, 40px);--max: 1200px;--radius: 22px;--ease: cubic-bezier(.2, .7, .2, 1);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d0d0d;--card: #181817;--card-hover: #1f1f1e;--chip: #2a2a28;--ink: #f2f2ef;--ink-2: #d4d4cf;--muted: #8c8c86;--line: #262624;color-scheme:dark}}:root[data-theme=dark]{--bg: #0d0d0d;--card: #181817;--card-hover: #1f1f1e;--chip: #2a2a28;--ink: #f2f2ef;--ink-2: #d4d4cf;--muted: #8c8c86;--line: #262624;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}button{font:inherit;color:inherit}::selection{background:var(--ink);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}.phone{position:relative;aspect-ratio:9 / 16;border-radius:var(--radius);overflow:hidden;background:var(--card);border:1px solid var(--line);isolation:isolate}.phone--tall{aspect-ratio:9 / 19.5}.phone img,.phone video{width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.carousel{margin-bottom:clamp(36px,5vw,56px)}.carousel__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.carousel__nav{display:flex;gap:8px}.carousel__nav button{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:0;background:var(--card);cursor:pointer;font-size:17px;transition:background .2s,opacity .2s}.carousel__nav button:hover:not(:disabled){background:var(--chip)}.carousel__nav button:disabled{opacity:.35;cursor:default}.carousel__track{--inset: max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));display:flex;gap:clamp(14px,2vw,22px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--inset);padding:4px var(--inset) 12px;scrollbar-width:none}.carousel__track::-webkit-scrollbar{display:none}.carousel__item{flex:0 0 clamp(172px,19vw,228px);scroll-snap-align:start}.slide{display:block}.slide .phone{transition:transform .45s var(--ease),box-shadow .45s var(--ease)}.slide:hover .phone{transform:translateY(-6px);box-shadow:0 22px 40px -22px #00000073}.slide__caption{display:flex;gap:10px;margin-top:14px;align-items:flex-start}.slide__icon{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none;background:#fff}.slide__caption h3{font-size:14.5px;font-weight:600;letter-spacing:-.01em}.slide__caption p{margin-top:2px;font-size:12.5px;line-height:1.45;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tabs-bar{position:sticky;top:64px;z-index:20;padding:10px 0;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin-inline:-4px;padding-inline:4px}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:none;padding:7px 18px;border:0;border-radius:999px;background:none;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer;transition:color .2s,background .2s}.tabs button:hover{color:var(--ink)}.tabs button.is-active{background:var(--card);color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start;padding-top:18px;animation:rise .5s var(--ease)}.grid__col{display:grid;gap:28px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.card{display:flex;gap:12px;align-items:stretch}.card__info{flex:1;min-width:0;padding:22px;border-radius:var(--radius);background:var(--card);transition:background .25s}.card:hover .card__info{background:var(--card-hover)}.card__head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.card__icon{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;background:#fff}.card__head h3{font-size:18px;font-weight:600;letter-spacing:-.015em;line-height:1.25}.card__go{margin-left:auto;align-self:flex-start;display:flex;font-size:19px;color:var(--muted);transition:transform .35s var(--ease),color .2s}.card:hover .card__go{color:var(--ink);transform:translate(3px)}a.card[target]:hover .card__go{transform:translate(2px,-2px)}.card__info>p{color:var(--ink-2);font-size:14.5px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.tags li{font-family:var(--mono);padding:4px 12px;border-radius:999px;background:var(--chip);font-size:12.5px;color:var(--ink-2)}.card__media{flex:0 0 38%}.card__media .phone{transition:transform .45s var(--ease)}.card:hover .card__media .phone{transform:translateY(-3px)}.card--clip{flex-direction:column}.card__clip{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--card)}.card__clip img{width:100%}.project{padding-top:clamp(32px,5vw,56px)}.back{display:inline-flex;align-items:center;gap:8px;padding:7px 16px 7px 12px;border-radius:999px;background:var(--card);font-size:14px;font-weight:600;margin-bottom:clamp(28px,4vw,44px);transition:background .2s}.back:hover{background:var(--chip)}.project__layout{display:grid;gap:clamp(28px,5vw,64px)}.project__layout.has-media{grid-template-columns:minmax(220px,300px) minmax(0,1fr);align-items:start}.project__media{position:sticky;top:96px}.project__head{display:flex;align-items:center;gap:16px}.project__icon{width:60px;height:60px;border-radius:50%;object-fit:cover;flex:none;background:#fff}.project__head h1{font:400 clamp(40px,6vw,64px)/1 var(--serif);letter-spacing:-.02em}.project__sub{margin-top:4px;font-size:13.5px;color:var(--muted)}.project__summary{margin-top:22px;font-size:clamp(16px,1.8vw,18px);line-height:1.55;color:var(--ink-2);max-width:56ch}.project__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:999px;background:var(--card);font-size:13px;color:var(--ink-2)}.chip--link{background:var(--ink);color:var(--bg);font-weight:600;transition:opacity .2s}.chip--link:hover{opacity:.8}.prose{margin-top:32px;padding-top:28px;border-top:1px solid var(--line);max-width:66ch;font-size:15px;line-height:1.8;color:var(--ink-2)}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3{color:var(--ink);letter-spacing:-.02em;line-height:1.3;margin-top:2em}.prose h2{font:400 28px/1.15 var(--serif);letter-spacing:-.01em}.prose h3{font-size:16px}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.prose ul,.prose ol{padding-left:1.3em}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--muted)}.prose img,.prose video{border-radius:var(--radius);border:1px solid var(--line);margin-block:1.6em}.prose blockquote{margin:1.6em 0;padding:16px 20px;border-radius:16px;background:var(--card);color:var(--ink)}.prose code{font-size:.92em;background:var(--card);padding:2px 6px;border-radius:6px}.prose pre{background:var(--card);padding:18px;border-radius:16px;overflow-x:auto}.prose pre code{background:none;padding:0}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.4em}.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:clamp(48px,7vw,80px)}.pager a{display:grid;gap:4px;padding:18px 22px;border-radius:var(--radius);background:var(--card);font-weight:700;letter-spacing:-.02em;transition:background .2s}.pager a:hover{background:var(--card-hover)}.pager span{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:0;color:var(--muted)}.pager__next{text-align:right}.notfound{padding-block:10vh;display:grid;gap:12px;justify-items:start}.notfound h1{font:400 96px/1 var(--serif)}.notfound p{color:var(--muted);margin-bottom:12px}.card-page{min-height:100svh;display:grid;place-items:center;padding:32px var(--gutter)}.card-page .card{display:block;width:100%;max-width:380px;text-align:center}.card__photo{width:112px;height:112px;border-radius:50%;object-fit:cover;margin:0 auto 18px}.card__name{font:400 36px/1.05 var(--serif)}.card__role{margin-top:6px;font-size:13.5px}.card__links{margin-top:28px;display:grid;gap:8px;text-align:left}.card__links a{display:flex;justify-content:space-between;padding:14px 18px;border-radius:16px;background:var(--card);font-weight:600;transition:background .2s}.card__links a:hover{background:var(--chip)}.muted{color:var(--muted)}@media(max-width:900px){.grid{grid-template-columns:minmax(0,1fr);gap:24px}.grid__col{gap:24px}.grid__col:empty{display:none}.project__layout.has-media{grid-template-columns:minmax(0,1fr)}.project__media{position:static;order:2;max-width:280px;width:100%;margin-inline:auto}}@media(max-width:900px){.grid{display:flex;flex-direction:column}.grid__col{display:contents}}@media(max-width:560px){.card{flex-direction:column}.card__media{width:62%;align-self:center}.pager{grid-template-columns:1fr}.pager__next{text-align:left}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.resume{display:grid;gap:clamp(44px,6vw,72px);padding-top:8px}.entries{display:grid;gap:12px}.entry{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,1fr);gap:8px 32px;padding:24px;border-radius:var(--radius);background:var(--card)}.entry--link{transition:background .2s}.entry--link:hover{background:var(--card-hover)}.entry__when{font-family:var(--mono);display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--ink-2);padding-top:3px}.entry__place{color:var(--muted)}.entry__role{font-size:18px;font-weight:600;letter-spacing:-.02em;line-height:1.3}.entry__org{margin-top:2px;font-size:14px;color:var(--muted)}.entry__org a{text-decoration:underline;text-decoration-color:var(--chip);text-underline-offset:3px}.entry__org a:hover{color:var(--ink);text-decoration-color:var(--accent)}.entry__points{margin-top:14px;display:grid;gap:6px;font-size:14.5px;color:var(--ink-2);max-width:72ch}.entry__points li{position:relative;padding-left:18px}.entry__points li:before{content:"–";position:absolute;left:0;color:var(--muted)}.entry .tags{margin-top:16px}.entry__more{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:13.5px;font-weight:600}.entry__more:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.awards{display:grid;gap:8px}.awards__row{display:grid;grid-template-columns:4rem minmax(0,1fr) auto;gap:4px 20px;align-items:baseline;padding:16px 22px;border-radius:16px;background:var(--card);font-size:14.5px}.awards__row.is-link{transition:background .2s}.awards__row.is-link:hover{background:var(--card-hover)}.awards__year{font-family:var(--mono);font-size:13px;color:var(--muted)}.awards__title{font-weight:600}.awards__note{color:var(--muted);font-size:13.5px;text-align:right}@media(max-width:720px){.entry{grid-template-columns:minmax(0,1fr);padding:20px}.entry__when{flex-direction:row;flex-wrap:wrap;gap:2px 12px;order:2}.entry__body{display:contents}.entry__role{order:0}.entry__org{order:1;margin-top:-6px}.entry__points,.entry .tags,.entry__more{order:3}.awards__row{grid-template-columns:3.2rem minmax(0,1fr)}.awards__note{grid-column:2;text-align:left}}.topbar{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}.wordmark{display:inline-flex;align-items:baseline;gap:2px;font-weight:600;font-size:16px;letter-spacing:-.015em;white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}.topbar__nav{display:flex;align-items:center;gap:2px;font-size:14.5px;font-weight:500}.topbar__nav a{padding:7px 13px;border-radius:999px;color:var(--muted);transition:color .2s,background .2s}.topbar__nav a:hover{color:var(--ink)}.topbar__nav a.active{color:var(--ink);background:var(--card)}.topbar__nav .topbar__cv{margin-left:8px;background:var(--ink);color:var(--bg)}.topbar__nav .topbar__cv:hover{color:var(--bg);opacity:.85}.eyebrow{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.section-title{font:400 clamp(30px,4vw,44px)/1.05 var(--serif);letter-spacing:-.015em;margin-bottom:20px}.carousel__titles .section-title{margin-bottom:0}.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,5vw,72px);align-items:end;padding-block:clamp(48px,8vw,112px) clamp(56px,8vw,96px)}.hero__photo{width:clamp(220px,22vw,300px);aspect-ratio:4 / 5;border-radius:var(--radius);overflow:hidden;background:var(--card);rotate:2deg;box-shadow:0 30px 60px -30px #00000059;transition:rotate .6s var(--ease)}.hero__photo:hover{rotate:0deg}.hero__photo img{width:100%;height:100%;object-fit:cover}.hero__eyebrow{margin-bottom:24px}.hero__title{font:400 clamp(42px,6.2vw,84px)/1 var(--serif);letter-spacing:-.025em;max-width:19ch;text-wrap:balance}.hero__title em{font-style:italic}.hero__now{display:flex;align-items:baseline;gap:12px;margin-top:32px;color:var(--ink-2);font-size:clamp(15px,1.5vw,17px)}.pulse{position:relative;flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent);transform:translateY(-1px)}.pulse:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:var(--accent);animation:pulse 2.4s var(--ease) infinite}@keyframes pulse{0%{transform:scale(1);opacity:.6}to{transform:scale(3.2);opacity:0}}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:36px}.hero__actions .socials{margin-left:10px}.btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border-radius:999px;background:var(--card);font-size:15px;font-weight:500;transition:background .2s,transform .3s var(--ease),opacity .2s}.btn:hover{background:var(--chip)}.btn--primary{background:var(--ink);color:var(--bg)}.btn--primary:hover{background:var(--ink);opacity:.85}.btn--primary svg{transition:transform .3s var(--ease)}.btn--primary:hover svg{transform:translate(3px)}.btn--ghost{background:none;box-shadow:inset 0 0 0 1px var(--line)}.btn--ghost:hover{background:var(--card)}.socials{display:flex;gap:16px;font-size:20px}.socials a{display:flex;color:var(--muted);transition:color .2s}.socials a:hover{color:var(--ink)}.about{margin-bottom:clamp(56px,8vw,96px)}.about__body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,4vw,40px);align-items:start}.about__photo{width:clamp(104px,14vw,168px);aspect-ratio:1;border-radius:var(--radius);object-fit:cover;background:var(--card)}.about__text{display:grid;gap:14px;max-width:64ch;font-size:clamp(16px,1.6vw,18px);line-height:1.7;color:var(--ink-2)}.carousel__titles{display:flex;align-items:baseline;gap:18px}.carousel__more{font-size:14px;font-weight:500;color:var(--muted)}.carousel__more:hover{color:var(--ink)}.page-head{padding-block:clamp(48px,8vw,96px) clamp(16px,3vw,28px)}.page-head__title{font:400 clamp(52px,9vw,112px)/.95 var(--serif);letter-spacing:-.03em}.page-head__sub{margin-top:16px;max-width:54ch;color:var(--muted);font-size:clamp(15px,1.5vw,17px)}.site-footer{margin-top:clamp(72px,10vw,128px);padding-top:clamp(40px,6vw,64px);padding-bottom:32px;border-top:1px solid var(--line)}.site-footer__email{display:inline-block;margin:12px 0 32px;font:400 clamp(34px,6vw,72px)/1.05 var(--serif);letter-spacing:-.02em;overflow-wrap:anywhere;background:linear-gradient(var(--accent),var(--accent)) 0 100% / 0 2px no-repeat;transition:background-size .5s var(--ease)}.site-footer__email:hover{background-size:100% 2px}.site-footer__row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:13.5px;color:var(--muted)}@media(max-width:900px){.hero{grid-template-columns:minmax(0,1fr)}.hero__photo{order:-1;width:84px;aspect-ratio:1;border-radius:50%;rotate:0deg;box-shadow:none;margin-bottom:-8px}}@media(max-width:640px){.topbar__nav{font-size:14px}.topbar__nav a{padding:6px 9px}.topbar__nav .topbar__cv{margin-left:4px}.hero__actions .socials{margin:8px 0 0 4px;width:100%}}@media(max-width:480px){.wordmark{font-size:0}.wordmark:before{content:"KS";font-size:16px}.topbar__nav a[href="/#experience"]{display:none}}
