@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/ibm-plex-sans-regular.ttf) format("truetype")}.dark,:root{color-scheme:dark;--background:#000;--foreground:#eee;--primary:#eee;--primary-foreground:#000;--muted:#000;--muted-foreground:#999;--border:transparent;--ring:#eee;--radius:4px}*{box-sizing:border-box}.writing{margin-top:48px}.writing h2{margin:0 0 24px;font-size:28px;font-weight:400;letter-spacing:-.025em}.writing ul{list-style:none;padding:0;margin:0}.writing li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;align-items:baseline;margin:0 0 22px;font-size:clamp(18px,2vw,21px);line-height:1.5}.writing-source{margin-top:28px}.writing time,.writing-source{display:block;font-size:14px;color:#999}.writing time{margin-top:5px}@media (max-width:600px){.writing li{grid-template-columns:1fr;gap:2px}.writing time{margin-top:0}}.current-location{display:flex;align-items:center;gap:8px;color:#aaa;font-size:14px;line-height:1.5}.contact-details{margin-top:20px}.current-location svg{flex-shrink:0}.greeting{display:flex;align-items:center;gap:clamp(12px,2.5vw,24px);margin-bottom:.65em}.portrait{width:1.5em;height:1.5em;flex-shrink:0;object-fit:cover;object-position:center 55%;border-radius:14px}@media (max-width:420px){.greeting{font-size:.8em}}body,html{background:#000}body{margin:0;color:#dedede;font-family:IBM Plex Sans,sans-serif;font-size:18px;line-height:1.68;-webkit-font-smoothing:antialiased}::selection{color:#000;background:#eee}.story-page{min-height:100svh;padding:clamp(36px,5.5vw,72px) clamp(24px,7vw,96px) clamp(148px,18vw,220px)}.story{width:min(100%,760px);margin:0 auto}.story h1{margin:0 0 clamp(56px,9vw,104px);color:#fff;font-size:clamp(36px,6vw,68px);font-weight:400;letter-spacing:-.045em;line-height:1.08;text-wrap:balance}.intro-actions{margin-top:32px;display:flex;gap:12px}.intro-actions button,.story .intro-actions a{flex:1 1;display:flex;align-items:center;justify-content:center;min-height:56px;padding:16px 12px;border:1px solid #777;border-radius:var(--radius);background:transparent;color:#eee;font:inherit;font-size:14px;line-height:1.4;text-align:center;text-decoration:none;cursor:pointer}.intro-actions a:hover,.intro-actions button:hover{background:#171717;border-color:#eee}.intro-actions button:focus-visible{outline:2px solid #fff;outline-offset:4px}.content-modal{background:#000;color:#dedede;padding:0;border:1px solid #333;border-radius:var(--radius);font:inherit}.content-modal::backdrop{background:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.projects-modal{width:min(860px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;border-radius:var(--radius);overflow-y:auto;overscroll-behavior:contain}.projects-modal .work-grid{padding:0 24px 24px}#full-story.story-modal{width:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;overflow-y:auto;overscroll-behavior:contain}.modal-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:#000}.modal-bar h2{font-size:18px;font-weight:400;margin:0}.modal-close{min-width:44px;min-height:44px;padding:8px;font:inherit;font-size:28px;line-height:1;color:#eee;background:transparent;border:0;cursor:pointer}.modal-close:hover{color:#fff}.modal-close:focus-visible{outline:2px solid #fff;outline-offset:3px}.modal-story-content{padding:24px 24px 100px}.modal-story-content>.chapter:first-child{margin-top:0;padding-top:0}@media (max-width:600px){.projects-modal .work-grid{padding:0 16px 16px}.modal-bar{padding:12px 16px}}.story p{margin:0 0 1.55em;font-size:clamp(18px,2.15vw,23px);letter-spacing:-.012em}.story .story-ending{margin-top:clamp(64px,9vw,112px);margin-bottom:0;color:#fff;font-size:clamp(32px,5vw,56px);line-height:1.12;letter-spacing:-.04em;text-wrap:balance}.eyebrow{display:block;color:#999;font-size:13px;line-height:1.6;letter-spacing:.09em;font-weight:400}.intro h1{margin:28px 0;font-size:clamp(36px,5.4vw,60px);line-height:1.12}.story .intro-description{max-width:640px;color:#bbb;font-size:clamp(18px,2vw,21px)}.skills{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 36px}.skills span{border:1px solid #333;padding:5px 12px;border-radius:var(--radius);font-size:14px;color:#bbb}.selected-work{margin-top:80px}.selected-work>h2{margin-bottom:20px}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.story .work-card{display:flex;flex-direction:column;border:1px solid #333;border-radius:var(--radius);padding:24px;text-decoration:none;background:#090909;transition:border-color .2s,background .2s}.story .work-card:hover{border-color:#888;background:#111}.work-card .eyebrow{font-size:12px;letter-spacing:.04em}.work-card h3{display:flex;justify-content:space-between;gap:12px;margin:24px 0 14px;font-size:26px;font-weight:400;letter-spacing:-.03em}.work-card h3 span{color:#999}.story .work-card p{font-size:16px;line-height:1.6;color:#bbb;margin-bottom:24px}.work-detail{margin-top:auto;color:#999;font-size:13px}.chapter{font-size:clamp(28px,4vw,40px);font-weight:400;line-height:1.2;letter-spacing:-.025em;padding-top:32px;margin:80px 0 36px}.chapter span{display:block;font-size:13px;letter-spacing:.09em;color:#999;margin-bottom:16px}#full-story:not([hidden]){animation:story-reveal .35s ease-out}.social-nav{margin-top:12px}.story .intro h1{margin-top:0}.social-links{display:flex;gap:4px}.social-nav a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:#bbb;border-radius:8px;text-decoration:none}.social-nav a:hover{color:#fff}.social-nav a:focus-visible{outline:2px solid #fff;outline-offset:2px}.social-links svg{width:19px;height:19px}.social-links a:hover{background:#171717}@keyframes story-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline:scroll()){.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:#eee;z-index:20;transform-origin:left;animation:reading linear;animation-timeline:scroll(root)}@keyframes reading{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}@media (max-width:600px){.work-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){#full-story:not([hidden]),.reading-progress{animation:none}.reading-progress{display:none}.story .work-card{transition:none}}.story a{color:inherit;text-decoration:underline;text-decoration-color:#777;text-underline-offset:.18em}.story a:hover{color:#fff;text-decoration-color:currentColor}.story a:focus-visible{outline:2px solid #fff;outline-offset:4px}.story .turning-point{margin:clamp(56px,8vw,88px) 0;color:#fff;font-size:clamp(30px,4.5vw,48px);line-height:1.15;letter-spacing:-.035em}.surprise-button{position:fixed;right:max(clamp(16px,3vw,36px),env(safe-area-inset-right));bottom:max(clamp(16px,3vw,32px),env(safe-area-inset-bottom));z-index:50;display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:0;border-radius:0;background:#000;color:#eee;font-family:inherit;cursor:pointer;font-size:14px;line-height:1;text-decoration:none;white-space:nowrap;transition:color .16s ease,transform .16s ease}.surprise-tap{display:none}@media (hover:none) and (pointer:coarse),(max-width:600px){.surprise-click{display:none}.surprise-tap{display:inline}}.surprise-button:hover{color:#fff;transform:translateY(-2px)}.surprise-button:focus-visible{outline:2px solid #fff;outline-offset:4px}.surprise-overlay{width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#000;color:#fff}.surprise-overlay::backdrop{background:#000}.surprise-countdown{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.surprise-countdown p{margin:0;font-size:clamp(24px,5vw,40px)}.surprise-spinner{width:40px;height:40px;border:2px solid #333;border-top-color:#fff;border-radius:50%;animation:surprise-spin 1s linear infinite}.surprise-face{object-fit:cover}@keyframes surprise-spin{to{transform:rotate(1turn)}}@media (max-width:520px){body{font-size:16px}.story-page{padding-top:40px}.story h1{margin-bottom:48px}}@media (prefers-reduced-motion:reduce){.surprise-spinner{animation:none}.surprise-button{transition:none}}