*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-space-grotesk);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}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{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.resize{resize:both}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f7f7;color:#000000;font-family:Arial,Helvetica,Helvetica Neue,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.portfolio-page{min-height:100vh}.portfolio-page-muted{background:#f7f7f7}.portfolio-shell{margin:0 auto;max-width:1440px;padding:32px 24px 48px}.portfolio-nav{align-items:center;display:flex;justify-content:space-between;margin:0 auto 28px;max-width:1040px}.portfolio-brand{align-items:baseline;display:flex;gap:8px}.portfolio-brand a{font-size:16px;font-weight:700;line-height:1.375}.portfolio-brand span,.portfolio-nav-list a{color:rgba(0,0,0,.5);font-size:16px;line-height:1.375}.portfolio-nav-list{align-items:center;display:flex;gap:24px;list-style:none;margin:0;padding:0}.portfolio-nav-list .is-active{color:#000000;font-weight:500}.hero-section{margin:0 auto;max-width:1040px;position:relative}.hero-drawing-tools{align-items:center;display:flex;flex-wrap:wrap;gap:12px;position:absolute;right:20px;top:20px;z-index:60}.hero-tool-button{align-items:center;background:rgba(247,247,247,.94);border:1px solid rgba(0,0,0,.12);border-radius:999px;color:#111111;cursor:pointer;display:inline-flex;height:44px;justify-content:center;padding:0;position:relative;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;width:44px}.hero-tool-button:hover{background:#ffffff;border-color:rgba(0,0,0,.22);transform:translateY(-1px)}.hero-tool-button.is-active{background:#111111;border-color:#111111;color:#ffffff}.hero-tool-button-color{gap:6px;width:58px}.hero-tool-swatch{border:1px solid rgba(0,0,0,.12);border-radius:999px;height:12px;width:12px}.hero-tool-input{opacity:0;pointer-events:none;position:absolute}.hero-image-wrap{border-radius:12px;overflow:hidden;position:relative}.hero-image{aspect-ratio:1040/525;-o-object-fit:cover;object-fit:cover;width:100%}.hero-overlay{background:linear-gradient(180deg,#6efdea,#ecd240);inset:0;mix-blend-mode:color-burn;opacity:.72;position:absolute}.hero-copy{left:-42px;max-width:453px;position:absolute;top:167px}.hero-copy h1{font-size:clamp(2rem,3vw,2.5rem);font-weight:400;letter-spacing:0;line-height:1.2;margin:0}.page-drawing-canvas{inset:0;pointer-events:none;position:fixed;touch-action:none;z-index:40}.page-drawing-canvas.is-active{cursor:crosshair;pointer-events:auto}.roles-section{-moz-column-gap:24px;column-gap:24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:78px auto 164px;max-width:1040px}.role-card{display:flex;flex-direction:column;min-width:0}.role-heading{align-items:flex-start;display:flex;gap:18px;margin-bottom:28px}.role-logo-wrap{border-radius:8px;flex:0 0 auto;height:45px;overflow:hidden;width:45px}.role-logo{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.role-card h2{font-size:16px;font-weight:700;line-height:1.375;margin:0 0 2px}.role-meta{color:#575757;font-size:14px;line-height:20px;margin:0}.role-description{font-size:14px;line-height:1.45;margin:0 0 24px 63px}.role-link{align-items:center;color:rgba(0,0,0,.6);display:inline-flex;font-size:14px;font-style:italic;gap:6px;line-height:20px;margin-left:63px;transition:color .16s ease}.role-link:hover{color:#000000}.playground-section{margin:0 auto 164px;max-width:1040px}.playground-page-section{margin-top:56px}.playground-intro{margin-bottom:56px;max-width:891px}.playground-intro h1,.playground-intro h2{font-size:clamp(2rem,3vw,2.5rem);font-weight:400;letter-spacing:0;line-height:1.2;margin:0}.playground-grid{-moz-column-gap:24px;column-gap:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}.playground-card{max-width:331px;position:relative}.playground-card-interactive{border-radius:16px}.playground-card-interactive:focus-within .playground-card-image-wrap,.playground-card-interactive:hover .playground-card-image-wrap{box-shadow:0 18px 30px rgba(0,0,0,.1);transform:translateY(-2px)}.playground-card-hitarea{border-radius:20px;inset:0;position:absolute;z-index:2}.playground-card-image-wrap{aspect-ratio:331/160;align-items:center;background:#ffffff;border-radius:16px;display:flex;justify-content:center;margin-bottom:16px;overflow:hidden;transition:box-shadow .18s ease,transform .18s ease}.playground-card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.playground-card-image-linely{height:auto;max-width:220px;-o-object-fit:contain;object-fit:contain;width:auto}.playground-card-image-unity{-o-object-position:center;object-position:center}.playground-card-copy{display:flex;flex-direction:column;gap:16px}.playground-card-text{display:flex;flex-direction:column;gap:4px}.playground-card h2,.playground-card h3{font-size:16px;font-weight:700;line-height:1.375;margin:0}.playground-card-description{font-size:14px;line-height:20px;margin:0}.playground-card-link{align-items:center;color:#4d4d4d;display:inline-flex;font-size:14px;font-style:italic;gap:4px;line-height:20px;text-decoration:none;transition:color .16s ease,gap .16s ease}.playground-card-interactive:focus-within .playground-card-link,.playground-card-interactive:hover .playground-card-link{color:#000000;gap:8px}.inktober-page{margin:56px auto 164px;max-width:1040px}.inktober-intro{margin:0 auto 56px;max-width:640px}.inktober-intro h1{font-size:clamp(2rem,3vw,2.5rem);font-weight:400;line-height:1.2;margin:0 0 16px}.inktober-intro p{font-size:14px;line-height:20px;margin:0}.inktober-grid{-moz-column-count:3;column-count:3;-moz-column-gap:24px;column-gap:24px}.inktober-card{display:flex;flex-direction:column;gap:12px;-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:24px;page-break-inside:avoid}.inktober-card-image-button{background:transparent;border:0;cursor:zoom-in;display:block;padding:0;text-align:left;width:100%}.inktober-card-title{color:#000000;font-size:16px;font-weight:700;line-height:1.375;margin:0}.inktober-card-number{font-weight:400}.inktober-card-image-wrap{border-radius:8px;overflow:hidden}.inktober-card-image{display:block;height:auto;width:100%}.animation-page{margin:56px auto 164px;max-width:1040px}.animation-intro{margin:0 auto 56px;max-width:640px}.animation-intro h1{font-size:clamp(2rem,3vw,2.5rem);font-weight:400;line-height:1.2;margin:0 0 16px}.animation-intro p{font-size:14px;line-height:20px;margin:0}.animation-grid{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.animation-card{display:flex;flex-direction:column;gap:12px}.animation-video-wrap{background:#000000;border-radius:16px;overflow:hidden}.animation-video{aspect-ratio:16/9;display:block;-o-object-fit:cover;object-fit:cover;width:100%}.animation-card-copy h2{font-size:16px;font-weight:700;line-height:1.375;margin:0 0 4px}.animation-card-copy p{font-size:14px;line-height:20px;margin:0}.detail-page,.ibm-page{margin:56px auto 164px;max-width:1040px}.ibm-hero-logo-wrap{min-height:208px}.detail-hero-logo-wrap,.ibm-hero-logo-wrap{align-items:center;background:#000000;border-radius:8px;display:flex;justify-content:center;margin:0 auto 56px;padding:24px}.detail-hero-logo-wrap{height:300px}.liquid-hero-logo-wrap{align-items:center;background:#5533ff;border-radius:8px;display:flex;height:208px;justify-content:center;margin:0 auto 56px;padding:24px}.liquid-hero-logo{display:block;height:auto;max-height:85px;max-width:min(355px,100%);-o-object-fit:contain;object-fit:contain;width:auto}.ibm-hero-logo{max-width:355px;width:100%}.detail-hero-logo{height:auto;-o-object-fit:contain;object-fit:contain;width:100%}.detail-hero-logo-freelance{aspect-ratio:283/400;max-height:242px;max-width:171px;width:auto}.detail-intro,.ibm-intro{margin:0 auto 72px;max-width:508px}.detail-intro h1,.ibm-intro h1{font-size:24px;font-weight:400;line-height:1.3;margin:0 0 40px}.detail-summary,.ibm-summary{display:grid;gap:16px}.detail-summary p,.ibm-summary p{font-size:14px;line-height:20px;margin:0}.ibm-projects-grid{-moz-column-gap:24px;column-gap:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:56px}.ibm-project-card{min-width:0}.ibm-project-image-button{background:transparent;border:0;cursor:zoom-in;display:block;padding:0;width:100%}.ibm-project-image-wrap{border-radius:8px;margin-bottom:12px;overflow:hidden}.ibm-project-image{aspect-ratio:508/286;-o-object-fit:cover;object-fit:cover;width:100%}.ibm-project-copy h2{font-size:16px;font-weight:700;line-height:1.375;margin:0 0 4px}.ibm-project-copy p{font-size:14px;line-height:20px;margin:0}.image-lightbox{align-items:center;background:rgba(0,0,0,.72);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:50}.image-lightbox-dialog{max-width:1080px;position:relative;width:100%}.image-lightbox-arrow{align-items:center;background:rgba(255,255,255,.92);border:0;border-radius:999px;cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:40px}.image-lightbox-arrow-left{left:12px}.image-lightbox-arrow-right{right:12px}.image-lightbox-close{background:rgba(255,255,255,.92);border:0;border-radius:999px;cursor:pointer;font-size:12px;padding:10px 14px;position:absolute;right:12px;top:12px}.image-lightbox-image{border-radius:12px;max-height:80vh;-o-object-fit:contain;object-fit:contain;width:100%}.image-lightbox-caption{color:#ffffff;font-size:14px;line-height:20px;margin:0}.image-lightbox-meta{align-items:center;display:flex;justify-content:space-between;margin-top:12px}.image-lightbox-count{color:rgba(255,255,255,.72);font-size:12px;line-height:1.4;margin:0}.portfolio-footer{align-items:center;display:flex;flex-wrap:wrap;font-size:12px;gap:16px;justify-content:center;line-height:1.25;margin:0 auto;max-width:1040px}@media (max-width:1200px){.hero-copy{left:28px;top:170px}}@media (max-width:960px){.portfolio-shell{padding-inline:20px}.portfolio-nav{align-items:flex-start;flex-direction:column;gap:18px}.hero-copy{left:24px;max-width:390px;top:24px}.hero-drawing-tools{right:16px;top:16px}.roles-section{gap:40px 24px;grid-template-columns:repeat(2,minmax(0,1fr))}.playground-section,.roles-section{margin-bottom:96px}.playground-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inktober-grid{-moz-column-count:2;column-count:2}.animation-grid,.ibm-projects-grid{grid-template-columns:1fr}}@media (max-width:640px){.portfolio-shell{padding-top:24px}.portfolio-nav-list{flex-wrap:wrap;gap:14px 18px}.hero-section{display:flex;flex-direction:column-reverse;gap:18px}.hero-drawing-tools{justify-content:flex-end;position:static}.hero-copy{left:auto;max-width:none;position:static;top:auto}.hero-copy h1{font-size:2.25rem}.roles-section{grid-template-columns:1fr;margin-top:48px}.playground-intro{margin-bottom:32px}.playground-intro h2{font-size:2.25rem}.playground-grid{grid-template-columns:1fr}.playground-card{max-width:none}.inktober-page{margin-top:32px;margin-bottom:96px}.inktober-grid{-moz-column-count:1;column-count:1}.animation-page,.detail-page,.ibm-page{margin-top:32px;margin-bottom:96px}.ibm-hero-logo-wrap{margin-bottom:32px;min-height:160px}.detail-hero-logo-wrap{margin-bottom:32px;height:220px}.liquid-hero-logo-wrap{height:160px;margin-bottom:32px}.detail-intro,.ibm-intro{margin-bottom:48px}.detail-intro h1,.ibm-intro h1{margin-bottom:24px}.role-description,.role-link{margin-left:0}.role-heading{margin-bottom:18px}.portfolio-footer{gap:10px;justify-content:flex-start}}