/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.flex{display:flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.italic{font-style:italic}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--font-body:"Pretendard Variable",Pretendard,sans-serif;--font-display:"Bricolage Grotesque",sans-serif;--font-editorial:Georgia,serif;--text-case-title:var(--text-section);--text-company:28px;--text-section:36px;--text-project-title:21px;--text-body:16px;--text-meta:14px;--text-caption:13px;--text-profile-name:clamp(29px,3vw,36px);--text-resume-category:clamp(18px,1.55vw,21px);--text-resume-item:clamp(14px,1.2vw,16px);--text-resume-date:clamp(14px,1.15vw,16px);--leading-section:1.5;--leading-title:1.45;--leading-body:1.7;--leading-resume:1.55;--leading-meta:1.6;--leading-caption:1.65;--tracking-section:-.065em;--tracking-experience-title:-.04em;--tracking-project-title:-.035em;--weight-label:450;--weight-medium:550;--weight-strong:650;--paper:#fafaf8;--surface:#fff;--ink:#222320;--ink-strong:#111;--ink-project:#20211e;--muted:#797a73;--text-secondary:#858585;--text-experience:#666;--line:#deded8;--line-subtle:#e9e9e4;--line-project:#e9e9e5;--row-highlight:#f3f3f0;--accent:#c75c3c;--glass:#fffffcb8;--preview-blend-mode:exclusion;--preview-blend-surface:#fff;--preview-opacity:1;--preview-progress-gap:0px;--preview-progress-height:3px;--preview-progress-track:#22232047;--preview-progress-fill:var(--ink-project);--preview-media-filter:brightness(.94) contrast(1.05) saturate(1.03);--layout-content-max:1440px;--layout-gutter:10%;--layout-sidebar-width:220px;--layout-column-gap:64px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-10:40px;--space-14:56px}@media (min-width:761px) and (max-width:1023px){:root{--layout-sidebar-width:180px;--layout-column-gap:var(--space-8)}}@media (max-width:760px){:root{--layout-gutter:7%;--text-company:25px;--text-project-title:20px;--text-body:15px;--text-meta:13px;--text-resume-category:18px;--text-resume-item:14px;--text-resume-date:14px}}@font-face{font-family:Bricolage Grotesque;src:url(/fonts/BricolageGrotesque-Variable.ttf)format("truetype");font-style:normal;font-weight:200 800;font-stretch:75% 100%;font-display:swap}:root{color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.page-shell{width:min(100%,1440px);margin:0 auto;padding-left:10%;padding-right:10%}.cover-page{align-items:flex-end;min-height:100vh;padding:0 10% 8.5vh;display:flex}.cover-name{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.065em;font-size:clamp(60px,12vw,160px);line-height:1;font-weight:var(--weight-medium);white-space:nowrap;align-items:baseline;gap:.2em;display:inline-flex}.cover-name:focus-visible{outline-offset:10px}.profile-page{border-top:1px solid var(--line);min-height:100vh;padding-top:34px;padding-bottom:70px}.profile-index,.profile-nav,.profile-topline,.site-footer{color:var(--muted);letter-spacing:.14em;justify-content:space-between;align-items:center;font-size:9px;display:flex}.profile-nav{gap:22px}.contact-links a:hover,.page-next:hover,.profile-nav a:hover{color:var(--accent)}.profile-intro-grid{grid-template-columns:minmax(0,1fr) 260px 90px;align-items:center;column-gap:8%;min-height:440px;padding:70px 0 61px;display:grid}.profile-intro{max-width:440px}.eyebrow{letter-spacing:.14em;color:var(--muted);font-size:9px;font-weight:600}.profile-intro h1{letter-spacing:-.07em;margin:23px 0 19px;font-size:clamp(36px,4.3vw,58px);font-weight:500;line-height:1.3}.profile-intro p{color:#666760;word-break:keep-all;max-width:380px;margin:0;font-size:13px;line-height:2}.profile-portrait{border:1px solid #2223201f;border-radius:50%;width:250px;height:250px;margin:0;position:relative;overflow:hidden;box-shadow:0 14px 45px #19191414}.profile-portrait img{object-fit:cover;object-position:center 35%}.profile-index{justify-content:flex-end;align-self:end;gap:14px;padding-bottom:11px}.profile-index span:first-child{color:var(--ink);letter-spacing:-.06em;font-family:inherit;font-size:32px}.profile-sections{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.profile-detail{padding:23px 22px 29px 0}.profile-detail+.profile-detail{border-left:1px solid var(--line);padding-left:22px}.profile-detail-heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.profile-detail h2{letter-spacing:-.04em;margin:0;font-size:18px;font-weight:500}.profile-detail ul{margin:26px 0 0;padding:0;list-style:none}.profile-detail li{color:#65665f;font-size:11px;line-height:1.8}.profile-detail li+li{margin-top:7px}.profile-detail li:nth-child(2){color:#999a93;font-size:9px}.page-next{border-bottom:1px solid var(--ink);margin-top:28px;padding-bottom:7px;font-size:11px;transition:color .2s;display:inline-block}.experience-page{border-top:1px solid var(--line);padding-top:104px;padding-bottom:124px}.page-heading{grid-template-columns:1fr;display:grid}.page-heading h2{letter-spacing:-.06em;margin:-7px 0 0;font-size:38px;font-weight:500}.company-experience{margin-top:64px}.experience-row{border-top:1px solid var(--line);grid-template-columns:1fr 1.4fr 1fr;align-items:start;gap:20px;margin-left:128px;padding:27px 0;display:grid}.experience-date{padding-top:5px;font-size:10px}.experience-main h3{letter-spacing:-.04em;margin:0 0 9px;font-size:20px;font-weight:500}.experience-main p{color:var(--muted);margin:0;font-size:11px;line-height:1.7}.experience-main .experience-role{color:var(--ink);margin-bottom:8px;font-size:12px}.tag-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--line);color:#686961;white-space:nowrap;border-radius:99px;padding:6px 9px;font-size:9px}.company-projects-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.company-projects-heading h3{margin:10px 0 0;font-size:20px;font-weight:500}.company-projects-heading>p{max-width:220px;color:var(--muted);margin:0;font-size:10px;line-height:1.8}.project-list{gap:16px;display:grid}.project-card{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px);border-radius:8px;grid-template-columns:.9fr 1.1fr;gap:5%;min-height:225px;padding:12px;display:grid;box-shadow:0 12px 36px #1e1e1809}.project-art{border-radius:4px;flex-direction:column;justify-content:center;min-height:195px;padding:9%;display:flex;position:relative;overflow:hidden}.art-ctf{background:#e8e9e2}.art-learn{background:#eee9e1}.art-studio{background:#e7e9e7}.art-index{color:#66665f;letter-spacing:.12em;font-size:9px;position:absolute;top:18px;left:20px}.art-title{z-index:1;letter-spacing:-.07em;font-size:clamp(25px,3vw,40px);font-weight:500;position:relative}.art-line{background:#22222259;width:70%;height:1px;margin-top:21px;position:relative}.art-line:after{background:var(--accent);content:"";width:25%;height:3px;position:absolute;top:-1px;left:0}.art-studio .art-line{width:42%;margin-left:auto}.project-info{flex-direction:column;padding:11px 0 2px;display:flex}.project-topline{color:#8a8a83;justify-content:space-between;font-size:9px;display:flex}.project-summary{color:#64645d;margin:0;font-size:11px}.project-details{color:#85857d;word-break:keep-all;max-width:420px;margin:14px 0 19px;font-size:10px;line-height:1.8}.project-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:13px;display:flex}.project-role{font-size:10px}.contact-page{border-top:1px solid var(--line);background:radial-gradient(at 70% 40%,#c9c5b121,#0000 36%);min-height:480px;padding-top:83px;padding-bottom:75px}.contact-page :is(h1,h2){letter-spacing:-.07em;margin:25px 0 13px;font-size:clamp(43px,6vw,70px);font-weight:500;line-height:1.2}.contact-page>p{color:var(--muted);margin:0;font-size:11px}.contact-email{border-bottom:1px solid #999;margin-top:34px;padding-bottom:8px;font-size:15px;display:inline-block}.arrow{margin-left:8px;font-size:14px;display:inline-block}.contact-links{gap:25px;margin-top:40px;display:flex}.contact-links a{color:var(--muted);font-size:10px}.site-footer{border-top:1px solid var(--line);min-height:62px;padding:0 10%}@media (max-width:760px){.cover-page,.page-shell{padding-left:7%;padding-right:7%}.cover-page{padding-bottom:9vh}.profile-page{padding-top:24px;padding-bottom:54px}.profile-intro-grid{grid-template-columns:minmax(0,1fr) 150px;column-gap:22px;min-height:0;padding:70px 0 45px}.profile-intro h1{font-size:clamp(30px,7vw,43px)}.profile-intro p{font-size:11px}.profile-portrait{width:145px;height:145px}.profile-index{display:none}.profile-sections{grid-template-columns:1fr}.profile-detail{padding:18px 0 21px}.profile-detail+.profile-detail{border-left:0;border-top:1px solid var(--line);padding-left:0}.profile-detail ul{margin-top:14px}.profile-detail-heading{justify-content:flex-start;gap:18px}.page-next{margin-top:23px}.experience-page{padding-top:72px;padding-bottom:82px}.page-heading{grid-template-columns:1fr;gap:22px}.page-heading h2{margin:0;font-size:32px}.company-experience{margin-top:38px}.experience-row{grid-template-columns:1fr;gap:14px;margin-left:0}.company-projects{margin:30px 0 0;padding-top:20px}.company-projects-heading{flex-direction:column;align-items:flex-start;gap:10px}.company-projects-heading h3{font-size:18px}.company-projects .project-card{grid-template-columns:1fr;gap:14px}.company-projects .project-art{min-height:205px}.contact-page{min-height:420px;padding-top:65px;padding-bottom:58px}.contact-page :is(h1,h2){font-size:45px}.contact-email{font-size:13px}.site-footer{padding:0 7%}}@media (max-width:420px){.profile-nav{gap:11px;font-size:8px}.profile-intro-grid{grid-template-columns:minmax(0,1fr) 112px;column-gap:14px}.profile-portrait{width:110px;height:110px}.profile-intro h1{font-size:29px}.profile-intro p{font-size:10px}.profile-detail-heading{align-items:baseline}.contact-email{font-size:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.01ms!important}}.resume-layout{grid-template-columns:220px minmax(0,1fr);gap:clamp(50px,10vw,150px);padding:76px 0 24px;display:grid}.profile-sidebar{min-width:0}.profile-sidebar .profile-portrait{width:196px;height:196px;margin:0 0 27px}.profile-name{align-items:baseline;gap:10px;display:flex}.profile-sidebar h1{letter-spacing:-.06em;margin:0;font-size:31px;font-weight:500}.profile-name>span{color:var(--muted);letter-spacing:-.015em;font-size:17px}.profile-role{color:var(--muted);margin:8px 0 26px;font-size:11px}.personal-contact{gap:11px;margin:0;display:grid}.personal-contact>div{grid-template-columns:16px minmax(0,1fr);align-items:center;gap:9px;display:grid}.personal-contact dt{width:16px;height:16px;color:var(--muted);display:flex}.personal-contact dt svg{width:100%;height:100%}.personal-contact dd{overflow-wrap:anywhere;margin:0;font-size:10px}.personal-contact a:hover{color:var(--accent)}.profile-social-links{align-items:center;gap:var(--space-3);margin-top:var(--space-4);grid-column:1/-1;display:flex}.profile-social-links a{width:32px;height:32px;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.profile-social-links a:hover{color:var(--ink)}.profile-social-links svg{flex-shrink:0}.resume-main{min-width:0}.resume-heading{margin:1px 0 31px}.resume-heading h2{letter-spacing:-.07em;margin:16px 0 7px;font-size:clamp(34px,4vw,48px);font-weight:500}.resume-heading p{color:var(--muted);margin:0;font-size:11px}.resume-list{border-top:1px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px;display:grid}.resume-row{border-bottom:1px solid var(--line);grid-template-columns:1fr;align-items:start;gap:13px;padding:21px 0 23px;display:grid}.resume-category{color:var(--ink);letter-spacing:-.025em;margin:0;padding-top:1px;font-size:15px;line-height:1.4}.resume-items{gap:17px;display:grid}.resume-item h4{letter-spacing:-.02em;margin:0 0 5px;font-size:13px;font-weight:500;line-height:1.55}.resume-item p{color:var(--muted);word-break:keep-all;margin:0;font-size:11px;line-height:1.75}@media (max-width:760px){.resume-layout{grid-template-columns:1fr;gap:52px;padding-top:55px}.profile-sidebar{grid-template-columns:128px minmax(0,1fr);align-items:end;column-gap:22px;display:grid}.profile-sidebar .profile-portrait{grid-row:span 3;width:128px;height:128px;margin:0}.profile-sidebar h1{align-self:end;font-size:26px}.profile-role{margin:6px 0 0}.personal-contact{grid-column:1/-1;grid-template-columns:1fr 1.5fr;gap:14px;margin-top:22px;display:grid}.resume-heading{margin-bottom:23px}.resume-list{grid-template-columns:1fr}}@media (max-width:420px){.profile-sidebar{grid-template-columns:105px minmax(0,1fr);column-gap:16px}.profile-sidebar .profile-portrait{width:105px;height:105px}.profile-sidebar h1{font-size:23px}.personal-contact{grid-template-columns:1fr;gap:0}.resume-row{grid-template-columns:1fr;gap:8px;padding:16px 0}}.profile-page{background:var(--surface)}.profile-topline{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:0;background:#fffffff0;min-height:58px;font-size:11px;position:sticky;top:0}.profile-brand{color:var(--ink);letter-spacing:-.04em;font-size:15px;font-weight:650}.profile-nav{letter-spacing:.02em;gap:clamp(16px,3vw,38px);font-size:10px}.profile-nav a{transition:color .2s}.profile-nav a:hover{color:var(--accent)}.resume-layout{grid-template-columns:minmax(200px,.7fr) minmax(0,1.8fr);gap:clamp(45px,8vw,115px);padding-top:83px}.profile-sidebar .profile-portrait{width:clamp(150px,19vw,220px);height:clamp(150px,19vw,220px)}.profile-name{gap:12px}.profile-sidebar h1{font-size:var(--text-profile-name)}.profile-role{margin:10px 0 30px;font-size:13px}.personal-contact{gap:14px}.personal-contact dd{font-size:12px}.resume-lead{letter-spacing:-.065em;word-break:keep-all;margin:-7px 0 40px;font-size:clamp(30px,4vw,48px);font-weight:550;line-height:1.3}.resume-list{border-top-color:var(--line);column-gap:42px}.resume-row{gap:14px;padding:23px 0 25px}.resume-category{letter-spacing:-.03em;font-size:16px;font-weight:600}.page-next{margin-top:29px;font-size:12px}.experience-page{background:var(--paper);padding-top:100px;padding-bottom:110px}.page-template-header{width:fit-content}.page-template{grid-template-columns:minmax(130px,.3fr) minmax(0,1fr);align-items:start;column-gap:0;display:grid}.page-template-content{min-width:0}.page-template-header :is(h1,h2){font-size:var(--text-section);font-weight:var(--weight-medium);line-height:var(--leading-section);letter-spacing:var(--tracking-section);margin:0}.company-experience{margin:0}.experience-company-row{justify-content:space-between;align-items:baseline;gap:24px;padding:4px 0 22px;display:flex}.experience-company-row .experience-main h3{letter-spacing:-.055em;margin:0 0 8px;font-size:30px;font-weight:650}.experience-company-row .experience-main .experience-role{color:var(--ink);margin:0;font-size:13px}.experience-company-row .experience-date{white-space:nowrap;margin:0;font-size:14px!important}.experience-project-list{margin-top:30px}.experience-project{border-top:1px solid var(--line);padding:23px 0 25px}.experience-project:last-child{border-bottom:1px solid var(--line)}.experience-project-heading{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.experience-project-heading h3{letter-spacing:-.045em;margin:0 0 6px;font-size:22px;font-weight:600}.experience-project-heading p{color:#64645d;margin:0;font-size:13px;line-height:1.7}.experience-project-heading time{color:var(--muted);white-space:nowrap;font-family:Georgia,serif;font-size:13px;font-style:italic}.experience-project>ul:not(.experience-project-stack){color:#64645d;gap:5px;margin:14px 0 13px;padding-left:17px;font-size:12px;line-height:1.8;display:grid}.experience-project-stack{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.experience-project-stack li{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:4px 8px;font-size:10px}.experience-row{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:0;max-width:650px;margin:0;padding:26px 0 31px}.experience-date{color:var(--muted);padding:0;font-family:Georgia,serif;font-style:italic;display:block;font-size:15px!important}.experience-bio{color:#5f6059;word-break:keep-all;max-width:440px;margin:0;font-size:15px;line-height:1.9}.experience-main h3{letter-spacing:-.055em;font-size:30px;font-weight:650}.experience-main .experience-role{margin-bottom:10px;font-size:13px}.experience-main p{font-size:12px}.tag-list li{border:0;border-bottom:1px solid var(--line);white-space:normal;border-radius:0;padding:7px 0;font-size:11px}.company-experience>.experience-row>.tag-list{display:block}.company-projects{border-top:0;margin:55px 0 0;padding-top:0}.company-projects-heading{grid-template-columns:minmax(130px,.3fr) 1fr;align-items:start;margin-bottom:27px;display:grid}.company-projects-heading>div{display:contents}.company-projects-heading .eyebrow{letter-spacing:0;grid-area:1/1;font-family:Georgia,serif;font-size:18px;font-style:italic;font-weight:400}.company-projects-heading h3{letter-spacing:-.05em;grid-area:1/2;margin:0;font-size:27px;font-weight:550}.company-projects-heading>p{grid-area:2/2;margin-top:7px;font-size:12px}.project-list{display:block}.project-card{border:0;border-top:1px solid var(--line);min-height:0;box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border-radius:0;grid-template-columns:minmax(115px,.55fr) 1.45fr;gap:24px;padding:25px 0}.project-card:last-child{border-bottom:1px solid var(--line)}.project-index{color:var(--muted);flex-direction:column;gap:10px;font-size:12px;display:flex}.project-index>span:first-child{color:var(--ink);font-size:22px}.project-index .eyebrow{font-size:9px}.project-info{padding:0}.project-topline{color:var(--muted);justify-content:flex-start;font-size:12px}.project-info h4{letter-spacing:-.05em;margin:0 0 9px;font-size:25px;font-weight:600}.project-details{max-width:650px;margin:12px 0 0;font-size:12px}.project-footer{border:0;justify-content:flex-start;margin-top:16px;padding-top:0}.project-footer .tag-list{gap:14px;display:flex}.project-footer .tag-list li{color:var(--muted);border:0;padding:0;font-size:11px}.projects-page{border-top:1px solid var(--line);background:var(--surface);padding-top:94px;padding-bottom:110px}.projects-page .page-template-content{margin-top:0}.projects-page .project-list{margin-left:0}.projects-page .project-card{padding:28px 0}.projects-page .project-info h3{letter-spacing:-.05em;margin:12px 0 9px;font-size:26px;font-weight:600}.projects-page .project-card{grid-template-columns:minmax(220px,.82fr) minmax(0,1.18fr);gap:clamp(22px,4vw,48px)}.projects-page .project-preview{min-width:0;margin:0}.projects-page .project-preview-placeholder{border:1px solid var(--line);min-height:220px;color:var(--muted);text-align:center;background:#f5f5f1;flex-direction:column;justify-content:center;align-items:center;gap:9px;display:flex}.projects-page .project-preview-placeholder span:first-child{letter-spacing:.16em;font-size:9px}.projects-page .project-preview-placeholder span:last-child{font-size:12px}.projects-page .project-preview figcaption{color:var(--muted);margin-top:8px;font-size:10px}.projects-page .project-info{min-width:0}.projects-page .project-info h3{margin:8px 0 10px;font-size:clamp(22px,2.2vw,28px)}.projects-page .project-summary{line-height:1.75}.projects-page .project-story h4{margin:14px 0 5px;font-size:12px;font-weight:650}.projects-page .project-story li,.projects-page .project-story p{color:#64645d;word-break:keep-all;font-size:12px;line-height:1.8}.projects-page .project-story p{margin:0}.projects-page .project-story ul{margin:0;padding-left:17px}.projects-page .project-footer{flex-wrap:wrap;gap:16px}.projects-page .project-footer a{color:var(--muted);font-size:11px}.projects-page .project-footer a:hover{color:var(--ink)}.contact-page{background:var(--surface);grid-template-columns:minmax(130px,.3fr) 1fr;align-content:start;column-gap:0;min-height:390px;padding-top:85px;padding-bottom:80px;display:grid}.contact-page>.eyebrow{font-family:var(--font-editorial);letter-spacing:0;grid-area:1/1/span 4;font-size:20px;font-style:italic;font-weight:400}.contact-page :is(h1,h2){letter-spacing:-.065em;grid-area:1/2;margin:-5px 0 18px;font-size:clamp(36px,5vw,60px)}.contact-email,.contact-links,.contact-page>p{grid-column:2}.contact-page>p{font-size:13px}.contact-email{width:fit-content;font-size:16px}.contact-links a{font-size:12px}.site-footer{background:var(--surface);letter-spacing:.02em;font-size:11px}.cover-page{position:relative}.cover-nav{z-index:1;justify-items:end;gap:var(--space-3);color:#777872;font-family:var(--font-display);letter-spacing:.01em;text-transform:none;font-size:clamp(32px,3.3vw,48px);line-height:1.25;display:grid;position:absolute;top:55px;right:16%}.cover-nav a{transition:color .18s}.cover-nav a:hover{color:var(--ink)}.cover-nav a:focus-visible{outline-offset:3px}.resume-row-tech{align-content:start}.resume-tech-badges li{color:#555650;border:1px solid #d5d6d0;padding:6px 11px;font-size:11px;line-height:1.3}.company-projects-heading{display:none}.project-card{grid-template-columns:1fr}.profile-name>span{font-size:19px}.personal-contact dd,.profile-role{font-size:14px}.resume-category{font-size:17px}.resume-item h4{font-size:15px}.resume-item p{font-size:12px}.experience-bio{font-size:16px}.project-topline{font-size:13px}.project-info h4{font-size:28px}.project-summary{font-size:14px}.project-details{font-size:13px}.project-footer .tag-list li{font-size:12px}@media (max-width:760px){.page-template{grid-template-columns:1fr;row-gap:24px}.experience-company-row{align-items:flex-start}.experience-project-heading{flex-direction:column;align-items:flex-start;gap:7px}.experience-project>ul:not(.experience-project-stack){font-size:12px}.cover-nav{gap:8px;font-size:clamp(21px,5vw,32px);top:34px;right:8%}.profile-topline{min-height:52px}.profile-brand{font-size:13px}.profile-nav{gap:12px;font-size:9px}.resume-layout{grid-template-columns:1fr;gap:42px;padding-top:52px}.profile-sidebar .profile-portrait{width:128px;height:128px}.profile-name>span{font-size:15px}.resume-lead{margin:0 0 30px;font-size:clamp(29px,7vw,40px)}.resume-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.company-experience{margin:35px 0 0}.experience-row{grid-template-columns:1fr;gap:0}.company-projects{margin-top:42px}.company-projects-heading{grid-template-columns:1fr;gap:10px}.company-projects-heading .eyebrow,.company-projects-heading h3,.company-projects-heading>p{grid-area:auto/1}.project-card{grid-template-columns:1fr;gap:14px}.contact-page{grid-template-columns:1fr;gap:0;padding-top:60px}.contact-email,.contact-links,.contact-page :is(h1,h2),.contact-page>.eyebrow,.contact-page>p{grid-area:auto/1}.contact-page :is(h1,h2){margin-top:18px;font-size:42px}.projects-page{padding-top:70px;padding-bottom:82px}.projects-page .page-template-content{margin-top:0}.projects-page .project-list{margin-left:0}.projects-page .project-card{grid-template-columns:1fr;gap:18px}.projects-page .project-preview-placeholder{min-height:190px}}@media (max-width:420px){.profile-nav{gap:8px;font-size:8px}.profile-name{flex-wrap:wrap;gap:5px 9px}.experience-row,.resume-list{grid-template-columns:1fr}.experience-row{gap:0}.project-card{grid-template-columns:1fr;gap:10px}.project-index{flex-direction:row;align-items:baseline}}.experience-page{font-family:var(--font-body);--section-heading-gap:var(--space-14);display:block}.experience-page,.projects-page{width:min(100%,var(--layout-content-max));padding-left:var(--layout-gutter);padding-right:var(--layout-gutter)}.page-template>.page-template-header{margin:0 0 var(--section-heading-gap)}.experience-page .page-template-content{width:100%}.experience-page .company-experience{grid-template-columns:var(--layout-sidebar-width) minmax(0,1fr);gap:var(--layout-column-gap);align-items:start;margin:0;display:grid}.experience-page .experience-company-row{border:0;align-self:start;padding:0;display:block;position:sticky;top:40px}.experience-page .experience-company-row .experience-main h3{font-size:var(--text-company);font-weight:var(--weight-medium);margin:0 0 10px}.experience-page .experience-company-row .experience-role{margin:0 0 var(--space-3);color:var(--text-secondary);font-size:var(--text-meta);font-weight:400}.experience-page .experience-company-row .experience-date{color:var(--text-secondary);font-family:inherit;font-style:normal;font-size:var(--text-meta)!important}.experience-page .experience-project-list{width:100%;min-width:0;margin:0}.experience-page .experience-project{padding:0 0 var(--space-10);border:0}.experience-page .experience-project+.experience-project{padding-top:var(--space-8);border-top:1px solid var(--line)}.experience-page .experience-project:last-child{border-bottom:0;padding-bottom:0}.experience-page .experience-project-heading{flex-direction:row;justify-content:space-between;align-items:baseline;gap:20px;display:flex}.experience-page .experience-project-heading h3{color:var(--ink-strong);font-size:var(--text-project-title);font-weight:var(--weight-strong);line-height:var(--leading-title);letter-spacing:var(--tracking-experience-title);margin:0}.experience-page .experience-project-heading time{color:var(--text-secondary);font-family:inherit;font-style:normal;font-size:var(--text-meta);flex-shrink:0}.experience-page .experience-project>ul:not(.experience-project-stack){margin:18px 0 var(--space-4);color:var(--text-experience);font-size:var(--text-body);line-height:var(--leading-body);word-break:keep-all;overflow-wrap:anywhere;gap:0;padding:0;list-style:none;display:grid}.experience-page .experience-project>ul:not(.experience-project-stack) li{padding:10px 0}.experience-page .experience-project>ul:not(.experience-project-stack) li+li{border-top:1px solid var(--line-subtle)}.experience-page .experience-project-stack{flex-wrap:wrap;gap:4px 0;display:flex}.experience-page .experience-project-stack li{color:var(--text-secondary);font-size:var(--text-caption);line-height:var(--leading-caption);border:0;border-radius:0;padding:0}.experience-page .experience-project-stack li:not(:last-child):after{content:"·";padding:0 var(--space-2);color:#aaa}@media (min-width:761px) and (max-width:1023px){.experience-page .experience-project-heading{flex-direction:column;align-items:flex-start;gap:6px}}@media (max-width:760px){.experience-page{--section-heading-gap:36px}.experience-page .company-experience{grid-template-columns:1fr;gap:38px}.experience-page .experience-company-row{position:static}.experience-page .experience-project-heading{flex-direction:column;align-items:flex-start;gap:6px}}.resume-main .resume-list{width:min(100%,520px);font-family:var(--font-body);border-top:0;grid-template-columns:minmax(0,1fr);row-gap:clamp(28px,2.5vw,38px);margin-left:auto}.resume-main .resume-row{border:0;padding:0;display:block}.resume-main .resume-category{color:var(--ink-strong);font-size:var(--text-resume-category);line-height:1.35;font-weight:var(--weight-strong);letter-spacing:-.04em;margin:0 0 22px;padding:0}.resume-main .resume-items{gap:var(--space-3)}.resume-main .resume-item{column-gap:var(--space-6);grid-template-columns:minmax(0,1fr) 112px;align-items:baseline;row-gap:3px;display:grid}.resume-main .resume-item h4{font-size:var(--text-resume-item);grid-column:1}.resume-main .resume-item .resume-meta,.resume-main .resume-item h4{color:var(--text-secondary);line-height:var(--leading-resume);letter-spacing:-.035em;margin:0;font-weight:400}.resume-main .resume-item .resume-meta{font-size:var(--text-resume-date);text-align:left;white-space:nowrap;grid-area:1/2}@media (max-width:760px){.resume-main .resume-list{row-gap:28px;width:100%}.resume-main .resume-category{margin-bottom:var(--space-4)}.resume-main .resume-item{column-gap:var(--space-3)}}@media (max-width:420px){.resume-main .resume-item{grid-template-columns:minmax(0,1fr);row-gap:1px}.resume-main .resume-item .resume-meta{text-align:left;white-space:normal;grid-area:auto/1}}.resume-tech-badges{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.resume-tech-badges li{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:4px 8px;font-size:10px;line-height:1.35}.projects-page{--section-heading-gap:44px;grid-template-columns:minmax(0,1fr)}.projects-page>.page-template-header{grid-column:1}.projects-page .page-template-content{min-width:0;margin:0}.projects-page .project-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;margin:0;display:grid}.projects-page .project-card{grid-template-columns:minmax(120px,.68fr) minmax(0,1.32fr);align-items:start;gap:18px;min-width:0;padding:23px 0 27px}.projects-page .project-card:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.projects-page .project-preview-placeholder{min-height:130px}.projects-page .project-info h3{font-size:21px}.projects-page .project-story{margin-top:13px}.projects-page .project-story h4{margin-top:10px}.projects-page .project-story li,.projects-page .project-story p{font-size:11px}@media (max-width:1000px){.projects-page .project-list{gap:0 24px}.projects-page .project-card{grid-template-columns:1fr;gap:13px}.projects-page .project-preview-placeholder{min-height:155px}}@media (max-width:760px){.projects-page{--section-heading-gap:30px}.projects-page .project-list{grid-template-columns:1fr}.projects-page .project-card{grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);gap:16px}.projects-page .project-preview-placeholder{min-height:150px}.projects-page .project-card:nth-last-child(-n+2){border-bottom:0}.projects-page .project-card:last-child{border-bottom:1px solid var(--line)}}@media (max-width:520px){.projects-page .project-card{grid-template-columns:1fr;gap:12px}.projects-page .project-preview-placeholder{min-height:190px}}.portfolio-page>section{scroll-margin-top:72px}.portfolio-page>.profile-page{border-top:0;padding-top:0}.portfolio-page .experience-company-row{top:96px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}