*,:before,:after{box-sizing:border-box;margin:0;padding:0}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.32s;animation-timing-function:cubic-bezier(.4,0,.2,1)}.theme-switching,.theme-switching *,.theme-switching :before,.theme-switching :after{transition:none!important}@font-face{font-family:Redaction;src:url(../assets/fonts/redaction/redaction-35-latin-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Redaction;src:url(../assets/fonts/redaction/redaction-35-latin-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--bg:#fcfcfc;--surface:#fff;--card:#fff;--border:#e0e0e0;--text:#212223;--muted:#595959;--dot:#e8e8e8;--surface-alt:#f2f2f5;--container-max:800px;--padding-global:20px;--connector:#0000004d;--nav-glass:#fcfcfcd1;--highlight:#3b7ef429;--grid-line:#d4d9ea}[data-theme=dark]{--bg:#101010;--surface:#0b0b0b;--card:#0b0b0b;--border:#1e1e1e;--text:#eee;--muted:#dbdbdb;--dot:#1a1a1a;--surface-alt:#1a1a1c;--connector:#ffffff4d;--nav-glass:#0b0b0bd1;--highlight:#3b7ef447;--grid-line:#424766}@media (width>=640px){:root{--padding-global:32px}}.container{width:100%;max-width:var(--container-max);margin-inline:auto}.padding-global{padding:0 5%}.container-large{max-width:var(--container-max);margin:0 auto}html{scroll-behavior:smooth}body{color:var(--text);min-height:100vh;font-family:Hanken Grotesk,sans-serif;font-size:14px;line-height:1.6;transition:color .2s;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:Instrument Sans,sans-serif}.page-bg{background-color:var(--bg);min-height:100vh;transition:background-color .2s}@media (width>=1400px){.page-bg{--grid-half:calc(var(--container-max) / 2);--grid-margin:calc(50% - var(--grid-half) - 24px);--grid-step:calc(var(--grid-margin) / 2);background-image:repeating-linear-gradient(var(--grid-line) 0px, var(--grid-line) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-line) 0px, var(--grid-line) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-line) 0px, var(--grid-line) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-line) 0px, var(--grid-line) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-line) 0px, var(--grid-line) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-line) 0px, var(--grid-line) 1px, transparent 1px, transparent 6px);background-repeat:repeat-y;background-size:1px 6px;background-position:calc(50% - var(--grid-half)) 0, calc(50% + var(--grid-half)) 0, calc(50% - var(--grid-half) - var(--grid-step)) 0, calc(50% + var(--grid-half) + var(--grid-step)) 0, calc(50% - var(--grid-half) - var(--grid-step) * 2) 0, calc(50% + var(--grid-half) + var(--grid-step) * 2) 0}}.section-divider{background-image:repeating-linear-gradient(to right, var(--grid-line) 0px, var(--grid-line) 1px, transparent 1px, transparent 6px);background-repeat:repeat-x;background-size:6px 1px;width:100%;height:1px}header{z-index:1000;box-sizing:border-box;width:100%;padding:0;transition:padding .4s;position:sticky;top:12px}@media (width>=640px){header.is-floating{padding:0 16px}}.site-header{max-width:var(--container-max);background:0 0;border:1px solid #0000;border-radius:50px;margin:0 auto;transition:background .4s,border-color .4s,box-shadow .4s;overflow:hidden}.site-header-inner{justify-content:space-between;align-items:center;height:52px;padding:0;transition:padding .4s;display:flex}header .padding-global{transition:padding .4s}@media (width>=640px){.site-header.is-floating .padding-global{padding-left:0;padding-right:0}}@media (width>=1024px){header .padding-global{padding-left:0;padding-right:0}}.nav-left{align-items:center;gap:12px;min-width:0;transition:gap .3s;display:flex}.nav-logo-link{flex-shrink:0;align-items:center;max-width:40px;transition:opacity .3s,max-width .3s,margin .3s;display:flex}.nav-logo{width:auto;height:28px;display:block}.nav-logo--dark,[data-theme=dark] .nav-logo--light{display:none}[data-theme=dark] .nav-logo--dark{display:block}.nav-logo--me{object-fit:cover;width:28px;height:28px;box-shadow:0 0 0 1px var(--line);border-radius:50%}[data-theme=dark] .nav-logo--me{display:block}.site-header.is-floating .nav-left{gap:0}.site-header.is-floating .nav-logo-link{opacity:0;pointer-events:none;max-width:0;margin:0;overflow:hidden}.nav-back-group{align-items:center;gap:10px;display:flex}.nav-back-btn{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text);cursor:pointer;border-radius:100px;flex-shrink:0;align-items:center;gap:8px;padding:0 14px;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.nav-back-btn:hover{background:var(--border)}.nav-back-btn svg{flex-shrink:0;width:14px;height:14px}.nav-back-label{white-space:nowrap;font-family:Instrument Sans,sans-serif;font-size:12px;font-weight:500}.section-nav{background:#efefef;border:1px solid #00000014;border-radius:100px;flex-shrink:0;align-items:center;gap:4px;padding:2px;transition:background .2s,border-color .2s;display:none}[data-theme=dark] .section-nav{background:#0b0b0b;border-color:#ffffff14}@media (width>=900px){.section-nav{display:flex}}.section-nav-link{height:32px;color:var(--muted);white-space:nowrap;border-radius:100px;align-items:center;padding:0 14px;font-family:Instrument Sans,sans-serif;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .25s,color .25s;display:inline-flex}.section-nav-label{font-size:12px}.section-nav-link:hover,.section-nav-link.is-active{color:var(--text);background:#fafafa}[data-theme=dark] .section-nav-link:hover,[data-theme=dark] .section-nav-link.is-active{background:#242424}.section-nav-icon{opacity:0;flex-shrink:0;justify-content:center;align-items:center;width:0;margin-right:0;transition:width .4s cubic-bezier(.34,1.56,.64,1),margin-right .4s cubic-bezier(.34,1.56,.64,1),transform .4s cubic-bezier(.34,1.56,.64,1),opacity .25s;display:inline-flex;overflow:hidden;transform:scale(.4)rotate(-20deg)}.section-nav-icon svg{flex-shrink:0}.section-nav-link.is-active .section-nav-icon{opacity:1;width:14px;margin-right:6px;transform:scale(1)rotate(0)}.header-actions{align-items:center;gap:12px;display:flex}.nav-toggle{background:var(--surface);border:1px solid var(--border);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}@media (width<=899px){.nav-toggle{display:inline-flex}.header-actions .theme-switch,.header-actions .btn-resume{display:none}}.mobile-menu{z-index:1500;visibility:hidden;pointer-events:none;transition:visibility 0s linear .35s;position:fixed;inset:0}.mobile-menu.is-open{visibility:visible;pointer-events:auto;transition-delay:0s}@media (width>=1200px){.mobile-menu{display:none!important}}.mobile-menu-scrim{opacity:0;background:#00000080;transition:opacity .3s;position:absolute;inset:0}.mobile-menu.is-open .mobile-menu-scrim{opacity:1}.mobile-menu-panel{background:var(--card);border:1px solid var(--border);opacity:0;border-radius:24px;padding:20px;transition:opacity .25s,transform .3s cubic-bezier(.22,1,.36,1);position:absolute;top:12px;left:12px;right:12px;transform:translateY(-20px);box-shadow:0 12px 32px #00000040}.mobile-menu.is-open .mobile-menu-panel{opacity:1;transform:translateY(0)}.mobile-menu-top{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.mobile-menu-close{background:var(--surface);border:1px solid var(--border);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.mobile-menu-links{flex-direction:column;display:flex}.mobile-menu-link{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:16px 0;text-decoration:none;display:flex}.mobile-menu-link:last-child{border-bottom:none}.mobile-menu-link-label{font-family:Instrument Sans,sans-serif;font-size:16px;font-weight:600}.mobile-menu-link-desc{color:var(--muted);text-align:right;font-size:14px}.mobile-menu-bottom{justify-content:space-between;align-items:center;gap:12px;margin-top:20px;display:flex}.btn-resume-label{font-size:12px;display:inline}.btn-secondary.btn-resume{padding:0 10px}@media (width>=480px){.btn-secondary.btn-resume{padding:0 12px}}.btn-resume .btn-resume-arrow{display:none}@media (width>=480px){.btn-resume .btn-resume-arrow{opacity:0;width:0;margin-left:0;transition:width .25s,opacity .25s,margin-left .25s;display:inline-flex;overflow:hidden}a:hover .btn-resume .btn-resume-arrow,.btn-resume:hover .btn-resume-arrow{opacity:1;width:14px;margin-left:6px}}@media (hover:none){.btn-resume .btn-resume-arrow{opacity:1;width:14px;margin-left:6px;display:inline-flex}}.btn-primary{background:var(--text);height:36px;color:var(--bg);letter-spacing:0;border-radius:50px;align-items:center;padding:0 16px;font-family:Instrument Sans,sans-serif;font-size:12px;font-weight:500;text-decoration:none;transition:opacity .15s;display:inline-flex}.btn-primary:hover{opacity:.75}.btn-secondary{background:var(--surface);height:36px;color:var(--text);border:1px solid var(--border);letter-spacing:0;border-radius:50px;align-items:center;padding:0 16px;font-family:Instrument Sans,sans-serif;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn-secondary:hover{background:#ebebeb}[data-theme=dark] .btn-secondary:hover{background:#1a1a1a}.btn-resume-arrow{align-items:center;display:inline-flex}.btn-resume-arrow svg{flex-shrink:0;width:14px;height:14px}.page-hero .btn-secondary:hover{opacity:.65;background:0 0;border-color:#0000}.theme-switch{background:var(--surface);border:1px solid var(--border);border-radius:100px;flex-shrink:0;align-items:center;gap:2px;padding:4px;transition:background .2s,border-color .2s;display:flex}.theme-option{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.theme-option:hover{color:var(--text)}.theme-option.is-active{background:var(--border);color:var(--text)}.hero{padding-top:80px;padding-bottom:80px}.hero-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:24px;font-size:12px}.hero h1{letter-spacing:0;color:var(--text);margin-bottom:12px;font-family:Redaction,serif;font-size:52px;font-weight:400;line-height:1.1}.hero-sub{color:var(--muted);letter-spacing:0;font-family:Hanken Grotesk,sans-serif;font-size:52px;font-weight:400;line-height:1.1}.hero-tags{flex-wrap:wrap;gap:8px;margin-top:40px;display:flex}.hero-tag{color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:20px;padding:5px 12px;font-size:12px}.carousel-section{padding-top:80px;padding-bottom:80px}.carousel-viewport{width:100%;position:relative;overflow:hidden visible}.carousel-track{will-change:transform;gap:20px;transition:transform .45s cubic-bezier(.4,0,.2,1);display:flex}.carousel-slide{--slide-bezel:var(--surface);aspect-ratio:624/480;border:1px solid var(--border);cursor:pointer;background:var(--slide-bezel);border-radius:16px;flex-shrink:0;width:min(530px,90vw - 100px);height:auto;padding:4px;position:relative}[data-theme=dark] .carousel-slide{--slide-bezel:#0b0b0b;border-color:#ffffff14;box-shadow:0 12px 28px #00000059}.carousel-slide-clip{border-radius:12px;width:100%;height:100%;position:relative;overflow:hidden}.carousel-slide-clip:after{content:"";background:linear-gradient(to bottom, transparent, var(--slide-bezel));pointer-events:none;height:22%;position:absolute;inset:auto 0 0}.carousel-frame-wrap{transform-origin:50%;position:absolute;top:50%;left:50%}.carousel-frame-wrap iframe{border:0;display:block}.carousel-slide img{object-fit:cover;width:100%;height:100%;display:block}.carousel-slide--lottie lottie-player{width:100%;height:100%;display:block}.carousel-fade{pointer-events:none;z-index:1;width:90px;position:absolute;top:0;bottom:0}.carousel-fade-left{background:linear-gradient(to right, var(--bg) 0%, transparent 100%);left:0}.carousel-fade-right{background:linear-gradient(to left, var(--bg) 0%, transparent 100%);right:0}.carousel-controls{justify-content:center;gap:10px;margin-top:24px;display:flex}.carousel-controls--inline{margin-top:0}.section-cta{justify-content:center;margin-top:24px;display:flex}.carousel-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s,transform .1s;display:flex}.carousel-btn:hover{background:var(--card)}.carousel-btn:active{background:var(--card);transform:scale(.88)}.carousel-btn:disabled{opacity:.35;cursor:default}.section{padding-top:80px;padding-bottom:80px}#work,#shipped,#motion,#about,#writing{scroll-margin-top:90px}.section-header{align-items:center;gap:12px;margin-bottom:36px;display:flex}.section-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);white-space:nowrap;font-size:12px;font-weight:500}.cards-grid{grid-template-columns:repeat(2,1fr);gap:32px;display:grid}.card{cursor:pointer;color:inherit;text-decoration:none;display:block}.card-thumb{aspect-ratio:16/10;border:1px solid var(--border);border-radius:12px;width:100%;margin-bottom:14px;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%;image-rendering:-webkit-optimize-contrast;display:block;transform:translateZ(0)}.card-thumb img.card-thumb-dark,[data-theme=dark] .card-thumb img.card-thumb-light{display:none}[data-theme=dark] .card-thumb img.card-thumb-dark{display:block}.card-thumb-placeholder{background:var(--surface);width:100%;height:100%;color:var(--muted);text-align:center;justify-content:center;align-items:center;padding:16px;font-size:14px;display:flex}.card-body{padding:0}.section-title{letter-spacing:0;color:var(--text);margin-bottom:20px;font-size:24px;font-weight:500;line-height:1.2}h3.section-title{font-size:20px}.card-meta{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.card-meta-item{border:1px solid var(--border);height:26px;color:var(--text);background:#efefef;border-radius:100px;align-items:center;padding:0 10px;font-family:Geist Mono,monospace;font-size:12px;font-weight:500;line-height:1;display:inline-flex}[data-theme=dark] .card-meta-item{background:#0b0b0b}.card.is-hidden{display:none}.sites-tools{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:4px;padding:3px;display:inline-flex}.sites-tool{border-radius:7px;justify-content:center;align-items:center;width:26px;height:26px;display:flex;box-shadow:inset 0 1px #ffffff1f}.sites-tool--figma,.sites-tool--claude{background:#1e1e1e}.sites-grid{grid-template-columns:repeat(2,1fr);gap:32px;display:grid}.card--site .card-thumb{aspect-ratio:16/10}.card--site .card-thumb img{object-position:top;transition:object-position 6s cubic-bezier(.45,0,.55,1)}.card--site:hover .card-thumb img,.card--site:focus-visible .card-thumb img{object-position:bottom}@media (prefers-reduced-motion:reduce){.card--site .card-thumb img{transition:none}.card--site:hover .card-thumb img,.card--site:focus-visible .card-thumb img{object-position:top}}@media (width<=580px){.sites-grid{grid-template-columns:1fr;gap:24px}}.work-switcher{flex-shrink:0;position:relative}.work-switcher-trigger{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text);cursor:pointer;border-radius:50px;align-items:center;gap:8px;padding:0 12px;font-family:Instrument Sans,sans-serif;font-size:12px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.work-switcher-trigger:hover{background:#ebebeb}[data-theme=dark] .work-switcher-trigger:hover{background:#1a1a1a}.work-switcher-icon{background:var(--border);width:20px;height:20px;color:var(--muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.work-switcher-icon img{object-fit:cover;width:100%;height:100%;display:block}.work-switcher-icon--avatar{border-radius:50%}.work-switcher-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}.work-switcher.is-open .work-switcher-chevron{transform:rotate(180deg)}.work-switcher-menu{background:var(--card);border:1px solid var(--border);opacity:0;visibility:hidden;z-index:20;border-radius:14px;min-width:190px;padding:6px;transition:opacity .18s,transform .2s cubic-bezier(.22,1,.36,1),visibility 0s linear .18s;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-6px);box-shadow:0 12px 32px #00000026}[data-theme=dark] .work-switcher-menu{box-shadow:0 12px 32px #0006}.work-switcher.is-open .work-switcher-menu{opacity:1;visibility:visible;transition:opacity .18s,transform .2s cubic-bezier(.22,1,.36,1);transform:translateY(0)}.work-switcher-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px;font-family:Instrument Sans,sans-serif;font-size:14px;display:flex}.work-switcher-item:hover{background:var(--border)}.work-switcher-item-label{flex:1}.work-switcher-check{opacity:0;flex-shrink:0}.work-switcher-item.is-selected .work-switcher-check{opacity:1}.card-title{color:var(--text);letter-spacing:0;margin-bottom:0;font-size:16px;font-weight:500;line-height:1.3}.page-hero{padding-top:80px;padding-bottom:40px}.page-hero h1{letter-spacing:0;margin-bottom:16px;font-size:48px;font-weight:500;line-height:1.15}footer{padding:80px 0 28px;overflow:hidden}.footer-contact{margin-bottom:0}.footer-contact-heading{letter-spacing:0;color:var(--text);margin-bottom:10px;font-family:Instrument Sans,sans-serif;font-size:32px;font-weight:600;line-height:1.2}.footer-contact-sub{color:var(--muted);margin-bottom:20px;font-size:16px;line-height:1.6}.footer-mailto-link{color:var(--text);text-decoration:none}.footer-mailto-link:hover{text-decoration:underline}@media (width<=640px){.footer-mailto-link{text-decoration:underline}}.footer-contact-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-name{letter-spacing:0;white-space:nowrap;color:#0000;-webkit-text-stroke:1.5px var(--text);user-select:none;font-family:Instrument Sans,sans-serif;font-weight:600;line-height:.88}@media (width<=810px){.cards-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=580px){:root{--menu-w:min(300px, 85vw)}.cards-grid{grid-template-columns:1fr;gap:16px}.footer-inner{flex-direction:column;align-items:flex-start;gap:12px}.menu-panel-inner{padding:40px 28px 40px 40px}.carousel-slide{aspect-ratio:4/3;width:min(530px,90vw - 24px)}.section{padding-top:48px;padding-bottom:48px}footer{padding:56px 0 24px}.footer-contact-heading{font-size:26px}.writing-title{-webkit-line-clamp:2}.writing-row{gap:12px}.writing-thumb{display:none}}.hero--dt{padding:0;overflow:hidden}.hero-dt-stage{opacity:0;padding:120px 0;transition:opacity .5s}.hero-dt-stage.is-ready{opacity:1}.dt-annot{color:#737373;white-space:nowrap;letter-spacing:0;background:#0000000a;border:1px solid #0000001a;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-family:Geist Mono,monospace;font-size:12px;font-weight:400;line-height:1.4;display:inline-flex}[data-theme=dark] .dt-annot{color:#ffffff80;background:#ffffff0d;border-color:#ffffff1a}.dt-annot code{font-family:inherit;font-size:inherit;color:inherit;background:0 0;padding:0}.dt-color-chip{margin-bottom:28px}.dt-swatch{background:var(--bg);border:1px solid var(--border);border-radius:3px;flex-shrink:0;width:13px;height:13px}.hero-dt-body{margin-bottom:0}.hero-dt-top-row{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.hero-dt-top-row .dt-color-chip{margin-bottom:0}.hero-lottie{display:none}.hero-dt-text-row{align-items:flex-start;gap:20px;display:flex}.hero--dt{font-family:Instrument Sans,sans-serif}.hero--dt h1{color:var(--text);letter-spacing:0;margin:0;font-family:Instrument Sans,sans-serif;font-size:48px;font-weight:600;line-height:1.1}.hero-dt-display{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.hero-dt-display p{margin:0}.hero-dt-line{letter-spacing:0;font-weight:400;line-height:1.1;display:block}.hd-l1{border-top:1px solid #3b7ef4;border-bottom:1px solid #3b7ef4}.scramble-tail{opacity:.45}.text-highlight{background-image:linear-gradient(var(--highlight), var(--highlight));-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 0;background-repeat:no-repeat;background-size:0% 100%;transition:background-size .6s cubic-bezier(.65,0,.35,1)}.text-highlight.is-highlighted{background-size:100% 100%}.hd-l1-row{align-items:center;gap:12px;margin-bottom:0;display:flex}.hd-l2{color:var(--muted);letter-spacing:0;font-family:Hanken Grotesk,sans-serif;font-size:48px;font-weight:500}.accent{font-family:Redaction,serif;font-style:italic}.inline-brand-link{color:#3661ed;vertical-align:-6.5px;align-items:center;gap:0;font-weight:500;text-decoration:none;display:inline-flex}[data-theme=dark] .inline-brand-link{color:#fff}.inline-brand-link svg{fill:currentColor;flex-shrink:0}.hd-alive{background:#3b7ef41a;border-radius:2px;padding:2px 4px 6px 6px;font-family:Redaction,serif;font-style:italic;display:inline-block;position:relative}.dt-sel-box{pointer-events:none;border:1.5px solid #3b7ef4;border-radius:2px;position:absolute;inset:0}.dt-h{background:var(--bg);border:1.5px solid #3b7ef4;border-radius:1px;width:6px;height:6px;display:block;position:absolute}.dt-h.tl{top:-3px;left:-3px}.dt-h.tr{top:-3px;right:-3px}.dt-h.bl{bottom:-3px;left:-3px}.dt-h.br{bottom:-3px;right:-3px}.dt-xheight-col{flex-shrink:0;align-items:center;gap:6px;display:flex}.dt-xh-bar{flex-shrink:0;overflow:visible}.dt-xh-bar circle,.dt-xh-bar line{stroke:var(--connector);transition:stroke .2s}.dt-font-row{justify-content:flex-end;margin-top:10px;padding-right:8px;display:flex}.dt-alive-group{vertical-align:middle;align-items:center;gap:0;margin-left:8px;display:inline-flex}.dt-alive-connector{flex-shrink:0;width:24px;height:8px;display:block;position:relative}.dt-alive-connector:before{content:"";border-top:1px dashed var(--connector);height:0;position:absolute;top:50%;left:8px;right:0;transform:translateY(-50%)}.dt-alive-connector:after{content:"";border:1.5px solid var(--connector);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.hero-dt-meta{align-items:center;gap:10px;display:flex}.hero-dt-avatar{background:var(--card);border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:26px;height:26px;display:block}.hero-dt-byline{color:var(--muted);font-size:14px}.hero-dt-cta-row{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.hero-dt-cta{background:var(--text);width:100%;height:48px;color:var(--bg);cursor:pointer;letter-spacing:0;border:none;border-radius:100px;flex-shrink:0;justify-content:center;align-items:center;padding:0 12px;font-family:Instrument Sans,sans-serif;font-size:16px;font-weight:500;text-decoration:none;transition:opacity .15s;display:inline-flex}.hero-dt-cta:hover{opacity:.75}@media (width>=900px){.hero-dt-cta{width:256px}}.dt-cta-label{align-items:center;gap:0;display:inline-flex}.section--experience{padding-top:0}.exp-list{border-top:1px solid var(--border);flex-direction:column;display:flex}.exp-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 0;display:flex}.exp-logo{border-radius:8px;flex-shrink:0;width:32px;height:32px;overflow:hidden}.exp-company{color:var(--text);font-size:18px;font-weight:500}.exp-meta{color:var(--muted);font-size:14px}.section--writing{padding-bottom:80px}.writing-list{flex-direction:column;gap:12px;display:flex}.writing-row{color:inherit;border-radius:12px;align-items:center;gap:16px;margin:0 -8px;padding:10px 8px;text-decoration:none;transition:background .15s,box-shadow .15s;display:flex}.writing-row:hover{background:var(--surface);box-shadow:0 2px 12px #00000014}.writing-thumb{background:var(--card);border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;width:44px;height:52px;padding:8px 7px;display:flex;box-shadow:0 1px 4px #00000014}.wt-line{background:var(--border);border-radius:100px;height:3px;display:block}.wt-line:first-child{width:50%}.wt-line:nth-child(2){width:100%}.wt-line:nth-child(3){width:75%}.wt-line:nth-child(4){width:62%}.wt-line:nth-child(5){width:38%}.writing-info{flex:1;min-width:0}.writing-title{-webkit-line-clamp:2;color:var(--text);-webkit-box-orient:vertical;margin-bottom:4px;font-family:Instrument Sans,sans-serif;font-size:16px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.writing-meta{justify-content:space-between;align-items:center;display:flex}.writing-date{color:var(--muted);font-family:Hanken Grotesk,sans-serif;font-size:12px}.writing-read{color:var(--text);opacity:0;align-items:center;gap:4px;font-size:12px;font-weight:500;transition:opacity .15s;display:inline-flex}.writing-row:hover .writing-read{opacity:1}#writing-preview{opacity:0;pointer-events:none;z-index:200;background:var(--card);border-radius:12px;width:240px;height:135px;transition:opacity .22s,transform .32s cubic-bezier(.34,1.56,.64,1);position:fixed;overflow:hidden;transform:scale(.86);box-shadow:0 8px 28px #00000038}#writing-preview.is-visible{opacity:1;transform:scale(1)}#writing-preview img{object-fit:cover;width:100%;height:100%;display:block}.hero-social{margin-top:20px}.hero-social-links{gap:16px;display:flex}.social-link{justify-content:center;align-items:center;text-decoration:none;display:flex}.social-icon-mask{background-color:var(--text);width:24px;height:24px;transition:background-color .15s;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.social-icon-mask--linkedin{-webkit-mask-image:url("../assets/social-icons/LinkedIn - Dark.svg");mask-image:url("../assets/social-icons/LinkedIn - Dark.svg")}.social-icon-mask--behance{-webkit-mask-image:url("../assets/social-icons/Behance - Dark.svg");mask-image:url("../assets/social-icons/Behance - Dark.svg")}.social-icon-mask--dribbble{-webkit-mask-image:url("../assets/social-icons/Dribbble - Dark.svg");mask-image:url("../assets/social-icons/Dribbble - Dark.svg")}.social-icon-mask--medium{-webkit-mask-image:url("../assets/social-icons/Medium - Dark.svg");mask-image:url("../assets/social-icons/Medium - Dark.svg")}.social-link[aria-label=LinkedIn]:hover .social-icon-mask{background-color:#0a66c2}.social-link[aria-label=Behance]:hover .social-icon-mask{background-color:#0057ff}.social-link[aria-label=Dribbble]:hover .social-icon-mask{background-color:#b7519a}.social-link[aria-label=Medium]:hover .social-icon-mask{background-color:#000}.social-icon{display:block}.social-icon--dark,[data-theme=dark] .social-icon--light{display:none}[data-theme=dark] .social-icon--dark{display:block}.section--about{padding-top:80px;padding-bottom:80px}.about-grid{grid-template-columns:1.5fr .5fr;align-items:start;gap:48px;display:grid}.about-text-col{font-size:18px}.expertise-list{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.expertise-item{border:1px solid var(--border);height:36px;color:var(--text);background:#efefef;border-radius:100px;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:500;display:inline-flex;position:relative}[data-theme=dark] .expertise-item{background:#0b0b0b}.expertise-item:after{content:attr(data-tooltip);background:var(--text);width:220px;color:var(--bg);text-align:left;white-space:normal;opacity:0;pointer-events:none;z-index:20;border-radius:10px;padding:12px 14px;font-size:12px;font-weight:400;line-height:1.5;transition:opacity .2s,transform .2s;position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)translate(6px);box-shadow:0 8px 24px #0003}.expertise-item:before{content:"";border:6px solid #0000;border-left-color:var(--text);opacity:0;pointer-events:none;z-index:20;transition:opacity .2s;position:absolute;top:50%;right:calc(100% + 6px);transform:translateY(-50%)}.expertise-item:hover:after,.expertise-item:hover:before{opacity:1}.expertise-icon{color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.body-text,.about-eyebrow{color:var(--muted);margin-bottom:12px;font-size:16px;line-height:1.75}[data-theme=dark] .body-text,[data-theme=dark] .about-eyebrow,[data-theme=dark] li{color:#dbdbdb}.body-text:last-child{margin-bottom:0}@media (width<=640px){.dt-xheight-col,.dt-cta-label{display:none}.dt-font-row{justify-content:flex-start}.hero-dt-stage{padding:80px 0}.hero--dt h1.hd-l1,.hd-l2{font-size:36px}.hero-dt-stage{flex-direction:column;display:flex}.dt-color-chip{order:1;width:fit-content}.hero-dt-body{order:2}.hero-dt-cta-row{flex-direction:column;order:3;align-items:stretch;width:100%;margin-top:12px}.about-grid{grid-template-columns:1fr}.about-expertise-col{padding-left:0}.expertise-list{flex-flow:wrap}.section-title{font-size:22px}h3.section-title{font-size:18px}.card-title{font-size:14px}}.cs-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:16px;font-size:12px;display:block}.cs-meta{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:0;margin-bottom:0;padding:18px 0;display:flex}.cs-meta-item{align-items:baseline;gap:6px;display:inline-flex}.cs-meta-item+.cs-meta-item:before{content:"·";color:var(--border);padding:0 14px;font-size:16px}.cs-meta--3col{border-top:none;grid-template-columns:repeat(3,1fr);align-items:start;gap:24px;display:grid}.cs-meta--3col .cs-meta-item{flex-direction:column;align-items:flex-start;gap:4px}.cs-meta--3col .cs-meta-item+.cs-meta-item:before{display:none}.cs-meta--3col .cs-meta-label,.cs-meta--3col .cs-meta-value{font-size:16px}.cs-meta-label{text-transform:none;letter-spacing:0;color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.cs-meta-label i{justify-content:center;align-items:center;width:14px;height:14px;font-size:14px;line-height:1;display:inline-flex;overflow:hidden}.cs-meta-value{color:var(--text);font-size:12px;line-height:1.5}.cs-meta--stacked{border:none;flex-direction:column;align-items:stretch;gap:8px;margin-top:32px;display:flex}.cs-meta--stacked .cs-meta-item{flex-direction:row;align-items:center;gap:24px}.cs-meta--stacked .cs-meta-item+.cs-meta-item:before{content:none}.cs-meta--stacked .cs-meta-label{flex:0 0 90px;font-size:14px;line-height:1.3}.cs-meta--stacked .cs-meta-value{flex:1;min-width:0;font-size:16px;line-height:1.3}.cs-meta-duration-count{color:var(--muted)}.cs-meta-duration-count:before{content:"("}.cs-meta-duration-count:after{content:")"}@media (width<=480px){.cs-meta--stacked .cs-meta-item{flex-direction:column;align-items:flex-start;gap:2px}.cs-meta--stacked .cs-meta-label{flex-basis:auto}}.cs-cover-wrap{margin:48px 0}.cs-cover{background:var(--surface);border-radius:8px;overflow:hidden}.cs-cover-img{object-fit:cover;width:100%;height:420px;display:block}.cs-body{padding-bottom:80px}@media (width>=1400px){.cs-toc{z-index:20;opacity:1;flex-direction:column;align-items:flex-start;gap:12px;max-width:150px;transition:opacity .25s;display:flex;position:fixed;top:50%;left:24px;transform:translateY(-50%)}.cs-toc.is-hidden{opacity:0;pointer-events:none}}.cs-toc-link{color:var(--muted);align-items:flex-start;gap:10px;font-size:12px;font-weight:500;line-height:1.4;text-decoration:none;transition:color .2s;display:flex}.cs-toc-link:before{content:"";width:var(--bar-w,6px);background:var(--border);border-radius:2px;flex-shrink:0;height:4px;margin-top:8px;transition:width .4s cubic-bezier(.22,1,.36,1),background .2s;display:inline-block}.cs-toc-label{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.cs-toc-link:hover{color:var(--text)}.cs-toc-link.is-active{color:var(--text);font-weight:600}.cs-toc-link.is-active:before{background:var(--text)}.cs-section{margin-bottom:0;padding-top:40px;padding-bottom:40px}.cs-section:first-child{padding-top:40px}.cs-section .section-title{margin-top:40px}.cs-section .section-title:first-of-type{margin-top:0}.page-sage .section-title{font-weight:600}.page-sage .cs-decision-value,.page-sage .cs-annotated-list li{font-size:16px}.page-sage .cs-comparison-title{font-weight:500}.cs-section h3:not(.section-title){color:var(--text);margin-top:32px;margin-bottom:12px;font-size:20px;font-weight:500;line-height:1.3}.cs-note{color:var(--muted);opacity:.5;margin:12px 0 20px;font-family:Hanken Grotesk,sans-serif;font-size:12px;display:block}.cs-list{margin-top:12px;margin-bottom:16px;padding-left:20px}.cs-list li{color:var(--muted);margin-bottom:10px;font-size:16px;line-height:1.8}.cs-list li strong{color:var(--text);font-weight:500}.resume-logo-row{padding-top:56px;padding-bottom:8px}.resume-logo{height:32px}.resume-entry{margin-bottom:40px}.resume-entry:last-child{margin-bottom:0}.resume-entry-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.cs-section img.resume-entry-logo{width:24px;height:24px;box-shadow:none;object-fit:contain;border-radius:6px;flex-shrink:0;margin:0}.cs-section h3.resume-entry-title{color:var(--text);margin:0;font-size:16px;font-weight:600;line-height:1.3}.resume-entry-date{color:var(--muted);margin-bottom:10px;font-size:12px;display:block}.resume-entry-summary{color:var(--text);margin-bottom:8px;font-size:14px;font-weight:500;line-height:1.6}.resume-entry-summary:last-child{margin-bottom:0}.resume-entry-highlights{flex-direction:column;gap:5px;list-style:none;display:flex}.resume-entry-highlights li{color:var(--muted);padding-left:14px;font-size:14px;line-height:1.6;position:relative}.resume-entry-highlights li:before{content:"•";color:var(--muted);position:absolute;left:0}.page-resume .cs-section .section-title{margin-bottom:16px;font-size:24px}.page-resume .cs-section{padding-top:28px;padding-bottom:28px}.page-resume .cs-section:first-child{padding-top:80px}.page-resume .resume-skill-label{font-size:12px}.resume-skill-group{margin-bottom:24px}.resume-skill-group:last-child{margin-bottom:0}.resume-skill-label{color:var(--muted);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.resume-skill-tags{color:var(--text);font-size:14px;line-height:1.6}.cs-persona-intro{align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.cs-persona-intro p{flex:1;margin:0!important}.cs-persona-intro img{object-fit:cover;border-radius:12px;flex-shrink:0;width:150px!important;height:150px!important;box-shadow:none!important}.cs-problem-list{flex-direction:column;gap:12px;margin-top:20px;display:flex}.cs-problem-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:16px;padding:20px 24px;display:flex}.cs-problem-num{color:var(--muted);opacity:.6;flex-shrink:0;min-width:28px;padding-top:4px;font-family:Geist Mono,monospace;font-size:12px;font-weight:500}.cs-problem-title{font-weight:500;color:var(--text)!important;margin-top:0!important;margin-bottom:6px!important;font-size:16px!important}.cs-problem-list--3col{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px;display:grid}.cs-problem-list--3col .cs-problem-item{flex-direction:column;gap:12px;padding:20px}.cs-problem-list--3col .cs-problem-num{letter-spacing:.06em;text-transform:uppercase;color:var(--text);opacity:1;min-width:unset;padding-top:0;font-size:12px;font-weight:600}.cs-principles{border-top:1px solid var(--border);flex-direction:column;margin-top:24px;display:flex}.cs-principle{border-bottom:1px solid var(--border);padding:24px 0}.cs-principle-title{font-weight:500;color:var(--text)!important;margin-bottom:8px!important;font-size:16px!important}.cs-empathy-map{flex-direction:column;gap:8px;margin-top:24px;display:flex}.cs-empathy-row{background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;gap:40px;padding:24px;display:flex}.cs-empathy-row:nth-child(odd){flex-direction:row-reverse}.cs-empathy-row img{box-shadow:none!important;border-radius:0!important;width:auto!important}.cs-empathy-text{flex:1;min-width:0}.cs-empathy-text .cs-problem-title{margin-bottom:12px!important}.cs-outcomes{flex-direction:column;gap:12px;margin-top:24px;display:flex}.cs-outcome{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:20px 24px}.cs-outcome-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.cs-outcome-header i{color:#166534;flex-shrink:0;width:20px;height:20px;font-size:20px}.cs-outcome p{color:var(--muted);font-size:16px;line-height:1.7;margin-bottom:0!important}[data-theme=dark] .cs-outcome{background:#052e16}[data-theme=dark] .cs-outcome-header i,[data-theme=dark] .cs-outcome p{color:#fff}.cs-outcomes--3{flex-direction:unset;border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.cs-outcomes--3 .cs-outcome{border-bottom:none;border-right:1px solid var(--border);padding:32px 32px 32px 0}.cs-outcomes--3 .cs-outcome:last-child{border-right:none;padding-right:0}.cs-outcomes--3 .cs-outcome+.cs-outcome{padding-left:32px}.cs-outcome-stat{letter-spacing:0;font-family:Instrument Sans,sans-serif;font-weight:500;color:#166534!important;margin-bottom:20px!important;font-size:20px!important;line-height:1.1!important}[data-theme=dark] .cs-outcome-stat{color:#fff!important}.cs-section--reflection{border-top:1px solid var(--border);background:0 0;border-bottom:none;border-left:none;border-right:none;border-radius:0;padding-top:48px;padding-bottom:48px}.cs-live-link{margin-top:20px;font-size:14px;display:inline-flex}.cs-img-placeholder{aspect-ratio:16/10;background:var(--surface);border:1px dashed var(--border);text-align:center;width:100%;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;margin:16px 0;padding:24px;font-size:14px;line-height:1.6;display:flex}.cs-highlight{color:var(--text);margin:40px 0;padding:4px 0 4px 44px;font-family:Redaction,serif;font-size:20px;font-weight:400;line-height:1.4;position:relative}.cs-highlight:before{content:"“";color:var(--border);font-family:Redaction,serif;font-size:48px;line-height:1;position:absolute;top:-.22em;left:0}.cs-highlight mark{color:inherit;background:#ff950040;border-radius:3px;padding:0 2px}[data-theme=dark] .cs-highlight mark{background:#ff950059}.cs-decision{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;margin:24px 0;padding:20px 24px;display:flex}.cs-decision-icon{width:48px;height:48px;color:var(--text);flex-shrink:0;justify-content:center;align-items:center;font-size:48px;line-height:1;display:inline-flex;overflow:hidden}.cs-decision-row{flex-direction:column;gap:4px;display:flex}.cs-decision-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.cs-decision-value{color:var(--text);font-size:16px;line-height:1.6}.cs-decision--open{background:0 0;border:none;gap:0;padding:0}.cs-decision--open .cs-decision-row{border-top:1px solid var(--border);flex-direction:row;align-items:flex-start;gap:16px;padding:28px 0}.cs-decision--open .cs-decision-row:first-of-type{border-top:none;padding-top:0}.cs-decision-row-icon{width:32px;height:32px;color:var(--text);flex-shrink:0;justify-content:center;align-items:center;font-size:32px;line-height:1;display:inline-flex;overflow:hidden}.cs-decision-row-body{flex-direction:column;gap:8px;display:flex}.cs-decision--open .cs-decision-row:last-of-type{padding-bottom:0}.cs-decision--open .cs-decision-value{font-size:16px}.cs-content-grid{background:var(--bg);border:1px solid var(--border);border-radius:16px;grid-template-columns:repeat(2,1fr);gap:16px;margin:24px 0;padding:16px;display:grid}.cs-content-grid-item{background:var(--card);border-radius:12px;padding:24px}.cs-content-grid-item .cs-card-title{margin-bottom:8px}.cs-content-grid-item .cs-card-desc strong{color:var(--text);font-weight:600}@media (width<=640px){.cs-content-grid{grid-template-columns:1fr}}.cs-quote{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin:24px 0;padding:24px 28px}.cs-quote-text{color:var(--text);font-size:16px;line-height:1.7}.cs-quote-role{color:var(--text);font-weight:600}.cs-quote-text mark{color:inherit;background:#ff950040;border-radius:3px;padding:0 2px}[data-theme=dark] .cs-quote-text mark{background:#ff950059}.cs-comparison{grid-template-columns:1fr 1fr;gap:16px;margin:24px 0;display:grid}.cs-comparison-col{background:var(--surface-alt);border:1px solid var(--border);border-radius:12px;padding:24px}.cs-comparison-title{color:var(--text);margin-bottom:12px;font-size:16px;font-weight:600}.cs-comparison-text{color:var(--muted);font-size:16px;line-height:1.6}.cs-comparison-item{margin-bottom:14px}.cs-comparison-item:last-child{margin-bottom:0}.cs-comparison-item strong{color:var(--text);font-weight:600}.cs-comparison-item em{color:var(--muted);font-style:italic}.cs-comparison-item p{color:var(--muted);margin-top:4px;font-size:14px;line-height:1.6}.cs-comparison-icon{width:56px;height:56px;box-shadow:none;border-radius:0;margin:0 0 12px}@media (width<=640px){.cs-comparison{grid-template-columns:1fr}}.cs-rejected{background:#fef2f2;border:1px solid #fecaca;border-radius:16px;margin:24px 0;padding:24px}[data-theme=dark] .cs-rejected{background:#2d0a0a;border-color:#ef44444d}.cs-rejected-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.cs-rejected-icon{color:#dc2626;flex-shrink:0;font-size:20px}[data-theme=dark] .cs-rejected-icon{color:#f87171}.cs-rejected-title{color:var(--text);font-size:18px;font-weight:600}.cs-rejected-desc{color:var(--muted);margin-bottom:16px}.cs-rejected .cs-img-placeholder{margin:0 0 16px}.cs-rejected-quote{color:var(--text);line-height:1.7}.cs-rejected-quote mark{color:inherit;background:#dc262626;border-radius:3px;padding:0 2px}[data-theme=dark] .cs-rejected-quote mark{background:#f8717140}.cs-phase-badge{color:#c2410c;letter-spacing:.02em;text-transform:uppercase;background:#fed7aa;border-radius:100px;align-items:center;margin-bottom:12px;padding:4px 14px;font-size:12px;font-weight:600;display:inline-flex}[data-theme=dark] .cs-phase-badge{color:#fb923c;background:#fb923c26}.cs-list--icon{flex-direction:column;gap:10px;padding-left:0;list-style:none;display:flex}.cs-list--icon li{align-items:flex-start;gap:10px;display:flex}.cs-list--icon li i{flex-shrink:0;margin-top:5px;font-size:18px}.cs-list--green li i{color:#16a34a}.cs-list--red li i{color:#dc2626}.cs-list--blue li i{color:#2563eb}.cs-list--teal li i{color:#0d9488}.cs-list--orange li i{color:#ea580c}[data-theme=dark] .cs-list--green li i{color:#4ade80}[data-theme=dark] .cs-list--red li i{color:#f87171}[data-theme=dark] .cs-list--blue li i{color:#60a5fa}[data-theme=dark] .cs-list--teal li i{color:#2dd4bf}[data-theme=dark] .cs-list--orange li i{color:#fb923c}.cs-persona-block{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin:24px 0;padding:20px}.cs-persona-block-title{color:var(--text);margin-bottom:16px;font-size:16px;font-weight:600}.cs-vision-box,.cs-action-box{border-radius:12px;padding:20px}.cs-vision-box{background:#fff7ed;border:1px solid #fed7aa;margin-bottom:16px}.cs-action-box{background:#f0fdf4;border:1px solid #bbf7d0}[data-theme=dark] .cs-vision-box{background:#fb923c14;border-color:#fb923c40}[data-theme=dark] .cs-action-box{background:#22c55e14;border-color:#22c55e40}.cs-vision-label,.cs-action-label{margin-bottom:8px;font-size:14px;font-weight:600;display:block}.cs-vision-label{color:#c2410c}.cs-action-label{color:#166534}[data-theme=dark] .cs-vision-label{color:#fb923c}[data-theme=dark] .cs-action-label{color:#4ade80}.cs-vision-box p,.cs-action-box p{color:var(--text);font-size:14px;line-height:1.6}.cs-action-box .cs-list--icon{margin-top:12px}.cs-testimonial-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin:24px 0;display:grid}.cs-testimonial{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 24px}.cs-testimonial-quote{color:var(--text);margin-bottom:12px;font-size:16px;font-style:italic;line-height:1.6}.cs-testimonial-quote strong{font-style:normal;font-weight:600}.cs-testimonial-author{color:var(--muted);font-size:14px}@media (width<=640px){.cs-testimonial-grid{grid-template-columns:1fr}}.cs-flow{align-items:flex-start;margin:28px 0;display:flex}.cs-flow-node{flex-direction:column;flex:none;align-items:center;gap:10px;width:88px;display:flex}.cs-flow-icon{background:var(--surface);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.cs-flow-icon i{width:22px;height:22px;color:var(--text);justify-content:center;align-items:center;font-size:22px;line-height:1;display:inline-flex;overflow:hidden}.cs-flow-label{color:var(--muted);text-align:center;font-size:12px;font-weight:500;line-height:1.35}.cs-flow-icon--logo{background:0 0;border:none;width:auto;height:32px}.cs-flow .cs-flow-icon--logo img{max-width:none;display:block;width:auto!important;height:32px!important;box-shadow:none!important;border-radius:0!important;margin:0!important}.cs-flow-node--accent .cs-flow-icon{background:var(--text);border-color:var(--text)}.cs-flow-node--accent .cs-flow-icon i{color:var(--bg)}.cs-flow-node--accent .cs-flow-icon--logo{background:0 0;border:none}.cs-flow-node--accent .cs-flow-label{color:var(--text);font-weight:600}.cs-flow-beam{background:var(--border);border-radius:2px;flex:32px;min-width:24px;height:2px;margin-top:25px;position:relative;overflow:hidden}.cs-flow-beam:after{content:"";background:linear-gradient(90deg, transparent, var(--text), transparent);width:40%;height:100%;animation:2.4s cubic-bezier(.4,0,.2,1) infinite cs-beam-travel;animation-delay:var(--beam-delay,0s);position:absolute;top:0;left:-40%}@keyframes cs-beam-travel{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.cs-flow-beam:after{opacity:.35;width:100%;animation:none;left:0}}@media (width<=640px){.cs-flow{flex-direction:column;align-items:center}.cs-flow-node{width:auto}.cs-flow-beam{background:var(--border);opacity:.6;border-radius:1px;flex:0 0 36px;width:1px;min-width:0;height:36px;margin:0}.cs-flow-beam:after{background:linear-gradient(180deg, transparent, var(--text), transparent);width:100%;height:60%;animation-name:cs-beam-travel-vertical;top:-60%;left:0}}@keyframes cs-beam-travel-vertical{0%{top:-40%}to{top:100%}}.cs-annotated-list{flex-direction:column;gap:10px;margin:4px 0 24px;padding:0;list-style:none;display:flex}.cs-annotated-list li{color:var(--muted);align-items:flex-start;gap:12px;font-size:14px;line-height:1.6;display:flex}.cs-annotated-num{background:var(--text);width:20px;height:20px;color:var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:12px;font-weight:600;display:flex}.cs-annotated-list strong{color:var(--text);font-weight:600}.cs-image-row{grid-template-columns:repeat(3,1fr);gap:20px;margin:20px 0;display:grid}.cs-image-row img{margin:0}.cs-image-row .cs-note{opacity:.7;margin:8px 0 0}@media (width<=700px){.cs-image-row{grid-template-columns:1fr}}.cs-cards-grid.cs-cards-grid--4col{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.cs-cards-grid.cs-cards-grid--4col{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.cs-cards-grid.cs-cards-grid--4col{grid-template-columns:1fr}}.cs-card--dense{gap:6px;padding:14px}.cs-card--dense .cs-card-title{font-size:14px}.cs-card--dense .cs-card-desc{font-size:14px;line-height:1.5}.photo-stack{align-items:flex-end;width:100%;margin-top:48px;display:flex;container-type:inline-size}.photo-stack-item{width:150px;height:150px;transform:rotate(var(--r,0deg));will-change:transform, filter, opacity;flex-shrink:0;margin-left:calc(20cqw - 180px);transition:transform .5s cubic-bezier(.22,1,.36,1),filter .5s cubic-bezier(.22,1,.36,1),opacity .5s cubic-bezier(.22,1,.36,1);position:relative}.photo-stack-item:first-child{margin-left:0}.photo-stack-frame{background:var(--surface);will-change:box-shadow;border-radius:10px;width:100%;height:100%;transition:box-shadow .5s cubic-bezier(.22,1,.36,1);overflow:hidden;box-shadow:0 4px 14px #00000024}[data-theme=dark] .photo-stack-frame{box-shadow:0 4px 14px #0006}.photo-stack-item img{object-fit:cover;width:100%;height:100%;display:block}.photo-stack:hover .photo-stack-item{filter:grayscale();opacity:.6}.photo-stack-item:hover{z-index:10;transform:rotate(0)scale(1.14);filter:grayscale(0)!important;opacity:1!important}.photo-stack-item:hover .photo-stack-frame{box-shadow:0 14px 30px #0000003d}[data-theme=dark] .photo-stack-item:hover .photo-stack-frame{box-shadow:0 14px 30px #0000008c}@media (width<=640px){.photo-stack{padding:16px 0}.photo-stack-item{width:85px;height:85px;margin-left:calc(20cqw - 102px)}.photo-stack-item:first-child{margin-left:0}.photo-stack-item:hover{transform:rotate(0)scale(1.2)}}.cs-back-wrap{padding-bottom:80px}.cs-split-media img{box-shadow:none!important}.cs-split{grid-template-columns:1fr 1fr;align-items:center;gap:48px;display:grid}.cs-split-media img{width:100%;height:auto;display:block}@media (width<=720px){.cs-meta{flex-direction:column;gap:8px}.cs-meta-item+.cs-meta-item:before{display:none}.cs-meta--3col{grid-template-columns:repeat(2,1fr);gap:16px}.cs-outcomes--3{border-bottom:none;grid-template-columns:1fr}.cs-outcomes--3 .cs-outcome{border-right:none;border-bottom:1px solid var(--border);padding:24px 0}.cs-outcomes--3 .cs-outcome+.cs-outcome{padding-left:0}.cs-cover-img{height:240px}.cs-split{grid-template-columns:1fr}.cs-section{padding-top:32px;padding-bottom:32px}.cs-cards-grid{grid-template-columns:1fr}.page-hero{padding-top:48px;padding-bottom:24px}.page-hero h1{font-size:28px!important}.cs-problem-item{gap:16px}.cs-problem-list--3col{grid-template-columns:1fr}.cs-problem-list--3col .cs-problem-item{border-bottom:1px solid #80808026;border-right:none}.cs-problem-list--3col .cs-problem-item:last-child{border-bottom:none}.cs-empathy-row,.cs-empathy-row:nth-child(odd){flex-direction:column;align-items:flex-start;gap:16px}.cs-persona-intro img{width:100px!important;height:100px!important}}@media (width<=480px){.section{padding-top:40px;padding-bottom:40px}.section-title{font-size:20px}h3.section-title{font-size:16px}footer{padding:40px 0 20px}.footer-contact-heading{font-size:22px}.hero-dt-stage{padding:60px 0}.hero--dt h1.hd-l1,.hd-l2{font-size:36px}.cs-meta--3col{grid-template-columns:1fr}.cs-body{padding-bottom:48px}.cs-section{padding-top:24px;padding-bottom:24px}.cs-section .section-title{margin-top:24px}.page-hero{padding-top:32px;padding-bottom:16px}.page-hero h1{font-size:24px!important}.cs-outcome-stat{font-size:20px!important}.cs-section--reflection{padding-top:32px;padding-bottom:32px}.cs-persona-intro{flex-direction:column;gap:12px}.cs-persona-intro img{width:80px!important;height:80px!important}.cs-persona-intro p{margin:0!important}.cs-empathy-row img{width:100px!important;height:auto!important}.cs-slider-label{padding:3px 8px;font-size:12px}}.cs-cards-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0;display:grid}@media (width<=640px){.cs-cards-grid{grid-template-columns:1fr}.cs-list li,.cs-card-desc{font-size:14px}.body-text{font-size:16px}.cs-meta--3col{grid-template-columns:repeat(2,1fr);gap:12px}}.cs-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;display:flex;box-shadow:0 1px 3px #0000000d,0 2px 10px #0000000a}[data-theme=dark] .cs-card{box-shadow:0 1px 3px #00000040,0 2px 10px #0003}.cs-card-icon{color:var(--text);flex-shrink:0;font-size:22px;display:inline-flex}.cs-card-title{color:var(--text);font-size:16px;font-weight:500;line-height:1.4}.cs-card-desc{color:var(--muted);font-size:16px;line-height:1.6}.cs-results-band{padding:48px 0}.cs-results{background:var(--surface-alt);border-radius:16px;flex-direction:column;gap:20px;padding:32px;list-style:none;display:flex}.cs-results li{color:var(--muted);font-size:16px;line-height:1.6}.cs-results li strong{color:var(--text);font-weight:600}@media (width<=480px){.cs-results-band{padding:32px 0}.cs-results{gap:16px;padding:24px 20px}}.cs-section img{border-radius:8px;width:100%;height:auto;margin:16px 0;display:block;box-shadow:0 1px 4px #0000000f,0 8px 28px #00000014}[data-theme=dark] .cs-section img{box-shadow:0 1px 4px #00000059,0 8px 28px #0000004d}.cs-frame{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:20px 0;overflow:hidden;box-shadow:0 1px 4px #0000000f,0 8px 28px #00000014}[data-theme=dark] .cs-frame{box-shadow:0 1px 4px #00000059,0 8px 28px #0000004d}.cs-section .cs-frame img,.cs-section .cs-frame video{box-shadow:none;border-radius:0;margin:0;display:block}.cs-frame-placeholder{aspect-ratio:16/10;background:repeating-linear-gradient(45deg, transparent, transparent 10px, var(--card) 10px, var(--card) 20px);justify-content:center;align-items:center;display:flex}.cs-frame-placeholder span{color:var(--muted);text-align:center;padding:0 20px;font-family:Geist Mono,monospace;font-size:12px}.cs-state-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0;display:grid}.cs-state-grid .cs-frame{margin:0}.cs-state-grid .cs-frame-placeholder{aspect-ratio:4/3;min-height:90px}.cs-state-grid .cs-frame-placeholder span{padding:0 8px;font-size:11px}@media (width<=640px){.cs-state-grid{grid-template-columns:repeat(2,1fr)}}.cs-shot-row{align-items:start;gap:14px;margin:20px 0;display:grid}.cs-shot-row .cs-frame{margin:0}.cs-shot-row--2{grid-template-columns:1fr 1fr}.cs-shot-row--3{grid-template-columns:repeat(3,1fr)}.cs-shot-row--4{grid-template-columns:repeat(4,1fr)}.cs-shot-row--5{grid-template-columns:repeat(5,1fr)}.cs-shot-row--5 .cs-frame-placeholder{aspect-ratio:4/3;min-height:90px}.cs-shot-row--5 .cs-frame-placeholder span{padding:0 8px;font-size:11px}@media (width<=900px){.cs-shot-row--5{grid-template-columns:repeat(3,1fr)}}@media (width<=640px){.cs-shot-row--2,.cs-shot-row--3,.cs-shot-row--4{grid-template-columns:1fr}.cs-shot-row--5{grid-template-columns:repeat(2,1fr)}}.cs-hero-embed-fallback{display:none}@media (width<=640px){.cs-hero-embed-live{display:none}.cs-hero-embed-fallback{display:block}}.cs-flow-row{position:relative}.cs-flow-row:before{content:"";background-image:linear-gradient(to right, var(--border) 50%, transparent 50%);background-size:8px 1px;height:1px;position:absolute;top:0;left:calc(10% - 1px);right:calc(10% - 1px)}.cs-flow-row .cs-shot-row{margin-top:20px}.cs-flow-row .cs-flow-step{position:relative}.cs-flow-row .cs-flow-step:before{content:"";background:var(--muted);border-radius:50%;width:6px;height:6px;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.cs-flow-label{letter-spacing:.02em;color:var(--muted);text-align:center;text-transform:uppercase;margin-top:8px;font-family:Geist Mono,monospace;font-size:11px;display:block}@media (width<=900px){.cs-flow-row:before,.cs-flow-row .cs-flow-step:before{display:none}}.cs-code-wrap{background:var(--card);width:100%;height:100%;display:flex;overflow:hidden}.cs-code-gutter{text-align:right;user-select:none;flex-direction:column;flex-shrink:0;padding:16px 10px 16px 16px;display:flex}.cs-code-gutter span{color:var(--muted);opacity:.35;font-family:Geist Mono,monospace;font-size:11px;line-height:1.7;display:block}.cs-code-block{width:100%;min-width:0;height:100%;color:var(--muted);white-space:pre;flex:1;margin:0;padding:16px 16px 16px 8px;font-family:Geist Mono,monospace;font-size:11px;line-height:1.7;overflow:hidden}.cs-code-kw{color:#c678dd}.cs-frame--fade{position:relative}.cs-frame--fade:after{content:"";background:linear-gradient(to bottom, transparent, var(--card));pointer-events:none;height:72px;position:absolute;bottom:0;left:0;right:0}#interactive,#figma-code{--interactive-surface:#f8f9fc}[data-theme=dark] #interactive,[data-theme=dark] #figma-code{--interactive-surface:#0b0b0b}#interactive .cs-frame,#figma-code .cs-frame,#interactive .cs-code-wrap,#figma-code .cs-code-wrap{background:var(--interactive-surface)}#interactive .cs-frame--fade:after,#figma-code .cs-frame--fade:after{background:linear-gradient(to bottom, transparent, var(--interactive-surface))}.cs-code-tag{color:#e06c75}.cs-code-attr{color:#d19a66}.cs-code-expr{color:#61afef}[data-theme=dark] .cs-code-tag{color:#f87171}[data-theme=dark] .cs-code-attr{color:#fbbf24}[data-theme=dark] .cs-code-expr{color:#60a5fa}[data-theme=dark] .cs-code-kw{color:#c084fc}.cs-stat-row{gap:32px;margin:20px 0;display:flex}.cs-stat-number{color:var(--text);font-family:Instrument Sans,sans-serif;font-size:28px;font-weight:500;line-height:1}.cs-stat-label{color:var(--muted);margin-top:6px;font-size:12px}.cs-metric-row{grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0;display:grid}.cs-metric-card{border:1px solid var(--border);background:var(--card);border-radius:8px;padding:16px}.cs-metric-card-value{color:var(--text);margin-bottom:6px;font-family:Instrument Sans,sans-serif;font-size:22px;font-weight:500}.cs-metric-card-label{color:var(--muted);font-size:12px;line-height:1.4}@media (width<=700px){.cs-metric-row{grid-template-columns:repeat(2,1fr)}}.cs-impact-statement{color:var(--text);margin:28px 0 24px;font-family:Instrument Sans,sans-serif;font-size:22px;font-weight:500;line-height:1.3}.cs-embed{width:100%;position:relative;overflow:hidden}.cs-embed iframe{transform-origin:0 0;border:0;display:block;position:absolute;top:0;left:0}.cs-embed-reload{z-index:2;border:1px solid var(--border);background:var(--card);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.cs-embed-reload:hover{color:var(--text)}.cs-section video{border-radius:8px;width:100%;height:auto;margin:16px 0;display:block;box-shadow:0 1px 4px #0000000f,0 8px 28px #00000014}[data-theme=dark] .cs-section video{box-shadow:0 1px 4px #00000059,0 8px 28px #0000004d}.cs-section img.cs-img--dark,[data-theme=dark] .cs-section img.cs-img--light{display:none}[data-theme=dark] .cs-section img.cs-img--dark{display:block}.cs-section img.cs-img--light,.cs-section img.cs-img--dark{object-fit:unset;height:auto}.cs-img-placeholder{aspect-ratio:16/9;background:var(--surface);border:1px dashed var(--border);border-radius:8px;width:100%;margin:16px 0}.cs-slider{cursor:ew-resize;user-select:none;border-radius:8px;margin:16px 0;position:relative;overflow:hidden;box-shadow:0 1px 4px #0000000f,0 8px 28px #00000014}[data-theme=dark] .cs-slider{box-shadow:0 1px 4px #00000059,0 8px 28px #0000004d}.cs-slider img{width:100%;height:auto;box-shadow:none;border-radius:0;margin:0;display:block}.cs-slider-img--left{position:absolute;top:0;left:0}.cs-slider-line{pointer-events:none;background:#fff;width:2px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.cs-slider-knob{pointer-events:none;color:#111;background:#fff;border-radius:50%;justify-content:center;align-items:center;gap:2px;width:40px;height:40px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000040}.cs-slider-label{display:none}.cs-slider-range{opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.motion-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.motion-title-row .section-title{margin-bottom:0}.motion-scene{border:1px solid var(--border);contain:content;border-radius:12px;width:100%;position:relative;overflow:hidden}.motion-scene:not(.motion-scene-grid .motion-scene){aspect-ratio:994/510}.motion-scene-grid .motion-scene{aspect-ratio:660/660}.motion-scene:before{content:"";z-index:1;background:linear-gradient(100deg, var(--surface) 30%, var(--border) 50%, var(--surface) 70%);opacity:1;pointer-events:none;background-size:200% 100%;transition:opacity .3s;animation:1.6s ease-in-out infinite motion-skeleton-shimmer;position:absolute;inset:0}.motion-scene.is-loaded:before{opacity:0;animation:none}@keyframes motion-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.motion-scene:before{background:var(--surface);animation:none}}.motion-scene--mobile{display:none}.motion-scene-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}@media (width<=768px){.motion-scene-grid{grid-template-columns:1fr}.motion-title-row{flex-wrap:wrap;justify-content:space-between}.motion-scene--desktop{display:none}.motion-scene--mobile{display:block}.motion-scene:not(.motion-scene-grid .motion-scene){aspect-ratio:509/986}}.container-xl{max-width:1520px;margin:0 auto;padding:0 1rem}.playground-rows{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:32px;display:grid}.ill-cell--span-2{grid-column:span 2}.ill-cell--span-3{grid-column:span 3}.ill-pair-2col{grid-column:span 3;grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.ill-cell{border:1px solid var(--border);background:#f8f9fc;border-radius:16px;justify-content:center;align-items:center;padding:32px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #0f16240f}[data-theme=dark] .ill-cell{box-shadow:none;background:#0b0b0b}.ill-frame-wrap{position:relative}.ill-frame-wrap iframe{transform-origin:0 0;border:0;display:block;position:absolute;top:0;left:0}@media (width<=900px){.playground-rows{grid-template-columns:repeat(2,1fr)}.ill-cell--span-3,.ill-pair-2col{grid-column:span 2}.ill-cell--hero .ill-frame-wrap{aspect-ratio:auto!important;width:100%!important;max-width:none!important;height:600px!important}.ill-cell--hero .ill-frame-wrap iframe{width:100%;height:100%;position:static;transform:none!important}}@media (width<=480px){.playground-rows{grid-template-columns:1fr}.ill-cell--span-2,.ill-cell--span-3,.ill-pair-2col{grid-column:span 1}.ill-pair-2col{grid-template-columns:1fr}.ill-cell{padding:24px}}:root{--line:#e6e6e6;--line-ink:#737373;--logo-ink:#737373;--stripe-gap:32px;--dot-ink:#d2d2d2}[data-theme=dark]{--line:#232323;--line-ink:#6a6a6a;--logo-ink:#8a8a8a;--dot-ink:#333}.ruled main,.ruled .dimension,.ruled footer,.ruled .stripe--end{opacity:0;transition:opacity .5s}.ruled.is-ready main,.ruled.is-ready .dimension,.ruled.is-ready footer,.ruled.is-ready .stripe--end{opacity:1}.ruled .page-bg{background-image:none;overflow:clip}.ruled main .container-large,.ruled .dimension .container-large,.ruled footer .container-large{border-inline:1px solid var(--line);position:relative}.ruled .panel-header:after,.ruled .panel-desc:after,.cs-page .cs-hero-intro:after,.cs-page .cs-meta--ruled:after,.home .companies-label:after{content:"";background:var(--line);pointer-events:none;width:200vw;height:1px;position:absolute;bottom:0;left:-100vw}.ruled .stripe{height:var(--stripe-gap);background-image:radial-gradient(circle, var(--dot-ink) 1px, transparent 1.4px);background-position:50%;background-size:8px 8px}.ruled .stripe .padding-global,.ruled .stripe .container-large{height:100%}.ruled .stripe{position:relative}.ruled .stripe.is-live{background-image:none}.stripe-canvas{width:100%;height:100%;color:var(--dot-ink);pointer-events:none;display:block;position:absolute;inset:0}.ruled .stripe .container-large:before,.ruled .stripe .container-large:after{--plus:var(--line-ink);content:"";z-index:2;background:linear-gradient(var(--plus), var(--plus)) center 4px / 9px 1px no-repeat, linear-gradient(var(--plus), var(--plus)) center 0 / 1px 9px no-repeat, linear-gradient(var(--plus), var(--plus)) center calc(100% - 4px) / 9px 1px no-repeat, linear-gradient(var(--plus), var(--plus)) center 100% / 1px 9px no-repeat;pointer-events:none;width:9px;height:calc(100% + 10px);position:absolute;top:-5px}.ruled .stripe .container-large:before{left:-5px}.ruled .stripe .container-large:after{right:-5px}.ruled .panel{border-block:1px solid var(--line);padding:0;scroll-margin-top:72px}.ruled .panel-header{align-items:stretch;min-height:52px;padding:0 16px 0 0;display:flex;position:relative}.panel-index{border-right:1px solid var(--line);width:52px;color:var(--line-ink);flex-shrink:0;justify-content:center;align-items:center;margin-right:16px;font-family:Geist Mono,monospace;font-size:12px;display:flex}.ruled .panel-header .section-title{letter-spacing:-.02em;flex:1;align-self:center;margin:0;padding:6px 0;font-size:30px;font-weight:500;line-height:36px}.panel-header-end{align-items:center;gap:8px;display:flex}.panel-header-end .carousel-controls{gap:6px;margin:0}.panel-header-end .carousel-btn{width:32px;height:32px}.panel-header-end .btn-secondary{height:32px}@media (width<=580px){.ruled .panel-header{flex-wrap:wrap}.panel-header-end .btn-secondary{padding:0 10px;font-size:13px}}.ruled .panel-desc{color:var(--muted);margin:0;padding:12px 16px;font-size:15px;position:relative}.home .panel .cards-grid,.home .panel .sites-grid{gap:24px 16px}.ruled .panel--work .panel-body{padding:32px 0;position:relative}.ruled .panel--work .panel-body:before{content:"";border-inline:1px solid var(--line);pointer-events:none;width:32px;position:absolute;top:0;bottom:0;left:calc(50% - 16px)}.ruled .panel--work .card{transition:background-color .15s;position:relative}.ruled .panel--work .card:hover{background:var(--surface)}.ruled .panel--work .card:before,.ruled .panel--work .card:after{content:"";background:var(--line);pointer-events:none;width:200vw;height:1px;position:absolute;left:-100vw}.ruled .panel--work .card:before{top:0}.ruled .panel--work .card:after{bottom:0}.ruled .panel--work .card-thumb{width:auto;margin:16px 16px 0}.ruled .panel--work .card-body{flex-direction:column-reverse;gap:6px;padding:14px 16px 16px;display:flex}.ruled .panel--work .card-meta{gap:0;margin:0}.ruled .panel--work .card-meta-item,[data-theme=dark] .ruled .panel--work .card-meta-item{height:auto;color:var(--muted);opacity:.8;background:0 0;border:0;border-radius:0;padding:0 8px;font-family:Hanken Grotesk,sans-serif;font-size:14px;font-weight:400;line-height:1.2}.ruled .panel--work .card-meta-item:first-child{padding-left:0}.ruled .panel--work .card-meta-item+.card-meta-item{border-left:1px solid var(--line)}@media (width<=580px){.ruled .panel--work .panel-body:before{display:none}}.hand-note{z-index:1;width:130px;color:var(--line-ink);pointer-events:none;user-select:none;flex-direction:column;gap:2px;font-family:Caveat,cursive;font-size:20px;font-weight:500;line-height:1;display:none;position:absolute;top:10px}.hand-note svg{flex-shrink:0;width:28px;height:28px}.hand-note--left{text-align:right;align-items:flex-end;margin-right:14px;right:100%}.hand-note--left span,.hand-note--left svg{transform:rotate(-6deg)}.hand-note--right{align-items:flex-start;margin-left:14px;left:100%}.hand-note--right span{transform:rotate(5deg)}.hand-note--right svg{transform:scaleX(-1)rotate(-6deg)}@media (width>=1180px){.hand-note{display:flex}}.dimension-track{justify-content:center;align-items:center;height:40px;display:flex;position:relative}.dimension-track:before{content:"";background:var(--line-ink);height:1px;position:absolute;top:50%;left:6px;right:6px}.dimension-track:after{content:"";border-inline:1px solid var(--line-ink);position:absolute;inset:13px 6px}.dimension-label{z-index:1;background:var(--bg);color:var(--line-ink);padding:0 8px;font-family:Geist Mono,monospace;font-size:11px;position:relative}.dimension-label b{color:var(--text);font-weight:500}.companies-label{position:relative}.companies-label span{border-inline:1px dashed var(--line);text-align:center;color:var(--muted);margin:0 25%;padding:12px 8px;font-size:14px;display:block}.companies-grid{grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.company{justify-content:center;align-items:center;height:88px;display:flex}.company+.company{border-left:1px dashed var(--line)}.company-logo{width:var(--w);height:var(--h);background-color:var(--logo-ink);-webkit-mask:var(--logo) center / contain no-repeat;mask:var(--logo) center / contain no-repeat;transition:background-color .2s;display:block}.company:hover .company-logo{background-color:var(--text)}.company-logo--dopplr{letter-spacing:-.02em;width:auto;height:auto;color:var(--logo-ink);background:0 0;align-items:center;gap:7px;font-family:Instrument Sans,sans-serif;font-size:22px;font-weight:600;transition:color .2s;display:inline-flex;-webkit-mask:none;mask:none}.company:hover .company-logo--dopplr{color:var(--text);background:0 0}.company-mark{width:28px;height:22px;-webkit-mask:var(--logo) center / contain no-repeat;mask:var(--logo) center / contain no-repeat;background-color:currentColor}.motion-fig{margin:0}.fig-caption{color:var(--muted);margin:8px 0 0;font-size:13px}.fig-caption span{color:var(--line-ink);margin-right:4px;font-family:Geist Mono,monospace;font-size:12px}.home .panel--motion .motion-scene-grid{margin-top:16px}.home .panel--about .photo-stack{margin-top:32px}.home .panel--writing .panel-body{padding:0}.home .writing-list{gap:0}.home .writing-row{border-bottom:1px solid var(--line);border-radius:0;margin:0;padding:12px 16px}.home .writing-row:last-child{border-bottom:0}.home .writing-row:hover{background:var(--surface);box-shadow:none}.ruled footer{padding:0;overflow:visible}.ruled footer .container-large:before{content:"say hi!";color:var(--line-ink);white-space:nowrap;margin-right:46px;font-family:Caveat,cursive;font-size:20px;font-weight:500;display:none;position:absolute;top:30px;right:100%;transform:rotate(-6deg)}.ruled footer .container-large:after{content:"";background-color:var(--line-ink);width:28px;height:28px;margin-right:14px;display:none;position:absolute;top:34px;right:100%;transform:rotate(-6deg);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 5c-1 13 6 23 22 27'/%3E%3Cpath d='m22 35 8-3-4-8'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 5c-1 13 6 23 22 27'/%3E%3Cpath d='m22 35 8-3-4-8'/%3E%3C/svg%3E") 50%/contain no-repeat}@media (width>=1180px){.ruled footer .container-large:before,.ruled footer .container-large:after{display:block}}@media (width<=580px){.home .hero-dt-stage{padding:56px 16px}.ruled .panel-header .section-title{font-size:24px;line-height:32px}.ruled .panel-header{min-height:44px}.panel-index{width:40px;margin-right:12px}.companies-label span{border-inline:0;margin:0}.companies-grid{grid-template-columns:repeat(2,1fr)}.company{height:72px}.company:nth-child(3){border-left:0}.company:nth-child(n+3){border-top:1px dashed var(--line)}}.ruled .cs-body{padding-bottom:0}.ruled .panel.cs-section,.ruled .panel.cs-section:first-child,.page-resume .resume-rows{padding:0}.page-resume .resume-rows .resume-entry{border-bottom:1px solid var(--line);margin:0;padding:16px}.page-resume .resume-rows .resume-entry:last-child{border-bottom:0}.page-resume .resume-entry-head{gap:10px}.resume-entry-logo--icon{border:1px solid var(--line);background:var(--surface-alt);width:24px;height:24px;color:var(--muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.page-resume .skill-rows{padding:0}.skill-row{border-bottom:1px solid var(--line);grid-template-columns:168px 1fr;display:grid}.skill-row:last-child{border-bottom:0}.skill-row-label{border-right:1px solid var(--line);color:var(--text);padding:14px 16px;font-size:14px;font-weight:500}.skill-chips{flex-wrap:wrap;column-gap:.35em;margin:0;padding:12px 16px;list-style:none;display:flex}.skill-chips li{color:var(--text);font-size:14px;line-height:1.6;display:inline}.skill-chips li:not(:last-child):after{content:","}@media (width<=580px){.skill-row{grid-template-columns:1fr}.skill-row-label{border-right:0;border-bottom:1px dashed var(--line);padding:12px 16px}}.ruled header,.ruled header.is-floating{background:color-mix(in srgb, var(--bg) 95%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:0;top:0}.ruled .site-header,.ruled .site-header.is-floating{max-width:none;box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.ruled header .padding-global,.ruled .site-header.is-floating .padding-global{padding:0 5%}.ruled header .container-large{border-inline:1px solid var(--line)}.ruled .site-header-inner{align-items:stretch;height:56px}.ruled .nav-left,.ruled .site-header.is-floating .nav-left{align-items:stretch;gap:0}.ruled .nav-back-group{align-self:center}.ruled main>.panel:first-child{border-top:0}.ruled .nav-logo-link{opacity:1;max-width:56px;margin:0;padding:0 14px;transition:opacity .3s,max-width .3s,padding .3s;overflow:hidden}.ruled .site-header.is-floating .nav-logo-link{opacity:0;pointer-events:none;max-width:0;padding:0}.ruled .nav-back-group{padding-left:12px}.ruled .section-nav{align-self:center;transition:margin .3s}.ruled .header-actions{gap:10px;padding:0 12px}.ruled [hidden]{display:none!important}.ruled .stripe--end{height:calc(var(--stripe-gap) * 3)}.ruled .stripe--end .hand-note{top:22px}@media (width>=1400px){.ruled .page-bg{--grid-half:calc(var(--container-max) / 2);--grid-margin:calc(50% - var(--grid-half) - 24px);--grid-step:calc(var(--grid-margin) / 2);background-image:repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 1px, transparent 1px, transparent 6px);background-repeat:repeat-y;background-size:1px 6px;background-position:calc(50% - var(--grid-half) - var(--grid-step)) 0, calc(50% + var(--grid-half) + var(--grid-step)) 0, calc(50% - var(--grid-half) - var(--grid-step) * 2) 0, calc(50% + var(--grid-half) + var(--grid-step) * 2) 0}}.page-explorations .gallery-frame{width:min(var(--container-max), 90%);border-inline:1px solid var(--line);margin-inline:auto;position:relative}@media (width>=1400px){.page-explorations .gallery-frame{width:calc(var(--container-max) + (50% - var(--container-max) / 2 - 24px))}.page-explorations .gallery-frame:before,.page-explorations .gallery-frame:after{--plus:var(--line-ink);content:"";z-index:2;background:linear-gradient(var(--plus), var(--plus)) center / 9px 1px no-repeat, linear-gradient(var(--plus), var(--plus)) center / 1px 9px no-repeat;pointer-events:none;width:9px;height:9px;position:absolute;top:-5px}.page-explorations .gallery-frame:before{left:-5px}.page-explorations .gallery-frame:after{right:-5px}}.gallery-grid{background:var(--line);gap:1px;display:grid}.gallery-grid--3{grid-template-columns:repeat(3,1fr)}.gallery-grid--2{grid-template-columns:repeat(2,1fr)}.page-explorations .ill-cell{box-shadow:none;background:var(--bg);border:0;border-radius:0;margin:0;padding:40px 32px 52px}.ill-tag{color:var(--line-ink);pointer-events:none;justify-content:space-between;gap:12px;padding:10px 12px;font-family:Geist Mono,monospace;font-size:11px;line-height:16px;display:flex;position:absolute;bottom:0;left:0;right:0}.ill-tag span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ill-tag-size{flex-shrink:0}.ruled .panel--gallery .panel-header .section-title{letter-spacing:-.01em;font-size:20px;line-height:28px}.panel-count{color:var(--line-ink);font-family:Geist Mono,monospace;font-size:12px}@media (width<=900px){.gallery-grid--3{grid-template-columns:repeat(2,1fr)}#product-ui .ill-cell--span-2,#agents .ill-cell--span-2,#marketing .ill-cell:last-child{grid-column:span 2}}@media (width<=580px){.gallery-grid--3,.gallery-grid--2{grid-template-columns:1fr}.gallery-grid .ill-cell--span-2,#marketing .ill-cell:last-child{grid-column:auto}.page-explorations .ill-cell{padding:32px 20px 48px}}.panel-body--carousel{position:relative}.carousel-btn--side{z-index:3;background:var(--bg);width:36px;height:36px;position:absolute;top:50%;transform:translate(-50%,-50%)}.carousel-btn--side:active{transform:translate(-50%,-50%)scale(.88)}.carousel-btn--prev{left:0}.carousel-btn--next{left:100%}.btn-ghost{height:32px;color:var(--muted);align-items:center;gap:6px;padding:0 2px;font-family:Instrument Sans,sans-serif;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s;display:inline-flex}.btn-ghost svg{flex-shrink:0;transition:transform .2s}.btn-ghost:hover{color:var(--text)}.btn-ghost:hover svg{transform:translate(3px)}.btn-ghost--external:hover svg{transform:translate(2px,-2px)}.cs-page .panel.cs-hero{padding:0}.panel-index--logo img{border-radius:6px;width:28px;height:28px;display:block}.cs-page .panel.cs-section .panel-header .section-title,.cs-page .cs-more .panel-header .section-title{padding:10px 0;font-size:22px;line-height:30px}.cs-page .cs-hero-intro{padding:16px;position:relative}.cs-page .cs-hero-intro .body-text{font-size:16px}.cs-page .cs-hero-intro .body-text+.body-text{margin-top:12px}.cs-page .cs-meta--ruled{border:0;grid-auto-columns:1fr;grid-auto-flow:column;align-items:stretch;gap:0;padding:0;display:grid;position:relative}.cs-page .cs-meta--ruled .cs-meta-item{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 16px;display:flex}.cs-page .cs-meta--ruled .cs-meta-item+.cs-meta-item{border-left:1px solid var(--line)}.cs-page .cs-meta--ruled .cs-meta-item+.cs-meta-item:before{display:none}.cs-page .cs-meta--ruled .cs-meta-label{letter-spacing:.02em;text-transform:uppercase;color:var(--line-ink);align-items:center;gap:6px;font-family:Geist Mono,monospace;font-size:11px;display:inline-flex}.cs-page .cs-meta--ruled .cs-meta-label i{color:var(--line-ink);font-size:14px}.cs-page .cs-meta--ruled .cs-meta-value{color:var(--text);font-size:14px}@media (width<=580px){.cs-page .cs-meta--ruled{grid-auto-flow:row}.cs-page .cs-meta--ruled .cs-meta-item+.cs-meta-item{border-left:0;border-top:1px solid var(--line)}}.cs-page .cs-section--results .panel-body:has(>.cs-results){padding:0}.cs-page .cs-results{background:0 0;border-radius:0;gap:0;padding:0}.cs-page .cs-results li{border-bottom:1px solid var(--line);padding:14px 16px}.cs-page .cs-results li:last-child{border-bottom:0}.cs-page .panel-body>:first-child{margin-top:0}.cs-page .panel-body>:last-child{margin-bottom:0}@media (width>=1400px){.cs-page .cs-toc{left:24px;right:calc(50% + var(--container-max) / 2 - 1px);background:var(--bg);border:1px solid var(--line);counter-reset:toc;align-items:stretch;gap:0;width:auto;max-width:none;top:56px;bottom:auto;transform:none}.cs-page .cs-toc:before,.cs-page .cs-toc:after{--plus:var(--line-ink);content:"";background:linear-gradient(var(--plus), var(--plus)) center / 9px 1px no-repeat, linear-gradient(var(--plus), var(--plus)) center / 1px 9px no-repeat;pointer-events:none;width:9px;height:9px;position:absolute;bottom:-5px}.cs-page .cs-toc:before{left:-5px}.cs-page .cs-toc:after{right:-5px}.cs-page .cs-toc-head{border-bottom:1px solid var(--line);letter-spacing:.04em;text-transform:uppercase;height:52px;color:var(--line-ink);align-items:center;margin:0 0 6px;padding:0 14px;font-family:Geist Mono,monospace;font-size:11px;display:flex}.cs-page .cs-toc-link{counter-increment:toc;color:var(--line-ink);align-items:baseline;gap:10px;padding:5px 14px;font-weight:400;transition:color .2s;position:relative}.cs-page .cs-toc-link:before{display:none}.cs-page .cs-toc-label{font-size:13px}.cs-page .cs-toc-link:after{content:counter(toc, decimal-leading-zero);color:var(--line-ink);flex-shrink:0;order:-1;font-family:Geist Mono,monospace;font-size:11px}.cs-page .cs-toc-link:hover{color:var(--text)}.cs-page .cs-toc-link.is-active{color:var(--text);box-shadow:inset 2px 0 0 var(--text);font-weight:500}.cs-page .cs-toc-link.is-active:after{color:var(--text)}.cs-page .cs-toc-top{border-top:1px solid var(--line);color:var(--line-ink);justify-content:space-between;align-items:center;margin-top:6px;padding:10px 14px;font-family:Geist Mono,monospace;font-size:11px;text-decoration:none;transition:color .2s;display:flex}.cs-page .cs-toc-top:hover{color:var(--text)}}@media (width>=1648px){.cs-page .cs-toc{left:calc(50% - var(--container-max) / 2 - (50% - var(--container-max) / 2 - 24px) / 2)}}.cs-page .cs-section--results .panel-body:has(>.cs-metric-row){padding:0}.cs-page .cs-section--results .cs-metric-row{background:var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin:0}.cs-page .cs-section--results .cs-metric-card{background:var(--bg);border:0;border-radius:0}.cs-page .cs-section--results .cs-metric-row+.body-text{padding:14px 16px;margin:0!important}.cs-page .cs-section--results .cs-metric-row:last-child{border-bottom:0}@media (width<=580px){.cs-page .cs-section--results .cs-metric-row{grid-template-columns:repeat(2,1fr)}.cs-page .cs-meta--ruled:not(:has(>:nth-child(3))){grid-auto-flow:column}.cs-page .cs-meta--ruled:not(:has(>:nth-child(3))) .cs-meta-item+.cs-meta-item{border-top:0;border-left:1px solid var(--line)}}.page-404 .panel-index{font-size:11px}.page-404 .error-actions{align-items:center;gap:16px;padding:24px 16px;display:flex}.ruled .stripe--tall{height:calc(var(--stripe-gap) * 6)}@media (width<=580px){.cs-page .cs-hero .panel-header{flex-direction:column;align-items:stretch;padding:0}.cs-page .cs-hero .panel-index--logo{border-right:0;border-bottom:1px solid var(--line);justify-content:flex-start;width:auto;height:52px;margin:0;padding:0 16px}.cs-page .cs-hero .panel-header .section-title{padding:12px 16px}.cs-page .panel.cs-section .panel-header,.cs-page .cs-more .panel-header{z-index:5;background:var(--bg);position:sticky;top:57px}.cs-decision--open .cs-decision-row{flex-direction:column;gap:12px}.ruled .panel-header h2.section-title,.cs-page .panel.cs-section .panel-header h2.section-title,.cs-page .cs-more .panel-header h2.section-title{font-size:20px;line-height:28px}}@media (width<=900px){.ill-cell--fluid .ill-frame-wrap{aspect-ratio:auto!important;width:100%!important;max-width:none!important}.ill-cell--fluid .ill-frame-wrap iframe{width:100%;position:static;transform:none!important}}.hand-line{font-style:normal;display:block}.hand-note.is-armed .hand-line{clip-path:inset(-30% 100% -30% 0)}.hand-note.is-armed svg path{stroke-dasharray:1;stroke-dashoffset:1px}.hand-note.is-drawn .hand-line{animation:handWrite var(--dur,.5s) cubic-bezier(.45, .05, .4, 1) var(--delay,0s) forwards}.hand-note.is-drawn svg path{animation:handDraw var(--dur,.45s) cubic-bezier(.5, 0, .3, 1) var(--delay,0s) forwards}@keyframes handWrite{to{clip-path:inset(-30% 0)}}@keyframes handDraw{to{stroke-dashoffset:0}}.nav-left{position:relative}.nav-logo-note{display:none}@media (hover:hover) and (width>=1180px){.nav-logo-note{white-space:nowrap;color:var(--line-ink);pointer-events:none;user-select:none;align-items:center;gap:4px;margin-right:6px;font-family:Caveat,cursive;font-size:20px;font-weight:500;line-height:1;display:flex;position:absolute;top:50%;right:100%;transform:translateY(-50%)rotate(-4deg)}.nav-logo-note svg{opacity:0;flex-shrink:0;width:34px;height:21px;transition:opacity 0s linear .2s}.nav-logo-link:hover+.nav-logo-note svg{opacity:1;transition-delay:.55s}.nav-logo-note-text{clip-path:inset(-30% 100% -30% 0);transition:clip-path .25s}.nav-logo-note path{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .15s}.nav-logo-link:hover+.nav-logo-note .nav-logo-note-text{clip-path:inset(-30% -12% -30% 0);transition:clip-path .6s cubic-bezier(.45,.05,.4,1)}.nav-logo-link:hover+.nav-logo-note path{stroke-dashoffset:0;transition:stroke-dashoffset .35s cubic-bezier(.5,0,.3,1) .55s}.nav-logo-link:hover+.nav-logo-note path+path{transition-duration:.2s;transition-delay:.85s}.site-header.is-floating .nav-logo-note{display:none}}@media (prefers-reduced-motion:reduce){.nav-logo-note-text,.nav-logo-note path{transition:none!important}}:root{--grid-dash:#e3e3e3}[data-theme=dark]{--grid-dash:#262626}.ruled .panel-header:after,.ruled .panel-desc:after,.cs-page .cs-hero-intro:after,.cs-page .cs-meta--ruled:after,.home .companies-label:after{width:100%;left:0}.ruled .panel{border-block:0}.ruled .panel>.padding-global>.container-large{border-block:1px solid var(--line)}.ruled header,.ruled header.is-floating{border-bottom:0}.ruled header .container-large{border-bottom:1px solid var(--line)}.ruled .stripe{background-image:none}.ruled .stripe:not(.is-live) .container-large{background-image:radial-gradient(circle, var(--dot-ink) 1px, transparent 1.4px);background-position:50%;background-size:8px 8px}.ruled .stripe-canvas{--col-l:calc(50% - min(var(--container-max) / 2, 45%));--col-r:calc(50% + min(var(--container-max) / 2, 45%));-webkit-mask-image:linear-gradient(to right, transparent var(--col-l), #000 var(--col-l), #000 var(--col-r), transparent var(--col-r));mask-image:linear-gradient(to right, transparent var(--col-l), #000 var(--col-l), #000 var(--col-r), transparent var(--col-r))}@media (width>=1200px){.ruled .page-bg{--grid-half:calc(var(--container-max) / 2);--grid-margin:calc(50% - var(--grid-half) - 24px);--grid-step:calc(var(--grid-margin) / 2);background-image:repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 3px, transparent 3px, transparent 7px), repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 3px, transparent 3px, transparent 7px), repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 3px, transparent 3px, transparent 7px), repeating-linear-gradient(var(--grid-dash) 0px, var(--grid-dash) 3px, transparent 3px, transparent 7px);background-repeat:repeat-y;background-size:1px 7px;background-position:calc(50% - var(--grid-half) - var(--grid-step)) 0, calc(50% + var(--grid-half) + var(--grid-step)) 0, calc(50% - var(--grid-half) - var(--grid-step) * 2) 0, calc(50% + var(--grid-half) + var(--grid-step) * 2) 0}.cs-page .cs-toc{z-index:20;left:calc(50% - var(--container-max) / 2 - (50% - var(--container-max) / 2 - 24px) / 2 + 12px);right:calc(50% + var(--container-max) / 2 + 32px);opacity:1;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:0;width:auto;max-width:none;transition:opacity .25s;display:flex;position:fixed;top:80px;bottom:auto;transform:none}.cs-page .cs-toc.is-hidden{opacity:0;pointer-events:none}.cs-page .cs-toc:before,.cs-page .cs-toc:after{content:none}.cs-page .cs-toc-head{letter-spacing:.04em;text-transform:uppercase;height:auto;color:var(--line-ink);border:0;margin:0 0 14px;padding:0;font-family:Geist Mono,monospace;font-size:11px;display:block}.cs-page .cs-toc-link{color:var(--line-ink);box-shadow:none;padding:4px 0;font-weight:400;transition:color .2s;display:block}.cs-page .cs-toc-link:before,.cs-page .cs-toc-link:after{content:none;display:none}.cs-page .cs-toc-label{font-size:13px}.cs-page .cs-toc-link:hover{color:var(--text)}.cs-page .cs-toc-link.is-active{color:var(--text);box-shadow:none;font-weight:500}.cs-page .cs-toc-top{color:var(--line-ink);border:0;gap:6px;margin-top:18px;padding:0;font-family:Geist Mono,monospace;font-size:11px;text-decoration:none;transition:color .2s;display:inline-flex}.cs-page .cs-toc-top:hover{color:var(--text)}}.dt-greeting{color:var(--line-ink);white-space:nowrap;align-items:center;gap:6px;margin-bottom:28px;font-size:13px;line-height:1.4;display:inline-flex}.dt-greeting[hidden]{visibility:hidden;min-height:17px;display:flex}@media (width>=900px){.dt-greeting[hidden]{display:inline-flex}}.dt-greeting-icon{display:inline-flex}.dt-greeting-dot{opacity:.7}.dt-greeting-time{font-variant-numeric:tabular-nums}@media (width<=767px){.dt-greeting{order:1}}.sound-toggle{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .15s,background .2s,border-color .2s;display:flex}.sound-toggle:hover{color:var(--text)}.sound-toggle[aria-pressed=false]{color:var(--line-ink)}@media (width<=899px){.header-actions .sound-toggle{display:none}}.footer-visitors{margin:20px 0 0}.footer-visitors[hidden]{display:none}.visitor-count{color:var(--line-ink);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:12px;line-height:1;display:inline-flex}.visitor-count svg{fill:currentColor;opacity:.6}.visitor-count rect{transform-box:fill-box;transform-origin:bottom;animation:2.4s ease-in-out infinite visitorBar}.visitor-count .vb2{animation-delay:.3s}.visitor-count .vb3{animation-delay:.6s}@keyframes visitorBar{0%,to{transform:scaleY(1)}50%{transform:scaleY(.55)}}@media (prefers-reduced-motion:reduce){.visitor-count rect{animation:none}}.ruled .panel--gallery>.padding-global>.container-large{border-bottom:0}.page-explorations .gallery-frame{border-block:1px solid var(--line);margin-top:-1px}.ruled header,.ruled header.is-floating{backdrop-filter:none;background:0 0}.ruled header .container-large{background:color-mix(in srgb, var(--bg) 95%, transparent);backdrop-filter:blur(10px)}.hd-alive{--sel:#3b7ef4;background:color-mix(in srgb, var(--sel) 10%, transparent);transition:color .2s,background-color .2s}.hd-alive.is-recoloured{color:var(--sel)}.dt-sel-box,.dt-h{border-color:var(--sel);transition:border-color .2s}.hero-colour-annot{display:none}@media (hover:hover) and (pointer:fine) and (width>=900px){.hero-colour-annot{align-items:center;font-style:normal;display:inline-flex;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)}.hero-picker{gap:6px;padding:5px 8px}.hero-picker-dot{background:var(--dot);cursor:pointer;border:0;border-radius:50%;width:14px;height:14px;padding:0;transition:transform .12s,box-shadow .15s}.hero-picker-dot:hover{transform:scale(1.15)}.hero-picker-dot:active{transform:scale(.9)}.hero-picker-dot[aria-pressed=true]{box-shadow:0 0 0 1.5px var(--bg), 0 0 0 2.5px var(--dot)}}@keyframes heroAnnotIn{0%{opacity:0;translate:var(--from,-8px) 0}to{opacity:1;translate:0}}.hero-weight,.hero-colour-annot{opacity:0}.hero-dt-stage.is-ready .hero-weight{--from:-10px;animation:.6s cubic-bezier(.22,1,.36,1) 1.2s both heroAnnotIn}.hero-dt-stage.is-ready .hero-colour-annot{--from:-8px;animation:.6s cubic-bezier(.22,1,.36,1) 1.8s both heroAnnotIn}@media (prefers-reduced-motion:reduce){.hero-dt-stage.is-ready .hero-weight,.hero-dt-stage.is-ready .hero-colour-annot{opacity:1;animation:none}}.hero-weight{display:none}@media (hover:hover) and (pointer:fine) and (width>=1200px){.hero-dt-stage{position:relative}.hero-weight{--t:.5;border:1px solid var(--line);background:var(--bg);user-select:none;border-radius:14px;flex-direction:column;align-items:center;gap:10px;width:48px;padding:12px 0 10px;display:flex;position:absolute;top:50%;right:calc(100% + 28px);transform:translateY(-50%);box-shadow:0 2px 10px #0000000a}.hero-weight-aa{color:var(--line-ink);font-family:Hanken Grotesk,sans-serif;font-size:15px;line-height:1}.hero-weight-track{background:var(--line);cursor:ns-resize;touch-action:none;border-radius:9px;outline:none;width:18px;height:132px;position:relative}.hero-weight-track:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 3.5px #3b7ef4}.hero-weight-fill{height:calc(9px + var(--t) * (100% - 18px));background:color-mix(in srgb, var(--line-ink) 55%, var(--line));border-radius:9px;position:absolute;bottom:0;left:0;right:0}.hero-weight-knob{left:50%;bottom:calc(var(--t) * (100% - 18px));background:#fff;border-radius:50%;width:18px;height:18px;margin-left:-9px;transition:transform .12s;position:absolute;box-shadow:0 1px 3px #00000040,0 0 0 .5px #00000014}.hero-weight.is-dragging .hero-weight-knob,.hero-weight-track:hover .hero-weight-knob{transform:scale(1.12)}.hero-weight-connector{width:44px;margin-top:-4px;position:absolute;top:50%;left:100%;transform:scaleX(-1)}.hero-weight-connector:before{left:8px}.hero-weight-value{color:var(--line-ink);font-variant-numeric:tabular-nums;font-family:Geist Mono,monospace;font-size:10px;line-height:1}}.ruled footer .padding-global{border-bottom:0}.ruled footer .container-large{border-bottom:1px solid var(--line)}.ruled .dimension{border-bottom:0}:root{--line:#eaeae9;--rail:#dadad8}[data-theme=dark]{--line:#1f1f1f;--rail:#2e2e2e}.ruled main .container-large,.ruled .dimension .container-large,.ruled footer .container-large,.ruled header .container-large{border-inline:1px dashed var(--rail)}.ruled .panel-header{padding:0}.panel-index{justify-content:flex-start;width:auto;padding-right:14px}.cs-page .panel-index--logo{padding-right:16px}.ruled .panel-body{padding:16px 0}.home .hero-dt-stage{padding:72px 0}@media (width<=899px){.home .hero-dt-stage{padding:56px 0}}.home .writing-row{padding:12px 0}.ruled footer .container-large{padding:24px 0}.page-resume .resume-rows .resume-entry{padding:16px 0}.skill-row-label{padding:14px 16px 14px 0}.skill-chips{padding:12px 0 12px 16px}@media (width<=580px){.skill-row-label,.skill-chips{padding:12px 0}}.cs-page .cs-hero-intro{padding:16px 0}.cs-page .cs-meta--ruled .cs-meta-item:first-child{padding-left:0}.cs-page .cs-meta--ruled .cs-meta-item:last-child{padding-right:0}.cs-page .cs-section--results .cs-metric-card:nth-child(3n+1){padding-left:0}.cs-page .cs-section--results .cs-metric-row+.body-text{padding:14px 0}.page-404 .error-actions{padding:24px 0}@media (width<=580px){.cs-page .cs-meta--ruled .cs-meta-item{padding-left:0;padding-right:0}.cs-page .cs-section--results .cs-metric-card{padding-left:16px}.cs-page .cs-section--results .cs-metric-card:nth-child(odd){padding-left:0}.cs-page .cs-hero .panel-index--logo{padding:0}.cs-page .cs-hero .panel-header .section-title{padding:12px 0}}.ruled .nav-logo-link{padding:0 14px 0 0}.ruled .header-actions{padding:0 0 0 12px}.side-nav{display:none}@media (width>=1200px){.side-nav{z-index:20;top:80px;left:calc(50% - var(--container-max) / 2 - (50% - var(--container-max) / 2 - 24px) / 2 + 1px);flex-direction:column;align-items:flex-start;gap:2px;display:flex;position:fixed}.side-nav-link{color:var(--line-ink);padding:4px 0;font-size:14px;line-height:20px;text-decoration:none;transition:color .2s}.side-nav-link:hover,.side-nav-link[aria-current=page]{color:var(--text)}.side-nav-link[aria-current=page]{font-weight:500}.cs-page .cs-toc{left:calc(50% + var(--container-max) / 2 + 32px);right:calc(50% - var(--container-max) / 2 - (50% - var(--container-max) / 2 - 24px) / 2 + 1px);text-align:right;align-items:flex-end}}@media (hover:hover) and (pointer:fine) and (width>=1200px){.hero-weight{left:calc(100% + 32px);right:auto}.hero-weight-connector{width:33px;left:auto;right:100%;transform:none}.hero-dt-stage.is-ready .hero-weight{--from:10px}}.ruled .site-header.is-floating .section-nav{margin-left:0}.side-controls{display:none}@media (width>=1200px){.ruled header{display:none}.ruled main{padding-top:40px}.side-nav{gap:2px;top:40px}.side-nav-brand{align-items:center;height:38px;margin-bottom:18px;display:flex;position:relative}.side-nav-photo img{object-fit:cover;width:28px;height:28px;box-shadow:0 0 0 1px var(--line);border-radius:50%;display:block}.side-controls{z-index:20;top:40px;right:calc(50% - var(--container-max) / 2 - (50% - var(--container-max) / 2 - 24px) / 2 + 1px);align-items:center;gap:8px;display:flex;position:fixed}.cs-page .cs-toc{top:112px}}@media (hover:hover) and (width>=1200px){.side-nav-brand .nav-logo-note{flex-direction:row-reverse;margin-right:0;left:calc(100% + 8px);right:auto;transform:translateY(-50%)rotate(-3deg)}.side-nav-brand .nav-logo-note svg{transform:scaleX(-1)}.side-nav-photo:hover+.nav-logo-note .nav-logo-note-text{clip-path:inset(-30% -12% -30% 0);transition:clip-path .6s cubic-bezier(.45,.05,.4,1) .3s}.side-nav-photo:hover+.nav-logo-note svg{opacity:1;transition-delay:0s}.side-nav-photo:hover+.nav-logo-note path{stroke-dashoffset:0;transition:stroke-dashoffset .35s cubic-bezier(.5,0,.3,1)}}.ruled .panel-header:after,.ruled .panel-desc:after,.cs-page .cs-hero-intro:after,.cs-page .cs-meta--ruled:after,.home .companies-label:after,.ruled .panel--work .card:before,.ruled .panel--work .card:after{content:none}.panel-index{border-right:0}.ruled .panel--work .panel-body:before{content:none}.home .writing-row,.page-resume .resume-rows .resume-entry,.skill-row,.cs-page .cs-results li{border-bottom:0}.skill-row-label{border-right:0}@media (width<=580px){.skill-row-label{border-bottom:0}}.cs-page .cs-section--results .cs-metric-row{background:0 0;border-bottom:0}.ruled .dimension .container-large{border-bottom:0}.ruled main>:first-child>.padding-global>.container-large{border-top:0}.page-explorations .gallery-frame{border-top:0;margin-top:0}.cs-toc{display:none!important}@media (width>=1200px){.ruled main{padding-top:0}.ruled main>:first-child>.padding-global>.container-large,.home .hero-dt-stage{padding-top:72px}.side-nav,.side-controls{top:72px}.side-nav-brand{height:28px}.side-controls{flex-direction:column;align-items:flex-end;gap:10px}.side-switch{height:20px;font:inherit;color:var(--line-ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:13px;transition:color .2s;display:inline-flex}.side-switch:hover{color:var(--text)}.side-switch-track{background:var(--line);width:26px;height:16px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--line-ink) 25%, transparent);border-radius:8px;transition:background-color .2s;position:relative}.side-switch-knob{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .2s cubic-bezier(.22,1,.36,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.side-switch[aria-checked=true] .side-switch-track{background:var(--text);box-shadow:none}.side-switch[aria-checked=true] .side-switch-knob{background:var(--bg);transform:translate(10px)}.side-switch:focus-visible{outline:none}.side-switch:focus-visible .side-switch-track{box-shadow:0 0 0 2px var(--bg), 0 0 0 3.5px #3b7ef4}}.ruled .panel>.padding-global>.container-large{border-top:0;border-bottom:0}.ruled .stripe:not([hidden])+.panel>.padding-global>.container-large{border-top:1px solid var(--line)}.ruled .panel:has(+.stripe:not([hidden]))>.padding-global>.container-large{border-bottom:1px solid var(--line)}.ruled .panel--gallery:has(+.stripe:not([hidden]))>.padding-global>.container-large,.page-explorations .gallery-frame{border-bottom:0}.page-explorations .panel--gallery:has(+.stripe:not([hidden])) .gallery-frame{border-bottom:1px solid var(--line)}.page-explorations .gallery-frame:before,.page-explorations .gallery-frame:after{content:none}@media (width>=1200px){.ruled main>:first-child .hand-note--right{top:150px}}.hd-l2{font-family:Instrument Sans,sans-serif}@media (width>=581px){.page-explorations .gallery-frame{width:min(var(--container-max), 90%);border-inline:1px dashed var(--rail)}.gallery-grid--3{grid-template-columns:repeat(2,1fr)}.gallery-grid--3 .ill-cell--span-2,#marketing .ill-cell:last-child{grid-column:span 2}#marketing .ill-cell:last-child .ill-frame-wrap{max-width:min(428px,50% - 32.5px)!important}}.ruled .panel-header .section-title{font-size:28px;line-height:34px}.ruled .panel-header h1.section-title{letter-spacing:-.02em;padding:12px 0;font-size:48px;line-height:1.1}@media (width<=580px){.ruled .panel-header h1.section-title{font-size:32px}}.dt-greeting{font-size:12px}.panel-index:not(.panel-index--logo){display:none}.home .hero--dt:has(+.panel[hidden]+.stripe:not([hidden])) .hero-dt-stage,.home .hero--dt:has(+.stripe:not([hidden])) .hero-dt-stage{border-bottom:1px solid var(--line)}.ruled .panel--work .panel-body{padding:16px 0 32px}.ruled .panel--work .cards-grid{gap:40px 32px}.ruled .panel--work .card-thumb{margin:0}.ruled .panel--work .card-body{padding:14px 0 0}.hero-weight{transition:opacity .25s,visibility linear}.hero-weight.is-tucked{visibility:hidden;pointer-events:none;transition:opacity .25s,visibility 0s linear .25s;opacity:0!important}@media (width>=581px){.ruled .panel-header h2.section-title,.cs-page .panel.cs-section .panel-header h2.section-title,.cs-page .cs-more .panel-header h2.section-title,.ruled .panel--gallery .panel-header h2.section-title{letter-spacing:-.01em;font-size:24px;line-height:30px}}.ruled .panel-desc,.ruled .panel--work .card-meta-item,[data-theme=dark] .ruled .panel--work .card-meta-item,.side-nav-link,.btn-ghost,.cs-page .cs-meta--ruled .cs-meta-value,.cs-meta-duration-range,.cs-meta-duration-count,.skill-row-label,.skill-chips li,.resume-entry-summary,.page-resume .resume-entry li,.page-resume .resume-entry li strong{font-size:16px}@media (width>=1200px){.side-nav-link{font-size:16px}}.dt-annot,.cs-problem-num,.cs-frame-placeholder span,.cs-flow-label,.cs-code-gutter span,.cs-code-block,.panel-index,.dimension-label,.fig-caption,.fig-caption span,.ill-tag,.panel-count,.cs-page .cs-meta--ruled .cs-meta-label,.hero-weight-value,.dt-greeting,.writing-date,.resume-entry-date,.cs-metric-card-label,.cs-note,.writing-read{font-size:12px}@media (width>=1200px){.side-switch{font-size:12px}}.cs-rejected-desc,.work-switcher-label,.btn-primary,.page-404 .error-actions a{font-size:16px}.ruled .panel--work .card-meta-item,[data-theme=dark] .ruled .panel--work .card-meta-item{font-size:12px}.work-switcher-trigger,.work-switcher-item,.card-title,.ruled .card-title,.cs-list li,.cs-list li strong,.hero-weight-aa,.cs-rejected-title{font-size:16px}.cs-metric-card-value,.cs-page .cs-metric-card-value,.cs-impact-statement{font-size:24px}.side-switch{font-size:12px}.ruled .panel--work .cards-grid,.home .panel .cards-grid{gap:32px 16px}.side-nav-link{font-size:12px}@media (width>=1200px){.side-nav-link{font-size:12px}}.btn-ghost,.btn-primary,.btn-secondary,.hero-dt-cta,.work-switcher-trigger,.work-switcher-item,.page-404 .error-actions a{font-family:Hanken Grotesk,sans-serif;font-weight:500}.card-title,.ruled .card-title,.cs-comparison-title,.cs-card-title,.cs-problem-title,.cs-rejected-title{font-family:Instrument Sans,sans-serif;font-weight:500}.dt-greeting,.nav-back-label,.nav-back-btn{font-family:Hanken Grotesk,sans-serif}@media (width<=580px){.ruled .panel-header h2.section-title,.cs-page .panel.cs-section .panel-header h2.section-title,.cs-page .cs-more .panel-header h2.section-title,.ruled .panel--gallery .panel-header h2.section-title{font-size:20px;line-height:26px}.body-text,.ruled .panel-desc,.footer-contact-sub,.hero-dt-cta,.btn-ghost,.btn-primary,.btn-secondary,.work-switcher-trigger,.work-switcher-item,.work-switcher-label,.page-404 .error-actions a,.resume-entry-highlights li,.resume-entry-summary,.skill-row-label,.skill-chips li,.page-resume .resume-entry li,.page-resume .resume-entry li strong,.cs-page .cs-meta--ruled .cs-meta-value,.cs-meta-duration-range,.cs-meta-duration-count,.cs-page .cs-results li,.cs-results li,.cs-comparison-text,.cs-decision-value,.cs-card-desc,.cs-list li,.cs-list li strong,.cs-annotated-list li,.cs-rejected-desc,.cs-page .cs-hero-intro .body-text,.cs-decision--open .cs-decision-value,.page-sage .cs-annotated-list li,.cs-annotated-list li,.cs-outcome p,.cs-outcome .body-text,.body-text strong{font-size:14px}}@media (width>=1200px){.side-nav-link{color:var(--line-ink);align-items:center;padding:4px 0;font-size:12px;font-weight:400;text-decoration:none;transition:color .2s;display:inline-flex}.side-nav-link:hover{color:var(--text)}.side-nav-link.is-active{color:var(--text);font-weight:500}.side-nav-icon{opacity:0;width:0;margin-right:0;transition:width .25s cubic-bezier(.22,1,.36,1),margin-right .25s cubic-bezier(.22,1,.36,1),opacity .2s;display:inline-flex;overflow:hidden}.side-nav-icon svg{flex-shrink:0;width:12px;height:12px}.side-nav-link.is-active .side-nav-icon{opacity:1;width:12px;margin-right:6px}}.ruled .panel-header h1.section-title{font-size:32px;line-height:1.15}.cs-page .cs-hero .panel-header{flex-direction:column;align-items:flex-start;gap:16px}.cs-page .cs-hero .panel-index--logo{border:0;width:auto;height:auto;margin:0;padding:0}.cs-page .cs-hero .panel-header .section-title{padding:0}@media (width>=1200px){.side-nav{right:calc(50% + var(--container-max) / 2 + 24px)}.side-nav-link{align-items:flex-start;max-width:100%;line-height:16px}.side-nav-icon{margin-top:2px}}.cs-page .cs-hero .panel-header .section-title{text-align:left;align-self:stretch}.cs-page .cs-meta--ruled .cs-meta-label{text-transform:none;letter-spacing:0;font-family:Hanken Grotesk,sans-serif}.ruled .panel>.padding-global>.container-large{padding-block:40px}.ruled .panel-header{align-items:center;min-height:0}.ruled .panel-header .section-title,.cs-page .panel.cs-section .panel-header .section-title,.cs-page .cs-more .panel-header .section-title{padding:0}.ruled .panel-body,.ruled .panel--work .panel-body{padding:16px 0 0}.ruled .panel-desc{padding:8px 0 0}.ruled .panel--gallery>.padding-global>.container-large{padding-bottom:16px}@media (width>=1200px){.ruled main>:first-child>.padding-global>.container-large{padding-top:72px}}.ruled footer .container-large:before{margin-right:48px;top:25px;transform:rotate(-4deg)}.ruled footer .container-large:after{width:34px;height:21px;margin-right:8px;top:28px;transform:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17c8-9 19-11 31-5'/%3E%3Cpath d='m27 7 7 5-8 3'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17c8-9 19-11 31-5'/%3E%3Cpath d='m27 7 7 5-8 3'/%3E%3C/svg%3E") 50%/contain no-repeat}.ruled .panel-body>*{margin-top:0;margin-bottom:0}.ruled .panel-body>*+*{margin-top:24px}.ruled .panel-body>:is(p,.body-text,ul,ol,.cs-list,.cs-results,.cs-annotated-list)+:is(p,.body-text,ul,ol,.cs-list,.cs-results,.cs-annotated-list){margin-top:16px}.ruled .panel-body>*+:is(.cs-note,.fig-caption,figcaption){margin-top:8px}.ruled .panel-body>*+:is(h3,h4,.section-title){margin-top:40px}.ruled .panel-body>:is(h3,h4,.section-title)+*{margin-top:16px}.cs-list li{margin:0}.cs-list li+li{margin-top:8px}.cs-annotated-list,.resume-entry-highlights{gap:8px}.cs-page .cs-results{flex-direction:column;gap:16px;display:flex}.cs-page .cs-results li{padding:0}.cs-page .cs-section--results .cs-metric-row+.body-text{padding:0;margin-top:24px!important}.panel-index--logo img{border-radius:10px;width:48px;height:48px}.ruled .panel-body>.skill-row+.skill-row,.ruled .panel-body>.resume-entry+.resume-entry{margin-top:0}.hand-note{transition:opacity .25s}.hand-note.is-tucked{opacity:0!important}@media (width>=1200px){:root{--container-max:clamp(640px, calc(100vw - 760px), 800px)}.side-nav-icon i{font-size:12px;line-height:1;display:block}}.about-grid{grid-template-columns:1fr;gap:24px}.about-expertise-col{padding-left:0}.expertise-list{flex-flow:wrap;gap:8px}.expertise-item{white-space:nowrap}.expertise-item:after{z-index:30;inset:auto auto calc(100% + 12px) 0;transform:translateY(6px)}.expertise-item:hover:after{transform:translateY(0)}.expertise-item:before{border-left-color:#0000;border-top-color:var(--text);z-index:30;inset:auto auto 100% 18px;transform:none}@media (width>=1200px){.side-switch{gap:0}.side-switch-label{margin-right:10px}.side-switch-icon{opacity:0;width:0;margin-right:0;transition:width .25s cubic-bezier(.22,1,.36,1),margin-right .25s cubic-bezier(.22,1,.36,1),opacity .2s;display:inline-flex;overflow:hidden}.side-switch-icon i{font-size:12px;line-height:1}.side-switch:hover .side-switch-icon,.side-switch:focus-visible .side-switch-icon{opacity:1;width:12px;margin-right:6px}.side-switch-icon--off,.side-switch[aria-checked=false] .side-switch-icon--on{display:none}.side-switch[aria-checked=false] .side-switch-icon--off{display:block}}.footer-signoff{align-items:center;gap:8px;margin-top:24px;display:flex}.footer-signoff-mark{background-color:var(--text);flex-shrink:0;width:20px;height:20px;-webkit-mask:url(/assets/images/logo-black.svg) 50%/contain no-repeat;mask:url(/assets/images/logo-black.svg) 50%/contain no-repeat}.footer-signoff-copy{color:var(--line-ink);font-size:12px;line-height:1}.footer-signoff .footer-visitors{margin:0 0 0 auto}@media (width>=581px) and (width<=899px){.hero-dt-cta{width:256px}.hero-dt-cta-row{flex-wrap:nowrap}.dt-cta-label{display:inline-flex}}@media (width>=1200px) and (pointer:coarse){.side-nav-link{padding:10px 0}.side-nav{gap:0}.side-switch{height:36px}.side-controls{gap:0}}.section-nav{display:none!important}@media (width<=1199px){.nav-toggle{display:inline-flex}.header-actions .theme-switch,.header-actions .btn-resume,.header-actions .sound-toggle{display:none}}.footer-signoff{flex-wrap:wrap;row-gap:8px}.footer-signoff-dot{color:var(--line-ink);opacity:.7;font-size:12px}.footer-built{color:var(--line-ink);align-items:center;gap:4px;font-size:12px;line-height:1;text-decoration:none;transition:color .2s;display:inline-flex}.footer-built img{width:14px;height:14px;transition:transform .25s cubic-bezier(.34,1.56,.64,1);display:block}.footer-built:hover{color:var(--text)}.footer-built:hover img{transform:translateY(-1px)rotate(-8deg)scale(1.1)}@media (width>=581px){.ruled .panel-body>:is(.cs-frame,img,video,.cs-shot-row,.cs-slider,.motion-scene),.cs-page .cs-hero-media>:is(img,video,.cs-hero-embed-live,.cs-frame){width:calc(100% + 32px);max-width:none;margin-inline:-16px}}.footer-signoff-dot{display:none}.footer-signoff-mark{order:0}.footer-signoff-copy{order:1}.footer-signoff .footer-visitors{order:2;margin:0}.footer-signoff .footer-visitors:before{content:"·";color:var(--line-ink);opacity:.7;margin-right:8px;font-size:12px}.footer-built{order:3;margin-left:auto}@media (width>=581px){.cs-page .cs-hero-media>:is(img,video,.cs-hero-embed-live,.cs-frame){width:calc(100% + 32px)!important}}.footer-contact-left{flex-direction:column;gap:8px;display:flex}.footer-mailto-link{text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 30%, transparent);text-underline-offset:3px;cursor:copy;align-items:center;gap:6px;transition:text-decoration-color .2s;display:inline-flex;position:relative}.footer-mailto-link:hover{text-decoration-color:currentColor}.footer-copy-icon{color:var(--line-ink);opacity:0;font-size:14px;transition:opacity .2s,transform .2s;transform:translate(-4px)}.footer-mailto-link:hover .footer-copy-icon{opacity:1;transform:none}.footer-copied{background:var(--text);color:var(--bg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;margin-left:26px;padding:3px 8px;font-size:12px;line-height:16px;transition:opacity .18s,transform .18s;position:absolute;top:50%;left:100%;transform:translate(-4px,-50%)}.footer-mailto-link.is-copied .footer-copied{opacity:1;transform:translateY(-50%)}.footer-mailto-link.is-copied .footer-copy-icon{opacity:1;transform:none}.footer-localtime{color:var(--line-ink);font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin:0;font-size:12px;line-height:1;display:inline-flex}.footer-localtime-icon{font-size:12px}.footer-mailto-link{text-decoration:none}.footer-mailto-text{text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 30%, transparent);text-underline-offset:3px;transition:text-decoration-color .2s}.footer-mailto-link:hover .footer-mailto-text{text-decoration-color:currentColor}.footer-mailto-link:hover,.footer-mailto-link:focus{text-decoration:none}.footer-copied{margin-left:10px}.footer-contact-row{align-items:center;margin-top:16px}.footer-copy-btn{background:var(--text);height:40px;color:var(--bg);cursor:pointer;border:0;border-radius:100px;align-items:center;gap:8px;padding:0 18px;font-family:Hanken Grotesk,sans-serif;font-size:16px;font-weight:500;transition:opacity .15s,transform .15s;display:inline-flex}.footer-copy-btn:hover{opacity:.85}.footer-copy-btn:active{transform:scale(.97)}.footer-copy-btn-icon{font-size:16px}.footer-copy-btn.is-copied .footer-copy-btn-icon{animation:.3s cubic-bezier(.34,1.56,.64,1) copyPop}@keyframes copyPop{0%{transform:scale(.4)}to{transform:scale(1)}}@media (width<=580px){.footer-copy-btn{height:36px;font-size:14px}}@media (width>=1200px){footer .hero-social-links,footer .footer-localtime{display:none}}.side-socials,.side-time{display:none}@media (width>=1200px) and (height>=640px){.side-socials{z-index:20;bottom:40px;left:calc(50% - var(--container-max) / 2 - (50% - var(--container-max) / 2 - 24px) / 2 + 1px);flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:fixed}.side-socials-note{color:var(--line-ink);pointer-events:none;user-select:none;align-items:flex-end;gap:2px;margin-left:18px;font-family:Caveat,cursive;font-size:20px;font-weight:500;line-height:1;display:flex;transform:rotate(-5deg)}.side-socials-note svg{width:24px;height:24px;margin-bottom:-10px;transform:scaleX(-1)rotate(10deg)}.side-socials-row{align-items:center;gap:14px;display:flex}.side-socials-row .social-icon-mask{background-color:var(--line-ink);width:16px;height:16px;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.side-socials-row .social-link:hover .social-icon-mask{transform:translateY(-2px)}.side-time{z-index:20;bottom:40px;right:calc(50% - var(--container-max) / 2 - (50% - var(--container-max) / 2 - 24px) / 2 + 1px);display:inline-flex;position:fixed}}.footer-copy-btn.btn-ghost{height:32px;color:var(--muted);background:0 0;border:0;border-radius:0;gap:6px;padding:0 2px}.footer-copy-btn.btn-ghost:hover{opacity:1;color:var(--text)}.footer-copy-btn .footer-copy-btn-icon{order:1;font-size:14px;transition:transform .2s}.footer-copy-btn:hover .footer-copy-btn-icon{transform:translateY(-1px)}.footer-copy-btn.is-copied{color:var(--text)}.footer-contact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-contact>.section-title{margin:0}@media (width<=1199px){.footer-contact{flex-direction:column;align-items:stretch}}.footer-contact>.footer-signoff{flex-basis:100%}.ruled footer .container-large:before,.ruled footer .container-large:after{display:none!important}.footer-contact{flex-direction:column;align-items:stretch;gap:24px;display:flex}.footer-contact .footer-contact-row{margin-top:0}.footer-contact>.footer-signoff{margin-top:0;padding-top:0}@media (width>=1200px){footer .footer-contact-row{display:none}}.social-link--mail{cursor:pointer;color:var(--text);background:0 0;border:0;padding:0;line-height:0;position:relative}.social-mail-icon{font-size:24px;transition:color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.social-link--mail:hover .social-mail-icon,.social-link--mail.is-copied .social-mail-icon{color:#ea4335}.side-socials-row .social-mail-icon{color:var(--line-ink);font-size:17px}.side-socials-row .social-link--mail:hover .social-mail-icon{color:#ea4335}.side-socials-row .social-link--mail.is-copied .social-mail-icon,.social-link--mail.is-copied .social-mail-icon{color:#34a853}.social-link--mail:after{content:attr(data-tip);background:var(--text);color:var(--bg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:4px 8px;font-family:Hanken Grotesk,sans-serif;font-size:12px;line-height:1.4;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.side-socials-row .social-link--mail:after{left:0;transform:translateY(4px)}.social-link--mail:hover:after,.social-link--mail:focus-visible:after,.social-link--mail.is-copied:after{opacity:1;transform:translate(-50%)}.side-socials-row .social-link--mail:hover:after,.side-socials-row .social-link--mail:focus-visible:after,.side-socials-row .social-link--mail.is-copied:after{transform:translate(0)}.ruled .stripe--end .container-large{border-inline:1px dashed var(--rail)}@media (width>=581px){.ruled .cards-grid>.card .card-thumb{width:calc(100% + 16px);max-width:none}.ruled .cards-grid>.card:nth-child(odd) .card-thumb{margin-left:-16px}.ruled .motion-scene-grid .motion-scene{width:calc(100% + 32px);max-width:none;margin-inline:-16px}}@media (width>=769px){.ruled .motion-scene-grid .motion-scene{width:calc(100% + 16px);margin-inline:0}.ruled .motion-scene-grid .motion-fig:nth-child(odd) .motion-scene{margin-left:-16px}}.btn-ghost{gap:4px;font-size:12px!important}.btn-ghost svg{width:12px;height:12px}@media (width>=1200px) and (height>=640px){.side-time{flex-direction:column;align-items:flex-end;gap:8px}.side-time .footer-localtime{display:inline-flex}.side-visitors{margin:0}.side-visitors[hidden]{display:none}footer .footer-visitors{display:none!important}}.ruled .panel--work .panel-body{overflow:visible}.work-switcher-trigger,.work-switcher-item,.work-switcher-label,.work-switcher-item-label{font-size:12px!important}.work-switcher-brand-mark{background-color:var(--text);width:12px;height:12px;-webkit-mask:url(/assets/images/logo-black.svg) 50%/contain no-repeat;mask:url(/assets/images/logo-black.svg) 50%/contain no-repeat}.social-link--mail:hover:not(.is-copied):after,.social-link--mail:focus-visible:not(.is-copied):after{opacity:0}.side-download{height:20px;margin-top:6px;padding:0}.side-download i{font-size:12px;transition:transform .2s}.side-download:hover i{transform:translateY(2px)}.page-resume .resume-entry-head{gap:8px;margin-bottom:4px}.page-resume .cs-section h3.resume-entry-title{color:var(--text);font-family:Instrument Sans,sans-serif;font-size:20px;font-weight:600;line-height:28px}.page-resume .resume-entry-date{color:var(--line-ink);margin:0 0 16px;font-size:12px;line-height:16px}.page-resume .resume-entry-highlights{gap:8px;margin:0;padding:0}.page-resume .resume-entry-highlights li{color:var(--muted);padding-left:16px;font-size:16px;line-height:1.6}.page-resume .resume-entry-highlights li:before{content:"";background:var(--muted);border-radius:50%;width:4px;height:4px;top:calc(.8em - 2px);left:2px}.page-resume .resume-entry-highlights li strong{color:var(--text);font-weight:500}@media (width<=580px){.page-resume .cs-section h3.resume-entry-title{font-size:16px;line-height:24px}.page-resume .resume-entry-highlights li{font-size:14px}}.page-resume .resume-entry-head{margin-bottom:16px}.page-resume .resume-entry-head .resume-entry-date{white-space:nowrap;margin:0 0 0 auto;padding-left:16px}@media (width<=580px){.page-resume .resume-entry-head{flex-wrap:wrap;row-gap:4px}.page-resume .resume-entry-head .resume-entry-date{flex-basis:100%;margin:0;padding-left:0}}.page-explorations .ill-cell{padding:16px 16px 44px}@media (width<=580px){.page-explorations .ill-cell{padding:16px 16px 44px}}.page-explorations .ill-frame-wrap{overflow:hidden}.ill-tag{padding:12px 16px;font-family:Hanken Grotesk,sans-serif;font-size:12px;line-height:16px}@media (width>=581px){#marketing .ill-cell:last-child .ill-frame-wrap{max-width:min(340px,50% - 16.5px)!important}}.page-explorations .gallery-frame{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.gallery-marks{pointer-events:none;z-index:3;position:absolute;inset:0}.gallery-marks i{background:linear-gradient(var(--line-ink), var(--line-ink)) center / 9px 1px no-repeat, linear-gradient(var(--line-ink), var(--line-ink)) center / 1px 9px no-repeat;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;position:absolute}@media (width<=580px){footer .hero-social-links{gap:14px}footer .hero-social-links .social-icon-mask{width:18px;height:18px}footer .social-mail-icon{font-size:18px}}.writing-read:before{content:"";opacity:0;background-color:currentColor;width:0;height:16px;margin-right:-4px;transition:width .2s 50ms,margin .2s 50ms,opacity .2s 50ms;-webkit-mask:url("../assets/social-icons/Medium - Dark.svg") 0/contain no-repeat;mask:url("../assets/social-icons/Medium - Dark.svg") 0/contain no-repeat}.writing-row:hover .writing-read:before{opacity:1;width:16px;margin-right:2px}.hero-social-links .social-link,.side-socials-row .social-link{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:40px;height:40px;transition:border-color .15s}.hero-social-links .social-link:hover,.side-socials-row .social-link:hover{border-color:var(--line-ink)}footer .hero-social-links{gap:8px}footer .hero-social-links .social-icon-mask{width:20px;height:20px}footer .social-mail-icon{font-size:20px}@media (width>=1200px) and (height>=640px){.side-socials-row{gap:4px}.side-socials-row .social-link{border-radius:8px;width:28px;height:28px}.side-socials-row .social-icon-mask{width:14px;height:14px}.side-socials-row .social-mail-icon{font-size:14px}.side-socials-row .social-link:hover .social-icon-mask{transform:none}}@media (width<=580px){footer .hero-social-links{gap:6px}footer .hero-social-links .social-link{border-radius:9px;width:36px;height:36px}footer .hero-social-links .social-icon-mask{width:18px;height:18px}footer .social-mail-icon{font-size:18px}}@media (width>=1200px) and (height>=640px){.side-socials-row{max-width:calc((50vw - var(--container-max) / 2) / 2 - 29px);flex-wrap:wrap}}[data-theme=dark] .social-link[aria-label=Medium]:hover .social-icon-mask{background-color:#fff}.social-icon-mask--medium,.side-socials-row .social-link:hover .social-icon-mask--medium,.hero-social-links .social-link:hover .social-icon-mask--medium{transform:scale(.86)}@media (width>=581px){.hero-dt-cta{transition:opacity .15s,width .3s cubic-bezier(.22,1,.36,1),height .3s cubic-bezier(.22,1,.36,1),font-size .2s}.hero-dt-cta.is-s{width:176px;height:36px;font-size:12px}.hero-dt-cta.is-m{width:256px;height:48px;font-size:16px}.hero-dt-cta.is-l{width:320px;height:56px;font-size:20px}}.hero-dt-cta-row{position:relative}.cta-sel{display:none}@media (hover:hover) and (pointer:fine) and (width>=581px){.cta-sel{pointer-events:none;border:1.5px solid #3b7ef4;border-radius:2px;transition:width .3s cubic-bezier(.22,1,.36,1),height .3s cubic-bezier(.22,1,.36,1);display:block;position:absolute;top:50%;left:0;transform:translateY(-50%)}.cta-handle{pointer-events:auto;cursor:ew-resize;background:#3b7ef4;border-radius:1px;width:8px;height:8px;margin-top:-4px;transition:transform .15s;position:absolute;top:50%;right:-5px}.cta-handle:before{content:"";position:absolute;inset:-10px -8px}.cta-handle:hover,.is-resizing .cta-handle{transform:scale(1.25)}.cta-handle:focus-visible{outline-offset:2px;outline:1.5px solid #3b7ef4}.is-resizing,.is-resizing *{cursor:ew-resize!important}.cta-dims{font-variant-numeric:tabular-nums;justify-content:center;min-width:9ch}.hero-dt-cta-row .dt-cta-label{margin-left:4px}}.dt-cta-label,.cta-sel{opacity:0}.hero-dt-stage.is-ready .dt-cta-label,.hero-dt-stage.is-ready .cta-sel{--from:-8px;animation:.6s cubic-bezier(.22,1,.36,1) 2.4s both heroAnnotIn}@media (prefers-reduced-motion:reduce){.hero-dt-stage.is-ready .dt-cta-label,.hero-dt-stage.is-ready .cta-sel{opacity:1;animation:none}}.cta-sel{--sel:#3b7ef4}.snap-board{border:1px solid var(--line);background-color:var(--bg);background-image:radial-gradient(circle, var(--dot-ink) 1.5px, transparent 2px), linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);touch-action:none;user-select:none;background-position:-20px -20px,0 0,0 0;background-size:40px 40px;border-radius:8px;height:280px;position:relative;overflow:hidden}.snap-ghost{pointer-events:none;border:1.5px dashed #3b7ef4;border-radius:4px;transition:opacity .3s;position:absolute;top:0;left:0}.snap-layer{--sel:#3b7ef4;background:color-mix(in srgb, #3b7ef4 10%, var(--surface));cursor:grab;border:1.5px solid #3b7ef4;border-radius:4px;outline:none;place-items:center;transition:box-shadow .15s;display:grid;position:absolute;top:0;left:0}.snap-layer:focus-visible{box-shadow:0 0 0 3px #3b7ef44d}.is-dragging .snap-layer{cursor:grabbing}.is-locked .snap-layer{cursor:default;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .15s}.is-perfect .snap-layer{--sel:#10b981;background:color-mix(in srgb, #10b981 12%, var(--surface));border-color:#10b981}.snap-layer-name{color:#3b7ef4;font-family:Geist Mono,monospace;font-size:12px}.is-perfect .snap-layer-name{color:#10b981}.snap-xy{font-variant-numeric:tabular-nums;pointer-events:none;position:absolute;bottom:8px;right:8px}.snap-bar{justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}.snap-status{color:var(--muted);margin:0;font-size:16px}@media (width<=580px){.snap-board{height:240px}.snap-status{font-size:14px}}button.btn-ghost{cursor:pointer;background:0 0;border:0;padding:0 2px}.page-404 footer,.page-404 .side-time{display:none!important}.lost{place-items:center;min-height:100svh;padding:40px 16px;display:grid}.lost-inner{width:min(680px,100%)}.lost-line{color:var(--line-ink);margin:0 0 16px;font-size:12px;line-height:16px}.lost-line span{font-family:Geist Mono,monospace}.lost-line a{color:var(--muted);text-underline-offset:2px;text-decoration:underline;text-decoration-color:var(--line);transition:color .15s}.lost-line a:hover{color:var(--text);text-decoration-color:currentColor}.snap-hint{color:var(--line-ink);margin:8px 0 0;font-size:12px;line-height:16px}@media (hover:none){.snap-hint-keys{display:none}}.page-404 .page-bg{background-image:none!important}.page-404 .page-bg:before,.page-404 .page-bg:after,.page-404:before,.page-404:after{content:none!important}.snap-lock{background:var(--text);min-width:176px;height:48px;color:var(--bg);letter-spacing:0;cursor:pointer;border:0;border-radius:100px;flex-shrink:0;justify-content:center;align-items:center;padding:0 24px;font-family:Hanken Grotesk,sans-serif;font-size:16px;font-weight:500;transition:opacity .15s;display:inline-flex}.snap-lock:hover{opacity:.75}.snap-lock:focus-visible{outline-offset:2px;outline:2px solid #3b7ef4}@media (width<=580px){.snap-lock{min-width:0;height:40px;font-size:14px}}.snap-layer{background:#3b7ef414}.is-perfect .snap-layer{background:#10b9811a}.snap-target{z-index:2;pointer-events:none;opacity:.7;border:1.5px solid #3b7ef4;border-radius:50%;width:12px;height:12px;transition:transform .12s,background-color .15s,opacity .15s;position:absolute;top:-6px;left:-6px}.snap-target.is-on{opacity:1;background:#3b7ef4}.is-locked .snap-target{opacity:0}@media (width<=1199px){.page-404 .lost{min-height:calc(100svh - 72px);padding-block:24px}}.confetti-canvas{pointer-events:none;z-index:1000;width:100vw;height:100vh;position:fixed;inset:0}.expertise-icon svg{width:12px;height:12px}.hd-l1-row{position:relative}.type-metrics{pointer-events:none;display:none;position:absolute;inset:0}@media (hover:hover) and (pointer:fine) and (width>=900px){.type-metrics{display:block}}.type-metric{transform-origin:0;height:0;transition:transform .45s cubic-bezier(.22, 1, .36, 1) calc(var(--i) * 45ms);border-top:1px dashed #3b7ef48c;position:absolute;left:0;right:0;transform:scaleX(0)}.type-metric--base{border-top-style:solid;border-top-color:#3b7ef4}.type-metric-name{color:#3b7ef4;white-space:nowrap;opacity:0;transition:opacity .2s ease calc(var(--i) * 45ms + .2s);font-family:Geist Mono,monospace;font-size:12px;line-height:1;position:absolute;bottom:2px;right:0}.is-measuring .type-metric{transform:scaleX(1)}.is-measuring .type-metric-name{opacity:1}.is-measuring .type-metric{transition-delay:calc(var(--i) * 45ms)}.hd-l1-row:not(.is-measuring) .type-metric{transition-duration:.25s;transition-delay:0s}.hd-l1-row:not(.is-measuring) .type-metric-name{transition-delay:0s}.dt-xheight-col{transition:transform .3s}@media (prefers-reduced-motion:reduce){.type-metric,.type-metric-name,.dt-xheight-col{transition:none}}.type-metric--asc .type-metric-name{right:0}.type-metric--cap .type-metric-name{right:84px}.type-metric--x .type-metric-name{display:none}.type-metric--base .type-metric-name{right:0}.type-metric--desc .type-metric-name{top:3px;bottom:auto;right:0}@keyframes pageIn{0%{opacity:0}to{opacity:1}}.ruled main,.ruled .dimension,.ruled footer,.ruled .stripe--end,.hero-dt-stage{opacity:1;animation:.5s both pageIn}@media (prefers-reduced-motion:reduce){.ruled main,.ruled .dimension,.ruled footer,.ruled .stripe--end,.hero-dt-stage{animation:none}}.hero-dt-stage:not(.is-ready) #hero-scramble{visibility:hidden}.site-rows{border-top:1px solid var(--line)}.site-row{border-bottom:1px solid var(--line);color:var(--text);justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;text-decoration:none;transition:padding .25s cubic-bezier(.22,1,.36,1),background-color .2s;display:flex}.site-row-name{font-family:Instrument Sans,sans-serif;font-size:16px;font-weight:500;line-height:24px}.site-row-year{color:var(--line-ink);font-variant-numeric:tabular-nums;font-size:12px;line-height:16px}.site-row:hover{background:var(--surface);padding-inline:8px}.site-row:focus-visible{outline-offset:-2px;outline:2px solid #3b7ef4}.site-viewer-open{overflow:hidden}.site-viewer{border:1px solid var(--line);background:var(--bg);width:min(720px,100vw - 32px);max-width:none;max-height:calc(100svh - 32px);color:var(--text);border-radius:16px;flex-direction:column;margin:auto;padding:0;transition:width .35s cubic-bezier(.22,1,.36,1),height .35s cubic-bezier(.22,1,.36,1);overflow:hidden;box-shadow:0 24px 80px #0000002e}.site-viewer[open]{animation:.35s cubic-bezier(.22,1,.36,1) siteViewerIn;display:flex}.site-viewer::backdrop{-webkit-backdrop-filter:blur(6px);background:#0a0a0a59}@keyframes siteViewerIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.site-viewer-body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:32px 32px 24px;display:flex;overflow:auto}.site-viewer-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.site-viewer-title{margin:0;font-family:Instrument Sans,sans-serif;font-size:24px;font-weight:500;line-height:32px}.site-viewer-year{color:var(--line-ink);font-variant-numeric:tabular-nums;font-size:12px;line-height:16px}.site-viewer-desc{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.site-viewer-frame{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.site-viewer-expand{z-index:2;-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;opacity:0;pointer-events:none;background:#141414b8;border:1px solid #ffffff29;border-radius:100px;height:28px;padding:0 12px;font-family:Hanken Grotesk,sans-serif;font-size:12px;font-weight:500;transition:opacity .2s,transform .2s,background-color .15s;position:absolute;top:10px;right:10px;transform:translateY(-4px)}.site-viewer-expand:hover{background:#141414e6}.site-viewer-screen.is-loaded:hover .site-viewer-expand,.site-viewer-screen.is-loaded.is-hovered .site-viewer-expand,.site-viewer-screen.is-loaded .site-viewer-expand:focus-visible{opacity:1;pointer-events:auto;transform:none}@media (hover:none){.site-viewer-screen.is-loaded .site-viewer-expand{opacity:1;pointer-events:auto;transform:none}}.site-viewer-screen{aspect-ratio:16/10;background:#fff;position:relative;overflow:hidden}.site-viewer-screen iframe{transform-origin:0 0;opacity:0;border:0;transition:opacity .3s;position:absolute;top:0;left:0}.site-viewer-screen.is-loaded iframe{opacity:1}.site-viewer-loading{justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.site-viewer-loading span{background:#c7c7c7;border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite siteViewerDot}.site-viewer-loading span:nth-child(2){animation-delay:.15s}.site-viewer-loading span:nth-child(3){animation-delay:.3s}.site-viewer-screen.is-loaded .site-viewer-loading{display:none}@keyframes siteViewerDot{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.site-viewer-link{color:var(--text);text-decoration:underline;text-decoration-color:var(--line-ink);text-underline-offset:4px;align-self:flex-start;align-items:center;gap:4px;font-size:16px;transition:text-decoration-color .15s;display:inline-flex}.site-viewer-link:hover{text-decoration-color:currentColor}.site-viewer-link svg{color:var(--line-ink);transition:transform .2s}.site-viewer-link:hover svg{transform:translate(2px,-2px)}.site-viewer-foot{border-top:1px solid var(--line);padding:12px 32px}.site-viewer-close{height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 2px;font-family:Hanken Grotesk,sans-serif;font-size:12px;font-weight:500;transition:color .15s}.site-viewer-close:hover{color:var(--text)}.site-viewer.is-expanded{width:min(1200px,100vw - 32px);height:calc(100svh - 48px)}.site-viewer.is-expanded .site-viewer-body{gap:0;padding:16px;overflow:hidden}.site-viewer.is-expanded .site-viewer-head,.site-viewer.is-expanded .site-viewer-desc,.site-viewer.is-expanded .site-viewer-link{display:none}.site-viewer.is-expanded .site-viewer-frame{flex:1;min-height:0}.site-viewer.is-expanded .site-viewer-screen{aspect-ratio:auto;flex:1;min-height:0}@media (width<=580px){.site-viewer{border-radius:14px;width:calc(100vw - 16px);max-height:calc(100svh - 16px)}.site-viewer.is-expanded{width:calc(100vw - 16px);height:calc(100svh - 16px)}.site-viewer-body{padding:20px 16px 16px}.site-viewer-foot{padding:8px 16px}.site-viewer-title{font-size:20px;line-height:28px}.site-viewer-desc{font-size:14px}.site-viewer-screen{aspect-ratio:4/5}}@media (prefers-reduced-motion:reduce){.site-viewer,.site-row{transition:none}.site-viewer[open]{animation:none}}.site-row-name{align-items:center;gap:10px;display:inline-flex}.site-row-logo{border-radius:5px;flex-shrink:0;width:20px;height:20px}.site-row:hover{padding-inline:0}@media (width<=580px){.site-viewer-screen iframe{pointer-events:none}.site-viewer-expand,.site-viewer-screen.is-loaded .site-viewer-expand{display:none}}.work-switcher-icon--brand{background:0 0;border-radius:0}.work-switcher-icon--brand .work-switcher-brand-mark{width:16px;height:16px}.resume-paper-panel>.padding-global>.container-large{padding-block:40px}.paper{--paper-ink:#212121;--paper-muted:#666;--paper-blue:#236afd;box-sizing:border-box;color:var(--paper-ink);letter-spacing:0;text-align:left;background:#fff;border-radius:2px;padding:48px 56px 56px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:400;line-height:1.5;box-shadow:0 1px 2px #0000000f,0 6px 16px #0000000f,0 24px 56px #00000014}[data-theme=dark] .paper{box-shadow:0 1px 2px #0006,0 24px 64px #0000008c}@media (width>=581px){.paper{width:calc(100% + 32px);margin-inline:-16px}}.paper *{letter-spacing:0;font-family:inherit}.paper p,.paper h1,.paper h2,.paper h3,.paper ul{margin:0}.paper a{color:inherit;text-underline-offset:1.5px;text-decoration:underline}.paper strong{color:var(--paper-ink);font-weight:700}.paper-top{justify-content:space-between;gap:16px;display:flex}.paper-links{gap:12px;display:flex}.paper .paper-name{text-align:center;color:var(--paper-ink);margin-top:12px;font-size:32px;font-weight:700;line-height:1.25}.paper .paper-role{color:var(--paper-muted);text-align:center;margin-top:4px;font-size:12px;font-style:italic}.paper .paper-summary{margin-top:16px}.paper .paper-line{margin-top:8px}.paper .paper-heading{border-bottom:2px solid var(--paper-blue);color:var(--paper-blue);margin-top:20px;padding-bottom:2px;font-size:16px;font-weight:700;line-height:1.5}.paper .paper-title{color:var(--paper-ink);font-size:12px;font-weight:700;line-height:1.5}.paper-date{color:var(--paper-muted)}.paper-work{grid-template-columns:1fr 1fr;gap:12px 24px;margin-top:10px;display:grid}.paper .paper-url{color:var(--paper-muted);font-style:italic;display:block}.paper .paper-project p{margin-top:2px}.paper-job{margin-top:10px}.paper-job-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.paper-job-head .paper-date{white-space:nowrap}.paper ul{margin-top:4px;padding-left:18px;list-style:outside}.paper li{color:var(--paper-ink);margin:0;padding:0}.paper li:before{content:none}.paper li::marker{color:var(--paper-ink)}.paper-cols{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:10px;display:grid}.paper-cols .paper-title{margin-bottom:4px}.paper .paper-cols p+p:not(.paper-date){margin-top:4px}@media (width<=580px){.paper{padding:28px 20px 32px}.paper-top{flex-direction:column;gap:2px}.paper .paper-name{font-size:28px}.paper-work,.paper-cols{grid-template-columns:1fr}.paper-job-head{flex-direction:column;gap:0}}.cs-meta-link{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color .2s}.cs-meta-link:hover{text-decoration-color:currentColor}.side-download--link:hover i{transform:translate(2px)}