:root{--color-bg: #f5e6a0;--color-text: #1a1614;--color-subtext: #6b5f2c;--color-line: #c3b270;--color-frame: #3b2a20;--noise-opacity: .45;--radius-card: 18px;--card-bg: rgba(255, 252, 235, .45);--card-border: rgba(195, 178, 112, .55);--card-glow: rgba(255, 255, 255, .6);--card-shadow: 0 1px 2px rgba(59, 42, 32, .06), 0 10px 26px -14px rgba(59, 42, 32, .28);--card-shadow-hover: 0 2px 4px rgba(59, 42, 32, .08), 0 22px 40px -16px rgba(59, 42, 32, .38);--font: "DM Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--measure: 62rem;--font-display: "Pixelify Sans", "DM Mono", ui-monospace, monospace;--fs-label: .6875rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-base: .9375rem;--fs-md: 1.1875rem;--fs-lg: 1.5rem;--fs-h1: clamp(1.375rem, -.625rem + 10vw, 3.25rem);--lh-display: 1.15;--lh-heading: 1.35;--lh-snug: 1.5;--lh-small: 1.7;--lh-body: 1.75;--measure-text: 62ch;--space-unit: 8px;--frame-width: 2px;--portrait-size: 19rem;--gap-section: clamp(3.5rem, 8vw, 5rem);--gap-rule: clamp(2rem, 4vw, 2.75rem);--id-color: #f2c9a0;--id-star: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22'><text x='11' y='16' font-size='11' text-anchor='middle' fill='%233b2a20' opacity='.55'>★</text></svg>");--id-panel-bg: rgba(255, 252, 240, .85);--id-panel-border: rgba(59, 42, 32, .18)}:root[data-mode=dark]{--color-bg: #1a1614;--color-text: #f5e6a0;--color-subtext: #c3b270;--color-line: #c3b270;--color-frame: #f5e6a0;--noise-opacity: .32;--card-bg: rgba(245, 230, 160, .045);--card-border: rgba(195, 178, 112, .28);--card-glow: rgba(245, 230, 160, .1);--card-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 28px -14px rgba(0, 0, 0, .6);--card-shadow-hover: 0 2px 4px rgba(0, 0, 0, .35), 0 24px 44px -16px rgba(0, 0, 0, .75);--id-star: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22'><text x='11' y='16' font-size='11' text-anchor='middle' fill='%23f5e6a0' opacity='.6'>★</text></svg>");--id-panel-bg: rgba(26, 22, 20, .82);--id-panel-border: rgba(245, 230, 160, .18)}*,*:before,*:after{box-sizing:border-box}:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-behavior:smooth;scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;background:var(--color-bg);color:var(--color-text);font:400 var(--fs-base)/var(--lh-body) var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:500;text-wrap:balance}p{margin:0 0 1rem;text-wrap:pretty}p:last-child{margin-bottom:0}main p{max-width:var(--measure-text)}@media (prefers-reduced-motion: no-preference){*{transition:background-color .35s ease,color .35s ease,border-color .35s ease,text-decoration-color .35s ease}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:overlay;opacity:var(--noise-opacity)}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--color-text);outline-offset:3px}:where(a):focus-visible{text-decoration-color:currentColor}#pixel-field{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;display:block}#loader{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;background:var(--color-bg);padding:env(safe-area-inset-top,0px) 1rem env(safe-area-inset-bottom,0px);transition:opacity .5s ease .35s}html[data-loader] #loader{display:flex}html[data-loader=on]{overflow:hidden}#loader.leaving{opacity:0;pointer-events:none}.loader-label{font-size:var(--fs-xs);color:var(--color-subtext)}.loader-pct{font:500 clamp(2.5rem,1.5rem + 6vw,4.5rem)/1 var(--font-display);font-variant-numeric:tabular-nums}.loader-bar{display:flex;gap:clamp(3px,.8vw,4px)}.loader-bar i{display:block;width:clamp(8px,2.6vw,14px);height:clamp(8px,2.6vw,14px);background:var(--color-line);opacity:.3}.loader-bar i.on{background:var(--color-text);opacity:1}#loader.leaving .loader-bar i{transform:translate(var(--dx),var(--dy));opacity:0;transition:transform .8s steps(6,end) var(--dl),opacity .8s steps(6,end) var(--dl)}#loader.leaving .loader-label,#loader.leaving .loader-pct{opacity:0;transition:opacity .3s ease}#about h1,.sec-title,.project-card h3,#company h3,.big{font-family:var(--font-display);font-weight:500;letter-spacing:0}#about h1,.sec-title{line-height:1.1}#site-header{position:sticky;top:0;z-index:50;width:100%;display:flex;align-items:center;gap:1.5rem;padding:1rem max((100% - var(--measure)) / 2,1.5rem);background:color-mix(in srgb,var(--color-bg) 78%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.scroll-bar{position:absolute;left:0;right:0;bottom:0;height:3px;overflow:hidden;background:repeating-linear-gradient(to right,var(--color-line) 0 5px,transparent 5px 8px);opacity:.5}.scroll-bar__fill{position:absolute;inset:0 auto 0 0;width:0%;background:repeating-linear-gradient(to right,var(--color-text) 0 5px,transparent 5px 8px)}@media (prefers-reduced-motion: no-preference){.scroll-bar__fill{transition:width .08s linear}}#site-header nav{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;font-size:var(--fs-xs);margin-left:auto}.brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;font-weight:500}.brand-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--color-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-line) 35%,transparent)}#site-footer,main>section{width:min(100% - 3rem,var(--measure));margin-inline:auto}main>section{padding-bottom:var(--gap-section);scroll-margin-top:4rem}main>section:not(#about){display:block}.sec-head{margin-bottom:2.25rem}.sec-title{margin:0;font-size:clamp(1.5rem,1rem + 2.4vw,2.25rem);font-weight:500;line-height:var(--lh-display);letter-spacing:-.02em}.rule{height:1px;margin-bottom:var(--gap-rule);background:var(--color-line);transform:scaleX(0);transform-origin:left}.rule.in-view{transform:scaleX(1)}@media (prefers-reduced-motion: no-preference){.rule{transition:transform 1s cubic-bezier(.2,.7,.2,1),background-color .35s ease}}@media (prefers-reduced-motion: reduce){.rule{transform:none}}#site-footer{padding:2.5rem 0 4rem;font-size:var(--fs-xs);color:var(--color-subtext);border-top:1px solid var(--color-line)}.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2rem}.foot-grid>div{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.foot-grid h3{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.14em;margin-bottom:.3rem}.foot-brand{color:var(--color-text);font-size:var(--fs-base);margin:0}.foot-legal{margin:2.5rem 0 0}@media (max-width: 640px){#site-header{padding-block:.8rem;gap:.75rem}.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1 / -1}}#site-header nav a[aria-current]{color:var(--color-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:currentColor;text-underline-offset:.45em}@media (max-width: 900px){#site-header nav a[aria-current]{text-decoration:none}#site-header nav a[aria-current]:before{content:"";display:inline-block;width:6px;height:6px;margin-right:.7rem;background:currentColor;vertical-align:middle}}.section-label{display:none}@media (max-width: 900px){.section-label{display:block;font-family:var(--font-display);font-size:var(--fs-base);color:var(--color-text);white-space:nowrap}}@media (max-width: 900px){.brand{display:none}#sound-toggle{margin-left:auto}#site-header nav{display:flex;visibility:hidden;opacity:0;pointer-events:none;clip-path:inset(0 0 100% 0);position:absolute;top:100%;left:0;right:0;flex-direction:column;flex-wrap:nowrap;gap:0;margin:0;padding:.4rem max((100% - var(--measure)) / 2,1.5rem) 1rem;font-size:var(--fs-sm);background:var(--color-bg);border-bottom:1px solid var(--color-line)}#site-header.menu-open nav{visibility:visible;opacity:1;pointer-events:auto;clip-path:inset(0)}@media (prefers-reduced-motion: no-preference){#site-header nav{transition:clip-path .16s cubic-bezier(.4,0,1,1),opacity .14s ease-in,visibility 0s linear .16s}#site-header.menu-open nav{transition:clip-path .22s cubic-bezier(.2,.7,.2,1),opacity .16s ease-out,visibility 0s}}#site-header nav a{padding:.85rem 0;border-bottom:1px dashed var(--color-line)}#site-header nav a:last-child{border-bottom:0}}.entry h3{font-size:var(--fs-md);line-height:var(--lh-heading)}.entry h3+p{margin-top:.4rem}.entry p{color:var(--color-subtext);margin:.5rem 0 1.25rem}.entry .links{margin:1.25rem 0 0;color:var(--color-text)}.entry .role-line{font-size:var(--fs-xs);line-height:var(--lh-small);margin:-.5rem 0 1.25rem}.rows{margin:0}.row{display:grid;grid-template-columns:8.5rem 1fr;gap:1.5rem;padding-bottom:1.5rem}.row:last-child{padding-bottom:0}.row dt{color:var(--color-subtext)}.row dd{margin:0}.sub{color:var(--color-subtext);font-size:var(--fs-sm);line-height:var(--lh-small)}@media (max-width: 640px){.row{grid-template-columns:1fr;gap:.25rem}}.rows.has-year .row{grid-template-columns:4.5rem 1fr}.rows.has-year dd p{margin:0 0 .75rem}.rows.has-year dd .h-title{margin-bottom:.25rem}.rows.has-year dd .sub{margin-top:.5rem}.rows.has-year dd .links{margin-top:1rem;margin-bottom:0}@media (max-width: 640px){.rows.has-year .row{grid-template-columns:1fr}}.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:0;padding:0}.chip{border:1px solid var(--color-line);border-radius:4px;padding:.15rem .7rem;font-size:var(--fs-xs);line-height:1.6}.img{display:block;width:100%;object-fit:cover;border-radius:4px;border:var(--frame-width) solid var(--color-frame)}.ph{display:grid;place-items:center;border:var(--frame-width) dashed var(--color-frame);color:var(--color-subtext);font-size:var(--fs-xs)}.portrait{aspect-ratio:1 / 1;width:min(100%,var(--portrait-size))}.wide{aspect-ratio:16 / 9;max-width:22rem;margin-top:1.25rem}img.portrait{object-position:50% 40%}.square{aspect-ratio:1 / 1}.gallery{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:1.5rem}@media (min-width: 641px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery:has(>:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.gallery-dots.carousel__dots{display:none}}@media (max-width: 640px){.gallery{display:flex;gap:1rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:2px}.gallery::-webkit-scrollbar{display:none}.gallery>*{flex:0 0 84%;scroll-snap-align:start}.gallery>:only-child{flex-basis:100%}.gallery-dots.carousel__dots{justify-content:center;margin-top:1rem}}.company-photo{max-width:22rem;margin-top:2rem}.portrait-wrap{position:relative;width:min(100%,var(--portrait-size));aspect-ratio:1 / 1}.portrait-wrap .portrait{position:relative;width:100%;height:100%}.portrait-wrap .skeleton,.portrait-wrap .scan{display:none}.portrait-wrap.is-loading .skeleton,.portrait-wrap.is-loading .scan{display:block}.portrait-wrap.is-loading .portrait{clip-path:inset(0 0 100% 0)}.skeleton{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--color-subtext);border:var(--frame-width) dashed var(--color-subtext);border-radius:4px}.skeleton svg{display:block;width:100%;height:100%}.skeleton path,.skeleton ellipse{fill:none;stroke:currentColor;stroke-width:.35;stroke-dasharray:1;stroke-dashoffset:1}.skeleton .grid{opacity:.35}.scan{position:absolute;left:0;right:0;top:0;height:2px;opacity:0;background:var(--color-line);box-shadow:0 0 14px 3px var(--color-line)}.scan:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:3.5rem;background:linear-gradient(to top,color-mix(in srgb,var(--color-line) 45%,transparent),transparent)}@media (prefers-reduced-motion: no-preference){.skeleton path,.skeleton ellipse{animation:draw .8s ease var(--d, 0s) forwards}.portrait-wrap.scanning .portrait{animation:reveal 1.6s cubic-bezier(.65,0,.35,1) forwards}.portrait-wrap.scanning .scan{opacity:1;animation:sweep 1.6s cubic-bezier(.65,0,.35,1) forwards}}@media (prefers-reduced-motion: reduce){.portrait-wrap .skeleton,.portrait-wrap .scan{display:none}.portrait-wrap.is-loading .portrait{clip-path:none}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes reveal{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}@keyframes sweep{0%{top:0}to{top:calc(100% - 2px)}}.pixel-canvas{position:absolute;inset:var(--frame-width);width:calc(100% - 2 * var(--frame-width));height:calc(100% - 2 * var(--frame-width));image-rendering:pixelated;z-index:2}.portrait-wrap.is-loading.pixelating .skeleton{display:none}@media (prefers-reduced-motion: no-preference){.reveal:not(.is-visible){opacity:0;translate:0 14px}.reveal.is-visible{animation:reveal-in .9s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:var(--reveal-delay, 0s)}}@keyframes reveal-in{0%{opacity:0;translate:0 14px}}.pixel-text{cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.pxw{display:inline-block;white-space:nowrap}.px{display:inline-block}@media (prefers-reduced-motion: no-preference){.pixel-pop .px{animation:px-scatter .45s steps(1,end) var(--dl, 0s) both}}@keyframes px-scatter{0%{translate:0 0;color:inherit}15%{translate:var(--dx) var(--dy);color:var(--color-line);opacity:.5}35%{translate:calc(var(--dx) * -.6) calc(var(--dy) * .5);color:var(--color-line);opacity:1}55%{translate:calc(var(--dx) * .3) calc(var(--dy) * -.4);color:inherit;opacity:.6}75%{translate:calc(var(--dx) * -.15) 0;opacity:1}to{translate:0 0;color:inherit;opacity:1}}.theme-fading *{transition:none!important}::view-transition-old(root),::view-transition-new(root){animation-duration:.6s;animation-timing-function:ease-in-out}.id-card{width:min(100%,31rem);text-align:left;container-type:inline-size;perspective:1400px;position:relative}.id-frame{font-size:min(1rem,3.2258cqw);--fs-label: .6875em;--fs-xs: .8125em;--fs-base: .9375em;--fs-md: 1.1875em;padding:.625em;background-color:var(--id-color);background-image:var(--id-star);background-repeat:repeat;background-size:1.375em;border-radius:1.25em;box-shadow:var(--card-shadow);cursor:pointer;-webkit-user-select:none;user-select:none}.id-frame:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}@media (hover: hover){.id-frame:hover{box-shadow:var(--card-shadow-hover)}}.id-frame:active{box-shadow:var(--card-shadow)}@media (prefers-reduced-motion: no-preference){.id-frame{transition:box-shadow .3s ease,background-color .3s ease}}.id-panel{padding:1.3em 1.4em 1.45em;background:var(--id-panel-bg);border:1px solid var(--id-panel-border);border-radius:.625em}.id-head{display:flex;justify-content:space-between;align-items:baseline;gap:1em;padding-bottom:.65em;margin-bottom:.9em;border-bottom:1px dashed var(--id-panel-border)}.id-kicker{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.14em;color:var(--color-subtext)}.id-no{font-size:var(--fs-xs);color:var(--color-subtext);white-space:nowrap}.id-body{display:flex;gap:1.5em;align-items:center}.id-photo{margin:0;flex-shrink:0;width:8em}.id-photo .portrait-wrap{width:8em}.id-photo figcaption{margin-top:.5em;font-size:.625em;text-align:center;text-transform:uppercase;letter-spacing:.06em;color:var(--color-subtext);line-height:1.4}.id-fields{margin:0;flex:1;min-width:0}.id-field{padding-bottom:.6em}.id-field:last-child{padding-bottom:0}.id-field dt{font-size:.625em;text-transform:uppercase;letter-spacing:.1em;color:var(--color-subtext)}.id-field dd{margin:.2em 0 0;font-size:var(--fs-base);border-bottom:1px dotted var(--id-panel-border);padding-bottom:.3em;min-height:1.4em}.id-field dd#name{font-size:var(--fs-md)}.id-inner{display:grid;transform-style:preserve-3d}.id-inner>.id-face{grid-area:1 / 1;display:flex;position:relative;backface-visibility:hidden;-webkit-backface-visibility:hidden}.id-face>.id-frame{flex:1;display:flex}.id-face>.id-frame>.id-panel{flex:1;display:flex;flex-direction:column}.id-face.back{transform:rotateY(180deg);cursor:default;-webkit-user-select:text;user-select:text}.id-card.flipped .id-inner{transform:rotateY(180deg)}@media (prefers-reduced-motion: no-preference){.id-inner{transition:transform .8s cubic-bezier(.45,.05,.2,1);will-change:transform}}.front .id-body,.back .id-fields{flex:1}.back .id-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6em 1.2em;align-content:start}.back .id-field{padding-bottom:0;min-width:0}.back .id-field:first-child{grid-column:1 / -1}.back .id-field dd{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.id-actions{display:flex;flex-wrap:wrap;gap:.9em;padding-top:1em}.id-card .btn{padding:.45em .9em;font-size:var(--fs-xs);background:none;color:var(--color-text);cursor:pointer;font-family:inherit}.id-color-btn{position:absolute;z-index:3;top:-.35rem;right:-.35rem;padding:0;cursor:pointer;width:clamp(1.1rem,5cqw,1.6rem);height:clamp(1.1rem,5cqw,1.6rem);border-radius:50%;background:var(--id-color);border:2px solid var(--color-text);box-shadow:var(--card-shadow)}.id-color-btn:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}@media (hover: hover){.id-color-btn:hover{scale:1.12}}@media (prefers-reduced-motion: no-preference){.id-color-btn{transition:scale .15s steps(2),background-color .2s ease}}.back .id-color-btn{right:auto;left:-.35rem}.status-badge{display:inline-flex;align-items:center;gap:.45em;padding:.2em .1em;font-size:1em}.status-dot{width:.55em;height:.55em;border-radius:50%;flex-shrink:0;background:#3fae62;box-shadow:0 0 0 .2em #3fae6238}@media (prefers-reduced-motion: no-preference){.status-dot{animation:status-pulse 2.2s ease-in-out infinite}}@keyframes status-pulse{0%,to{box-shadow:0 0 0 .2em #3fae6238}50%{box-shadow:0 0 0 .38em #3fae621a}}@media (prefers-reduced-motion: no-preference){.id-card{animation:id-float 4.5s ease-in-out infinite}}@keyframes id-float{0%,to{translate:0 0}50%{translate:0 -.9rem}}a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-line);text-decoration-thickness:1px;text-underline-offset:.25em}a:hover{text-decoration-color:currentColor}#site-header nav a{text-decoration:none;color:var(--color-subtext)}#site-header nav a:hover{color:var(--color-text)}.toggle{font:inherit;font-size:var(--fs-xs);color:var(--color-text);background:none;border:1px solid var(--color-line);border-radius:4px;padding:.25rem .8rem;cursor:pointer;flex-shrink:0;white-space:nowrap}.toggle:hover{border-color:var(--color-text)}.brand,.btn{text-decoration:none}.btn{font-size:var(--fs-xs);padding:.55rem 1.1rem;border:1px solid var(--color-line);border-radius:4px}.btn:hover{border-color:var(--color-text)}.btn-solid{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.btn,.toggle,.chip{--pb: var(--color-line);border:0;border-radius:0;margin:2px;box-shadow:0 -2px 0 0 var(--pb),0 2px 0 0 var(--pb),-2px 0 0 0 var(--pb),2px 0 0 0 var(--pb)}.btn:hover,.toggle:hover{--pb: var(--color-text);border:0}.btn-solid{--pb: var(--color-text)}@media (prefers-reduced-motion: no-preference){.btn,.toggle{transition:translate .15s steps(2),box-shadow .15s steps(2)}.btn:hover,.toggle:hover{translate:-2px -2px;box-shadow:0 -2px 0 0 var(--pb),0 2px 0 0 var(--pb),-2px 0 0 0 var(--pb),2px 0 0 0 var(--pb),4px 4px 0 0 var(--color-line)}.btn:active,.toggle:active{translate:0 0}}#sound-toggle,#theme-toggle{display:inline-flex;align-items:center;justify-content:center;padding:.32rem .75rem}#sound-toggle svg,#theme-toggle svg{display:block;width:20px;height:20px}#menu-toggle{display:none;align-items:center;justify-content:center;padding:.32rem .75rem}#menu-toggle svg{display:block;width:20px;height:20px}@media (max-width: 900px){#menu-toggle{display:inline-flex}}.to-top{position:fixed;z-index:45;display:inline-flex;align-items:center;justify-content:center;padding:.32rem .6rem;right:max(1.25rem,env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 1.25rem);background:var(--color-bg);opacity:0;visibility:hidden;pointer-events:none}.to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto}.to-top svg{display:block;width:20px;height:20px}@media (prefers-reduced-motion: no-preference){.to-top{transition:opacity .2s steps(3),visibility .2s,translate .15s steps(2),box-shadow .15s steps(2)}}.zoomable{position:relative}.zoomable.is-company{max-width:22rem;margin-top:2rem}.zoomable>img{margin:0;max-width:none}.zoomable:after{content:"";position:absolute;pointer-events:none;left:var(--frame-width);right:var(--frame-width);bottom:var(--frame-width);height:45%;background:linear-gradient(to top,#0a0705c7,#0a070500);border-radius:0 0 2px 2px}.zoom-btn{position:absolute;z-index:2;right:.7rem;bottom:.7rem;width:2.1rem;height:2.1rem;padding:0;display:grid;place-items:center;border-radius:50%;cursor:pointer;color:#fff;border:1px solid rgba(255,255,255,.75);background:#ffffff24}.zoom-btn svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:square}.zoom-btn:hover{background:#ffffff47}.zoom-btn:focus-visible,.zoom-close:focus-visible{outline:2px solid #fff;outline-offset:3px}.zoom-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#06040300;cursor:zoom-out}.zoom-layer.open{background:#060403d1}.zoom-fly{position:fixed;margin:0;max-width:none;object-fit:cover;border-color:#ffffffd9;box-shadow:0 30px 80px -10px #000000a6}.zoom-close{position:absolute;top:max(1rem,env(safe-area-inset-top,0px));right:1rem;padding:.45rem .9rem;margin:2px;font:inherit;font-size:var(--fs-xs);color:#fff;background:none;border:0;cursor:pointer;box-shadow:0 -2px #fff,0 2px #fff,-2px 0 #fff,2px 0 #fff}@media (prefers-reduced-motion: no-preference){.zoom-btn{transition:background-color .2s ease}.zoom-btn svg{transition:translate .2s steps(2)}.zoom-btn:hover svg{translate:2px 0}.zoom-layer{transition:background-color .4s ease}.zoom-fly{transition:left .45s cubic-bezier(.2,.7,.2,1),top .45s cubic-bezier(.2,.7,.2,1),width .45s cubic-bezier(.2,.7,.2,1),height .45s cubic-bezier(.2,.7,.2,1)}}.id-photo .portrait-wrap{cursor:zoom-in}.id-photo .portrait-wrap.is-loading{cursor:default}.id-photo .portrait-wrap:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}.clicker{--pb: var(--color-line);position:absolute;z-index:40;top:calc(env(safe-area-inset-top,0px) + 4.75rem);right:max(1.25rem,env(safe-area-inset-right,0px));display:inline-flex;align-items:center;gap:.6rem;font:inherit;font-size:var(--fs-xs);color:var(--color-text);background:var(--color-bg);border:0;border-radius:0;margin:2px;padding:.35rem .8rem;cursor:pointer;box-shadow:0 -2px 0 0 var(--pb),0 2px 0 0 var(--pb),-2px 0 0 0 var(--pb),2px 0 0 0 var(--pb)}.clicker:hover{--pb: var(--color-text)}.clicker:focus-visible{outline:2px solid var(--color-text);outline-offset:4px}.clicker__count{color:var(--color-subtext);font-variant-numeric:tabular-nums}.clicker__count:before{content:"· "}.clicker__plus{position:absolute;right:.6rem;top:-.4rem;pointer-events:none;font-family:var(--font-display);font-size:var(--fs-sm);color:var(--color-text);opacity:0}@media (prefers-reduced-motion: no-preference){.clicker{transition:translate .15s steps(2),box-shadow .15s steps(2)}.clicker:hover{translate:-2px -2px;box-shadow:0 -2px 0 0 var(--pb),0 2px 0 0 var(--pb),-2px 0 0 0 var(--pb),2px 0 0 0 var(--pb),4px 4px 0 0 var(--color-line)}.clicker:active{translate:2px 2px;box-shadow:0 -2px 0 0 var(--pb),0 2px 0 0 var(--pb),-2px 0 0 0 var(--pb),2px 0 0 0 var(--pb)}.clicker__plus{animation:clicker-plus .8s steps(6) forwards}}@keyframes clicker-plus{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1.6rem)}}@media (prefers-reduced-motion: reduce){.clicker__plus{opacity:1}}@media (max-width: 640px){#about .eyebrow{padding-right:9rem}}.mascot{--mc-c: #f5e6a0;--mc-g: #c3b270;--mc-o: #D97757;--mc-w: #fff8dc;--mc-eye: #1a1614;--mc-hand: #f6b93b;--mc-hand-sh: #8a5a10;--mc-lf: #c3b270;--mc-lb: #9c8f50;--mc-lk: #5e5426;--mc-k1: #D97757;--mc-k2: #f5e6a0;--mc-k3: #f6b93b;--mc-kw: #D97757;--mc-st: #f6b93b;--mc-shadow: rgba(0, 0, 0, .35);position:relative;display:block;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}:root[data-theme=pixel][data-mode=light] .mascot{--mc-c: #3b2a20;--mc-g: #5a4636;--mc-lf: #3b2a20;--mc-lb: #5a4636;--mc-lk: #2a1d16;--mc-k2: #fff8dc;--mc-kw: #b5532f;--mc-st: #8a5a10;--mc-shadow: rgba(59, 42, 32, .22)}:root[data-theme=minimal] .mascot{--mc-c: var(--color-accent);--mc-g: color-mix(in srgb, var(--color-accent) 70%, #000);--mc-o: color-mix(in srgb, var(--color-accent) 38%, #fff);--mc-w: #fff;--mc-eye: #111;--mc-hand: var(--color-text);--mc-hand-sh: var(--color-line);--mc-lf: var(--color-text);--mc-lb: color-mix(in srgb, var(--color-text) 78%, var(--color-bg));--mc-lk: color-mix(in srgb, var(--color-text) 50%, var(--color-bg));--mc-k1: var(--color-accent);--mc-k2: var(--color-bg);--mc-k3: color-mix(in srgb, var(--color-accent) 45%, #fff);--mc-kw: var(--color-accent);--mc-st: color-mix(in srgb, var(--color-accent) 60%, var(--color-text));--mc-shadow: color-mix(in srgb, var(--color-text) 14%, transparent)}.mc-svg{display:block;width:100%;height:auto;overflow:visible}.mc-svg *{pointer-events:none}.m-c{fill:var(--mc-c);stroke:var(--mc-c)}.m-g{fill:var(--mc-g);stroke:var(--mc-g)}.m-o{fill:var(--mc-o);stroke:var(--mc-o)}.m-w{fill:var(--mc-w);stroke:var(--mc-w)}.m-d{fill:var(--mc-eye);stroke:var(--mc-eye)}.mc-svg :is(.m-c,.m-g,.m-o,.m-w,.m-d,.mc-lf,.mc-lb){stroke-width:.04}.mc-eye{fill:var(--mc-eye)}.mc-shd{fill:var(--mc-shadow)}.mc-ground{fill:var(--color-line);opacity:.7}.mc-lf{fill:var(--mc-lf);stroke:var(--mc-lf)}.mc-lb{fill:var(--mc-lb);stroke:var(--mc-lb)}.mc-lk{fill:var(--mc-lk)}.mc-sc{fill:var(--mc-k2)}.mc-h{fill:var(--mc-hand)}.mc-hs{fill:var(--mc-hand-sh)}.mascot[role=button]{cursor:pointer;border-radius:6px}.mascot[role=button]:focus-visible{outline:2px solid var(--color-accent, var(--color-text));outline-offset:4px}.mascot--idle{width:144px;flex:0 0 auto}@media (max-width: 860px){.mascot--idle{width:112px}}.mascot--cheer{width:112px;flex:0 0 auto}@media (max-width: 420px){.mascot--cheer{width:96px}}.mascot--loader{width:min(15rem,62vw);margin-bottom:.5rem}.mascot--coder{container-type:inline-size;width:min(100%,34rem);margin:1.5rem auto 2.5rem}.mc-scene{position:relative}.mascot--coder .mc-scene{padding-top:calc(100cqw * 7.6 / 44)}.mc-panel{position:absolute;left:calc(100cqw * 17 / 44);bottom:calc(100cqw * 12.3 / 44);width:calc(100cqw * 27 / 44);box-sizing:border-box;background:var(--color-bg);color:var(--color-text);border:2px solid var(--color-line);font-family:var(--font);font-size:max(10px,calc(100cqw * 1.09 / 44));line-height:1.7;white-space:pre;overflow:hidden;transform-origin:0 100%;transform:scale(0);visibility:hidden}:root[data-theme=minimal] .mc-panel{border-width:1px;border-radius:10px}.mc-panel.is-flash{border-color:var(--color-text)}.mc-ph{display:flex;align-items:center;gap:.35em;padding:.2em .65em;border-bottom:inherit;color:var(--color-subtext);font-size:.92em}.mc-ph i{display:block;width:.5em;height:.5em}.mc-ph i:nth-child(1){background:var(--mc-k1)}.mc-ph i:nth-child(2){background:var(--mc-k3)}.mc-ph i:nth-child(3){background:var(--mc-k2);outline:1px solid var(--color-line);outline-offset:-1px}.mc-ph span{margin-left:.5em}.mc-pb{padding:.4em .85em .6em;min-height:3.5em}.mc-code .k,.mc-out .k{color:var(--mc-kw)}.mc-code .s{color:var(--mc-st)}.mc-cr{display:inline-block;width:.55em;height:1em;vertical-align:-.15em;background:currentColor;animation:mc-blink 1s steps(1) infinite}@keyframes mc-blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.mc-cr{animation:none}}.mascot--coder[data-compact] .mc-scene{padding-top:0}.mascot[data-compact] .mc-panel{position:static;width:100%;font-size:11px;margin-bottom:.75rem;transform-origin:50% 100%}.mascot--coder[data-compact] .mc-svg{width:62%;margin:0 auto}.mc-hp{transform-box:fill-box;transform-origin:50% 100%;transition:transform .55s cubic-bezier(.5,0,.75,0),opacity .25s ease .3s}.mc-hp{transform:translateY(-9px) rotate(-16deg);opacity:0}:root[data-theme=pixel][data-sound=on] .mc-hp{transform:none;opacity:1;transition:transform .6s cubic-bezier(.34,1.7,.64,1),opacity .12s ease}@media (prefers-reduced-motion: reduce){.mc-hp{transition:none}}.mc-hpb{fill:var(--mc-hand-sh)}.mc-hpc{fill:var(--mc-o)}.mascot-row{display:flex;align-items:flex-end;gap:1.1rem;margin-top:2.25rem}#about .role-cycle.say{position:relative;box-sizing:border-box;flex:0 1 15rem;min-width:0;min-height:4.2rem;max-width:15rem;margin:0 0 1.4rem;padding:.7rem .95rem;display:flex;align-items:center;overflow:visible;color:var(--color-text);background:var(--color-bg);border:2px solid var(--color-line)}.say:before{content:"";position:absolute;left:-.46rem;bottom:.85rem;width:.75rem;height:.75rem;background:inherit;border:inherit;border-width:0 0 2px 2px;transform:rotate(45deg)}:root[data-theme=minimal] #about .role-cycle.say{border-width:1px;border-radius:.9rem}:root[data-theme=minimal] .say:before{border-width:0 0 1px 1px;border-bottom-left-radius:2px}:root[data-loader] .mascot-row .mascot--idle{opacity:0}.place{display:grid;gap:.2rem}.place__study{color:var(--color-text)}.place__school{opacity:.8}.carousel{position:relative}.carousel__stage{perspective:1500px;perspective-origin:50% 35%;overflow:hidden;padding:2rem 0 2.75rem;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}.carousel__stage.is-dragging{cursor:grabbing}.carousel__stage:focus-visible{outline:2px solid var(--color-text);outline-offset:-2px}.carousel__track{display:grid;justify-items:center;transform-style:preserve-3d;pointer-events:none}.carousel__item.project-card{grid-area:1 / 1;width:min(26rem,78%);margin:4px;will-change:transform,opacity;pointer-events:auto;background-color:var(--color-bg);background-image:linear-gradient(var(--card-bg),var(--card-bg))}.carousel__item.project-card:last-child:nth-child(odd){grid-column:1}.carousel__item:not(.is-active){cursor:pointer}.carousel__item:not(.is-active) .project-link:after{cursor:pointer}.carousel__item img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.carousel__controls{display:flex;align-items:center;justify-content:center;gap:1.25rem}.carousel__btn{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .65rem}.carousel__btn svg{display:block;width:18px;height:18px}.carousel__btn:disabled{opacity:.35;cursor:default}.carousel__dots{display:flex;gap:.7rem}.carousel__dot{width:12px;height:12px;padding:0;cursor:pointer;background:transparent;border:0;box-shadow:inset 0 0 0 2px var(--color-line)}.carousel__dot[aria-current]{background:var(--color-text);box-shadow:inset 0 0 0 2px var(--color-text)}.carousel__dot:hover{box-shadow:inset 0 0 0 2px var(--color-text)}.carousel__dot:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (max-width: 640px){.carousel__item.project-card{width:min(22rem,76%)}.carousel__stage{perspective:1100px}}#look-toggle{display:inline-flex;align-items:center;justify-content:center;padding:.32rem .75rem}#look-toggle svg{display:block;width:20px;height:20px}:root:not([data-theme=minimal]) .i-thin{display:none!important}#about{padding-top:clamp(2.5rem,8vh,5rem);padding-bottom:var(--gap-section)}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:center}.eyebrow{margin:0 0 1.25rem;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.14em;color:var(--color-subtext)}#about h1{font-size:clamp(1.9rem,1rem + 4.2vw,3.25rem);line-height:var(--lh-display);letter-spacing:-.03em}#about .role-cycle{margin:1.25rem 0 0;font-size:var(--fs-sm);color:var(--color-subtext);max-width:30rem;min-height:1.4em;overflow:hidden}#about .role-cycle__item{display:inline-block}@media (prefers-reduced-motion: no-preference){#about .role-cycle__item--in{animation:role-in .45s cubic-bezier(.2,.7,.2,1)}}@keyframes role-in{0%{opacity:0;transform:translateY(.4em)}to{opacity:1;transform:none}}#about .place{margin:2rem 0 0;font-size:var(--fs-xs);line-height:var(--lh-small);color:var(--color-subtext);max-width:30rem}.hero .id-card{justify-self:end}.typing:after{content:"";display:inline-block;width:.5ch;height:.95em;margin-left:.15ch;vertical-align:-.1em;background:currentColor;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media (max-width: 860px){.hero{grid-template-columns:1fr;gap:2.5rem}.hero .id-card{justify-self:start}}.project-card{display:flex;flex-direction:column;align-items:stretch;color:inherit;cursor:pointer}.project-card .preview{aspect-ratio:16 / 10;width:100%;max-width:none;margin:0 0 1.25rem;border-radius:0;object-fit:cover}.preview-frame{display:contents}.project-link{text-decoration:none}.project-link:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;z-index:1}.project-card .project-title{display:block;margin:0 0 .6rem;font-size:var(--fs-md);line-height:var(--lh-heading);text-transform:none;letter-spacing:-.01em}.project-card .project-title:before{content:none}.project-card .project-summary{margin:0;font-size:var(--fs-sm);line-height:var(--lh-small);color:var(--color-subtext)}.project-card:has(.project-link:focus-visible){--pb: var(--color-text)}.project-link:focus-visible{outline:none}.project-hero{margin-bottom:2.5rem}.project-hero .img,.project-shots .img{width:100%;max-width:none}.project-hero .img.ph,.project-shots .img.ph{aspect-ratio:16 / 9}.project-hero img.shot{max-height:28rem;object-fit:cover}.post-body .project-shots{display:grid;gap:1.5rem}.post-body .project-shots figure{margin:0}.post-body ul.chips{padding-left:0}.post-body .chips li+li{margin-top:0}.project-links{display:flex;flex-wrap:wrap;gap:1rem}.project-links .btn{text-decoration:none}.story{display:grid;grid-template-columns:5.5rem 1fr;gap:.5rem 1rem;margin:1.1rem 0 0}.story dt{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.14em;color:var(--color-subtext);padding-top:.2rem}.story dd{margin:0;color:var(--color-subtext)}@media (max-width: 640px){.story{grid-template-columns:1fr;gap:.1rem}.story dd{margin-bottom:.6rem}}.project-card .project-kind{margin:0 0 .45rem;padding-inline:var(--pc-pad, 0);font-family:var(--font-mono);font-size:var(--fs-label, .75rem);letter-spacing:.12em;text-transform:uppercase;color:var(--color-subtext)}.project-card .project-tech{margin:auto 0 0;padding:1rem var(--pc-pad, 0) 0;display:flex;flex-wrap:wrap;gap:.4rem;list-style:none}.project-card .project-tech .chip{padding:.15rem .65rem;font-size:.7rem;letter-spacing:.06em;text-transform:none;pointer-events:none}.stack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem}.stack-card{--pb: var(--color-line);--ps: rgba(59, 42, 32, .16);position:relative;margin:4px;background:var(--card-bg);border:0;border-radius:0;padding:1.5rem;box-shadow:0 -4px 0 0 var(--pb),0 4px 0 0 var(--pb),-4px 0 0 0 var(--pb),4px 0 0 0 var(--pb),8px 8px 0 0 var(--ps)}:root[data-mode=dark] .stack-card{--ps: rgba(0, 0, 0, .45)}.stack-card:before,.stack-card:after{content:"";position:absolute;width:8px;height:8px;background:var(--pb);pointer-events:none}.stack-card:before{top:-4px;left:-4px}.stack-card:after{bottom:-4px;right:-4px}.stack-card:last-child:nth-child(odd){grid-column:1 / -1}.stack-card h3{display:flex;align-items:center;gap:.6rem;margin:0 0 1.1rem;font-family:var(--font-display);font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text)}.stack-card h3:before{content:"";width:8px;height:8px;flex-shrink:0;background:var(--color-text);box-shadow:8px 0 0 0 var(--color-line),0 8px 0 0 var(--color-line);margin-right:8px;margin-bottom:8px}@media (hover: hover) and (prefers-reduced-motion: no-preference){.stack-card{transition:translate .15s steps(2),box-shadow .15s steps(2)}.stack-card:hover{--pb: var(--color-text);translate:-3px -3px;box-shadow:0 -4px 0 0 var(--pb),0 4px 0 0 var(--pb),-4px 0 0 0 var(--pb),4px 0 0 0 var(--pb),11px 11px 0 0 var(--ps)}}@media (max-width: 640px){.stack-grid{grid-template-columns:1fr}.stack-card{padding:1.25rem}}.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem}.blog-card{display:flex;flex-direction:column;align-items:flex-start;color:inherit;cursor:pointer}.blog-link{text-decoration:none}.blog-link:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;z-index:1}.blog-share{position:absolute;top:.9rem;right:.9rem;z-index:2;padding:.3rem .5rem;display:inline-flex;align-items:center;justify-content:center}.blog-share svg{display:block;width:18px;height:18px}.blog-card:last-child:nth-child(odd){grid-column:auto}.blog-card .blog-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.1rem;margin:0 0 .75rem}.blog-card .blog-date{margin:0;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.14em;color:var(--color-subtext)}.blog-card .blog-read{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.14em;color:var(--color-subtext);font-variant-numeric:tabular-nums;white-space:nowrap}.blog-card .blog-read svg{display:block}.blog-card .blog-title{display:block;margin:0 0 .75rem;font-size:var(--fs-md);line-height:var(--lh-heading);text-transform:none;letter-spacing:-.01em;padding-right:2.75rem}.blog-card .blog-title:before{content:none}.blog-card .blog-summary{margin:0 0 1.5rem;font-size:var(--fs-sm);line-height:var(--lh-small);color:var(--color-subtext)}.blog-card .blog-more{margin-top:auto;font-size:var(--fs-xs);border-bottom:1px solid var(--color-line);white-space:nowrap}.blog-card .blog-more:after{content:"";display:inline-block;width:2px;height:2px;margin:0 8px 10px 1em;background:currentColor;box-shadow:2px 0 currentColor,4px 0 currentColor,2px 2px currentColor,4px 2px currentColor,0 4px currentColor,4px 4px currentColor,-2px 6px currentColor,4px 6px currentColor,-4px 8px currentColor}.blog-card:hover .blog-more{border-bottom-color:currentColor}@media (hover: hover) and (prefers-reduced-motion: no-preference){.blog-card .blog-more:after{transition:translate .2s steps(2)}.blog-card:hover .blog-more:after{translate:2px -2px}}.blog-card:has(.blog-link:focus-visible){--pb: var(--color-text)}.blog-link:focus-visible{outline:none}.blog-card:has(.blog-link:focus-visible) .blog-more{border-bottom-color:currentColor}@media (max-width: 640px){.blog-grid{grid-template-columns:1fr}}.blog-page main{width:min(100% - 3rem,44rem);margin-inline:auto;padding:3rem 0 var(--gap-section)}.blog-page main p{max-width:none}.header-back{margin-left:auto;font-size:var(--fs-xs);color:var(--color-subtext);text-decoration:none;white-space:nowrap}.header-back:hover{color:var(--color-text)}.post-back{display:inline-block;margin-bottom:1.75rem;font-size:var(--fs-xs);color:var(--color-subtext);text-decoration:none;border-bottom:1px solid var(--color-line)}.post-back:hover{color:var(--color-text);border-bottom-color:currentColor}.post-card{--pb: var(--color-line);--ps: rgba(59, 42, 32, .16);--post-pad: 1.5rem;position:relative;margin:4px;background:var(--card-bg);box-shadow:0 -4px 0 0 var(--pb),0 4px 0 0 var(--pb),-4px 0 0 0 var(--pb),4px 0 0 0 var(--pb),8px 8px 0 0 var(--ps)}:root[data-mode=dark] .post-card{--ps: rgba(0, 0, 0, .45)}.post-card:before,.post-card:after{content:"";position:absolute;width:8px;height:8px;background:var(--pb);pointer-events:none}.post-card:before{top:-4px;left:-4px}.post-card:after{bottom:-4px;right:-4px}@media (min-width: 641px){.post-card{--post-pad: 2.25rem}}.post-card .post-head{position:relative;overflow:hidden;padding:var(--post-pad);margin:0;border-bottom:2px dashed var(--color-line)}.post-card .post-head>*{position:relative;z-index:1}.post-card .post-body{position:relative;padding:var(--post-pad)}.post-card .post-body:before,.post-card .post-body:after{content:"";position:absolute;top:-12px;width:22px;height:22px;z-index:2;pointer-events:none;background:var(--color-bg);border:4px solid var(--color-line)}.post-card .post-body:before{left:-12px;clip-path:inset(0 0 0 50%)}.post-card .post-body:after{right:-12px;clip-path:inset(0 50% 0 0)}.post-head[data-no]:after{content:attr(data-no);position:absolute;top:-.16em;right:calc(var(--post-pad) * .45);z-index:0;pointer-events:none;font:700 clamp(4.25rem,22vw,9rem)/1 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--color-line);opacity:.8}.post-card .post-foot{margin:0;padding:1.25rem var(--post-pad);border-top:1px solid var(--color-line)}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem;margin:1.75rem 0 0;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.14em;color:var(--color-subtext);font-variant-numeric:tabular-nums}.post-read,.post-views{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.post-views[hidden]{display:none}.post-read svg,.post-views svg{display:block}.post-head h1{font-family:var(--font-display);font-size:clamp(1.75rem,1.1rem + 3vw,2.75rem);line-height:var(--lh-display);letter-spacing:-.02em}.post-summary{margin:1.25rem 0 0;color:var(--color-subtext)}.post-body{font-size:var(--fs-base);line-height:var(--lh-body)}.post-body>*+*{margin-top:1.25rem}.post-body p,.post-body ul,.post-body ol{margin-bottom:0}.post-body h2,.post-body h3{font-family:var(--font-display);line-height:var(--lh-heading);letter-spacing:-.01em;margin-top:2.5rem}.post-body h2{font-size:var(--fs-lg)}.post-body h3{font-size:var(--fs-md);margin-top:2rem}.post-body h2+*,.post-body h3+*{margin-top:.75rem}.post-body ul,.post-body ol{padding-left:1.4rem}.post-body li+li{margin-top:.4rem}.post-body a{text-decoration-color:currentColor}.post-body strong{font-weight:500}.post-body blockquote{margin-left:0;padding:.1rem 0 .1rem 1.25rem;border-left:2px solid var(--color-line);color:var(--color-subtext)}.post-body code{font-size:.92em;padding:.1em .4em;background:var(--card-bg);border:1px solid var(--card-border)}.post-body pre{overflow-x:auto;padding:1.1rem 1.25rem;background:var(--card-bg);border:1px solid var(--card-border);font-size:var(--fs-xs);line-height:var(--lh-small)}.post-body pre code{padding:0;background:none;border:0;font-size:inherit}.post-body img{display:block;width:auto;max-width:100%;max-height:36rem;height:auto;border:var(--frame-width) solid var(--color-frame)}.post-body figure{margin:1.75rem 0}.post-body figcaption{margin-top:.5rem;font-size:var(--fs-xs);color:var(--color-subtext)}.post-body hr{height:1px;border:0;background:var(--color-line);margin-block:2.5rem}.post-foot{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--color-line)}@media (prefers-reduced-motion: no-preference){.blog-page main>article{animation:reveal-in .7s cubic-bezier(.2,.7,.2,1) backwards}}.big{font-size:var(--fs-lg);line-height:var(--lh-heading);margin-bottom:1.25rem;overflow-wrap:anywhere}.big a{text-decoration-thickness:2px;text-underline-offset:.2em}.big a:hover{text-decoration-color:currentColor}#contact .links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.social{display:inline-flex;align-items:center;gap:.6rem}.social svg{flex:none;width:1.25rem;height:1.25rem}@media (prefers-reduced-motion: no-preference){.social svg{transition:translate .18s ease}.social:hover svg,.social:focus-visible svg{translate:0 -2px}:root:not([data-theme=minimal]) .social svg{transition:translate .15s steps(2)}}#company h3{font-size:var(--fs-md);line-height:var(--lh-heading)}#company h3+p{margin-top:.6rem}#company .chips{margin-top:1.5rem}.company-logo{display:block;width:100%;height:auto;margin:0}.logo-card{box-sizing:border-box;width:min(100%,12.5rem);margin:4px auto 2.75rem;padding:1.75rem}.logo-row{display:flex;align-items:flex-end;justify-content:center;gap:1.5rem;margin:4px 0 2.75rem}:root .logo-row .logo-card.stack-card{flex:0 1 12.5rem;width:auto;margin:0}.company-logo.on-dark{display:none}:root[data-mode=dark] .company-logo.on-light{display:none}:root[data-mode=dark] .company-logo.on-dark{display:block}.logo-card{cursor:pointer;-webkit-tap-highlight-color:transparent}.logo-card:focus-visible{outline:2px solid var(--color-accent, var(--color-text));outline-offset:3px}.logo-joy{--joy-glow: 0 0 .5rem var(--color-bg), 0 0 .25rem var(--color-bg);position:absolute;z-index:60;translate:-50% calc(-100% - .6rem);opacity:0;pointer-events:none;white-space:nowrap;font-family:var(--font-display);font-size:var(--fs-md);line-height:1.2;letter-spacing:.01em;color:var(--color-accent, var(--color-text));text-shadow:var(--joy-glow)}:root[data-theme=minimal] .logo-joy{font-family:"Space Grotesk",var(--font);font-weight:500;font-size:1.15rem}:root[data-theme=pixel] .logo-joy{font-family:"Pixelify Sans",var(--font-display);font-weight:500;font-size:1.2rem}.logo-joy.is-showing{animation:logo-joy-fade 1s linear both}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .logo-joy.is-showing{animation:logo-joy-rise 1s cubic-bezier(.22,.8,.3,1) both,logo-joy-blur 1s linear both}:root[data-theme=pixel] .logo-joy.is-showing{animation:logo-joy-rise 1s cubic-bezier(.22,.8,.3,1) both,logo-joy-pixel 1s linear both}:root[data-theme=pixel] .logo-joy.is-showing .px{animation:px-scatter .45s steps(1,end) calc(.35s + var(--dl, 0s)) both}}@keyframes logo-joy-rise{0%{transform:translateY(.5rem)}to{transform:translateY(-1.1rem)}}@keyframes logo-joy-fade{0%{opacity:0}15%{opacity:1}60%{opacity:1}to{opacity:0}}@keyframes logo-joy-pixel{0%{opacity:0}15%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes logo-joy-blur{0%{opacity:0;filter:blur(8px)}18%{opacity:1;filter:blur(0)}58%{opacity:1;filter:blur(0)}to{opacity:0;filter:blur(8px)}}:root[data-theme=minimal]{--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: var(--font);--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--color-bg: #FFFFFF;--color-panel: #E9ECEF;--color-text: #343A40;--color-subtext: #6C757D;--color-line: #DEE2E6;--color-frame: #DEE2E6;--color-accent: #343A40;--color-on-accent: #ffffff;--noise-opacity: 0;--radius-sm: 14px;--radius-card: 26px;--radius-pill: 999px;--card-bg: var(--color-panel);--card-border: var(--color-line);--card-glow: transparent;--card-shadow: 0 1px 2px rgba(17, 17, 17, .04), 0 10px 30px -14px rgba(17, 17, 17, .1);--card-shadow-hover: 0 1px 2px rgba(17, 17, 17, .05), 0 18px 40px -16px rgba(17, 17, 17, .16);--id-panel-bg: var(--color-panel);--id-panel-border: var(--color-line);--id-star: none;--fs-label: .75rem;--fs-xs: .8125rem;--fs-sm: .9375rem;--fs-base: 1rem;--fs-md: 1.1875rem;--fs-lg: 1.5rem;--lh-display: 1.05;--lh-heading: 1.3;--lh-small: 1.65;--lh-body: 1.7;--measure: 64rem;--gap-section: clamp(4.5rem, 10vw, 7.5rem);--gap-rule: clamp(2rem, 4vw, 2.75rem);--frame-width: 1px;color-scheme:light}:root[data-theme=minimal][data-mode=dark]{--color-bg: #212529;--color-panel: #343A40;--color-text: #E9ECEF;--color-subtext: #ADB5BD;--color-line: #495057;--color-frame: #495057;--color-accent: #E9ECEF;--color-on-accent: #212529;--card-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 12px 32px -14px rgba(0, 0, 0, .65);--card-shadow-hover: 0 1px 2px rgba(0, 0, 0, .4), 0 20px 44px -16px rgba(0, 0, 0, .8);color-scheme:dark}:root[data-theme=minimal] #pixel-field{display:none}:root[data-theme=minimal] body:before{display:none}:root[data-theme=minimal] #sound-toggle{display:none}:root[data-theme=minimal] .pixel-text{cursor:auto;user-select:text;-webkit-user-select:text}:root[data-theme=minimal] .pixel-pop .px{animation:none}:root[data-theme=minimal] body{letter-spacing:-.006em}:root[data-theme=minimal] h1,:root[data-theme=minimal] h2,:root[data-theme=minimal] h3{font-weight:600}:root[data-theme=minimal] #about h1,:root[data-theme=minimal] .sec-title,:root[data-theme=minimal] .project-card h3,:root[data-theme=minimal] #company h3,:root[data-theme=minimal] .big{font-family:var(--font);font-weight:600;letter-spacing:-.02em}:root[data-theme=minimal] #about h1{font-size:clamp(2.1rem,1.1rem + 4.6vw,3.75rem);line-height:var(--lh-display);letter-spacing:-.045em}:root[data-theme=minimal] .sec-title{font-size:clamp(1.75rem,1.2rem + 2.4vw,2.6rem);line-height:1.08;letter-spacing:-.04em}:root[data-theme=minimal] .eyebrow{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.12em;color:var(--color-accent)}:root[data-theme=minimal] main{counter-reset:sec}:root[data-theme=minimal] .sec-head{margin-bottom:2.5rem}:root[data-theme=minimal] .sec-head:before{counter-increment:sec;content:counter(sec,decimal-leading-zero);display:block;margin-bottom:1rem;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;color:var(--color-accent)}:root[data-theme=minimal] a:hover{text-decoration-color:var(--color-accent)}:root[data-theme=minimal] :where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}:root[data-theme=minimal] #site-header{gap:1.25rem;padding-block:.7rem;background:color-mix(in srgb,var(--color-bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);border-bottom:1px solid var(--color-line)}:root[data-theme=minimal] .brand{font-weight:600;letter-spacing:-.02em}:root[data-theme=minimal] .brand-dot{width:.5rem;height:.5rem;background:var(--color-text);box-shadow:none}:root[data-theme=minimal] #site-header nav{gap:.25rem 1.5rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em}:root[data-theme=minimal] #site-header nav a[aria-current]{color:var(--color-text);text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:var(--color-accent);text-underline-offset:.55em}:root[data-theme=minimal] .header-back{font-family:var(--font-mono);font-size:.75rem}:root[data-theme=minimal] .section-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em}:root[data-theme=minimal] .scroll-bar{bottom:-1px;height:2px;background:none;opacity:1}:root[data-theme=minimal] .scroll-bar__fill{background:var(--color-accent)}@media (max-width: 900px){:root[data-theme=minimal] #site-header nav a[aria-current]{text-decoration:none}:root[data-theme=minimal] #site-header nav a[aria-current]:before{width:6px;height:6px;border-radius:50%;background:var(--color-accent);margin-right:.7rem}:root[data-theme=minimal] #site-header nav{background:var(--color-bg);border-bottom-color:var(--color-line)}:root[data-theme=minimal] #site-header nav a{border-bottom:1px solid var(--color-line)}:root[data-theme=minimal] #site-header nav a:last-child{border-bottom:0}:root[data-theme=minimal] #sound-toggle~#look-toggle{margin-left:auto}}:root[data-theme=minimal] .btn,:root[data-theme=minimal] .toggle,:root[data-theme=minimal] .chip{margin:0;border:1px solid var(--color-line);border-radius:var(--radius-pill);box-shadow:none;translate:none;background:var(--color-panel)}:root[data-theme=minimal] .btn:hover,:root[data-theme=minimal] .toggle:hover{border:1px solid var(--color-text);translate:none;box-shadow:none}:root[data-theme=minimal] .btn:active,:root[data-theme=minimal] .toggle:active{translate:none}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .btn,:root[data-theme=minimal] .toggle{transition:border-color .2s ease,background-color .2s ease,color .2s ease,opacity .2s ease}:root[data-theme=minimal] .btn:hover,:root[data-theme=minimal] .toggle:hover{translate:none;box-shadow:none}}:root[data-theme=minimal] .btn{padding:.6rem 1.25rem;font-size:var(--fs-sm);font-weight:500}:root[data-theme=minimal] .chip{padding:.2rem .85rem;font-size:var(--fs-xs);line-height:1.6;color:var(--color-text)}:root[data-theme=minimal] .btn-solid{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}:root[data-theme=minimal] .btn-solid:hover{border-color:var(--color-accent);filter:brightness(.94)}:root[data-theme=minimal] #sound-toggle,:root[data-theme=minimal] #theme-toggle,:root[data-theme=minimal] #look-toggle,:root[data-theme=minimal] #menu-toggle{width:2.25rem;height:2.25rem;padding:0}:root[data-theme=minimal] #look-toggle{color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 45%,var(--color-line))}:root[data-theme=minimal] #look-toggle:hover{border-color:var(--color-accent)}:root[data-theme=minimal]{--m-hover-line: color-mix(in srgb, var(--color-text) 22%, var(--color-line))}:root[data-theme=minimal] .stack-card{margin:0;padding:1.6rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-card);box-shadow:var(--card-shadow)}:root[data-theme=minimal] .stack-card:before,:root[data-theme=minimal] .stack-card:after{content:none}:root[data-theme=minimal] .stack-card h3{display:block;margin:0 0 1rem;font-family:var(--font);font-size:var(--fs-sm);font-weight:600;text-transform:none;letter-spacing:-.01em;color:var(--color-text)}:root[data-theme=minimal] .stack-card h3:before{content:none}:root[data-theme=minimal] .stack-grid,:root[data-theme=minimal] .blog-grid{gap:1.25rem}@media (hover: hover) and (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .stack-card{transition:translate .25s ease,box-shadow .25s ease,border-color .25s ease,background-color .35s ease}:root[data-theme=minimal] .stack-card:hover{translate:0 -2px;box-shadow:var(--card-shadow-hover);border-color:var(--m-hover-line)}:root[data-theme=minimal] .carousel__item.stack-card:hover{translate:none}}:root[data-theme=minimal] .logo-card{width:min(100%,12.5rem);margin:0 auto 2.5rem;padding:1.5rem}:root[data-theme=minimal] .carousel__item.project-card{margin:0;background:var(--color-panel)}:root[data-theme=minimal] .project-card .preview{border-radius:var(--radius-sm);margin-bottom:1.1rem}:root[data-theme=minimal] .project-card .project-title,:root[data-theme=minimal] .blog-card .blog-title{font-size:var(--fs-md);font-weight:600;letter-spacing:-.025em}:root[data-theme=minimal] .project-card .project-summary,:root[data-theme=minimal] .blog-card .blog-summary{color:var(--color-subtext)}:root[data-theme=minimal] .project-card:has(.project-link:focus-visible),:root[data-theme=minimal] .blog-card:has(.blog-link:focus-visible){outline:2px solid var(--color-accent);outline-offset:3px}:root[data-theme=minimal] .blog-card .blog-date,:root[data-theme=minimal] .blog-card .blog-read{font-family:var(--font-mono);letter-spacing:.1em}:root[data-theme=minimal] .blog-card .blog-more{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-xs);font-weight:500;border-bottom:0;color:var(--color-text)}:root[data-theme=minimal] .blog-card .blog-more:after{content:"→";width:auto;height:auto;margin:0;background:none;box-shadow:none;font-size:1em;line-height:1}:root[data-theme=minimal] .blog-card:hover .blog-more,:root[data-theme=minimal] .blog-card:has(.blog-link:focus-visible) .blog-more{color:var(--color-accent);border-bottom:0}@media (hover: hover) and (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .blog-card .blog-more:after{transition:translate .2s ease}:root[data-theme=minimal] .blog-card:hover .blog-more:after{translate:3px 0}}:root[data-theme=minimal] .blog-share{top:.8rem;right:.8rem;width:2rem;height:2rem;padding:0}:root[data-theme=minimal] .row{padding:1.5rem 0;border-top:1px solid var(--color-line)}:root[data-theme=minimal] .row:last-child{padding-bottom:0}:root[data-theme=minimal] .row dt{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.02em}:root[data-theme=minimal] .h-title strong{font-weight:600}:root[data-theme=minimal] .h-award{color:var(--color-text)}:root[data-theme=minimal] .img{border-radius:var(--radius-sm);border:1px solid var(--color-line)}:root[data-theme=minimal] .ph{border:1px dashed var(--color-line);background:var(--color-panel)}:root[data-theme=minimal] .zoomable:after{left:1px;right:1px;bottom:1px;border-radius:0 0 var(--radius-sm) var(--radius-sm)}:root[data-theme=minimal] .zoomable>img{border-radius:var(--radius-sm)}:root[data-theme=minimal] .carousel__stage:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px;border-radius:var(--radius-card)}:root[data-theme=minimal] .carousel__btn{width:2.5rem;height:2.5rem;padding:0}:root[data-theme=minimal] .carousel__dots{gap:.55rem;align-items:center}:root[data-theme=minimal] .carousel__dot{width:8px;height:8px;border-radius:50%;background:var(--color-line);box-shadow:none;transition:none}:root[data-theme=minimal] .carousel__dot:hover{background:var(--color-subtext);box-shadow:none}:root[data-theme=minimal] .carousel__dot[aria-current]{background:var(--color-accent);box-shadow:none}:root[data-theme=minimal] .carousel__dot:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .carousel__dot{transition:background-color .2s ease}}:root[data-theme=minimal] .id-frame{padding:0;background:var(--color-panel);background-image:none;border:1px solid var(--color-line);border-radius:1.25em;box-shadow:var(--card-shadow)}:root[data-theme=minimal] .id-panel{padding:1.4em 1.5em 1.55em;background:transparent;border:0;border-radius:0}:root[data-theme=minimal] .id-head{border-bottom:1px solid var(--color-line)}:root[data-theme=minimal] .id-kicker{font-family:var(--font-mono);letter-spacing:.1em}:root[data-theme=minimal] .id-no{font-family:var(--font-mono)}:root[data-theme=minimal] .id-field dd{border-bottom:1px solid var(--color-line)}:root[data-theme=minimal] .id-field dt{font-family:var(--font-mono);letter-spacing:.08em}:root[data-theme=minimal] .id-field dd#name{font-weight:600;letter-spacing:-.02em}:root[data-theme=minimal] .id-photo figcaption{font-family:var(--font-mono)}:root[data-theme=minimal] .id-color-btn{display:none}:root[data-theme=minimal] .id-frame:focus-visible,:root[data-theme=minimal] .id-photo .portrait-wrap:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}@media (hover: hover){:root[data-theme=minimal] .id-frame:hover{box-shadow:var(--card-shadow-hover)}}:root[data-theme=minimal] .id-card .btn{background:none}:root[data-theme=minimal] .status-dot{background:var(--color-accent);box-shadow:0 0 0 .2em color-mix(in srgb,var(--color-accent) 25%,transparent)}@keyframes status-pulse-minimal{0%,to{box-shadow:0 0 0 .2em color-mix(in srgb,var(--color-accent) 25%,transparent)}50%{box-shadow:0 0 0 .4em color-mix(in srgb,var(--color-accent) 10%,transparent)}}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .status-dot{animation-name:status-pulse-minimal}}:root[data-theme=minimal] .clicker{margin:0;padding:.4rem 1rem;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-panel);box-shadow:var(--card-shadow);translate:none}:root[data-theme=minimal] .clicker:hover{border-color:var(--color-text);translate:none;box-shadow:var(--card-shadow)}:root[data-theme=minimal] .clicker:active{translate:none;scale:.97}:root[data-theme=minimal] .clicker:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}:root[data-theme=minimal] .clicker__plus{font-family:var(--font);font-weight:600;color:var(--color-accent)}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .clicker{transition:border-color .2s ease,scale .12s ease,background-color .35s ease}:root[data-theme=minimal] .clicker__plus{animation-timing-function:ease-out}}:root[data-theme=minimal] .to-top{width:2.5rem;height:2.5rem;padding:0;background:var(--color-panel);box-shadow:var(--card-shadow)}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .to-top{transition:opacity .25s ease,visibility .25s,border-color .2s ease}}:root[data-theme=minimal] .zoom-layer.open{background:#0a0a0bc7;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}:root[data-theme=minimal] .zoom-fly{border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-card);box-shadow:0 30px 80px -20px #0009}:root[data-theme=minimal] .zoom-btn{border-color:#fff9;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}:root[data-theme=minimal] .zoom-btn svg{stroke-linecap:round;stroke-width:1.8}:root[data-theme=minimal] .zoom-close{margin:0;padding:.45rem 1.1rem;border-radius:var(--radius-pill);box-shadow:none;border:1px solid rgba(255,255,255,.55);background:#ffffff14}:root[data-theme=minimal] .zoom-close:hover{background:#ffffff2e}:root[data-theme=minimal] .zoom-btn:focus-visible,:root[data-theme=minimal] .zoom-close:focus-visible{outline-color:#fff}:root[data-theme=minimal] #site-footer{border-top:1px solid var(--color-line);padding-top:3rem}:root[data-theme=minimal] .foot-grid h3{font-family:var(--font-mono);font-weight:400;letter-spacing:.12em;color:var(--color-subtext)}:root[data-theme=minimal] .foot-brand{font-weight:600;letter-spacing:-.02em}:root[data-theme=minimal] #site-footer a{text-decoration:none;color:var(--color-subtext)}:root[data-theme=minimal] #site-footer a:hover{color:var(--color-accent)}:root[data-theme=minimal] .big a{text-decoration-thickness:1px;text-decoration-color:var(--color-line)}:root[data-theme=minimal] .big a:hover{text-decoration-color:var(--color-accent)}:root[data-theme=minimal] #contact .links a,:root[data-theme=minimal] main .links a{text-decoration-color:var(--color-line)}:root[data-theme=minimal] main .links a:hover{text-decoration-color:var(--color-accent);color:var(--color-accent)}:root[data-theme=minimal] .blog-page main{width:min(100% - 3rem,42rem);padding-top:3.5rem}:root[data-theme=minimal] .post-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:1.75rem;padding:.3rem .9rem;font-family:var(--font-mono);border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-panel)}:root[data-theme=minimal] .post-back:hover{color:var(--color-text);border-color:var(--color-text)}:root[data-theme=minimal] .post-head{padding-bottom:2.25rem;border-bottom:1px solid var(--color-line)}:root[data-theme=minimal] .post-card{margin:0;border:1px solid var(--card-border);border-radius:var(--radius-card);box-shadow:var(--card-shadow)}:root[data-theme=minimal] .post-card:before,:root[data-theme=minimal] .post-card:after{content:none}:root[data-theme=minimal] .post-card .post-head{padding:var(--post-pad);border-bottom:2px dashed var(--color-line);border-radius:calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px) 0 0}:root[data-theme=minimal] .post-card .post-body:before,:root[data-theme=minimal] .post-card .post-body:after{border:1px solid var(--color-line);border-radius:50%}:root[data-theme=minimal] .post-meta{font-family:var(--font-mono);letter-spacing:.12em;color:var(--color-subtext)}:root[data-theme=minimal] .post-head h1{font-family:var(--font);font-weight:600;font-size:clamp(2rem,1.2rem + 3.6vw,3.1rem);letter-spacing:-.04em;line-height:1.08}:root[data-theme=minimal] .post-summary{font-size:var(--fs-md);line-height:1.55}:root[data-theme=minimal] .post-body h2,:root[data-theme=minimal] .post-body h3{font-family:var(--font);font-weight:600;letter-spacing:-.025em}:root[data-theme=minimal] .post-body a{text-decoration-color:var(--color-line);text-decoration-thickness:1px}:root[data-theme=minimal] .post-body a:hover{text-decoration-color:var(--color-accent);color:var(--color-accent)}:root[data-theme=minimal] .post-body strong{font-weight:600}:root[data-theme=minimal] .post-body blockquote{border-left:2px solid var(--color-line)}:root[data-theme=minimal] .post-body code,:root[data-theme=minimal] .post-body pre{background:var(--color-panel);border:1px solid var(--color-line);border-radius:8px;font-family:var(--font-mono)}:root[data-theme=minimal] .post-body pre{border-radius:var(--radius-sm)}:root[data-theme=minimal] .post-body img{border:1px solid var(--color-line);border-radius:var(--radius-sm)}:root[data-theme=minimal] .post-foot{border-top:1px solid var(--color-line)}:root[data-theme=minimal] .story dt{font-family:var(--font-mono);letter-spacing:.1em}:root[data-theme=minimal] .project-hero .img{border-radius:var(--radius-card)}:root[data-theme=minimal] .project-shots .img{border-radius:var(--radius-sm)}:root[data-theme=minimal] .project-links .btn{text-decoration:none}@media (max-width: 640px){:root[data-theme=minimal] .stack-card{padding:1.3rem}:root[data-theme=minimal] .row{padding:1.25rem 0}}:root[data-theme=minimal] .carousel__item{filter:none!important}:root[data-theme=minimal] .i-pixel{display:none!important}:root[data-theme=minimal] .i-thin{display:block}:root[data-theme=minimal] #loader{gap:0;transition:opacity .45s ease}:root[data-theme=minimal] .loader-label,:root[data-theme=minimal] .loader-pct{display:none}:root[data-theme=minimal] .loader-bar{display:block;position:relative;width:min(14rem,56vw);height:2px;border-radius:2px;overflow:hidden;background:var(--color-line)}:root[data-theme=minimal] .loader-bar i{display:none}:root[data-theme=minimal] .loader-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;transform:scaleX(var(--p, 0));background:var(--color-accent)}:root[data-theme=minimal] #loader.leaving .loader-bar{opacity:0;transition:opacity .3s ease}:root[data-theme=minimal] .portrait-wrap .skeleton,:root[data-theme=minimal] .portrait-wrap .scan,:root[data-theme=minimal] .pixel-canvas{display:none!important}:root[data-theme=minimal] .portrait-wrap.is-loading .portrait{clip-path:none;opacity:0}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .portrait-wrap .portrait{transition:opacity .7s ease}:root[data-theme=minimal] .portrait-wrap.scanning .portrait{animation:none}}:root[data-theme=minimal] .typing:after{width:2px;height:.9em;margin-left:.12em}:root[data-theme=minimal]{--font-serif: "Playfair Display", "Iowan Old Style", Georgia, "Times New Roman", serif}:root[data-theme=minimal] #about h1,:root[data-theme=minimal] .sec-title,:root[data-theme=minimal] .big{font-family:var(--font-serif);font-weight:400}:root[data-theme=minimal] #about h1{font-size:clamp(2.4rem,1.2rem + 5.2vw,4.25rem);line-height:1.06;letter-spacing:-.02em}:root[data-theme=minimal] .sec-title{font-size:clamp(2.1rem,1.3rem + 3.4vw,3.4rem);line-height:1.05;letter-spacing:-.02em}:root[data-theme=minimal] .sec-title .pxw>.px:first-child{text-transform:uppercase}:root[data-theme=minimal] .stack-card h3{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:1.5rem;line-height:1.2;letter-spacing:0;color:var(--color-subtext);margin:0 0 1.25rem}:root[data-theme=minimal] .blog-card .blog-title{font-family:var(--font-serif);font-weight:400;font-size:1.65rem;line-height:1.15;letter-spacing:-.01em}:root[data-theme=minimal] .blog-card .blog-date,:root[data-theme=minimal] .blog-card .blog-read{font-family:var(--font);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}:root[data-theme=minimal] .post-head h1{font-family:var(--font-serif);font-weight:400;letter-spacing:-.02em}:root[data-theme=minimal] .post-body h2,:root[data-theme=minimal] .post-body h3{font-family:var(--font-serif);font-weight:400;letter-spacing:-.01em}:root[data-theme=minimal] .post-meta{font-family:var(--font);font-weight:500;letter-spacing:.18em}:root[data-theme=minimal] .eyebrow{font-family:var(--font);font-weight:500;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent)}:root[data-theme=minimal] .sec-head:before{content:none}:root[data-theme=minimal] .sec-head .eyebrow{margin:0 0 1rem}:root:not([data-theme=minimal]) .sec-head .eyebrow{display:none}:root[data-theme=minimal] main>section{scroll-margin-top:6rem}:root[data-theme=minimal] #site-header{top:.75rem;width:min(100% - 2rem,var(--measure));margin:.75rem auto 0;gap:1rem;padding:.5rem .55rem .5rem 1.4rem;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-panel) 40%,transparent);box-shadow:var(--card-shadow)}:root[data-theme=minimal] .brand{font-family:var(--font-serif);font-weight:700;font-size:1.3rem;letter-spacing:-.01em;text-transform:capitalize}:root[data-theme=minimal] .brand-dot{display:none}:root[data-theme=minimal] #site-header nav{font-family:var(--font);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;gap:.25rem 1.4rem}:root[data-theme=minimal] .header-back{font-family:var(--font);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}:root[data-theme=minimal] .section-label{font-family:var(--font-serif);font-size:1.05rem;letter-spacing:0;text-transform:capitalize}:root[data-theme=minimal] .scroll-bar{left:1.6rem;right:1.6rem;bottom:-1px;height:2px;border-radius:2px}@media (max-width: 900px){:root[data-theme=minimal] #site-header{gap:.5rem;padding-left:.55rem}:root[data-theme=minimal] #site-header nav{top:calc(100% + .6rem);padding:.4rem 1.4rem;font-size:.75rem;background:var(--color-panel);border:1px solid var(--color-line);border-radius:22px;box-shadow:var(--card-shadow)}:root[data-theme=minimal] #sound-toggle~#look-toggle{margin-left:auto}}:root[data-theme=minimal] .stack-card{padding:1.9rem}@media (max-width: 640px){:root[data-theme=minimal] .stack-card{padding:1.5rem}}:root[data-theme=minimal] .chip{padding:.3rem .95rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-subtext);background:transparent}:root[data-theme=minimal] .btn{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;padding:.7rem 1.4rem}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .reveal:not(.is-visible){opacity:0;translate:0 14px;filter:blur(4px)}:root[data-theme=minimal] .reveal.is-visible{animation-name:reveal-blur-in;animation-duration:.6s}:root[data-theme=minimal] .reveal:has(.carousel):not(.is-visible){filter:none;translate:0 14px}:root[data-theme=minimal] .reveal:has(.carousel).is-visible{animation-name:reveal-in;animation-duration:.9s}}@keyframes reveal-blur-in{0%{opacity:0;translate:0 14px;filter:blur(4px)}}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .pixel-text .px{--w: 0;translate:0 calc(var(--w) * -.16em);color:color-mix(in srgb,var(--color-accent) calc(var(--w) * 100%),currentColor);transition:translate .35s cubic-bezier(.2,.7,.2,1),color .35s ease}:root[data-theme=minimal] .px-wave .px{animation:px-wave .75s ease-in-out calc(min(var(--i, 0),30)*35ms)}:root[data-theme=minimal] .sec-head.reveal:not(.is-visible){filter:none;translate:none}:root[data-theme=minimal] .sec-head.reveal.is-visible{animation-name:reveal-fade;animation-duration:.6s}:root[data-theme=minimal] .reveal:not(.is-visible) .sec-title .px{opacity:0;filter:blur(3px);translate:0 .3em}:root[data-theme=minimal] .reveal.is-visible .sec-title .px{animation:px-blur-in .5s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--reveal-delay, 0s) + min(var(--i, 0),30) * 18ms)}:root[data-theme=minimal][data-loader] #about h1 .px{opacity:0}:root[data-theme=minimal]:not([data-loader]) #about h1 .px{animation:px-blur-in .6s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(.1s + min(var(--i, 0),40)*16ms)}}@keyframes px-blur-in{0%{opacity:0;filter:blur(3px);translate:0 .3em}}@keyframes px-wave{40%{translate:0 -.18em;color:var(--color-accent)}}@keyframes reveal-fade{0%{opacity:0}}:root[data-theme=minimal] .section-label{position:relative}:root[data-theme=minimal] .sl-word{display:inline-block}:root[data-theme=minimal] .sl-out{position:absolute;left:0;top:0;pointer-events:none}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .sl-in{animation:sl-in .6s cubic-bezier(.2,.7,.2,1) .1s backwards}:root[data-theme=minimal] .sl-out{animation:sl-out .35s ease-in forwards}}@keyframes sl-in{0%{opacity:0;filter:blur(8px);translate:0 .4em}}@keyframes sl-out{to{opacity:0;filter:blur(8px);translate:0 -.4em}}:root[data-theme=minimal] .id-kicker,:root[data-theme=minimal] .id-no,:root[data-theme=minimal] .id-field dt,:root[data-theme=minimal] .id-photo figcaption,:root[data-theme=minimal] .row dt,:root[data-theme=minimal] .story dt,:root[data-theme=minimal] .foot-grid h3,:root[data-theme=minimal] .post-back{font-family:var(--font);font-weight:500;text-transform:uppercase;letter-spacing:.14em}:root[data-theme=minimal] .row dt,:root[data-theme=minimal] .story dt,:root[data-theme=minimal] .post-back{font-size:.7rem}:root[data-theme=minimal] .id-no{font-size:.7rem;letter-spacing:.12em}:root[data-theme=minimal] .id-no,:root[data-theme=minimal] .blog-date,:root[data-theme=minimal] .post-meta,:root[data-theme=minimal] .row dt,:root[data-theme=minimal] .clicker__count{font-variant-numeric:tabular-nums}:root[data-theme=minimal] body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}:root[data-theme=minimal] p,:root[data-theme=minimal] li,:root[data-theme=minimal] blockquote,:root[data-theme=minimal] dd{text-wrap:pretty}@media (pointer: coarse),(max-width: 900px){:root[data-theme=minimal] #theme-toggle,:root[data-theme=minimal] #look-toggle,:root[data-theme=minimal] #menu-toggle,:root[data-theme=minimal] .carousel__btn,:root[data-theme=minimal] .to-top{width:2.75rem;height:2.75rem;flex:none}:root[data-theme=minimal] #site-header{gap:.25rem;padding:.35rem .4rem .35rem 1rem}:root[data-theme=minimal] #site-header .brand{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}:root[data-theme=minimal]{accent-color:var(--color-accent);caret-color:var(--color-accent)}:root[data-theme=minimal] ::selection{background:color-mix(in srgb,var(--color-accent) 28%,transparent);color:var(--color-text)}:root[data-theme=minimal] ::-moz-selection{background:color-mix(in srgb,var(--color-accent) 28%,transparent);color:var(--color-text)}:root[data-theme=minimal]{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--color-text) 28%,transparent) transparent}:root[data-theme=minimal] ::-webkit-scrollbar{width:10px;height:10px}:root[data-theme=minimal] ::-webkit-scrollbar-track{background:transparent}:root[data-theme=minimal] ::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-text) 24%,transparent);border-radius:999px;border:3px solid transparent;background-clip:content-box}:root[data-theme=minimal] ::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--color-accent) 70%,transparent);background-clip:content-box}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] main,:root[data-theme=minimal] #site-footer{transition:opacity .26s ease,filter .26s ease}:root[data-theme=minimal][data-leaving] main,:root[data-theme=minimal][data-leaving] #site-footer{opacity:0;filter:blur(10px);pointer-events:none}:root[data-theme=minimal][data-arrive] main,:root[data-theme=minimal][data-arrive] #site-footer{animation:page-arrive .5s cubic-bezier(.2,.7,.2,1) backwards}}@keyframes page-arrive{0%{opacity:0;filter:blur(10px)}}:root[data-theme=minimal]{--m-accent-line: color-mix(in srgb, var(--color-accent) 45%, var(--color-line));--m-accent-faint: color-mix(in srgb, var(--color-accent) 22%, var(--color-line));--m-glow: 0 0 0 1px color-mix(in srgb, var(--color-accent) 14%, transparent), 0 16px 44px -14px color-mix(in srgb, var(--color-accent) 34%, transparent)}:root[data-theme=minimal] .stack-card{-webkit-tap-highlight-color:transparent}:root[data-theme=minimal] .stack-card.project-card{padding:0 0 1.7rem;overflow:hidden;--pc-pad: 1.7rem}@media (max-width: 640px){:root[data-theme=minimal] .stack-card.project-card{padding-bottom:1.4rem;--pc-pad: 1.4rem}}:root[data-theme=minimal] .project-card .preview-frame{display:block;position:relative;aspect-ratio:16 / 10;margin:0 0 1.4rem;overflow:hidden}:root[data-theme=minimal] .project-card .preview{display:block;width:100%;height:100%;aspect-ratio:16 / 10;margin:0;border:0;border-radius:0;object-fit:cover;-webkit-user-select:none;user-select:none}:root[data-theme=minimal] .project-card .preview.ph{border-bottom:1px dashed var(--color-line)}:root[data-theme=minimal] .project-card .project-title,:root[data-theme=minimal] .project-card .project-summary{padding-inline:var(--pc-pad)}:root[data-theme=minimal] .project-card:has(.project-link:focus-visible),:root[data-theme=minimal] .blog-card:has(.blog-link:focus-visible){border-color:var(--m-accent-line)}@media (hover: hover){:root[data-theme=minimal] .stack-card:hover{border-color:var(--m-accent-faint)}:root[data-theme=minimal] .project-card:hover,:root[data-theme=minimal] .blog-card:hover{border-color:var(--m-accent-line);box-shadow:var(--m-glow),var(--card-shadow-hover)}}@media (hover: hover) and (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .project-card .preview{transition:transform .7s cubic-bezier(.2,.7,.2,1)}:root[data-theme=minimal] .project-card:hover .preview{transform:scale(1.05)}:root[data-theme=minimal] .project-card,:root[data-theme=minimal] .blog-card{transition:translate .25s ease,box-shadow .3s ease,border-color .3s ease,background-color .35s ease}}@media (hover: none){:root[data-theme=minimal] .project-card:active,:root[data-theme=minimal] .blog-card:active{border-color:var(--m-accent-line)}}@media (hover: none) and (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .project-card .preview{transition:transform .35s ease}:root[data-theme=minimal] .project-card:active .preview{transform:scale(1.03)}}:root[data-theme=minimal] .logo-card{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}:root[data-theme=minimal] .logo-card[role=button]{cursor:pointer}:root[data-theme=minimal] .logo-card[role=button]:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}:root[data-theme=minimal] .logo-ripple{position:absolute;z-index:0;width:22rem;height:22rem;margin:-11rem 0 0 -11rem;border-radius:50%;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--color-accent) 38%,transparent) 0%,color-mix(in srgb,var(--color-accent) 18%,transparent) 38%,transparent 68%)}:root[data-theme=minimal] .logo-card .company-logo{position:relative;z-index:1}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .logo-card.is-pulsing{animation:logo-pulse .6s cubic-bezier(.3,.7,.2,1)}:root[data-theme=minimal] .logo-ripple{animation:logo-ripple .75s cubic-bezier(.2,.6,.3,1) forwards}}@keyframes logo-pulse{0%{scale:1;border-color:var(--card-border);box-shadow:var(--card-shadow)}30%{scale:.965;border-color:var(--m-accent-line);box-shadow:var(--m-glow),var(--card-shadow)}to{scale:1;border-color:var(--card-border);box-shadow:var(--card-shadow)}}@keyframes logo-ripple{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:0}}:root[data-theme=minimal] #about h1,:root[data-theme=minimal] .sec-title,:root[data-theme=minimal] .big,:root[data-theme=minimal] .post-head h1{font-weight:700}:root[data-theme=minimal] .blog-card .blog-title,:root[data-theme=minimal] .post-body h2,:root[data-theme=minimal] .post-body h3{font-weight:600}:root[data-theme=minimal] .stack-card h3{font-weight:500}:root[data-theme=minimal] .eyebrow{font-weight:600}:root[data-theme=minimal] #site-header nav{font-weight:500}:root[data-theme=minimal] #about .place__study{font-weight:500}:root[data-theme=minimal]{--font-serif: var(--font)}:root[data-theme=minimal] #about h1{font-size:clamp(2.2rem,1rem + 4.6vw,3.75rem);line-height:1.05;letter-spacing:-.04em}:root[data-theme=minimal] .sec-title{font-size:clamp(1.9rem,1.2rem + 2.8vw,2.9rem);line-height:1.08;letter-spacing:-.035em}:root[data-theme=minimal] .blog-card .blog-title{font-size:1.35rem;letter-spacing:-.025em}:root[data-theme=minimal] .post-head h1{letter-spacing:-.035em}:root[data-theme=minimal] .post-body h2,:root[data-theme=minimal] .post-body h3{letter-spacing:-.02em}:root[data-theme=minimal] .stack-card h3{font-style:normal;font-weight:600;font-size:1.1rem;letter-spacing:-.01em}:root[data-theme=minimal] .brand{font-size:1.2rem;letter-spacing:-.02em}:root[data-theme=minimal] .stack-card h3,:root[data-theme=minimal] .blog-card .blog-title,:root[data-theme=minimal] .project-card h3{color:var(--color-text)}:root[data-theme=minimal] .blog-grid:has(>.blog-card:only-of-type){grid-template-columns:minmax(0,44rem)}:root[data-theme=minimal] .project-card .preview-frame{aspect-ratio:4 / 3}:root[data-theme=minimal] .project-card .preview{aspect-ratio:4 / 3;object-position:top center}:root[data-theme=minimal] .project-card .project-title:after{content:"→";display:inline-block;margin-left:.5rem;opacity:0;translate:-8px 0;color:var(--color-subtext);transition:opacity .25s ease,translate .3s cubic-bezier(.2,.7,.2,1)}@media (hover: none){:root[data-theme=minimal] .project-card .project-title:after{opacity:.5;translate:0 0}}@media (hover: hover){:root[data-theme=minimal] .project-card:hover .project-title:after,:root[data-theme=minimal] .project-card:has(.project-link:focus-visible) .project-title:after{opacity:1;translate:0 0;color:var(--color-text)}}@media (prefers-reduced-motion: no-preference){:root[data-theme=minimal] .project-card .preview{transition:transform .6s cubic-bezier(.2,.7,.2,1)}:root[data-theme=minimal] .project-card:hover .preview,:root[data-theme=minimal] .project-card:has(.project-link:focus-visible) .preview{transform:scale(1.06)}}:root[data-theme=minimal] #about h1,:root[data-theme=minimal] .sec-title{font-weight:800;font-feature-settings:"ss01","cv11"}:root[data-theme=minimal] #about h1{font-size:clamp(2.4rem,1rem + 5.2vw,4.25rem);line-height:1;letter-spacing:-.05em}:root[data-theme=minimal] .sec-title{font-size:clamp(2.2rem,1.2rem + 4vw,3.6rem);line-height:1.02;letter-spacing:-.045em}:root[data-theme=minimal] .blog-grid{position:relative}:root[data-theme=minimal] .blog-card{position:relative;z-index:1}.mascot--peek{position:absolute;z-index:0;width:80px;top:-3.15rem;left:calc(min(100%,44rem) - 7.5rem)}.blog-grid:not(:has(>.blog-card:only-of-type)) .mascot--peek{display:none}@media (prefers-reduced-motion: no-preference){.mascot--peek.armed:not(.up){translate:0 88%}.mascot--peek{transition:translate .6s cubic-bezier(.3,1.6,.5,1)}}@media (min-width: 861px){:root[data-theme=minimal] .stack-grid{grid-template-columns:repeat(6,minmax(0,1fr))}:root[data-theme=minimal] .stack-grid>.stack-card,:root[data-theme=minimal] .stack-grid>.stack-slot{grid-column:span 2}:root[data-theme=minimal] .stack-grid>:nth-child(1){grid-column:span 4}}:root[data-theme=minimal] .stack-slot{position:relative;z-index:2;display:flex}:root[data-theme=minimal] .stack-slot>.stack-card{flex:1;min-width:0;position:relative;z-index:1}:root[data-theme=minimal] .stack-grid>.stack-card{position:relative;z-index:1}.stack-slot .mascot--peek{left:auto;right:1.75rem}@media (max-width: 640px){.stack-slot .mascot--peek{right:1.4rem}}@media (min-width: 901px){:root[data-theme=minimal] .clicker{right:max(1.25rem,calc((100% - min(100% - 3rem,var(--measure)))/2))}}:root:not([data-theme=minimal]) .blog-aside{display:none}@media (min-width: 901px){:root[data-theme=minimal] .h-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,27rem);gap:2rem 3rem;align-items:start}:root[data-theme=minimal] .h-entry .gallery{margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}:root[data-theme=minimal] .h-entry>.img.ph{margin-top:0;max-width:none}:root[data-theme=minimal] .company-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,24rem);gap:0 3.5rem;align-items:start}:root[data-theme=minimal] .company-body>.company-text{grid-column:1;grid-row:1}:root[data-theme=minimal] .company-body>.logo-row{grid-column:1;grid-row:2;justify-content:flex-start;margin:2.25rem 0 0}:root[data-theme=minimal] .company-body>.zoomable.is-company,:root[data-theme=minimal] .company-body>img.company-photo{grid-column:2;grid-row:1 / span 2;max-width:none;margin-top:0}}:root[data-theme=minimal] .blog-aside{align-self:center;padding-block:1rem}:root[data-theme=minimal] .blog-aside__count{margin:0 0 .75rem;font-size:var(--fs-label);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--color-subtext)}:root[data-theme=minimal] .blog-aside__text{margin:0 0 1.25rem;font-size:var(--fs-sm);line-height:var(--lh-small);color:var(--color-subtext);max-width:26ch}@media (min-width: 1000px){:root[data-theme=minimal] .blog-grid:has(>.blog-card:only-of-type){grid-template-columns:minmax(0,44rem) minmax(0,1fr);column-gap:3rem}}@media (max-width: 999px){:root[data-theme=minimal] .blog-aside{padding:.25rem .25rem 0}}:root[data-theme=minimal]:not([data-mode=dark]) .mascot{--mc-c: color-mix(in srgb, var(--color-accent) 52%, #fff);--mc-g: color-mix(in srgb, var(--color-accent) 68%, #fff);--mc-o: color-mix(in srgb, var(--color-accent) 24%, #fff);--mc-hand: color-mix(in srgb, var(--color-text) 62%, #fff);--mc-hand-sh: color-mix(in srgb, var(--color-text) 30%, #fff);--mc-lf: color-mix(in srgb, var(--color-text) 62%, #fff);--mc-lb: color-mix(in srgb, var(--color-text) 48%, #fff);--mc-lk: color-mix(in srgb, var(--color-text) 34%, #fff)}:root[data-theme=minimal] #about .place{margin-top:1.75rem;gap:.3rem}:root[data-theme=minimal] #about .place__study{font-size:var(--fs-base);line-height:1.5}:root[data-theme=minimal] #about .place__school{font-size:var(--fs-sm);opacity:1;color:var(--color-subtext)}:root[data-theme=minimal] .id-field dd{font-size:1.0625em}:root[data-theme=minimal] .id-field dd#name{font-size:1.3em;line-height:1.25}:root[data-theme=minimal]:not([data-mode=dark]){--color-subtext: #5F666D}:root[data-theme=minimal] .chip,:root[data-theme=minimal] .project-card .project-tech .chip,:root[data-theme=minimal] .row dt,:root[data-theme=minimal] .story dt,:root[data-theme=minimal] .post-back,:root[data-theme=minimal] .blog-card .blog-date,:root[data-theme=minimal] .blog-card .blog-read,:root[data-theme=minimal] #site-header nav,:root[data-theme=minimal] .header-back{font-size:.75rem}:root[data-theme=minimal] .project-card .project-tech .chip{letter-spacing:.08em}:root[data-theme=minimal] .id-kicker,:root[data-theme=minimal] .id-no,:root[data-theme=minimal] .id-field dt,:root[data-theme=minimal] .id-photo figcaption{font-size:max(12px,.8em)}:root[data-theme=minimal] .id-photo figcaption{letter-spacing:.1em}:root[data-theme=minimal] .id-head{flex-wrap:wrap;gap:.25em 1em}:root[data-theme=minimal] .blog-share{width:2.5rem;height:2.5rem;top:.7rem;right:.7rem}:root[data-theme=minimal] .blog-card .blog-title{padding-right:3.5rem}:root[data-theme=minimal] .carousel__controls{max-width:48rem;margin-inline:auto;gap:1rem}:root[data-theme=minimal] .carousel__hint{flex:1 1 0;min-width:0;font-size:var(--fs-sm);color:var(--color-subtext);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root[data-theme=minimal] .carousel__hint--prev{text-align:right}:root[data-theme=minimal] .carousel__hint--next{text-align:left}@media (max-width: 700px){:root[data-theme=minimal] .carousel__hint{display:none}}@media (min-width: 861px){:root[data-theme=minimal] .stack-grid{gap:1.25rem}:root[data-theme=minimal] .stack-grid>:nth-child(1){grid-column:1 / span 4}:root[data-theme=minimal] .stack-grid>:nth-child(3){grid-column:5 / span 2;grid-row:1}:root[data-theme=minimal] .stack-grid>:nth-child(2){grid-column:1 / span 3;grid-row:2}:root[data-theme=minimal] .stack-grid>:nth-child(4){grid-column:4 / span 3;grid-row:2}:root[data-theme=minimal] .stack-grid>:nth-child(5){grid-column:1 / -1;grid-row:3}:root[data-theme=minimal] .stack-grid .stack-card{padding:1.6rem 1.9rem}}:root[data-theme=minimal]{--gap-section: clamp(4rem, 8vw, 6rem)}:root:not([data-theme=minimal]) .mascot--peek{display:none}:root[data-theme=minimal] .back .id-field dd{text-wrap:nowrap}:root[data-theme=minimal] .id-panel{padding:1.2em 1.5em 1.25em}:root[data-theme=minimal] .id-head{padding-bottom:.55em;margin-bottom:.75em}:root[data-theme=minimal] .back .id-fields{gap:.45em 1.2em}:root[data-theme=minimal] .back .id-field dd{line-height:1.4;padding-bottom:.25em;min-height:0}:root[data-theme=minimal] .back .id-field:last-child{grid-column:1 / -1}@container (max-width: 26rem){:root[data-theme=minimal] .id-kicker,:root[data-theme=minimal] .id-no,:root[data-theme=minimal] .id-field dt{font-size:max(10px,.8em);letter-spacing:.08em}:root[data-theme=minimal] .id-photo figcaption{font-size:max(8px,.7em);letter-spacing:.06em}:root[data-theme=minimal] .id-head{flex-wrap:nowrap;gap:.5em}}
