/*! 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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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;--tw-duration:initial;--tw-ease: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;--color-blue-500:oklch(62.3% .214 259.815);--color-purple-500:oklch(62.7% .265 303.9);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-700:oklch(37.2% .044 257.287);--spacing:.25rem;--ease-out:cubic-bezier(0,0,.2,1);--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{.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}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.left-0{left:0}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.flex{display:flex}.hidden{display:none}.h-1{height:var(--spacing)}.h-full{height:100%}.w-full{width:100%}.translate-y-8{--tw-translate-y:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.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}.bg-slate-200{background-color:var(--color-slate-200)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-500{--tw-gradient-to:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.opacity-0{opacity:0}.blur{--tw-blur:blur(8px)}.blur,.filter{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))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (prefers-color-scheme:dark){.dark\:bg-slate-700{background-color:var(--color-slate-700)}}}:root{--portfolio-ease:cubic-bezier(.22,1,.36,1);--ink:#20212a;--muted:#62636c;--line:#d6d5d4;--accent:#314fd3;--paper:#f4f1e9;--font-sans:Arial,"Helvetica Neue",sans-serif;--header-height:80px;--page-gutter:48px}*{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + 24px)}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);margin:0;font-size:17px;line-height:1.65}:lang(ko){word-break:keep-all;font-family:Pretendard Variable,Pretendard,Arial,sans-serif}:lang(en){font-family:Arial,Helvetica Neue,sans-serif}figure,h1,h2,h3,h4,p{margin:0}h1,h2,h3{text-wrap:balance}a{overflow-wrap:anywhere;text-decoration:none}a,button{color:inherit}button{font:inherit;cursor:pointer;background:0 0;border:0}a,button,summary{-webkit-tap-highlight-color:transparent}a:hover,button:hover{color:var(--accent)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[tabindex="-1"]:focus{outline:none}[hidden]{display:none!important}::selection{background:#dcdff8}ul{padding-left:20px}li+li{margin-top:8px}article[id],section[id]{scroll-margin-top:calc(var(--header-height) + 24px)}.site-header{z-index:20;background:var(--paper);border-bottom:1px solid var(--line);position:fixed;inset:0 0 auto}.header-inner{max-width:calc(1160px + 2 * var(--page-gutter));padding:0 var(--page-gutter);height:var(--header-height);align-items:center;gap:32px;margin:auto;display:flex}.site-name{letter-spacing:-.04em;align-items:center;min-height:44px;margin-right:auto;font-size:21px;font-weight:700;display:inline-flex}.site-name span,.title-period{color:var(--accent)}.desktop-navigation{gap:28px;display:flex}.desktop-navigation a{align-items:center;min-height:44px;font-size:14px;display:flex}[aria-current=location]{color:var(--accent);text-underline-offset:7px;text-decoration:underline}.locale-switch{border-left:1px solid var(--line);gap:0;padding-left:16px;display:flex}.locale-switch button{min-width:44px;min-height:44px;color:var(--muted);font-size:12px}.locale-switch button[aria-pressed=true]{color:var(--ink);text-underline-offset:5px;font-weight:700;text-decoration:underline}.menu-toggle,.mobile-navigation{display:none}.skip-link{background:var(--paper);padding:12px;position:absolute;top:-100px;left:20px}.skip-link:focus{z-index:2;top:12px}.page-content{max-width:calc(1160px + 2 * var(--page-gutter));padding:var(--header-height) var(--page-gutter) 0;margin:auto}.profile-section{grid-template-columns:.9fr 1.1fr;gap:0 64px;padding:56px 0 32px;display:grid}.profile-identity{min-width:0;padding-top:24px}.profile-overline{align-items:center;gap:16px;margin-bottom:24px;font-size:13px;display:flex}.profile-overline>span{color:var(--muted);font-size:12px}.profile-identity h1{letter-spacing:-.075em;white-space:nowrap;font-size:clamp(70px,7.5vw,104px);font-weight:700;line-height:.98;position:relative}.title-period{vertical-align:top;margin:0 0 0 4px;font-size:.5em;display:inline-block}.profile-job{letter-spacing:-.035em;margin-top:20px;font-size:25px}.profile-statement{letter-spacing:-.025em;margin-top:36px;font-size:22px;line-height:1.4}.profile-intro{color:var(--muted);margin-top:24px;font-size:15px}.profile-current{margin-top:20px;font-size:13px}.profile-current span{color:var(--muted);margin-right:4px}.profile-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:28px;display:flex}.case-link,.profile-actions a,.project-links a,.social-links a{text-underline-offset:5px;align-items:center;min-height:44px;font-size:14px;-webkit-text-decoration:underline #a9abb5;text-decoration:underline #a9abb5;display:inline-flex}.profile-actions .profile-email{background:var(--ink);color:#fff;justify-content:space-between;min-width:148px;padding:12px 18px;text-decoration:none}.profile-actions .profile-email:hover{background:var(--accent)}.profile-footnote{grid-column:1/-1;justify-content:space-between;align-items:end;gap:24px;margin-top:40px;display:flex}.profile-location{flex-direction:column;gap:4px;display:flex}.location-route{font-size:14px}.location-route>span{color:var(--accent);padding-inline:10px}.profile-location>span:last-child{color:var(--muted);font-size:11px}.profile-toolkit{color:var(--muted);white-space:nowrap;font-size:12px}.interface-preview{--stage-color:#e3e1f0;min-width:0}.interface-preview[data-theme=authentication]{--stage-color:#dce9e4}.interface-preview[data-theme=commerce]{--stage-color:#f3ddd1}.preview-topline{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-size:11px;display:flex}.preview-topline>span:first-child{color:var(--ink);font-size:13px}.interface-tabs{border-top:1px solid var(--ink);display:flex}.interface-tabs button{border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:8px;min-height:52px;padding:8px 4px;font-size:12px;display:flex}.interface-tabs button[aria-selected=true]{border-color:var(--ink);color:var(--ink);font-weight:700}.preview-tab-number{color:var(--muted);font-size:10px;font-weight:400}.interface-stage{isolation:isolate;background:var(--stage-color);justify-content:end;align-items:center;height:414px;padding:28px 34px;display:flex;position:relative;overflow:hidden}.interface-number{letter-spacing:-.085em;color:#20212a0c;z-index:-1;font-size:255px;font-weight:700;line-height:1;position:absolute;bottom:-56px;left:-10px}.interface-annotation{width:135px;position:absolute;top:30px;left:24px}.annotation-company{font-size:10px}.interface-annotation p{letter-spacing:-.045em;text-wrap:balance;margin-top:12px;font-size:25px;font-weight:700;line-height:1.05}.annotation-arrow{color:var(--accent);margin-top:16px;font-size:44px;line-height:1;display:block}.interface-screen{object-fit:contain;filter:drop-shadow(0 16px 14px #20212a24);width:auto;max-width:63%;height:350px;position:relative;transform:rotate(4deg)}.interface-artifact-label{color:#555661;font-size:10px;position:absolute;bottom:16px;left:24px}.interface-preview[data-theme=authentication] .interface-annotation{width:170px}.interface-preview[data-theme=authentication] .interface-screen{max-width:84%;height:auto;max-height:240px;margin-top:100px;transform:rotate(-5deg)}.interface-caption{grid-template-columns:1fr auto;align-items:start;gap:24px;min-height:94px;padding:18px 0 0;display:grid}.interface-caption p{color:var(--muted);max-width:280px;font-size:12px;line-height:1.6}.interface-caption a{text-underline-offset:5px;white-space:nowrap;align-items:center;gap:12px;min-height:44px;font-size:12px;text-decoration:underline;display:flex}#interface-preview-panel:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.social-links{flex-wrap:wrap;gap:24px;display:flex}.editorial-section{border-top:1px solid var(--ink);padding:56px 0 88px}.section-heading{grid-template-columns:100px 1fr;gap:0;margin-bottom:48px;display:grid}.section-heading>span{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:10px;font-size:13px}h2{letter-spacing:-.04em;font-size:36px;font-weight:700;line-height:1.15}h2:lang(ko),h3:lang(ko){letter-spacing:-.025em;line-height:1.2}.section-description{color:var(--muted);max-width:580px;margin-top:16px}.status-pill{color:var(--muted);font-size:12px}.case-link{color:var(--accent);margin-top:8px}.case-list{flex-direction:column;gap:72px;display:flex}.engineering-case{border-top:1px solid var(--line);padding-top:24px}.case-topline{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:16px;margin-bottom:24px;font-size:13px;display:flex}.case-title{letter-spacing:-.04em;max-width:850px;margin-bottom:36px;font-size:42px;font-weight:700;line-height:1.12}.case-overview{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.case-intro{flex-direction:column;gap:24px;display:flex}.case-details h4,.case-intro h4{color:var(--accent);margin-bottom:8px;font-size:13px;font-weight:700}.case-intro p{font-size:16px;line-height:1.65}.case-outcome{border-left:2px solid var(--accent);padding-left:20px}.stack-list{color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.stack-list li{margin:0}.case-figure figcaption{color:var(--muted);margin-top:12px;font-size:14px;line-height:1.5}.case-membership .case-overview{grid-template-columns:1.1fr .9fr}.case-membership .case-figure{grid-area:1/1}.case-membership .case-intro{grid-column:2}.case-membership .portfolio-media{background:#e9ede4;padding:32px}.case-membership .media-preview{max-width:300px;margin:auto}.case-interaction .case-overview{grid-template-columns:1fr .85fr}.case-interaction .portfolio-media{background:#e5eae6;padding:32px}.case-interaction .media-preview{max-width:280px;margin:auto}.case-migration .case-title{max-width:650px;font-size:34px}.case-migration .case-overview{grid-template-columns:1.1fr .9fr;gap:48px}.case-details{border-block:1px solid var(--line);margin-top:32px}.case-details summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:64px;font-size:14px;list-style:none;display:flex}.case-details summary::-webkit-details-marker{display:none}.case-details summary span{font-size:24px}.case-details[open] summary span{transform:rotate(45deg)}.case-details-body{grid-template-columns:1fr 1fr;gap:64px;padding:16px 0 32px;font-size:16px;display:grid}.case-details-body ul{margin:0}.decision-note p+h4{margin-top:24px}.authentication-flow{background:#e9ede6;margin-bottom:40px;padding:32px}.authentication-flow>figcaption{color:var(--muted);margin-bottom:24px;font-size:13px}.flow-stages{grid-template-columns:1fr 1.35fr 1fr;gap:32px;margin:0;padding:0;list-style:none;display:grid}.flow-stages>li{border-top:1px solid #a7b3a7;margin:0;padding-top:16px;position:relative}.flow-number{color:var(--accent);font-size:12px}.flow-stages h4{letter-spacing:-.02em;margin:8px 0;font-size:18px;font-weight:700;line-height:1.3}.flow-stages p,.flow-stages ul{color:var(--muted);font-size:13px;line-height:1.6}.flow-stages ul{margin:0;padding:0;list-style:none}.flow-stages ul li{margin:0}.flow-recovery{border-top:1px dashed #a7b3a7;margin-top:16px;padding-top:12px}.flow-note{max-width:720px;color:var(--muted);margin-top:24px;font-size:12px;line-height:1.6}.portfolio-media{min-width:0;position:relative}.media-preview{cursor:zoom-in;background:#eceee8;width:100%;padding:0;display:block;position:relative}.media-preview img{object-fit:contain;width:100%;height:auto;display:block}.media-expand{background:var(--paper);min-height:32px;color:var(--ink);place-items:center;padding:4px 8px;font-size:11px;display:grid;position:absolute;bottom:10px;right:10px}.media-play{min-height:44px;color:var(--accent);text-underline-offset:4px;align-items:center;gap:8px;padding:8px 0;font-size:13px;text-decoration:underline;display:flex}.media-dialog{border:1px solid var(--line);background:var(--paper);width:min(1100px,95vw);max-width:95vw;max-height:94svh;color:var(--ink);margin:auto;padding:24px;position:fixed;inset:0;overflow:auto}.media-dialog::backdrop{background:#17211dd9}.media-dialog-toolbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:16px;font-size:14px;display:flex}.media-dialog-toolbar button{min-height:44px;color:var(--accent);flex-shrink:0;padding:8px}.media-full-image{width:100%;height:70svh;position:relative}.media-full-image img{object-fit:contain}.more-work-toggle{border-bottom:1px solid var(--line);text-align:left;justify-content:space-between;gap:16px;width:100%;min-height:64px;margin-top:40px;padding:24px 0;display:flex}.more-work-toggle>span{color:var(--muted);font-size:14px}.work-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:48px 24px;padding-top:40px;display:grid}.work-card .media-preview img{max-height:420px}.work-card-copy{margin-top:12px}.work-card-copy>p{color:var(--muted);font-size:14px;line-height:1.5}.work-card-copy h3{margin:8px 0;font-size:18px;font-weight:700}.featured-project{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}.featured-project-copy h3{letter-spacing:-.035em;margin:12px 0 24px;font-size:30px;font-weight:700}.section-kicker{color:var(--muted);font-size:13px}.featured-project-copy ul{color:var(--muted);margin-block:24px;font-size:16px}.project-links{color:var(--accent);flex-wrap:wrap;gap:24px;display:flex}.about-layout{grid-template-columns:1.3fr 1fr;gap:100px;padding-left:100px;display:grid}.about-layout p+p{margin-top:24px}.skills-panel{border-left:1px solid var(--line);padding-left:32px}.skills-panel h3{margin-bottom:16px;font-size:14px;font-weight:700}.skills-panel .stack-list{font-size:15px}.contact-section{padding-bottom:32px}.contact-section h2{margin-top:16px}.contact-section>p:not(.section-kicker){color:var(--muted);max-width:530px;margin-top:24px}.contact-email{border-block:1px solid var(--line);color:var(--accent);grid-template-columns:1fr auto;align-items:center;gap:8px;margin:32px 0 16px;padding:24px 0;display:grid}.contact-email>span:first-child{grid-column:1/-1;font-size:14px}.contact-email strong{letter-spacing:-.04em;overflow-wrap:anywhere;font-size:clamp(24px,4vw,52px);font-weight:400;line-height:1.2}.contact-email>span:last-child{font-size:32px}.contact-section footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:64px;font-size:12px;display:flex}@media (max-width:1100px){:root{--page-gutter:32px}.case-details-body,.case-overview{gap:32px}.about-layout{gap:48px;padding-left:0}.desktop-navigation{gap:16px}.header-inner{gap:20px}}@media (max-width:767px){:root{--page-gutter:20px;--header-height:68px}.header-inner{gap:12px}.site-name{font-size:20px}.desktop-navigation{display:none}.locale-switch{border:0;padding:0}.menu-toggle{align-items:center;gap:8px;min-width:52px;min-height:44px;padding:0;font-size:13px;display:flex}.mobile-navigation{border-top:1px solid var(--line);max-height:calc(100svh - var(--header-height));flex-direction:column;padding:12px 20px 24px;display:flex;overflow-y:auto}.mobile-navigation>a{justify-content:space-between;align-items:center;min-height:48px;font-size:17px;display:flex}.mobile-navigation .social-links{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.editorial-section{padding:36px 0 56px}.section-heading{grid-template-columns:40px 1fr;margin-bottom:32px}.section-heading>span{padding-top:5px}h2{font-size:28px}.section-description{font-size:16px}.case-list{gap:48px}.case-topline{flex-wrap:wrap;gap:4px 12px;margin-bottom:20px;font-size:12px}.case-migration .case-title,.case-title{margin-bottom:24px;font-size:30px}.case-interaction .case-overview,.case-membership .case-overview,.case-migration .case-overview,.case-overview{grid-template-columns:1fr;gap:24px}.case-membership .case-figure,.case-membership .case-intro{grid-area:auto}.case-interaction .portfolio-media,.case-membership .portfolio-media{padding:20px}.case-intro{gap:20px}.case-details-body{grid-template-columns:1fr;gap:24px}.authentication-flow{margin-bottom:24px;padding:24px 20px}.flow-stages{grid-template-columns:1fr;gap:32px}.flow-stages h4{font-size:18px}.work-grid{grid-template-columns:1fr;gap:40px}.work-card .media-preview img{max-height:520px}.about-layout,.featured-project{grid-template-columns:1fr;gap:24px}.skills-panel{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.contact-email strong{font-size:clamp(22px,6vw,32px)}.media-dialog{padding:16px}.media-dialog-toolbar{gap:12px;font-size:12px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.work-section>.section-heading{align-items:baseline;gap:24px;margin-bottom:64px;display:flex}.work-section>.section-heading h2{letter-spacing:-.06em;font-size:72px}.work-section>.section-heading .section-description{font-size:15px}.case-list{gap:88px}.case-topline{color:var(--accent)}.case-title{max-width:800px;font-size:48px}.case-membership .portfolio-media{background:#e3e1f0}.case-interaction .portfolio-media{background:#f3ddd1}.authentication-flow{background:#dce9e4}@media (max-width:1100px) and (min-width:768px){.profile-section{column-gap:32px;padding-top:40px}.profile-identity h1{font-size:70px}.profile-job{font-size:22px}.profile-statement{margin-top:28px;font-size:19px}.interface-stage{height:400px;padding-inline:20px}.interface-annotation{width:110px;top:24px;left:20px}.interface-annotation p{font-size:21px}.interface-screen{max-width:57%;height:305px;margin-top:46px}.interface-caption{grid-template-columns:1fr;gap:0}.interface-tabs button{gap:4px;font-size:10px}.preview-tab-number{display:none}}@media (max-width:767px){.profile-section{grid-template-columns:1fr;padding-top:24px}.profile-identity{padding-top:8px}.profile-overline{margin-bottom:16px;font-size:12px}.profile-identity h1{font-size:clamp(62px,17vw,100px)}.profile-job{margin-top:12px;font-size:23px}.profile-statement{margin-top:24px;font-size:20px}.profile-intro{margin-top:16px;font-size:14px}.profile-intro br{display:none}.profile-current{margin-top:12px}.profile-actions{margin-top:20px}.interface-preview{margin-top:40px}.interface-stage{height:370px;padding:24px}.interface-screen{max-width:58%;height:310px}.interface-annotation{width:120px;left:20px}.interface-annotation p{font-size:23px}.interface-number{font-size:225px}.interface-tabs button{gap:5px;font-size:11px}.interface-caption{gap:20px;min-height:94px}.profile-footnote{margin-top:24px;display:block}.profile-location>span:last-child{max-width:300px;margin-top:4px}.profile-toolkit{margin-top:16px}.work-section>.section-heading{gap:20px;margin-bottom:40px}.work-section>.section-heading h2{font-size:46px}.work-section>.section-heading .section-description{font-size:14px}.case-title{font-size:32px}.case-list{gap:56px}}.preview-mode{min-height:44px;color:var(--accent);text-underline-offset:4px;padding:0;font-size:12px;text-decoration:underline}.preview-topline{margin-bottom:4px}.implementation-sketch{flex-direction:column;justify-content:center;align-self:stretch;width:100%;display:flex}.sketch-label{margin-bottom:20px;font-size:11px}.implementation-sketch ol{margin:0;padding:0;list-style:none}.implementation-sketch li{border-top:1px solid #20212a30;grid-template-columns:28px 1fr;gap:12px;margin:0;padding:16px 0;display:grid}.implementation-sketch li>span{color:var(--accent);padding-top:4px;font-size:11px}.implementation-sketch h3{letter-spacing:-.035em;text-wrap:wrap;font-size:22px;font-weight:700;line-height:1.2}.implementation-sketch li p{margin-top:4px;font-size:12px;line-height:1.5}.sketch-note{color:var(--muted);margin-top:12px;font-size:10px}@media (max-width:1100px) and (min-width:768px){.profile-identity h1{font-size:clamp(54px,7.4vw,70px)}.implementation-sketch h3{font-size:19px}}@media (max-width:767px){.implementation-sketch h3{font-size:20px}.implementation-sketch li{padding-block:12px}}.contact-email strong{text-underline-offset:.15em;transition:text-decoration-color .25s var(--portfolio-ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.contact-email:focus-visible strong{text-decoration-color:currentColor}@media (hover:hover) and (pointer:fine){.contact-email:hover strong{text-decoration-color:currentColor}}.media-expand{transition:transform .35s var(--portfolio-ease),background-color .25s var(--portfolio-ease),color .25s var(--portfolio-ease)}.media-preview:focus-visible .media-expand{background:var(--ink);color:var(--paper);transform:translateY(-4px)}.case-details summary{transition:color .25s var(--portfolio-ease)}.case-details summary>span{transition:transform .3s var(--portfolio-ease)}.case-details summary:focus-visible{color:var(--accent)}@media (hover:hover) and (pointer:fine){.media-preview:hover .media-expand{background:var(--ink);color:var(--paper);transform:translateY(-4px)}.case-details summary:hover{color:var(--accent)}}@media (prefers-reduced-motion:reduce){.media-preview .media-expand{transform:none!important}}.compact-case{align-items:start;gap:20px;min-width:0;display:grid}.compact-case-heading{min-width:0}.compact-case-heading .case-topline{flex-wrap:wrap;justify-content:flex-start;gap:4px 16px;margin-bottom:0}.compact-case>.stack-list{margin:0}.compact-case>.compact-case-media{justify-self:center;width:100%;max-width:280px}.compact-case>.compact-case-details{border:0;margin-top:0}.compact-case-details>summary{min-height:44px;color:var(--accent);justify-content:flex-start;gap:12px}.compact-case-details>summary span{font-size:18px}.compact-case-details>summary:hover{text-underline-offset:4px;text-decoration:underline}.compact-case-detail-body section>ul{margin-block:0}.additional-interfaces{margin-top:48px}@media (min-width:1101px){.compact-case-with-media{grid-template:"heading media""summary media""stack media""details media"1fr/minmax(0,1fr) minmax(200px,260px);column-gap:40px}.compact-case-with-media>.compact-case-heading{grid-area:heading}.compact-case-with-media>.case-summary{grid-area:summary}.compact-case-with-media>.stack-list{grid-area:stack}.compact-case-with-media>.compact-case-details{grid-area:details}.compact-case-with-media>.compact-case-media{grid-area:media}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}