:root{--paper: #f7f8fa;--ink: #222833;--muted: #68717e;--line: #dde1e7;--accent: #4969a1;--heading: "Sora",Arial,sans-serif;--body: "Inter",Arial,sans-serif;font-family:var(--body);color:var(--ink);background:var(--paper);font-synthesis:none;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0}button:disabled{cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#bcdfe4;color:var(--ink)}p{line-height:1.75}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--heading);font-weight:500;letter-spacing:-.055em}h1{font-size:clamp(44px,5.5vw,76px);line-height:1.13}h2{font-size:clamp(31px,3.25vw,43px);line-height:1.2}h3{font-size:21px;font-weight:500;letter-spacing:-.035em}em{font-style:normal;color:var(--accent)}.container{width:calc(100% - 112px);max-width:1320px;margin-inline:auto}.arrow{flex-shrink:0;vertical-align:middle}.mono{font-size:12px}.status-dot{display:inline-block;width:6px;height:6px;background:#0d838f;border-radius:50%;box-shadow:0 0 0 4px #0d838f14;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;min-height:49px;padding:15px 21px;font-size:14px;font-weight:500;border:1px solid transparent;border-radius:8px;transition:background .2s,color .2s}.button.dark{background:var(--ink);color:var(--paper)}.button.dark:hover{background:#3c4c66}.button.outline{background:var(--paper);border-color:#cbd5e3;color:var(--ink)}.button.outline:hover{background:#e7edf6}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:14px;border-bottom:1px solid var(--line);padding:8px 0}.text-link:hover{color:var(--accent);border-color:var(--accent)}.brand{display:inline-flex;font-size:25px;font-weight:650;letter-spacing:-.065em;line-height:1.2}.header-space{height:112px}.home-header-space{height:0}.site-header{position:fixed;top:16px;left:0;right:0;z-index:50;transform:translateY(0);opacity:1;transition:transform .28s ease,opacity .22s ease}.site-header.is-hidden{transform:translateY(calc(-100% - 32px));opacity:0;pointer-events:none}.header-inner{height:78px;padding:0 18px 0 24px;display:flex;align-items:center;justify-content:space-between;background:#ffffffed;border:1px solid #dce2ec;border-radius:22px;box-shadow:0 8px 30px #26395309;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.nav{position:relative;display:flex;align-items:center;gap:3px;padding:6px;background:#252e3e;border:1px solid #354056;border-radius:15px;isolation:isolate}.nav a{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;min-height:42px;font-size:13px;font-weight:500;line-height:1.3;border-radius:10px;color:#b9c5d8;transition:color .22s}.nav a.nav-selected{color:#26344c}.nav a:focus-visible{outline-color:#9ab8ed;outline-offset:1px}.nav-marker{position:absolute;top:0;left:0;z-index:0;border-radius:9px;background:#f5f8ff;box-shadow:0 1px 4px #00000018,inset 0 0 0 1px #fff;pointer-events:none;transition:transform .36s cubic-bezier(.22,1,.36,1),width .36s cubic-bezier(.22,1,.36,1),height .36s cubic-bezier(.22,1,.36,1)}.menu-toggle{display:none;background:transparent}.menu-lines{width:20px;display:inline-flex;flex-direction:column;gap:5px}.menu-lines i{height:1.5px;width:100%;background:currentColor;transition:transform .2s}.menu-lines.is-open i:first-child{transform:translateY(3.25px) rotate(45deg)}.menu-lines.is-open i:last-child{transform:translateY(-3.25px) rotate(-45deg)}.nav-reveal{position:fixed;top:0;left:0;width:100%;height:30px;z-index:49;padding:0;display:flex;justify-content:center;align-items:flex-start;background:transparent;pointer-events:none}.nav-reveal.is-available{pointer-events:auto}.nav-reveal>span{opacity:0;display:inline-flex;gap:9px;align-items:center;background:#ffffffed;border:1px solid #dce2ec;border-top:0;padding:5px 13px;border-radius:0 0 10px 10px;font-size:12px;box-shadow:0 4px 15px #2639530a}.nav-reveal:focus-visible>span{opacity:1}#root{isolation:isolate}.site-background{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;color:#7790b9;background:radial-gradient(ellipse at 89% 15%,#dfe8f382,transparent 42%),radial-gradient(ellipse at 4% 87%,#e8e6f46b,transparent 36%)}.site-background>svg{width:100%;height:100%}.background-grid{opacity:.19}.background-network{opacity:.16;transform-origin:78% 30%;animation:network-drift 22s ease-in-out infinite alternate}.background-contours{opacity:.55}.background-regression{opacity:.15}.network-pulse{animation:node-pulse 6s ease-in-out infinite}@keyframes network-drift{to{transform:translate3d(-12px,16px,0)}}@keyframes node-pulse{0%,to{opacity:.4}50%{opacity:1}}.hero{position:relative;isolation:isolate;width:100%;min-height:100svh;overflow:hidden;background:#172332;color:#f6f8fc}.hero-landscape-stage{position:absolute;inset:0;z-index:-2;background:#172332}.hero-landscape-stage canvas{width:100%;height:100%;display:block}.hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#172332bd,#17233260 28%,transparent 55%),linear-gradient(180deg,#101b2b3d,transparent 65%,#172332e0)}.hero-copy,.hero-bottom{position:absolute;left:50%;width:calc(100% - 112px);max-width:1320px}.hero-copy{top:50%;transform:translate(-50%,-50%);text-align:center}.hero-greeting{font-size:clamp(46px,6.2vw,86px);line-height:1.15;margin:0 0 20px;font-weight:650;letter-spacing:-.065em;text-shadow:0 4px 35px #101b2b40}.hero-greeting strong{font-weight:800}.hero-statement{font-family:var(--heading);font-size:clamp(23px,2.4vw,34px);line-height:1.35;margin:0;font-weight:400;letter-spacing:-.045em;color:#c7d2e4}.hero em{color:#a4d6d2}.hero-bottom{bottom:44px;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;gap:30px}.hero-intro{max-width:470px;font-size:14px;line-height:1.75;margin:0;color:#d0d9e7}.hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:27px}.hero-actions .button,.hero-actions .text-link{font-size:13px;white-space:nowrap}.hero .button.dark{background:#f3f6fc;color:#202c3e}.hero .button.dark:hover{background:#cce8e5}.hero .text-link{color:#e1e8f3;border-color:#73839b}.hero .text-link:hover{color:#fff;border-color:#fff}.skill-band{border-block:1px solid var(--line);background:#f7f8facc}.skill-band>.container{display:flex;align-items:center;justify-content:space-between;gap:36px;min-height:106px}.toolkit-title{font-family:var(--body);font-size:19px;font-weight:550;letter-spacing:-.025em;margin:0;white-space:nowrap}.tech-stack{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tech-stack li{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;padding:19px 15px;background:#fff;border:1px solid var(--line)}.tech-stack img{width:32px;height:32px;object-fit:contain;margin-bottom:15px}.tech-stack li>span{font-size:13px;font-weight:600}.tech-stack small{font-size:11px;color:var(--muted);line-height:1.6;margin-top:7px}.tech-stack.compact{grid-template-columns:repeat(8,minmax(0,1fr));flex:1;gap:10px}.tech-stack.compact li{flex-direction:row;align-items:center;justify-content:center;gap:9px;padding:10px 0;border:0;background:transparent}.tech-stack.compact img{width:25px;height:25px;margin:0}.tech-stack.compact span{font-size:11px;font-weight:500;white-space:nowrap}.section{padding-block:75px}.home-page .section{padding-block:58px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:33px}.section-heading h2{margin-bottom:0}.section-heading>.text-link{margin-bottom:5px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.project-card{min-width:0}.project-visual{height:241px;position:relative;overflow:hidden;color:#397c91;background:#e8edf4}.project-visual.clay{background:#ecebf3;color:#6b67b8}.project-visual.sand{background:#e8edf0;color:#427b8b}.project-visual svg{position:absolute;inset:24px 0;width:100%;height:calc(100% - 48px)}.visual-button{width:100%;padding:0;position:relative;text-align:left;background:none;display:block}.visual-arrow{display:grid;place-items:center;width:32px;height:32px;position:absolute;right:17px;top:17px;background:#f7f8facc;opacity:0;transition:opacity .2s}.visual-button:hover .visual-arrow,.visual-button:focus-visible .visual-arrow{opacity:1}.project-meta{font-size:11px;display:flex;justify-content:space-between;align-items:center;gap:7px;margin:20px 0 12px;color:var(--muted)}.project-meta>span{font-size:10px;border:1px solid var(--line);padding:3px 6px;white-space:nowrap}.project-card h3{font-size:22px;margin-bottom:10px}.text-button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px}.text-button .arrow{width:16px;color:var(--muted)}.text-button:hover{color:var(--accent)}.project-card p{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:18px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{font-size:11px;padding:6px 9px;border:1px solid var(--line);color:#526f86}.about-preview,.toolkit-section{background:#eef0f4ed;border-block:1px solid var(--line)}.about-preview-inner{max-width:1040px;padding-block:53px}.about-preview-inner>div{max-width:900px}.about-preview h2{font-size:47px;line-height:1.14;margin-bottom:25px}.about-preview p{max-width:820px;font-size:18px;line-height:1.85;color:#5e778c;margin-bottom:22px}.about-preview .text-link{font-size:16px}.post-row{display:grid;grid-template-columns:44px 1fr 100px 40px;align-items:center;gap:24px;padding:30px 0;border-top:1px solid var(--line)}.post-row:last-child{border-bottom:1px solid var(--line)}.post-number{color:var(--accent);align-self:start;padding-top:4px}.post-meta{font-size:12px;color:var(--muted);margin-bottom:12px}.post-meta>span{margin-inline:8px;color:#9db2c2}.post-info h3{font-size:24px;margin-bottom:8px;transition:color .2s}.post-info p{font-size:14px;color:var(--muted);margin:0;max-width:680px}.post-date{color:var(--muted);font-size:12px}.post-arrow{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;transition:background .2s,color .2s}.post-row:hover h3{color:var(--accent)}.post-row:hover .post-arrow{background:var(--ink);color:var(--paper)}.home-page .home-posts{padding-top:54px;padding-bottom:12px}.home-page .post-row{padding-block:24px}.contact-strip{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-block:60px;gap:30px}.contact-strip h2{font-size:34px;line-height:1.25;margin:0}.contact-strip .button{min-width:155px}.home-page .contact-strip{border-top:0;padding-top:22px;padding-bottom:36px}.site-footer{position:relative;background:#202630;color:#edf0f5}.footer-grid{padding-block:65px 55px;display:grid;grid-template-columns:1.4fr .7fr 1fr 1.25fr;gap:60px}.site-footer .brand{color:#fff}.footer-intro p{font-size:15px;color:#aab4c2;max-width:270px;margin:22px 0;line-height:1.8}.footer-location{display:block;font-size:12px;color:#98a5b7;line-height:1.8;max-width:240px}.footer-column h2{font-family:var(--body);font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.4;margin:6px 0 24px}.footer-column nav{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.footer-column nav a{color:#aab4c2;font-size:15px}.footer-column nav a:hover{color:#fff}.footer-socials{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:18px}.footer-socials a{display:flex;align-items:center;gap:11px;font-size:15px;color:#aab4c2;width:fit-content}.footer-socials a>.arrow{width:14px;height:14px;margin-left:3px}.footer-socials a:hover{color:#fff}.footer-connect>p{color:#aab4c2;font-size:15px;line-height:1.8;margin-bottom:20px}.footer-contact{color:#202630;background:#edf0f5;font-size:13px;gap:22px;min-height:45px;padding:12px 17px}.footer-contact:hover{background:#d0def3}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #3a4350;color:#98a5b7;font-size:12px;padding-block:24px;min-height:80px}.footer-bottom a{color:#c3ccda}.footer-bottom a:hover{color:#fff}.page-heading{position:relative;padding:75px 0 59px;max-width:900px}.page-heading:before{content:"";position:absolute;inset:20px -25px 0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 28% 45%,#f7f8faeb,transparent 76%)}.page-heading h1{margin-bottom:25px}.page-heading>p{font-size:15px;color:var(--muted);max-width:580px;margin:0}.about-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:90px;align-items:center;padding-bottom:20px}.profile-art{min-height:470px;position:relative;overflow:hidden;border:1px solid #cbdde8;display:grid;place-items:center;background:#eceff3;background-image:linear-gradient(#719bb321 1px,transparent 1px),linear-gradient(90deg,#719bb321 1px,transparent 1px);background-size:34px 34px}.profile-monogram{font-family:var(--heading);font-size:230px;font-weight:500;letter-spacing:-.12em;line-height:1;color:#427f98}.profile-monogram>span{color:var(--accent)}.about-story h2{font-size:38px;line-height:1.2}.about-story>p{font-size:14px;color:var(--muted)}.location{display:flex;align-items:center;gap:8px;font-size:11px;margin:25px 0}.interests-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;border-top:1px solid var(--line);padding-top:28px}.interests-grid h3{font-size:21px;margin-bottom:14px;line-height:1.4}.interests-grid p{color:var(--muted);font-size:14px;line-height:1.8;margin-bottom:0}.toolkit-section{padding-block:75px}.toolkit-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:center}.toolkit-layout h2{font-size:39px;line-height:1.2}.toolkit-layout>div>p{font-size:13px;color:var(--muted)}.projects-page{padding-bottom:60px}.project-page{max-width:1100px;padding-bottom:50px}.back-link{margin-top:48px;font-size:11px}.project-page>.back-link{margin-top:28px}.project-page-heading{padding:40px 0 34px;max-width:880px}.article-meta{color:var(--muted);font-size:14px}.project-page-heading h1{font-size:clamp(42px,5.5vw,72px);line-height:1.12;margin-bottom:25px}.project-lede{max-width:700px;font-size:17px;color:var(--muted);margin-bottom:24px}.project-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:29px}.project-actions .button{gap:17px}.project-actions .button:disabled{opacity:.46;cursor:default}.project-actions .button.dark:disabled:hover{background:var(--ink)}.project-actions .button.outline:disabled:hover{background:var(--paper)}.project-link-note{color:var(--muted);font-size:12px;line-height:1.7;margin:14px 0 0}.project-page>.project-visual.large{height:340px;border-radius:14px}.project-page>.project-visual.large svg{inset:15px 0;height:calc(100% - 30px)}.project-narrative{max-width:760px;margin:43px auto 0}.project-narrative section{padding-bottom:25px}.project-narrative h2{font-size:29px;line-height:1.25;margin-bottom:16px}.project-narrative p{font-size:16px;line-height:1.9;color:var(--muted)}.project-page-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;border-top:1px solid var(--line);padding-top:24px}.blog-page{padding-bottom:70px}.blog-toolbar{display:flex;justify-content:space-between;align-items:center;padding-bottom:23px;gap:20px}.blog-toolbar>.mono{color:var(--muted)}.search{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.search input{border:0;background:none;font-size:12px;width:200px;color:var(--ink);padding:5px 0}.search input:focus{outline:none}.search:focus-within{border-color:var(--accent)}.search svg{color:var(--muted)}.blog-page .post-row{padding-block:38px}.blog-page .post-info h3{font-size:29px}.notebook-note{padding-top:45px}.notebook-note p{font-size:13px;margin:0}.notebook-note p span{font-size:11px;color:var(--muted)}.empty-state{text-align:center;border-block:1px solid var(--line);padding:60px 20px}.empty-state h2{font-size:40px}.empty-state p{font-size:13px;color:var(--muted)}.inline-button{background:none;text-decoration:underline;padding:0;color:var(--accent)}.article-page{max-width:930px}.article-header{padding-top:47px;max-width:800px}.article-header h1{font-size:58px;line-height:1.18;margin:27px 0}.article-lede{font-size:18px;color:var(--muted);max-width:690px}.article-byline{display:flex;align-items:center;gap:12px;padding:25px 0 36px;border-bottom:1px solid var(--line);font-size:12px}.avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:#e4e9f1;font-family:var(--heading);font-size:25px}.article-byline small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.article-byline time{margin-left:auto;color:var(--muted);font-size:11px}.article-body{max-width:680px;margin-inline:auto;padding-top:44px}.article-body h2{font-size:27px;line-height:1.3;letter-spacing:-.02em;margin:38px 0 15px}.article-body p{font-size:16px;line-height:1.95;color:#526b7f}.next-article{display:flex;justify-content:space-between;align-items:center;gap:30px;border-block:1px solid var(--line);padding:28px 0;margin:45px 0 65px}.next-article h3{font-family:var(--heading);font-size:25px;line-height:1.35;font-weight:400;margin:0}.next-article:hover h3{color:var(--accent)}.contact-page{max-width:1100px;padding-bottom:58px}.contact-centered .page-heading{max-width:720px;margin-inline:auto;text-align:center;padding:43px 0 38px}.contact-centered .page-heading h1{font-size:clamp(43px,5vw,65px);line-height:1.12;margin-bottom:23px}.contact-centered .page-heading>p{max-width:550px;margin-inline:auto;font-size:14px}.contact-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(190px,1fr);gap:clamp(24px,4vw,56px);align-items:start}.contact-form-wrap{min-width:0;text-align:left;scroll-margin-top:110px}.contact-form{padding:35px;background:#ffffffed;border:1px solid #d9e1ec;border-radius:18px;box-shadow:0 10px 40px #31446607}.contact-form fieldset{border:0;padding:0;margin:0;min-width:0}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.form-field{margin-bottom:23px;min-width:0}.form-field>label{margin-bottom:9px;display:block;font-size:13px;font-weight:500}.form-field>input,.form-field>textarea{width:100%;padding:12px 13px;border:1px solid #d9e1ec;border-radius:8px;background:#f7f9fc;font-size:14px;color:var(--ink)}.form-field>textarea{min-height:155px;resize:vertical;line-height:1.8}.form-field>input:focus,.form-field>textarea:focus{border-color:#6987b4;outline:2px solid #6987b420;outline-offset:1px}.form-field>input::placeholder,.form-field>textarea::placeholder{color:#8b98aa}.contact-submit{width:100%;justify-content:center;gap:17px;margin-top:2px;min-height:49px}.contact-submit:disabled{opacity:.65;cursor:wait}.form-delivery-note{margin:14px 0 0;color:var(--muted);text-align:center;font-size:11px;line-height:1.7}.field-error{color:#a13e4a;font-size:12px;line-height:1.6;margin-top:8px}.form-error-summary{margin-bottom:17px}.contact-social-section{margin:0;padding-top:12px;text-align:left}.contact-social-section h2{font-family:var(--body);font-size:17px;font-weight:500;letter-spacing:-.025em;margin-bottom:20px}.contact-social-list{list-style:none;display:grid;grid-template-columns:1fr;gap:10px;padding:0;margin:0}.contact-social-list a{display:flex;align-items:center;justify-content:flex-start;gap:9px;padding:14px 16px;font-size:12px;border:1px solid var(--line);border-radius:9px;background:#ffffff9c;transition:background .2s,border-color .2s}.contact-social-list a>.arrow{width:13px;height:13px;margin-left:2px}.contact-social-list a:hover{background:#e7edf6;border-color:#b6c7df}.contact-success{padding:60px 30px;text-align:center;border:1px solid #d9e1ec;border-radius:18px;background:#ffffffed}.success-check{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e0eee8;color:#427362;margin:0 auto 25px;font-size:25px}.contact-success h2{font-size:35px;margin-bottom:17px}.contact-success p{color:var(--muted);font-size:14px;margin-bottom:27px}.not-found{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-block:35px 50px}.not-found:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 17% 19%,#dbe6fb,transparent 43%),radial-gradient(ellipse at 86% 73%,#d9ece9,transparent 46%),radial-gradient(ellipse at 78% 9%,#e7e0f6,transparent 38%),var(--paper)}.not-found:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:repeating-radial-gradient(ellipse at 75% 50%,transparent 0 69px,#849bc214 70px 71px,transparent 72px 92px);-webkit-mask-image:linear-gradient(120deg,transparent 5%,#000 65%,transparent);mask-image:linear-gradient(120deg,transparent 5%,#000 65%,transparent)}.not-found h1{font-size:clamp(38px,5.5vw,72px);line-height:1.15;margin-bottom:24px}.not-found h1 em{font-family:var(--body);font-style:italic;font-weight:500}.not-found>p{font-size:16px;color:var(--muted);margin-bottom:30px}.not-found .button{min-width:160px;font-weight:600}.error-plot{position:relative;width:400px;max-width:100%;height:210px;margin-bottom:22px;flex-shrink:0}.error-plot>span{position:relative;font-family:var(--heading);font-size:170px;font-weight:600;letter-spacing:-.08em;color:#bbcbe3;line-height:1.1}.error-grid{position:absolute;inset:0;background-image:radial-gradient(#7a97be54 1px,transparent 1px);background-size:24px 24px;border-radius:40px}.error-grid>i{position:absolute;width:4px;height:4px;background:#6585b3;border-radius:50%}.outlier{position:absolute;z-index:1;top:19%;right:7%;font-size:28px;color:var(--accent)}.outlier small{position:absolute;font-size:10px;white-space:nowrap;top:35px;right:-12px}.page-loader{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:var(--paper);color:#25364e;opacity:1;transition:opacity .22s ease;touch-action:none;overscroll-behavior:contain}.page-loader.is-leaving{opacity:0;pointer-events:none}.loader-content{width:320px;text-align:center}.loader-network{display:block;width:100%;height:auto}.loader-content>p{font-size:16px;color:#61738f;margin:25px 0 0;letter-spacing:-.02em}.network-loader-edge{stroke:#c5d1e2;stroke-width:1.2}.network-loader-signal{stroke:#648aba;stroke-width:1.8;stroke-linecap:round;stroke-dasharray:12 190;stroke-dashoffset:202;animation:layer-signal 1.6s linear infinite}.network-loader-neuron{fill:var(--paper);stroke:#98aecb;stroke-width:1.8;animation:layer-activation 1.6s ease-in-out infinite}@keyframes layer-signal{0%{stroke-dashoffset:202;opacity:.1}35%,70%{opacity:1}to{stroke-dashoffset:0;opacity:.1}}@keyframes layer-activation{0%,to{fill:var(--paper);stroke:#98aecb}35%,55%{fill:#d2e2f4;stroke:#5c83b4}}.skip-link{position:fixed;top:-100px;left:20px;background:var(--ink);color:var(--paper);padding:15px 20px;z-index:100;font-size:13px}.skip-link:focus{top:12px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.revealed{opacity:1;transform:none}@media(min-width:1500px){.project-visual{height:270px}}@media(max-width:1100px){.container,.hero-copy,.hero-bottom{width:calc(100% - 72px)}.header-inner{padding-inline:20px 12px}.nav a{padding-inline:12px;font-size:12px;gap:7px}.skill-band>.container{flex-direction:column;padding-block:20px;gap:15px}.tech-stack.compact{width:100%}.project-grid{gap:22px}.project-visual{height:205px}.about-layout{gap:45px}.profile-art{min-height:440px}.about-story h2{font-size:32px}.toolkit-layout{gap:35px}.tech-stack li{padding:16px 10px}.footer-grid{gap:32px;grid-template-columns:1.2fr .65fr 1fr 1.2fr}}@media(max-width:800px){.container,.hero-copy,.hero-bottom{width:calc(100% - 48px)}.header-space{height:100px}.home-header-space{height:0}.site-header{top:10px}.header-inner{height:72px;border-radius:18px;padding-inline:16px 10px}.site-header .brand{font-size:21px}.nav a{padding:11px 12px;min-height:39px;font-size:12px}.nav a>svg{display:none}.hero-intro{font-size:13px}.hero-actions{gap:16px}.tech-stack.compact li{flex-direction:column;gap:9px}.tech-stack.compact img{width:27px;height:27px}.tech-stack.compact span{font-size:10px}.section{padding-block:60px}.project-grid{gap:17px}.project-visual{height:175px}.project-card h3{font-size:19px}.project-card p{font-size:13px}.about-preview h2{font-size:42px}.about-preview p{font-size:17px}.post-row{grid-template-columns:25px 1fr 30px;gap:18px}.post-date{display:none}.post-info h3{font-size:23px}.contact-strip h2{font-size:28px}.contact-strip .button{min-width:130px;font-size:12px;gap:20px}.about-layout{gap:30px;grid-template-columns:.8fr 1.2fr;align-items:start}.profile-art{min-height:375px}.profile-monogram{font-size:210px}.about-story h2{font-size:29px}.about-story>p{font-size:13px}.toolkit-layout{grid-template-columns:1fr;gap:25px}.tech-stack li{padding:19px 16px}.interests-grid{gap:25px}.interests-grid h3{font-size:18px}.blog-page .post-info h3{font-size:25px}.footer-grid{grid-template-columns:1.3fr 1fr;gap:42px 55px;padding-block:48px}.footer-connect{grid-column:2;grid-row:2}.footer-bottom{flex-wrap:wrap;gap:16px;font-size:11px}.footer-bottom>span:nth-child(2){display:none}}@media(max-width:600px){.container,.hero-copy,.hero-bottom{width:calc(100% - 40px)}.header-space{height:98px}.home-header-space{height:0}.header-inner{position:relative;height:68px;padding-inline:17px}.site-header .brand{font-size:25px}.menu-toggle{display:inline-flex;align-items:center;font-size:13px;background:#edf1f7;padding:10px 12px;border-radius:9px;gap:10px}.nav{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;padding:8px;border-radius:16px;box-shadow:0 12px 32px #26395320}.nav.open{display:flex;flex-direction:column;align-items:stretch;gap:4px}.nav a{justify-content:flex-start;font-size:15px;padding:15px 18px;min-height:49px;gap:12px}.nav a>svg{display:block;width:18px;height:18px}.nav-marker{border-radius:10px}.nav-reveal.is-available>span{opacity:1}.site-background>svg{width:180%;max-width:none;margin-left:-50%}.background-grid{opacity:.15}.background-network{opacity:.12}.background-regression{opacity:.1}.hero-greeting{font-size:clamp(37px,10.2vw,54px);line-height:1.22}.hero-statement{font-size:21px}.hero-bottom{bottom:30px;flex-direction:column;gap:22px}.hero-intro{text-align:center;font-size:14px;max-width:340px}.desktop-break{display:none}.hero-actions{justify-content:center;flex-wrap:wrap;gap:18px}.hero-actions .button,.hero-actions .text-link{font-size:12px}.hero-actions .button{padding-inline:15px;gap:17px}.skill-band>.container{padding-block:23px;gap:22px}.tech-stack.compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 10px}.tech-stack.compact li{flex-direction:row;justify-content:flex-start;padding:0 6px;gap:8px}.tech-stack.compact img{width:25px;height:25px}.tech-stack:not(.compact){grid-template-columns:repeat(2,minmax(0,1fr))}.tech-stack li{padding:20px}.tech-stack img{width:34px;height:34px}.section,.home-page .section{padding-block:40px}.section-heading{align-items:center;gap:20px;margin-bottom:28px}.section-heading h2{font-size:28px;max-width:210px}.section-heading>.text-link{font-size:12px;gap:8px;white-space:nowrap;margin:0}.section-heading>.text-link .arrow{width:15px}.project-grid{grid-template-columns:1fr;gap:37px}.project-visual{height:238px}.visual-arrow{opacity:1;width:29px;height:29px}.project-meta{font-size:10px;margin-top:18px}.project-card h3{font-size:23px}.project-card p{font-size:14px;max-width:380px}.about-preview-inner{padding-block:38px}.about-preview h2{font-size:37px}.about-preview p{font-size:17px}.post-row{grid-template-columns:1fr 28px;gap:15px;padding-block:25px}.post-number{display:none}.post-info h3{font-size:22px;line-height:1.25;margin-bottom:10px}.post-info p{font-size:13px}.post-meta{font-size:12px;margin-bottom:10px}.post-meta>span{margin-inline:4px}.post-arrow{width:27px;height:27px}.post-arrow .arrow{width:14px}.home-page .home-posts{padding-top:38px;padding-bottom:8px}.home-page .post-row{padding-block:22px}.contact-strip{flex-direction:column;align-items:start;gap:25px;padding-block:40px}.contact-strip h2{font-size:29px}.contact-strip .button{min-width:145px;font-size:12px}.home-page .contact-strip{padding-top:20px;padding-bottom:30px;gap:20px}.page-heading{padding:45px 0 38px}.page-heading:before{inset-inline:-15px}.page-heading h1{font-size:44px}.page-heading>p{font-size:13px;max-width:330px}.about-layout{grid-template-columns:1fr;gap:33px;padding-bottom:0}.profile-art{min-height:350px;max-width:430px;width:100%}.profile-monogram{font-size:230px}.about-story h2{font-size:31px}.about-story>p{font-size:13px}.location{font-size:10px}.interests-grid{grid-template-columns:1fr;gap:26px}.interests-grid h3{font-size:21px}.toolkit-section{padding-block:45px}.toolkit-layout h2{font-size:34px}.projects-page{padding-bottom:40px}.project-page-heading{padding-top:33px}.project-page-heading h1{font-size:42px}.project-lede{font-size:15px}.project-actions .button{font-size:13px;gap:13px;padding-inline:17px}.project-page>.project-visual.large{height:240px}.project-narrative{margin-top:32px}.project-narrative h2{font-size:26px}.project-narrative p{font-size:15px}.blog-toolbar{flex-direction:column;align-items:stretch;gap:20px}.search input{width:100%;font-size:12px}.blog-page .post-row{padding-block:27px}.blog-page .post-info h3{font-size:22px}.notebook-note{padding-top:30px}.notebook-note p{font-size:12px}.notebook-note p span{font-size:10px}.blog-page{padding-bottom:45px}.back-link{margin-top:32px;font-size:10px}.article-header{padding-top:35px}.article-header h1{font-size:39px;margin-top:23px}.article-lede{font-size:15px}.article-byline{font-size:11px;padding-block:18px 27px;gap:9px}.article-byline small{font-size:9px}.article-byline time{font-size:10px}.article-body{padding-top:30px}.article-body h2{font-size:25px}.article-body p{font-size:14px}.next-article{margin-bottom:40px}.next-article h3{font-size:22px}.contact-page{padding-bottom:40px}.contact-centered .page-heading{padding-top:31px;padding-bottom:30px}.contact-centered .page-heading h1{font-size:42px}.contact-centered .page-heading>p{font-size:13px}.contact-form{padding:25px 20px;border-radius:14px}.form-row{grid-template-columns:1fr;gap:0}.form-field{margin-bottom:21px}.form-field>input,.form-field>textarea{font-size:16px}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-social-section{padding-top:0}.contact-social-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.contact-social-list a{padding:13px 9px;font-size:13px;gap:10px}.not-found h1{font-size:37px}.not-found>p{font-size:14px}.error-plot{max-width:350px;height:190px;margin-bottom:20px}.error-plot>span{font-size:155px}.loader-content{width:280px}.footer-grid{grid-template-columns:1fr 1fr;gap:38px 25px;padding-block:42px}.footer-intro{grid-column:1/-1}.footer-intro p{max-width:330px;margin-bottom:17px}.footer-location{max-width:none}.footer-connect{grid-column:1/-1;grid-row:auto;padding-top:28px;border-top:1px solid #3a4350}.footer-column h2{margin-bottom:21px;font-size:16px}.footer-column nav a,.footer-socials a{font-size:14px}.footer-column nav{gap:16px}.footer-socials{gap:20px}.footer-bottom{padding-block:24px;gap:17px;line-height:1.7;font-size:11px}}@media(max-height:600px){.hero{min-height:600px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
