:root{--ink: #e9e6df;--muted: #8f8c84;--faint: #605d56;--paper: #121110;--line: #262421;--blue: #3b82f6;--pink: #ec4899;--transition-fast: .2s cubic-bezier(.2, 0, .2, 1);--transition-normal: .4s cubic-bezier(.2, 0, .2, 1);--transition-slow: .6s cubic-bezier(.2, 0, .2, 1)}*{box-sizing:border-box}html{color-scheme:dark;overflow-x:hidden;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.7}::selection{background:#e9e6df24}.page{max-width:560px;margin:0 auto;padding:14vh 24px 12vh;position:relative}.page>*{position:relative;z-index:1}.page p{margin:0 0 1.25em}.site-header{margin-bottom:24px}.site-header-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px 4px;background:#fff;color:#0d0d0d;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:600;letter-spacing:-.02em;line-height:1.2;border-radius:7px;text-decoration:none!important;user-select:none}.inline-icon{width:17px;height:17px;vertical-align:-3.5px;margin-right:4px;display:inline-block;object-fit:contain;flex-shrink:0}.page a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color .15s ease,color .15s ease}.page a:hover{-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.text-link{font:inherit;cursor:pointer;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;background:none;border:none;padding:0;transition:text-decoration-color .15s ease,color .15s ease}.text-link:hover{-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.cv-box{--cv-c: var(--blue);--cv-border: rgba(59, 130, 246, .42);--cv-border-pulse: rgba(59, 130, 246, .82);--cv-bg: rgba(59, 130, 246, .07);--cv-bg-pulse: rgba(59, 130, 246, .13);position:relative;display:inline-block;padding:0 6px 1px;margin:0 2px;color:var(--ink);line-height:1.35;border-radius:2px;background-color:var(--cv-bg);border:1px solid var(--cv-border);vertical-align:baseline;animation:cvLockIn .75s cubic-bezier(.16,1,.3,1) calc(var(--cv-delay, 0ms)) both,cvBoxAnimate 3.4s ease-in-out calc(var(--cv-delay, 0ms) + .75s) infinite;transition:transform var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}.cv-box[data-cv-color=pink]{--cv-c: var(--pink);--cv-border: rgba(236, 72, 153, .42);--cv-border-pulse: rgba(236, 72, 153, .82);--cv-bg: rgba(236, 72, 153, .07);--cv-bg-pulse: rgba(236, 72, 153, .13)}.cv-box[data-cv-color=white]{--cv-c: var(--ink);--cv-border: rgba(233, 230, 223, .38);--cv-border-pulse: rgba(233, 230, 223, .75);--cv-bg: rgba(233, 230, 223, .06);--cv-bg-pulse: rgba(233, 230, 223, .11)}.cv-box:hover,.cv-box[data-cv-active=true]{border-color:var(--cv-c);background-color:var(--cv-bg-pulse)}.cv-corner{position:absolute;width:5px;height:5px;pointer-events:none;z-index:2}.cv-corner.tl{top:-2px;left:-2px;border-top:1.5px solid var(--cv-c);border-left:1.5px solid var(--cv-c);animation:cvCornerTL 2.8s ease-in-out calc(var(--cv-delay, 0ms) + .75s) infinite}.cv-corner.tr{top:-2px;right:-2px;border-top:1.5px solid var(--cv-c);border-right:1.5px solid var(--cv-c);animation:cvCornerTR 2.8s ease-in-out calc(var(--cv-delay, 0ms) + .75s) infinite}.cv-corner.bl{bottom:-2px;left:-2px;border-bottom:1.5px solid var(--cv-c);border-left:1.5px solid var(--cv-c);animation:cvCornerBL 2.8s ease-in-out calc(var(--cv-delay, 0ms) + .75s) infinite}.cv-corner.br{bottom:-2px;right:-2px;border-bottom:1.5px solid var(--cv-c);border-right:1.5px solid var(--cv-c);animation:cvCornerBR 2.8s ease-in-out calc(var(--cv-delay, 0ms) + .75s) infinite}@keyframes cvLockIn{0%{opacity:0;transform:scale(1.18)}65%{opacity:1;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes cvBoxAnimate{0%,to{border-color:var(--cv-border);background-color:var(--cv-bg)}50%{border-color:var(--cv-border-pulse);background-color:var(--cv-bg-pulse)}}@keyframes cvCornerTL{0%,to{transform:translate(0)}50%{transform:translate(-1.5px,-1.5px)}}@keyframes cvCornerTR{0%,to{transform:translate(0)}50%{transform:translate(1.5px,-1.5px)}}@keyframes cvCornerBL{0%,to{transform:translate(0)}50%{transform:translate(-1.5px,1.5px)}}@keyframes cvCornerBR{0%,to{transform:translate(0)}50%{transform:translate(1.5px,1.5px)}}.page section{margin-top:56px}.page h2{color:var(--muted);margin:0 0 10px;font-size:15px;font-weight:400}.rows{margin:0;padding:0;list-style:none}.rows li{align-items:center;gap:10px;min-width:0;padding:7px 0;display:flex;transition:transform var(--transition-fast)}.rows li>*{min-width:0}.rows a,.rows li>span:first-child,.rows .row-title-btn{color:var(--ink);text-decoration:none;flex-shrink:0;transition:color var(--transition-fast)}.rows a:hover,.rows .row-title-btn:hover{text-decoration:underline;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);text-underline-offset:3px}.row-title-btn{font:inherit;background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:9px;text-align:left}.logo-link{align-items:center;gap:9px;display:inline-flex}.logo-link img,.row-title-btn img{width:22px;height:22px;object-fit:contain;flex-shrink:0;display:block;transition:transform var(--transition-fast)}.work-row:hover .logo-link img,.work-row:hover .row-title-btn img{transform:scale(1.06)}.row-note{min-width:0;color:var(--muted);overflow-wrap:anywhere;font-size:13px}.row-meta{color:var(--faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px;flex-shrink:0}.page footer{color:var(--faint);margin-top:72px;font-size:13px}.dim{opacity:0;pointer-events:none;z-index:5;background:#060504b8;transition:opacity .5s ease;position:fixed;inset:0}.dim-on{opacity:1}.spotlit{z-index:10;position:relative}.page-transition{opacity:0;transition:opacity .6s ease-out}.page-transition.page-loaded{opacity:1}.fade-in-up{opacity:0}.page-loaded .fade-in-up{animation:fadeInUp .7s var(--transition-normal) forwards}.page-loaded .fade-in-up-delay-1{animation-delay:.08s}.page-loaded .fade-in-up-delay-2{animation-delay:.16s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.scroll-animate{opacity:0;transform:translateY(20px) scale(.99);filter:blur(3px);transition:opacity .65s cubic-bezier(.2,.8,.2,1),transform .65s cubic-bezier(.2,.8,.2,1),filter .65s cubic-bezier(.2,.8,.2,1);will-change:opacity,transform,filter}.scroll-animate.in-view{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.work-item-wrap{display:flex!important;flex-direction:column;align-items:stretch!important;gap:0!important}.work-item-wrap>.work-row{display:flex;align-items:center;gap:10px;width:100%}.row-drawer{margin-top:6px;margin-left:31px;padding:10px 14px;background:#181715;border-left:1.5px solid var(--line);border-radius:0 6px 6px 0;font-size:13px;color:var(--muted);animation:drawerSlideIn .25s cubic-bezier(.2,.8,.2,1) both}@keyframes drawerSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.drawer-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--ink);margin-bottom:6px}.drawer-ext{font-size:12px;color:var(--muted)!important}.drawer-bullets{margin:0;padding-left:16px;color:var(--muted)}.drawer-bullets li{display:list-item!important;padding:2px 0!important;margin:0!important;line-height:1.55}@media(max-width:480px){.page{padding-top:10vh}.rows .work-row{grid-template-columns:minmax(0,1fr) auto;gap:1px 10px;display:grid}.rows .work-row .logo-link,.rows .work-row .row-title-btn{min-width:0}.rows .work-row .row-note{grid-area:2 / 1 / auto / -1;padding-left:31px}.rows .work-row .row-meta{grid-area:1 / 2}.rows li .row-note{flex:1 1 0}.rows li .row-meta{flex:none}}@media(prefers-reduced-motion:reduce){.cv-box,.cv-corner,.fade-in-up,.scroll-animate{animation:none!important;transition:none!important;opacity:1!important;transform:none!important;filter:none!important}}
