@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--spacing:.25rem;--radius-lg:.5rem;--radius-2xl:1rem;--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{*,:after,:before,::backdrop{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}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, 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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.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}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-12{height:calc(var(--spacing) * 12)}.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}.flex-wrap{flex-wrap:wrap}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.object-cover{object-fit:cover}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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))}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f4f0e7;--paper-deep:#e8e1d3;--surface:#fffaf0;--surface-strong:#fff;--ink:#11110f;--ink-soft:#5c5951;--cobalt:#2554ff;--coral:#ff6240;--coral-ink:#9f351f;--acid:#d8ff43;--line:#11110f29;--line-strong:#11110f4d;--shadow-clay:0 18px 0 #11110f14, 0 32px 70px #2c251924;--shadow-soft:0 24px 70px #2c25191f;--radius-sm:12px;--radius-md:22px;--radius-lg:36px;--page-max-width:1320px;--page-gutter:clamp(16px, 4vw, 64px);--page-frame-width:min(var(--page-max-width), calc(100vw - var(--page-gutter) - var(--page-gutter)));--font-sans:Pretendard, "Noto Sans KR", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--background:var(--paper);--foreground:var(--ink);--surface-soft:var(--paper-deep);--border:var(--line);--primary:var(--cobalt);--primary-foreground:#fff;--muted:var(--ink-soft)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper);text-rendering:optimizelegibility;min-width:320px;scroll-padding-top:112px}body{background:var(--paper);min-width:320px;min-height:100dvh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;overflow-x:clip}::selection{background:var(--acid);color:var(--ink)}[hidden]{display:none!important}[id]{scroll-margin-top:112px}img,svg,video,canvas{max-width:100%;display:block}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{border:0}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4,figure,dl,dd{margin:0}ul,ol{margin:0;padding:0}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--cobalt);outline-offset:4px}.pf-skip-link{z-index:10000;border:2px solid var(--ink);background:var(--acid);min-height:44px;color:var(--ink);border-radius:999px;padding:10px 16px;font-weight:800;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(calc(-100% - 20px))}.pf-skip-link:focus{transform:translateY(0)}.pf-visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
.site-header{z-index:200;width:var(--page-frame-width);margin:12px auto 0;position:sticky;top:12px}.site-header__bar{border:2px solid var(--ink);background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:24px;align-items:center;gap:clamp(18px,3vw,42px);min-height:68px;padding:8px 10px 8px 12px;display:flex;box-shadow:0 6px #11110f29}.site-header__touch-target{min-width:44px;min-height:44px}.site-header__brand{flex:none;align-items:center;gap:12px;display:inline-flex}.site-header__mark{border:2px solid var(--ink);background:var(--cobalt);width:44px;height:44px;box-shadow:3px 3px 0 var(--ink);color:#fff;letter-spacing:-.04em;border-radius:14px;place-items:center;font-size:.82rem;font-weight:900;line-height:1;transition:transform .18s,box-shadow .18s;display:grid}.site-header__brand:hover .site-header__mark{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.site-header__identity{flex-direction:column;line-height:1.1;display:flex}.site-header__name{letter-spacing:-.03em;font-size:.92rem;font-weight:850}.site-header__role{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:.62rem}.site-header__nav{align-items:center;gap:6px;margin-left:auto;display:flex}.site-header__nav-link,.site-header__resume,.site-header__contact{letter-spacing:.02em;border-radius:14px;justify-content:center;align-items:center;font-size:.76rem;font-weight:800;transition:background-color .18s,color .18s,transform .18s,box-shadow .18s;display:inline-flex}.site-header__nav-link{padding:0 15px}.site-header__nav-link:hover{background:var(--paper-deep)}.site-header__actions{flex:none;align-items:center;gap:8px;display:flex}.site-header__resume{border:1.5px solid var(--ink);background:var(--surface);padding:0 17px}.site-header__resume:hover{background:var(--acid);box-shadow:2px 2px 0 var(--ink);transform:translate(-1px,-1px)}.site-header__contact{border:2px solid var(--ink);background:var(--coral);box-shadow:3px 3px 0 var(--ink);padding:0 19px}.site-header__contact:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.site-header__menu-button{border:2px solid var(--ink);background:var(--acid);width:48px;height:48px;box-shadow:3px 3px 0 var(--ink);color:var(--ink);cursor:pointer;border-radius:14px;place-items:center;padding:0;display:none}.site-header__menu-button span{background:currentColor;border-radius:999px;width:20px;height:2px;transition:transform .18s;position:absolute}.site-header__menu-button span:first-child{transform:translateY(-4px)}.site-header__menu-button span:last-child{transform:translateY(4px)}.site-header__menu-button[data-open=true] span:first-child{transform:rotate(45deg)}.site-header__menu-button[data-open=true] span:last-child{transform:rotate(-45deg)}.site-header__mobile-panel{border:2px solid var(--ink);background:var(--surface);width:min(100%,420px);box-shadow:7px 7px 0 var(--ink);border-radius:24px;position:absolute;top:calc(100% + 10px);right:0}.site-header__mobile-panel nav{gap:6px;padding:10px;display:grid}.site-header__mobile-link,.site-header__mobile-resume,.site-header__mobile-contact{border-radius:14px;align-items:center;min-height:52px;font-weight:800;display:flex}.site-header__mobile-link,.site-header__mobile-resume{gap:16px;padding:0 16px}.site-header__mobile-link span,.site-header__mobile-resume span{color:var(--ink-soft);font-family:var(--font-mono);font-size:.68rem}.site-header__mobile-link:hover,.site-header__mobile-resume:hover{background:var(--paper-deep)}.site-header__mobile-contact{border:2px solid var(--ink);background:var(--coral);justify-content:space-between;padding:0 18px}.pf-main{min-width:0;position:relative}.pf-section__inner{width:var(--page-frame-width);margin:0 auto}.pf-section__eyebrow,.pf-case__eyebrow,.pf-case__section-kicker,.site-footer__eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:700}.pf-section__eyebrow,.pf-case__section-kicker{color:var(--cobalt)}.pf-section__heading{margin-bottom:clamp(48px,7vw,92px)}.pf-section__heading--split{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:end;gap:48px;display:grid}.pf-section__title{letter-spacing:-.075em;margin-top:16px;font-size:clamp(2.8rem,6vw,6.4rem);font-weight:850;line-height:.94}.pf-section__description{max-width:520px;color:var(--ink-soft);font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.75}.pf-button{border:2px solid var(--ink);border-radius:14px;justify-content:center;align-items:center;min-height:48px;padding:0 22px;font-weight:800;transition:transform .18s,box-shadow .18s,background-color .18s;display:inline-flex}.pf-button--secondary{background:var(--surface);box-shadow:4px 4px 0 var(--ink)}.pf-button:hover{background:var(--acid);box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.pf-work-page{background:var(--paper);margin-top:-92px;padding-top:92px}.pf-page-hero{border-bottom:2px solid var(--ink);background:radial-gradient(circle at 84% 34%, #d8ff43cc 0 11%, transparent 11.3%), radial-gradient(circle at 92% 72%, #ff6240bf 0 9%, transparent 9.3%), var(--paper);min-height:min(760px,82vh);position:relative;overflow:hidden}.pf-page-hero__inner{width:var(--page-frame-width);min-height:inherit;grid-template-columns:minmax(0,1fr) 170px;align-content:center;gap:48px;margin:0 auto;padding:clamp(132px,16vw,210px) 0 clamp(72px,10vw,132px);display:grid;position:relative}.pf-page-hero__copy{z-index:2;max-width:980px;position:relative}.pf-page-hero__back{align-items:center;gap:8px;min-height:44px;margin-bottom:clamp(38px,5vw,66px);font-size:.78rem;font-weight:800;display:inline-flex}.pf-page-hero__back:hover{color:var(--cobalt)}.pf-page-hero__title{letter-spacing:-.085em;word-break:keep-all;max-width:960px;margin-top:18px;font-size:clamp(3.5rem,8.4vw,8.4rem);font-weight:900;line-height:.9}.pf-page-hero__title span{color:var(--cobalt)}.pf-page-hero__description{max-width:660px;color:var(--ink-soft);word-break:keep-all;margin-top:34px;font-size:clamp(1rem,1.8vw,1.28rem);line-height:1.75}.pf-page-hero__index{z-index:2;border-bottom:2px solid var(--ink);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;flex-direction:column;align-self:end;padding-bottom:12px;font-size:.66rem;display:flex;position:relative}.pf-page-hero__count{font-family:var(--font-sans);letter-spacing:-.08em;font-size:clamp(4rem,8vw,7rem);font-weight:900;line-height:1}.pf-page-hero__clay{aspect-ratio:1;opacity:.78;pointer-events:none;width:clamp(190px,22vw,330px);position:absolute;bottom:16%;right:4%}.pf-page-hero__clay span{border:2px solid var(--ink);position:absolute;box-shadow:8px 10px #11110f29}.pf-page-hero__clay span:first-child{background:var(--cobalt);border-radius:42% 58% 64% 36%/38% 40% 60% 62%;inset:6% 24% 38% 10%;transform:rotate(-16deg)}.pf-page-hero__clay span:nth-child(2){background:var(--coral);border-radius:50%;inset:46% 2% 5% 48%}.pf-page-hero__clay span:nth-child(3){background:var(--acid);border-radius:28px;inset:58% 52% 3% 8%;transform:rotate(12deg)}.pf-projects{padding:clamp(88px,11vw,156px) 0}.pf-projects__list{border-top:2px solid var(--ink)}.pf-project-card{border-bottom:2px solid var(--ink);grid-template-columns:64px minmax(320px,.92fr) minmax(0,1.08fr);grid-template-areas:"number media body";gap:clamp(24px,3.8vw,58px);padding:clamp(52px,7vw,92px) 0;display:grid}.pf-project-card:nth-child(2n){grid-template-areas:"number body media"}.pf-project-card__number{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.1em;grid-area:number;padding-top:8px;font-size:.76rem}.pf-project-card__media{aspect-ratio:4/3;border:2px solid var(--ink);border-radius:var(--radius-lg);background:var(--paper-deep);box-shadow:var(--shadow-clay);isolation:isolate;grid-area:media;align-self:start;position:relative;overflow:hidden}.pf-project-card[data-project-slug=starfield] .pf-project-card__media{background:color-mix(in srgb, var(--cobalt) 22%, var(--paper))}.pf-project-card[data-project-slug=kong] .pf-project-card__media{background:color-mix(in srgb, var(--coral) 28%, var(--paper))}.pf-project-card[data-project-slug=samsung-edp] .pf-project-card__media{background:color-mix(in srgb, var(--acid) 55%, var(--paper))}.pf-project-card__image{object-fit:cover;transition:transform .42s cubic-bezier(.2,.7,.2,1)}.pf-project-card__media:after{z-index:1;content:"";opacity:.75;pointer-events:none;background:linear-gradient(#0000 56%,#11110f94);position:absolute;inset:0}.pf-project-card__media:hover .pf-project-card__image{transform:scale(1.035)}.pf-project-card__media-label{z-index:2;border:1.5px solid var(--ink);background:var(--acid);min-height:44px;color:var(--ink);font-family:var(--font-mono);text-transform:uppercase;border-radius:999px;align-items:center;gap:12px;padding:0 16px;font-size:.68rem;font-weight:800;display:inline-flex;position:absolute;bottom:18px;right:18px}.pf-project-card__body{flex-direction:column;grid-area:body;min-width:0;display:flex}.pf-project-card__meta{border-bottom:1px solid var(--line);color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:8px 18px;padding-bottom:14px;font-size:.66rem;display:flex}.pf-project-card__heading{padding:clamp(26px,3vw,42px) 0}.pf-project-card__client{color:var(--cobalt);margin-bottom:8px;font-size:.82rem;font-weight:800}.pf-project-card__title{letter-spacing:-.065em;word-break:keep-all;max-width:720px;font-size:clamp(2.05rem,4vw,4rem);font-weight:900;line-height:1}.pf-project-card__title a{transition:color .18s}.pf-project-card__title a:hover{color:var(--cobalt)}.pf-project-card__description{max-width:620px;color:var(--ink-soft);margin-top:18px;line-height:1.75}.pf-project-card__story{border-top:1px solid var(--line-strong)}.pf-project-card__story-item{border-bottom:1px solid var(--line);grid-template-columns:88px minmax(0,1fr);gap:20px;padding:18px 0;display:grid}.pf-project-card__story-item dt{color:var(--ink);flex-direction:column;font-size:.78rem;font-weight:850;display:flex}.pf-project-card__story-item dt span{color:var(--coral-ink);font-family:var(--font-mono);margin-bottom:4px;font-size:.6rem;font-weight:700}.pf-project-card__story-item dd{color:var(--ink-soft);word-break:keep-all;font-size:.91rem;line-height:1.7}.pf-project-card__footer{flex-direction:column;gap:18px;margin-top:28px;display:flex}.pf-project-card__evidence,.pf-project-card__tags,.pf-case__tags{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.pf-project-card__evidence li{background:color-mix(in srgb, var(--acid) 62%, var(--paper));border-radius:999px;padding:7px 11px;font-size:.72rem;font-weight:750}.pf-project-card__tags li,.pf-case__tag{border:1px solid var(--line-strong);color:var(--ink-soft);font-family:var(--font-mono);border-radius:999px;padding:6px 10px;font-size:.65rem}.pf-project-card__link{border:2px solid var(--ink);background:var(--surface);width:fit-content;min-height:44px;box-shadow:3px 3px 0 var(--ink);border-radius:12px;align-items:center;gap:22px;padding:0 16px;font-size:.8rem;font-weight:850;transition:background-color .18s,box-shadow .18s,transform .18s;display:inline-flex}.pf-project-card__link:hover{background:var(--cobalt);box-shadow:1px 1px 0 var(--ink);color:#fff;transform:translate(2px,2px)}.pf-projects__footer{justify-content:center;margin-top:52px;display:flex}.pc-page-wrap{background:var(--paper);position:relative}.pf-case{width:var(--page-frame-width);margin:clamp(48px,7vw,92px) auto 0}.pf-case__hero{border:2px solid var(--ink);background:var(--surface);border-radius:clamp(26px,4vw,48px);grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:clamp(36px,5vw,76px);padding:clamp(34px,5vw,72px);display:grid;position:relative;overflow:hidden;box-shadow:10px 12px #11110f1f}.pf-case__hero:before{background:color-mix(in srgb, var(--acid) 55%, transparent);content:"";filter:blur(1px);border-radius:50%;width:300px;height:300px;position:absolute;top:-120px;left:36%}.pf-case__hero-copy,.pf-case__hero-visual{z-index:1;position:relative}.pf-case__hero-copy{flex-direction:column;justify-content:center;display:flex}.pf-case__eyebrow{color:var(--coral-ink)}.pf-case__title{letter-spacing:-.085em;word-break:keep-all;margin-top:22px;font-size:clamp(3.5rem,7vw,7rem);font-weight:900;line-height:.9}.pf-case__subtitle{color:var(--cobalt);letter-spacing:-.03em;margin-top:20px;font-size:clamp(1rem,2vw,1.4rem);font-weight:850}.pf-case__hero-description{max-width:590px;color:var(--ink-soft);margin-top:18px;font-size:1rem;line-height:1.75}.pf-case__hero-facts{border-top:1px solid var(--line-strong);gap:14px;margin-top:32px;padding-top:22px;display:grid}.pf-case__hero-fact{grid-template-columns:64px 1fr;gap:16px;display:grid}.pf-case__hero-fact dt{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.pf-case__hero-fact dd{font-size:.88rem;font-weight:750}.pf-case__tags{margin-top:26px}.pf-case__hero-action{margin-top:28px}.pf-case__status,.pf-case__live-link{border:1.5px solid var(--ink);background:var(--paper);border-radius:999px;align-items:center;gap:9px;min-height:44px;padding:0 15px;font-size:.74rem;font-weight:800;display:inline-flex}.pf-case__live-link{background:var(--acid);transition:transform .18s}.pf-case__live-link:hover{transform:translateY(-2px)}.pf-case__hero-visual{border:2px solid var(--ink);background:radial-gradient(circle at 15% 12%, #ffffffe6, transparent 24%), linear-gradient(145deg, color-mix(in srgb, var(--cobalt) 32%, var(--paper)), color-mix(in srgb, var(--coral) 30%, var(--paper)));border-radius:34px;flex-direction:column;justify-content:space-between;min-height:520px;padding:24px;display:flex;overflow:hidden}.pf-case__brand{z-index:3;border:1.5px solid var(--ink);background:color-mix(in srgb, var(--surface) 90%, transparent);border-radius:16px;align-items:center;gap:12px;width:fit-content;padding:9px 13px;display:inline-flex;position:relative;box-shadow:3px 3px #11110f2e}.pf-case__brand-logo{background:#fff;border-radius:10px;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.pf-case__brand-logo img{object-fit:contain;width:100%;height:100%}.pf-case__brand>span:last-child{flex-direction:column;display:flex}.pf-case__brand-name{font-size:.78rem}.pf-case__brand-tagline{color:var(--ink-soft);font-family:var(--font-mono);font-size:.58rem}.pf-case__hero-shots{justify-content:center;align-items:flex-end;gap:clamp(8px,1.8vw,22px);min-height:390px;padding-top:22px;display:flex}.pf-case__hero-shot{border:2px solid var(--ink);background:#fff;border-radius:24px;width:min(31%,190px);overflow:hidden;transform:rotate(-3deg)translateY(8px);box-shadow:7px 10px #11110f38}.pf-case__hero-shot:nth-child(2){z-index:2;transform:translateY(-10px)}.pf-case__hero-shot:nth-child(3){transform:rotate(3deg)translateY(8px)}.pf-case__hero-shot img{object-fit:cover;width:100%;height:auto}.pf-case__hero-shots[data-count="1"]{align-items:center}.pf-case__hero-shots[data-count="1"] .pf-case__hero-shot{border-radius:22px;width:100%;max-width:none;transform:none}.pf-case__hero-shots[data-count="1"] .pf-case__hero-shot img{aspect-ratio:16/9;object-fit:cover}.pf-case__layout{grid-template-columns:210px minmax(0,1fr);gap:clamp(38px,6vw,88px);margin-top:clamp(64px,9vw,128px);display:grid}.pf-case__rail{min-width:0}.pf-case-nav{border-top:2px solid var(--ink);padding-top:16px;position:sticky;top:112px}.pf-case-nav__label{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;margin-bottom:18px;font-size:.64rem;font-weight:700}.pf-case-nav__list{gap:2px;list-style:none;display:grid}.pf-case-nav__link{min-height:44px;color:var(--ink-soft);border-radius:10px;grid-template-columns:28px 1fr;align-items:center;gap:8px;padding:7px 10px;font-size:.75rem;font-weight:700;transition:background-color .18s,color .18s;display:grid}.pf-case-nav__index{font-family:var(--font-mono);font-size:.58rem}.pf-case-nav__link:hover,.pf-case-nav__link[aria-current=location]{background:var(--acid);color:var(--ink)}.pf-case__content{min-width:0;max-width:960px}.pf-case__section{border-bottom:2px solid var(--ink);padding:clamp(64px,8vw,112px) 0}.pf-case__section:first-child{padding-top:0}.pf-case__section-header{max-width:780px;margin-bottom:clamp(32px,5vw,56px)}.pf-case__section-title{letter-spacing:-.07em;word-break:keep-all;margin-top:14px;font-size:clamp(2.25rem,5vw,4.8rem);font-weight:900;line-height:.98}.pf-case__section-lede{max-width:720px;color:var(--ink-soft);word-break:keep-all;margin-top:22px;font-size:clamp(1rem,1.7vw,1.18rem);line-height:1.8}.pf-case__context-grid{border-block:1px solid var(--line-strong);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.pf-case__context-item{border-right:1px solid var(--line);padding:18px 16px}.pf-case__context-item:last-child{border-right:0}.pf-case__context-item dt{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:.6rem}.pf-case__context-item dd{font-size:.78rem;font-weight:750;line-height:1.55}.pf-case__tldr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px;display:grid}.pf-case__tldr-item{border:2px solid var(--ink);background:var(--surface);border-radius:24px;min-height:230px;padding:clamp(24px,3vw,36px);box-shadow:5px 6px #11110f21}.pf-case__tldr-item:first-child{background:color-mix(in srgb, var(--coral) 25%, var(--paper))}.pf-case__tldr-item:nth-child(2){background:color-mix(in srgb, var(--cobalt) 18%, var(--paper))}.pf-case__tldr-item:nth-child(3){background:color-mix(in srgb, var(--acid) 56%, var(--paper))}.pf-case__tldr-label{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:750}.pf-case__tldr-item h3{letter-spacing:-.03em;margin-top:28px;font-size:1.14rem;font-weight:850}.pf-case__tldr-item p:last-child{color:color-mix(in srgb, var(--ink) 75%, transparent);word-break:keep-all;margin-top:12px;font-size:.88rem;line-height:1.75}.pf-case__prose{max-width:760px;color:var(--ink-soft);gap:18px;font-size:1rem;line-height:1.9;display:grid}.pf-case__role-card,.pf-case__task-card{border:2px solid var(--ink);background:var(--surface);border-radius:26px;padding:clamp(26px,4vw,44px)}.pf-case__role-card{box-shadow:7px 8px 0 color-mix(in srgb, var(--cobalt) 48%, transparent)}.pf-case__role-name,.pf-case__task-card h3{letter-spacing:-.035em;margin-bottom:24px;font-size:1.22rem;font-weight:850}.pf-case__bullet-list{gap:12px;list-style:none;display:grid}.pf-case__bullet-list li{color:var(--ink-soft);align-items:flex-start;gap:12px;font-size:.92rem;line-height:1.7;display:flex}.pf-case__bullet-list svg{color:var(--cobalt);flex:none;margin-top:6px}.pf-case__decision-list,.pf-case__workflow-list{border-top:2px solid var(--ink);list-style:none}.pf-case__decision-item,.pf-case__workflow-item{border-bottom:1px solid var(--line-strong);grid-template-columns:72px minmax(0,1fr);gap:clamp(20px,4vw,48px);padding:30px 0;display:grid}.pf-case__decision-index,.pf-case__workflow-index{color:var(--coral-ink);font-family:var(--font-mono);font-size:.7rem;font-weight:800}.pf-case__decision-item h3,.pf-case__workflow-item h3{letter-spacing:-.035em;font-size:1.18rem;font-weight:850}.pf-case__decision-item p,.pf-case__workflow-item p{max-width:720px;color:var(--ink-soft);margin-top:10px;font-size:.9rem;line-height:1.75}.pf-case__implementation-grid{gap:28px;display:grid}.pf-case__task-card{background:color-mix(in srgb, var(--acid) 26%, var(--surface))}.pf-case__code-card{border:2px solid var(--ink);color:#f5f0e6;background:#171814;border-radius:24px;min-width:0;overflow:hidden;box-shadow:7px 8px #11110f26}.pf-case__code-heading{border-bottom:1px solid #ffffff24;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:0 20px;font-size:.77rem;font-weight:750;display:flex}.pf-case__code-language{color:var(--acid);font-family:var(--font-mono);text-transform:uppercase;font-size:.62rem}.pf-case__code-pre{color:#e7e1d7;max-height:520px;font-family:var(--font-mono);scrollbar-color:var(--coral) #24251f;margin:0;padding:24px;font-size:.74rem;line-height:1.8;overflow:auto}.pf-case__code-line{min-width:max-content;display:block}.pf-case__code-token--keyword{color:#ff8065}.pf-case__code-token--function{color:#d8ff43}.pf-case__code-token--string{color:#9eb5ff}.pf-case__code-token--number{color:#ffd76a}.pf-case__code-token--comment{color:#989a90}.pf-case__code-token--variable{color:#b9c8ff}.pf-case__code-note{color:#b9b9b0;border-top:1px solid #ffffff1a;padding:16px 20px 20px;font-size:.72rem;line-height:1.65}.pf-case__outcome-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;display:grid}.pf-case__outcome-item{border:1.5px solid var(--ink);background:var(--surface);border-radius:18px;align-items:flex-start;gap:14px;min-height:94px;padding:22px;font-size:.88rem;font-weight:720;line-height:1.65;display:flex}.pf-case__outcome-icon{border:1.5px solid var(--ink);background:var(--acid);border-radius:10px;flex:none;place-items:center;width:30px;height:30px;display:grid}.pf-case__screen-list{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;list-style:none;display:grid}.pf-case__screen-button{border:2px solid var(--ink);background:var(--surface);width:100%;min-height:44px;color:var(--ink);cursor:zoom-in;text-align:left;border-radius:22px;padding:10px;transition:transform .18s,box-shadow .18s;box-shadow:4px 5px #11110f26}.pf-case__screen-button:hover{transform:translate(2px,3px);box-shadow:2px 2px #11110f2e}.pf-case__screen-media{aspect-ratio:9/15;background:var(--paper-deep);border-radius:14px;display:block;overflow:hidden}.pf-case__screen-media img{object-fit:cover;width:100%;height:100%}.pf-case__screen-caption{align-items:center;gap:10px;padding:14px 4px 4px;font-size:.77rem;font-weight:800;display:flex}.pf-case__screen-caption>span{color:var(--coral-ink);font-family:var(--font-mono);font-size:.62rem}.work-bottom-nav{border-top:2px solid var(--ink);background:var(--paper-deep);margin-top:clamp(82px,10vw,142px);padding:clamp(60px,8vw,104px) 0}.work-bottom-nav__inner{width:var(--page-frame-width);margin:0 auto}.work-bottom-nav__back{align-items:center;gap:9px;min-height:44px;font-size:.78rem;font-weight:800;display:inline-flex}.work-bottom-nav__back:hover{color:var(--cobalt)}.work-bottom-nav__back-icon,.work-bottom-nav__arrow-left{transform:rotate(180deg)}.work-bottom-nav__pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px;display:grid}.work-bottom-nav__card{border:2px solid var(--ink);background:var(--surface);border-radius:24px;flex-direction:column;justify-content:space-between;min-height:160px;padding:26px;transition:background-color .18s,box-shadow .18s,transform .18s;display:flex;box-shadow:5px 6px #11110f24}.work-bottom-nav__card:hover{background:var(--acid);transform:translate(3px,4px);box-shadow:2px 2px #11110f29}.work-bottom-nav__card--next{text-align:right;align-items:flex-end}.work-bottom-nav__dir{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:.62rem;font-weight:750;display:flex}.work-bottom-nav__title{letter-spacing:-.045em;max-width:380px;font-size:clamp(1.25rem,2.4vw,2rem);font-weight:900;line-height:1.1}.pc-top-btn{padding:22px var(--page-gutter) 36px;background:var(--paper-deep);justify-content:center;display:none}.pc-top-btn__link{border:1.5px solid var(--ink);background:var(--surface);border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:0 15px;font-size:.75rem;font-weight:800;display:inline-flex}.site-footer{z-index:2;border-top:2px solid var(--ink);background:var(--ink);color:var(--paper);padding:clamp(72px,10vw,132px) 0 28px;position:relative}.site-footer__inner{width:var(--page-frame-width);margin:0 auto}.site-footer__eyebrow{color:var(--acid)}.site-footer__title{letter-spacing:-.07em;word-break:keep-all;max-width:900px;margin-top:18px;font-size:clamp(2.3rem,6vw,6.2rem);font-weight:850;line-height:1}.site-footer__links{flex-wrap:wrap;gap:10px;margin-top:clamp(48px,8vw,96px);display:flex}.site-footer__links a{border:1.5px solid color-mix(in srgb, var(--paper) 60%, transparent);border-radius:999px;align-items:center;gap:18px;min-height:48px;padding:0 18px;font-size:.78rem;font-weight:800;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.site-footer__links a:hover{border-color:var(--acid);background:var(--acid);color:var(--ink)}.site-footer__meta{color:#f4f0e7a8;font-family:var(--font-mono);letter-spacing:.04em;border-top:1px solid #f4f0e73d;justify-content:space-between;align-items:center;gap:24px;margin-top:clamp(64px,9vw,112px);padding-top:22px;font-size:.62rem;display:flex}.site-footer__meta a{align-items:center;min-height:44px;display:inline-flex}.site-footer :focus-visible{outline-color:var(--acid)}@keyframes image-lightbox-fade-in{0%{opacity:0}to{opacity:1}}@keyframes image-lightbox-pop-in{0%{opacity:0;transform:scale(.97)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.image-lightbox{z-index:1000;display:none;position:fixed;inset:0}.image-lightbox--open{animation:.2s both image-lightbox-fade-in;display:block}.image-lightbox__backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#11110ff0;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.image-lightbox__content{flex-direction:column;align-items:center;gap:16px;width:min(92vw,1180px);max-height:92vh;animation:.24s both image-lightbox-pop-in;display:flex;position:relative}.image-lightbox__image-wrap{background:#f4f0e70f;border:1px solid #f4f0e74d;border-radius:22px;width:100%;height:min(78vh,780px);position:relative;overflow:hidden}.image-lightbox__img{object-fit:contain}.image-lightbox__caption{color:var(--paper);text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px;font-size:.82rem;display:flex}.image-lightbox__caption-index{color:var(--acid);font-family:var(--font-mono);font-size:.68rem;font-weight:800}.image-lightbox__caption-title{color:#f4f0e7d6}.image-lightbox__close,.image-lightbox__nav{width:48px;height:48px;color:var(--paper);cursor:pointer;background:#f4f0e71f;border:1.5px solid #f4f0e785;border-radius:50%;justify-content:center;align-items:center;transition:background-color .18s,color .18s;display:inline-flex}.image-lightbox__close:hover,.image-lightbox__nav:hover{background:var(--acid);color:var(--ink)}.image-lightbox__close:focus-visible,.image-lightbox__nav:focus-visible{outline-color:var(--acid)}.image-lightbox__close{z-index:3;position:absolute;top:12px;right:12px}.image-lightbox__nav{z-index:3;position:absolute;top:50%;transform:translateY(-50%)}.image-lightbox__nav--prev{left:14px}.image-lightbox__nav--next{right:14px}@media (max-width:1100px){.pf-project-card{grid-template-columns:48px minmax(280px,.88fr) minmax(0,1.12fr);gap:26px}.pf-case__layout{display:block}.pf-case__rail{z-index:20;margin-bottom:64px;position:sticky;top:94px}.pf-case-nav{border:1.5px solid var(--ink);background:color-mix(in srgb, var(--paper) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-color:var(--cobalt) transparent;scrollbar-width:thin;border-radius:16px;padding:8px;position:static;overflow-x:auto;box-shadow:0 4px #11110f1f}.pf-case-nav::-webkit-scrollbar{height:5px}.pf-case-nav::-webkit-scrollbar-thumb{background:var(--cobalt);border-radius:999px}.pf-case-nav::-webkit-scrollbar-track{background:0 0}.pf-case-nav__label{display:none}.pf-case-nav__list{gap:3px;width:max-content;display:flex}.pf-case-nav__link{white-space:nowrap;grid-template-columns:auto auto}.pf-case__content{max-width:none}}@media (max-width:960px){.pf-project-card,.pf-project-card:nth-child(2n){grid-template-columns:44px minmax(0,1fr);grid-template-areas:"number media"".body"}.pf-case__hero{grid-template-columns:1fr}.pf-case__hero-copy{max-width:720px}.pf-case__hero-visual{min-height:460px}}@media (max-width:920px){.site-header__nav,.site-header__resume,.site-header__contact{display:none}.site-header__actions{margin-left:auto}.site-header__menu-button{display:grid;position:relative}}@media (max-width:768px){.site-header{width:calc(100% - 24px);margin-top:8px;top:8px}.site-header__bar{border-radius:20px;min-height:62px;padding:7px 8px 7px 9px}.site-header__mark{border-radius:13px;width:42px;height:42px}.pf-section__heading--split{grid-template-columns:1fr;gap:24px}.pf-work-page{margin-top:-78px;padding-top:78px}.pf-page-hero{min-height:720px}.pf-page-hero__inner{grid-template-columns:1fr;align-content:end;padding-top:150px;padding-bottom:56px}.pf-page-hero__back{margin-bottom:52px}.pf-page-hero__title{font-size:clamp(3.25rem,15vw,6rem)}.pf-page-hero__index{width:118px}.pf-page-hero__clay{opacity:.48;width:210px;bottom:12%;right:-4%}.pf-projects{padding:76px 0 92px}.pf-project-card,.pf-project-card:nth-child(2n){grid-template-columns:1fr;grid-template-areas:"number""media""body";gap:20px;padding:52px 0}.pf-project-card__number{padding-top:0}.pf-project-card__media{border-radius:26px}.pf-project-card__heading{padding:28px 0}.pf-project-card__story-item{grid-template-columns:76px 1fr;gap:14px}.pf-case{margin-top:38px}.pf-case__hero{border-radius:28px;gap:34px;padding:26px}.pf-case__hero-visual{border-radius:24px;min-height:400px;padding:16px}.pf-case__hero-shots{min-height:320px}.pf-case__layout{margin-top:72px}.pf-case__rail{margin-bottom:48px;top:82px}.pf-case__context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-case__context-item:nth-child(2){border-right:0}.pf-case__context-item:nth-child(-n+2){border-bottom:1px solid var(--line)}.pf-case__tldr-grid,.pf-case__outcome-list{grid-template-columns:1fr}.pf-case__tldr-item{min-height:0}.pf-case__screen-list{scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:0;padding:0 0 14px;display:flex;overflow-x:auto}.pf-case__screen-list::-webkit-scrollbar{display:none}.pf-case__screen-item{scroll-snap-align:start;flex:none;width:min(72vw,280px)}.work-bottom-nav__pair{grid-template-columns:1fr}.work-bottom-nav__card--next{text-align:left;align-items:flex-start}.pc-top-btn{display:flex}.site-footer__meta{flex-direction:column;align-items:flex-start}.image-lightbox__backdrop{padding:12px}.image-lightbox__content{width:100%}.image-lightbox__image-wrap{border-radius:16px;height:76vh}.image-lightbox__close{top:10px;right:10px}.image-lightbox__nav{top:auto;bottom:62px;transform:none}}@media (max-width:520px){.site-header__role{display:none}.pf-page-hero__description{font-size:.96rem}.pf-case__title{font-size:clamp(3rem,15vw,5rem)}.pf-case__hero-fact{grid-template-columns:52px 1fr}.pf-case__hero-visual{min-height:340px}.pf-case__brand{padding:7px 10px}.pf-case__brand-logo{width:34px;height:34px}.pf-case__hero-shots{min-height:260px}.pf-case__hero-shot{border-radius:16px;box-shadow:4px 6px #11110f33}.pf-case__context-item{padding:14px 10px}.pf-case__decision-item,.pf-case__workflow-item{grid-template-columns:42px 1fr;gap:12px}.pf-case__code-pre{padding:18px;font-size:.68rem}.work-bottom-nav__card{min-height:140px;padding:22px}}@media (max-width:390px){:root{--page-gutter:14px}.site-header{width:calc(100% - 16px)}.site-header__bar,.site-header__brand{gap:8px}.site-header__name{font-size:.84rem}.site-header__mobile-panel{width:100%}.pf-page-hero__title{font-size:3.18rem}.pf-project-card__story-item{grid-template-columns:68px 1fr}.pf-case__hero{padding:20px}.pf-case__hero-visual{min-height:300px}.pf-case__hero-shots{min-height:220px}.pf-case__context-grid{grid-template-columns:1fr}.pf-case__context-item,.pf-case__context-item:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.pf-case__context-item:last-child{border-bottom:0}.pf-case__role-card,.pf-case__task-card,.pf-case__tldr-item{padding:22px}.site-footer__title{font-size:2.35rem}}@media (prefers-reduced-motion:reduce){.pf-project-card__image,.site-header__mark,.site-header__menu-button span{transform:none!important}.image-lightbox--open,.image-lightbox__content{animation:none}}
