@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap";:root{--background:#f3f0e8;--surface:#eeeae1;--paper:#fbfaf5;--ink:#13201a;--text:#13201a;--muted:#68746f;--line:#d8d2c6;--accent:#195d49;--accent2:#e6b29d;--dot:#c0b8aa;--solid:#13201a;--onSolid:#fbfaf5;--font-display:Manrope, Inter, ui-sans-serif, system-ui, sans-serif;--font-body:Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;color:var(--text);background:var(--background);font-family:var(--font-body);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);min-width:320px;color:var(--text);margin:0}button,select,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--solid)}.app-shell{min-height:100vh;overflow:clip}.site-header{z-index:50;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--background) 95%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:1fr auto auto;align-items:center;gap:28px;min-height:86px;padding:0 clamp(22px,3.2vw,52px);display:grid;position:relative}.brand{letter-spacing:-.02em;align-items:center;gap:13px;font-weight:600;display:flex}.brand-mark{background:var(--solid);width:34px;height:34px;color:var(--onSolid);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:11px;display:grid}.site-header .social-nav{align-items:center;gap:7px;display:flex}.site-header .social-nav a{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);background:color-mix(in srgb, var(--paper) 68%, transparent);border-radius:50%;place-items:center;transition:color .18s,border-color .18s,transform .18s;display:grid}.site-header .social-nav a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.site-header .social-nav svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.site-header .social-nav a:first-child svg{fill:currentColor;stroke:none}.header-tools{align-items:center;gap:9px;display:flex}.theme-toggle{border:1px solid var(--line);background:var(--paper);width:36px;height:36px;color:var(--accent);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:color .18s,border-color .18s,transform .18s;display:grid}.theme-toggle:hover{border-color:var(--accent);transform:rotate(8deg)}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.section-index{color:var(--accent);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:500;line-height:1.7}.button{border:1px solid var(--line);min-height:48px;color:var(--text);background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-size:13px;transition:transform .18s,border-color .18s;display:inline-flex}.button:hover{border-color:var(--accent);transform:translateY(-2px)}.button.primary,.button.inverse{border-color:var(--solid);background:var(--solid);color:var(--onSolid)}.hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(420px,.82fr) minmax(560px,1.18fr);min-height:730px;display:grid}.hero-copy{border-right:1px solid var(--line);padding:clamp(72px,8vw,112px) clamp(32px,4.4vw,72px) 68px}.hero h1.hero-role{max-width:580px;font-family:var(--font-display);letter-spacing:-.025em;margin:30px 0 0;font-size:clamp(34px,3.4vw,48px);font-weight:400;line-height:1.08}.hero-intro{max-width:520px;color:var(--muted);margin:18px 0 0;font-size:15px;line-height:1.65}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.hub-shell{background-color:var(--paper);background-image:radial-gradient(var(--dot) 1px, transparent 1px);background-size:21px 21px;min-width:0}.hub-map{width:100%;min-height:730px;position:relative}.orbit{border:1px solid var(--line);pointer-events:none;border-radius:50%;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.orbit-one{aspect-ratio:1;width:min(57%,470px)}.orbit-two{aspect-ratio:1;border-style:dashed;width:min(37%,305px)}.hub-core{background:var(--solid);width:150px;height:150px;color:var(--onSolid);text-align:center;box-shadow:0 0 0 9px color-mix(in srgb, var(--solid) 10%, transparent);border:0;border-radius:50%;place-content:center;display:grid;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.hub-core span,.hub-core strong{font-family:var(--font-display);font-size:21px;font-weight:400;line-height:1.04}.spoke{border:1px solid var(--line);background:var(--paper);min-width:124px;max-width:150px;min-height:52px;color:var(--text);box-shadow:0 8px 20px color-mix(in srgb, var(--ink) 5%, transparent);border-radius:999px;padding:10px 15px;transition:transform .18s,border-color .18s,background .18s;position:absolute;transform:translate(-50%,-50%)}.spoke>span{font-size:12px;line-height:1.2;display:block}.spoke small{display:none}.spoke:hover,.spoke.active{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--paper));transform:translate(-50%,-50%)translateY(-2px)}.spoke-opensource{background:color-mix(in srgb, var(--accent2) 36%, var(--paper))}.hub-back{z-index:3;border:1px solid var(--line);background:var(--paper);min-height:38px;color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 13px;font-size:9px;display:inline-flex;position:absolute;top:25px;left:26px}.hub-back:hover{border-color:var(--accent)}.scope-core{width:174px;height:174px;padding:20px}.scope-core small{color:color-mix(in srgb, var(--onSolid) 68%, transparent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px;font-size:7px}.scope-core strong{max-width:126px;font-size:20px}.scope-count{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:8px;position:absolute;top:calc(52% + 105px);left:50%;transform:translate(-50%)}.project-spoke{z-index:2;border:1px solid var(--line);background:var(--paper);width:clamp(130px,18%,168px);min-height:76px;box-shadow:0 9px 24px color-mix(in srgb, var(--ink) 7%, transparent);border-radius:15px;grid-template-columns:1fr auto;align-content:center;gap:5px 8px;padding:13px 14px;transition:transform .18s,border-color .18s;animation:.32s both scope-node-in;display:grid;position:absolute;transform:translate(-50%,-50%)}.project-spoke:hover{border-color:var(--accent);transform:translate(-50%,-50%)translateY(-3px)}.project-spoke small{color:var(--accent);font-family:var(--font-mono);grid-column:1/-1;font-size:8px}.project-spoke span{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);font-size:17px;line-height:1}.project-spoke i{color:var(--accent);align-self:end;font-size:12px;font-style:normal}.scope-mode-dense .project-spoke{border-radius:12px;width:clamp(108px,15%,132px);min-height:64px;padding:10px 11px}.scope-mode-dense .project-spoke span{font-size:14px}.scope-mode-dense .project-spoke small{font-size:7px}@keyframes scope-node-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.92)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.work-section,.skills-section,.public-section{padding:56px clamp(28px,3.2vw,52px) 70px}.work-section{background:var(--paper)}.section-heading{grid-template-columns:1fr 1fr;align-items:end;gap:50px;display:grid}.section-heading h2{font-family:var(--font-display);letter-spacing:-.035em;margin:10px 0 0;font-size:clamp(38px,4.2vw,58px);font-weight:400;line-height:1}.section-heading>p{max-width:500px;color:var(--muted);justify-self:end;margin:0;font-size:13px;line-height:1.55}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:58px 24px;padding-top:34px;display:grid}.project-grid-featured{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{min-width:0}.project-image-wrap{aspect-ratio:16/9;border:1px solid var(--line);background:var(--surface);display:block;position:relative;overflow:hidden}.project-image{object-fit:cover;width:100%;height:100%;transition:transform .4s}.project-card:hover .project-image{transform:scale(1.025)}.project-number{background:var(--solid);color:var(--onSolid);font-family:var(--font-mono);padding:9px 11px;font-size:9px;position:absolute;bottom:0;left:0}.project-meta{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:15px;margin-top:15px;font-size:9px;display:flex}.project-card h3{font-family:var(--font-display);letter-spacing:-.025em;margin:12px 0 0;font-size:clamp(30px,3vw,42px);font-weight:400;line-height:1}.project-card h3 a{justify-content:space-between;gap:16px;display:flex}.project-card h3 i{color:var(--accent);font-family:var(--font-body);font-size:18px;font-style:normal}.project-card>p{max-width:640px;color:var(--muted);margin:13px 0 0;font-size:13px;line-height:1.55}.project-card-compact{border-top:1px solid var(--solid);padding-top:20px}.project-card-compact .project-meta{margin-top:0}.project-card-compact h3{margin-top:26px;font-size:clamp(27px,2.7vw,38px)}.tag-row{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.tag-row span{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;border-radius:999px;padding:5px 8px;font-size:8px}.featured-showcase{scroll-snap-type:x proximity;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px;display:grid;overflow-x:auto}.featured-card{background:color-mix(in srgb, var(--surface) 55%, var(--paper));min-width:0}.featured-card,.featured-card-1,.featured-card:not(.featured-card-1){scroll-snap-align:start;flex-direction:column;display:flex}.featured-visual{background:var(--surface);min-width:0;display:block;position:relative;overflow:hidden}.featured-card .featured-visual,.featured-card-1 .featured-visual,.featured-card:not(.featured-card-1) .featured-visual{aspect-ratio:16/6;height:auto;min-height:0}.featured-visual img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.featured-card:hover .featured-visual img{transform:scale(1.025)}.featured-visual>span{background:var(--solid);color:var(--onSolid);font-family:var(--font-mono);padding:9px 11px;font-size:9px;position:absolute;top:0;left:0}.featured-copy,.featured-card-1 .featured-copy{min-width:0;padding:15px 16px 17px}.featured-copy .project-meta{margin-top:0}.featured-copy h3,.featured-card:not(.featured-card-1) .featured-copy h3{font-family:var(--font-display);letter-spacing:-.025em;margin:9px 0 0;font-size:clamp(23px,2vw,29px);font-weight:400;line-height:1}.featured-copy h3 a{justify-content:space-between;gap:14px;display:flex}.featured-copy h3 i{color:var(--accent);font-family:var(--font-body);font-size:16px;font-style:normal}.featured-copy>p,.featured-card:not(.featured-card-1) .featured-copy>p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:9px 0 0;font-size:10px;line-height:1.45;display:-webkit-box;overflow:hidden}.featured-copy .tag-row{margin-top:10px}.featured-card:not(.featured-card-1) .tag-row span:nth-child(n+3){display:none}.section-link{text-align:right;margin-top:24px}.section-link a{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.skills-section{background:color-mix(in srgb, var(--surface) 62%, var(--background))}.skills-heading{grid-template-columns:1fr 1fr;align-items:end;gap:50px;display:grid}.skills-heading h2{font-family:var(--font-display);letter-spacing:-.03em;margin:8px 0 0;font-size:clamp(32px,3.4vw,44px);font-weight:400;line-height:1}.skills-heading>p{max-width:430px;color:var(--muted);justify-self:end;margin:0;font-size:12px;line-height:1.55}.skills-list{gap:6px;margin-top:28px;display:grid}.skill-row{background:color-mix(in srgb, var(--paper) 76%, transparent);grid-template-columns:minmax(150px,.28fr) 1fr;align-items:baseline;gap:24px;padding:15px 18px;display:grid}.skill-row h3{color:var(--accent);font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:9px;font-weight:500}.skill-row>div{color:var(--text);flex-wrap:wrap;gap:5px 0;font-size:12px;line-height:1.5;display:flex}.skill-row span:not(:last-child):after{content:"·";color:var(--accent);margin:0 10px}.public-section{background:var(--background)}.public-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px;display:grid}.public-grid article{border-right:1px solid var(--line);background:color-mix(in srgb, var(--paper) 70%, transparent);border-right:0;flex-direction:column;min-height:295px;padding:24px;display:flex}.public-card-top{color:var(--accent);justify-content:space-between;align-items:flex-start;display:flex}.public-card-top>span{font-family:var(--font-mono);font-size:9px}.public-card-top svg{fill:none;stroke:currentColor;stroke-width:1.35px;stroke-linecap:round;stroke-linejoin:round;width:46px;height:46px}.public-grid h3{font-family:var(--font-display);margin:24px 0 0;font-size:36px;font-weight:400;line-height:1}.public-grid p{color:var(--muted);margin:16px 0 26px;font-size:13px;line-height:1.55}.public-grid a{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-top:auto;font-size:9px}.journey-cta{background:var(--paper);grid-template-columns:1.12fr .88fr;align-items:end;gap:clamp(48px,9vw,140px);padding:72px clamp(28px,4vw,66px) 76px;display:grid}.journey-cta h2{max-width:680px;font-family:var(--font-display);letter-spacing:-.045em;margin:20px 0 0;font-size:clamp(46px,5vw,72px);font-weight:400;line-height:.98}.journey-cta-copy{padding-top:18px}.journey-years{color:var(--accent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.journey-cta p{max-width:560px;color:var(--muted);margin:24px 0 28px;font-size:14px;line-height:1.65}.page-hero{border-bottom:1px solid var(--line);background:var(--paper);min-height:430px;padding:85px clamp(28px,4vw,66px) 65px}.page-hero h1{font-family:var(--font-display);letter-spacing:-.065em;margin:35px 0 0;font-size:clamp(70px,9vw,132px);font-weight:400;line-height:.82}.page-hero h1 em{color:var(--accent);font-style:italic}.page-hero>p{max-width:660px;color:var(--muted);margin:36px 0 0;font-size:16px;line-height:1.6}.journey-intro{border-bottom:1px solid var(--line);background:var(--paper);grid-template-columns:1fr;align-items:start;gap:24px;min-height:0;padding:62px clamp(28px,4vw,66px) 52px;display:grid}.journey-intro>.section-index{align-self:auto}.journey-intro>div{max-width:760px}.journey-intro h1{font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(52px,5.8vw,78px);font-weight:400;line-height:.94}.journey-intro p{max-width:660px;color:var(--muted);margin:22px 0 0;font-size:15px;line-height:1.6}.journey-view-control{align-items:center;gap:12px;margin-top:28px;display:flex}.journey-view-control>span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:8px}.journey-view-toggle{border:1px solid var(--line);background:var(--background);border-radius:999px;grid-template-columns:1fr 1fr;width:fit-content;padding:3px;display:grid}.journey-view-toggle button{min-width:92px;min-height:34px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:999px;font-size:8px}.journey-view-toggle button.active{background:var(--solid);color:var(--onSolid)}.timeline-group{border-bottom:1px solid var(--line);padding:64px clamp(28px,4vw,66px) 72px}#experience{background:color-mix(in srgb, var(--surface) 60%, var(--background))}#education{background:var(--paper)}#recognition{background:color-mix(in srgb, var(--accent2) 10%, var(--background))}#education .section-index{color:color-mix(in srgb, var(--accent2) 82%, var(--ink))}.timeline-group>header{grid-template-columns:.65fr 1fr;align-items:end;gap:40px;padding-bottom:30px;display:grid}.timeline-group>header h2{font-family:var(--font-display);margin:10px 0 0;font-size:clamp(34px,3.4vw,48px);font-weight:400;line-height:1}.timeline-group>header p{max-width:580px;color:var(--muted);margin:0;font-size:13px;line-height:1.6}.timeline-board{border-top:1px solid var(--line)}.timeline-axis{grid-template-columns:repeat(11,minmax(0,1fr));align-items:end;min-height:44px;display:grid}.timeline-axis span{border-left:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);padding:0 0 9px 7px;font-size:9px}.timeline-grid{background-image:repeating-linear-gradient(to right, transparent 0, transparent calc(9.0909% - 1px), color-mix(in srgb, var(--line) 72%, transparent) calc(9.0909% - 1px), color-mix(in srgb, var(--line) 72%, transparent) 9.0909%);grid-template-columns:repeat(11,minmax(0,1fr));grid-auto-rows:minmax(104px,auto);gap:8px 6px;padding:10px 0 18px;display:grid}.timeline-block{border:1px solid color-mix(in srgb, var(--accent) 15%, var(--line));background:color-mix(in srgb, var(--accent) 11%, var(--paper));min-width:0;box-shadow:0 6px 18px color-mix(in srgb, var(--ink) 4%, transparent);border-radius:13px;padding:13px 14px;overflow:hidden}.timeline-board-education .timeline-block{border-color:color-mix(in srgb, var(--accent2) 45%, var(--line));background:color-mix(in srgb, var(--accent2) 25%, var(--paper))}.timeline-board-recognition .timeline-block{border-color:var(--line);background:var(--paper)}.timeline-block-end{justify-self:end;width:calc(200% + 6px)}.timeline-block-link{height:100%;display:block}.timeline-block time{color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:8px;display:block}.timeline-block h3{overflow-wrap:anywhere;font-family:var(--font-display);margin:7px 0 0;font-size:clamp(14px,1.25vw,18px);font-weight:400;line-height:1.08}.timeline-block strong{color:var(--accent);margin-top:6px;font-size:10px;font-weight:500;line-height:1.3;display:block}.timeline-block p{color:var(--muted);margin:7px 0 0;font-size:10px;line-height:1.4}.timeline-block i{color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin-top:10px;font-size:8px;font-style:normal;display:block}.timeline-block-linked{transition:transform .18s,border-color .18s}.timeline-block-linked:hover{z-index:2;border-color:var(--accent);transform:translateY(-2px)}.journey-view-vertical .timeline-group{grid-template-columns:minmax(190px,.48fr) minmax(0,1.52fr);gap:clamp(30px,5vw,76px);padding-top:48px;padding-bottom:52px;display:grid}.journey-view-vertical .timeline-group>header{border-left:2px solid var(--accent);padding:5px 0 0 16px;display:block}.journey-view-vertical #education>header{border-left-color:var(--accent2)}.journey-view-vertical #recognition>header{border-left-color:var(--solid)}.journey-view-vertical .timeline-group>header h2{font-size:clamp(27px,2.8vw,36px)}.journey-view-vertical .timeline-group>header p{margin-top:14px;font-size:11px}.journey-view-vertical .timeline-axis{display:none}.journey-view-vertical .timeline-grid{background:linear-gradient(var(--line), var(--line)) 7px 0 / 1px 100% no-repeat;flex-direction:column;gap:8px;padding:0 0 0 24px;display:flex}.journey-view-vertical .timeline-block,.journey-view-vertical .timeline-block-end{border-radius:10px;justify-self:auto;width:auto;min-height:0;padding:12px 14px 13px;position:relative;overflow:visible}.journey-view-vertical .timeline-block:before{content:"";border:2px solid var(--background);background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:17px;left:-21px}.journey-view-vertical .timeline-block time{font-size:7px}.journey-view-vertical .timeline-block h3{margin-top:5px;font-size:clamp(15px,1.45vw,19px);line-height:1.08}.journey-view-vertical .timeline-block strong{margin-top:4px;font-size:9px}.journey-view-vertical .timeline-block p{max-width:620px;margin-top:5px;font-size:10px;line-height:1.35}.journey-view-vertical .timeline-block i{margin-top:7px;font-size:7px}.work-filters{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:7px;padding:24px clamp(28px,4vw,66px);display:flex}.work-filters button{border:1px solid var(--line);background:var(--paper);min-height:36px;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;border-radius:999px;padding:0 12px;font-size:8px}.work-filters button.active{border-color:var(--solid);background:var(--solid);color:var(--onSolid)}.all-projects{padding:52px clamp(28px,4vw,66px) 100px}.article-hero{border-bottom:1px solid var(--line);background:var(--paper);grid-template-columns:1.08fr .92fr;min-height:500px;display:grid}.article-hero>div{flex-direction:column;align-items:flex-start;padding:50px clamp(28px,4vw,66px);display:flex}.article-eyebrow{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:68px 0 0;font-size:9px}.article-hero h1{font-family:var(--font-display);letter-spacing:-.045em;margin:13px 0 0;font-size:clamp(50px,5.8vw,78px);font-weight:400;line-height:.92}.article-summary{max-width:650px;color:var(--muted);margin:21px 0 0;font-size:14px;line-height:1.55}.article-actions{gap:8px;margin-top:27px;display:flex}.article-hero>img{object-fit:cover;border-left:1px solid var(--line);background:var(--surface);width:100%;height:100%}.article-body{grid-template-columns:190px minmax(0,1fr);gap:clamp(36px,4vw,64px);padding:62px clamp(28px,4vw,66px) 90px;display:grid}.article-body aside{border-top:1px solid var(--line);align-self:start;position:sticky;top:30px}.article-body aside>div{border-bottom:1px solid var(--line);padding:16px 0}.article-body aside span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:8px;display:block}.article-body aside strong{margin-top:5px;font-size:11px;font-weight:500;display:block}.article-body>article{width:100%;min-width:0;max-width:none}.article-body>.article-reading{max-width:900px}.article-content{color:var(--text);font-size:clamp(16px,1.45vw,19px);line-height:1.78}.article-content p{margin:0 0 20px}.article-content p:last-child{margin-bottom:0}.article-content strong{color:var(--text);font-weight:600}.article-content ul{margin:20px 0;padding-left:22px}.article-content li{margin:7px 0;padding-left:4px}.article-links{border-top:1px solid var(--line);margin-top:42px;padding-top:18px}.article-links>span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:8px}.article-links>div{flex-wrap:wrap;gap:8px 18px;margin-top:14px;display:flex}.article-links a{color:var(--accent);font-family:var(--font-mono);font-size:10px}.article-body article>section{border-top:1px solid var(--line);padding:24px 0 44px 46px;position:relative}.article-section-number{color:var(--accent);font-family:var(--font-mono);font-size:8px;position:absolute;top:27px;left:0}.article-body h2{font-family:var(--font-display);margin:0;font-size:30px;font-weight:400}.article-body section>p{max-width:880px;color:var(--muted);margin:15px 0 0;font-size:15px;line-height:1.65}.award-callout{border-left:4px solid var(--accent2);background:var(--paper);margin-bottom:48px;padding:20px}.award-callout span{color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;font-size:8px;display:block}.award-callout strong{font-family:var(--font-display);margin-top:9px;font-size:23px;font-weight:400;display:block}.source-section>div{flex-direction:column;gap:11px;margin-top:20px;display:flex}.source-section a{color:var(--accent);font-family:var(--font-mono);font-size:11px}.next-work{border-top:1px solid var(--line);grid-template-columns:1fr repeat(3,1fr);display:grid}.next-work>*{border-right:1px solid var(--line);min-height:100px;padding:25px}.next-work span{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;font-size:9px}.next-work a{font-family:var(--font-display);font-size:22px}.not-found{min-height:70vh;padding:110px clamp(28px,4vw,66px)}.not-found h1{max-width:850px;font-family:var(--font-display);margin:35px 0;font-size:clamp(56px,8vw,118px);font-weight:400;line-height:.9}.site-footer{border-top:1px solid var(--line);background:var(--solid);color:var(--onSolid);padding:75px clamp(28px,4vw,66px)}.site-footer h2{max-width:800px;font-family:var(--font-display);margin:18px 0 0;font-size:clamp(44px,5.7vw,78px);font-weight:400;line-height:.94}@media (width<=1120px){.site-header{grid-template-columns:1fr auto auto}.header-tools{justify-self:end}.hero{grid-template-columns:1fr}.hero-copy{border-right:0;border-bottom:1px solid var(--line);min-height:600px}.hero h1.hero-role{max-width:700px;font-size:clamp(34px,5vw,46px)}.hub-map{min-height:690px}.public-grid article{padding:20px}}@media (width<=820px){.section-heading{grid-template-columns:1fr;align-items:start;gap:18px}.section-heading>p{justify-self:start}.project-grid,.project-grid-featured{grid-template-columns:1fr 1fr}.featured-showcase{grid-template-columns:repeat(3,minmax(260px,1fr))}.public-grid{grid-template-columns:1fr}.public-grid article{border:0;min-height:230px}.public-grid h3{margin-top:30px}.journey-cta{grid-template-columns:1fr;gap:42px}.journey-intro{grid-template-columns:1fr;align-items:start;gap:34px}.journey-intro>.section-index{align-self:auto}.timeline-group>header{grid-template-columns:1fr;gap:15px}.journey-view-horizontal .timeline-board{overscroll-behavior-inline:contain;overflow-x:auto}.journey-view-horizontal .timeline-axis,.journey-view-horizontal .timeline-grid{width:900px}.journey-view-vertical .timeline-group{grid-template-columns:1fr;gap:18px}.journey-view-vertical .timeline-group>header{padding-bottom:2px}.article-hero{grid-template-columns:1fr}.article-hero>div{min-height:410px}.article-hero>img{aspect-ratio:16/8;border-left:0;border-top:1px solid var(--line);height:auto;min-height:0}.article-body{grid-template-columns:1fr}.article-body aside{grid-template-columns:repeat(3,1fr);display:grid;position:static}.next-work{grid-template-columns:1fr 1fr}.next-work>*{border-bottom:1px solid var(--line)}}@media (width<=600px){.site-header{gap:12px;min-height:66px;padding:0 16px}.brand{gap:9px;font-size:14px}.brand>span:last-child{display:none}.brand-mark{width:31px;height:31px}.site-header .social-nav{gap:4px}.site-header .social-nav a{width:31px;height:31px}.site-header .social-nav svg{width:15px;height:15px}.theme-toggle{width:38px;height:38px}.hero-copy{min-height:0;padding:58px 20px 55px}.hero h1.hero-role{margin-top:24px;font-size:clamp(31px,8.8vw,38px);line-height:1.08}.hero-intro{font-size:15px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.hub-shell{padding:16px 8px 22px}.hub-map{min-height:590px;display:block;position:relative}.hub-map .orbit{display:block;top:50%}.hub-map .orbit-one{width:72%}.hub-map .orbit-two{width:45%}.hub-core{width:108px;height:108px;display:grid;top:50%}.hub-core span,.hub-core strong{font-size:16px}.spoke{min-width:94px;max-width:110px;min-height:42px;box-shadow:0 5px 14px color-mix(in srgb, var(--ink) 5%, transparent);padding:8px 10px}.spoke>span{font-size:10px}.spoke small{display:none}.hub-map.scope-mode{min-height:650px;display:block}.scope-mode .orbit{top:52%}.scope-mode .hub-back{margin:0;position:absolute;top:8px;left:8px}.scope-mode .hub-core{width:122px;height:122px;min-height:0;box-shadow:0 0 0 7px color-mix(in srgb, var(--solid) 10%, transparent);border-radius:50%;display:grid;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.scope-mode .scope-core strong{max-width:92px;font-size:16px}.scope-mode .scope-core small{font-size:6px}.scope-mode .scope-count{white-space:nowrap;padding:0;position:absolute;top:calc(52% + 75px);left:50%;transform:translate(-50%)}.scope-mode .project-spoke{width:105px;min-height:58px;padding:9px 10px;animation-name:scope-node-in;position:absolute;transform:translate(-50%,-50%)}.scope-mode .project-spoke:hover{transform:translate(-50%,-50%)translateY(-2px)}.scope-mode .project-spoke span{font-size:12px}.scope-mode-dense .project-spoke{width:96px;min-height:54px;padding:8px}.scope-mode-dense .project-spoke span{font-size:11px}.work-section,.skills-section,.public-section{padding:48px 20px 58px}.section-heading h2{font-size:43px}.project-grid,.project-grid-featured{grid-template-columns:1fr;gap:40px}.featured-showcase{border-left:0;border-right:0;grid-template-columns:repeat(3,minmax(245px,78vw));margin:23px -20px 0;padding:0 20px}.featured-card .featured-visual,.featured-card:not(.featured-card-1) .featured-visual{aspect-ratio:16/6}.featured-copy,.featured-card-1 .featured-copy{padding:14px 15px 16px}.featured-copy h3,.featured-card:not(.featured-card-1) .featured-copy h3{font-size:25px}.project-card-compact h3{margin-top:20px}.skills-heading{grid-template-columns:1fr;gap:14px}.skills-heading>p{justify-self:start}.skill-row{grid-template-columns:1fr;gap:7px;padding:14px 15px}.journey-cta{padding:58px 20px 62px}.journey-cta h2{font-size:45px}.page-hero{min-height:390px;padding:62px 20px 52px}.page-hero h1{margin-top:28px;font-size:58px}.journey-intro{min-height:0;padding:52px 20px 48px}.journey-intro h1{font-size:46px}.journey-intro p{margin-top:20px;font-size:14px}.timeline-group{padding:52px 20px 58px}.journey-view-vertical .timeline-group{padding:38px 20px 42px}.journey-view-vertical .timeline-group>header h2{font-size:29px}.work-filters{padding:20px}.all-projects{padding:38px 20px 78px}.article-hero>div{min-height:0;padding:44px 20px 50px}.article-eyebrow{margin:62px 0 0}.article-hero h1{overflow-wrap:anywhere;max-width:100%;font-size:clamp(40px,12vw,50px)}.article-summary{font-size:15px}.article-actions{flex-wrap:wrap;width:100%}.article-actions .button{flex:130px}.article-hero>img{aspect-ratio:16/10;height:auto;min-height:0}.article-body{min-width:0;padding:38px 20px 70px}.article-body aside{scroll-snap-type:x proximity;border-top:0;gap:8px;margin:0 -20px 34px;padding:0 20px 12px;display:flex;overflow-x:auto}.article-body aside>div{border:1px solid var(--line);background:var(--paper);scroll-snap-align:start;min-width:170px;padding:14px}.article-body>article{min-width:0}.article-content{font-size:15px;line-height:1.7}.article-links{margin-top:34px}.article-links>div{flex-direction:column;gap:12px}.article-body article>section{padding-left:0}.article-section-number{margin-bottom:13px;display:block;position:static}.article-body h2{font-size:28px}.article-body section>p{overflow-wrap:anywhere;font-size:15px}.award-callout{margin-bottom:34px}.source-section a{overflow-wrap:anywhere}.next-work{grid-template-columns:1fr}.next-work>*{min-height:76px;padding:20px}.site-footer{padding:58px 20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
