@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#101113;--text:#eeeef0;--muted:#a3a5ac;--line:#2b2d31;--blue:#769aff;--display:'Manrope',sans-serif;--body:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}::selection{background:var(--blue);color:var(--bg)}.wrap{width:min(1160px,calc(100% - 96px));margin-inline:auto}.blue,.brand-dot{color:var(--blue)}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.7px;line-height:1.6}.header{height:112px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:-1.2px}.wordmark>span:not(.brand-dot){font-weight:400}nav{display:flex;gap:34px;align-items:center}nav>a{font-size:13px;color:#b9bac0;transition:color .2s}nav>a:hover,nav>a[aria-current]{color:var(--blue)}nav .nav-contact{margin-left:15px;border:1px solid #45474d;border-radius:6px;padding:12px 16px;color:var(--text)}.nav-contact span{margin-left:16px;color:var(--blue)}.skip{position:fixed;top:-100px;left:20px;background:var(--blue);color:#101113;padding:12px 20px;z-index:100}.skip:focus{top:12px}.hero{padding-top:66px}.hero-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.hero-top .eyebrow{display:flex;align-items:center;gap:10px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px #769aff0d;flex-shrink:0}.hero-location{font-size:10px;letter-spacing:1.1px}.hero-location span{margin-left:12px;color:var(--blue)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:500}h1{font-size:clamp(54px,7.9vw,105px);letter-spacing:-6px;line-height:1.12}.hero h1{margin:39px 0 32px}.hero-bottom{display:flex;justify-content:space-between;align-items:center}.hero-bottom p,.intro-bottom p{font-size:16px;line-height:1.8;color:var(--muted)}.button{display:inline-flex;gap:43px;align-items:center;font-size:12px;font-weight:600;padding:17px 20px;border-radius:5px;transition:background .2s,transform .2s}.primary{background:var(--blue);color:#101113}.primary:hover{background:#96b2ff;transform:translateY(-2px)}.hero-index{display:flex;justify-content:space-between;margin-top:80px;padding-bottom:26px;border-bottom:1px solid var(--line);color:#8e9098;font-size:9px;letter-spacing:1.5px}.section{padding-block:90px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:34px}.section-head .eyebrow{color:var(--muted)}h2{font-size:38px;letter-spacing:-1.8px;line-height:1.23}.section-head h2{margin-top:16px}.section-head>p{font-size:13px;line-height:1.7;color:var(--muted)}.featured-project{display:block}.project-art{height:400px;position:relative;overflow:hidden;background:#1b2844;display:flex;justify-content:center;align-items:center;border-radius:7px}.project-art:before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,#6b94fe20),repeating-linear-gradient(0deg,transparent 0,transparent 59px,#92adff08 60px),repeating-linear-gradient(90deg,transparent 0,transparent 59px,#92adff08 60px)}.preview-window{position:relative;width:69%;max-width:780px;background:#111419;border:1px solid #434e64;box-shadow:0 24px 55px #0007;transform:rotate(-3deg) translateY(13px);padding:26px 37px 22px;transition:transform .4s;border-radius:7px}.featured-project:hover .preview-window{transform:rotate(-1deg) translateY(4px)}.preview-nav{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #2c323e;padding-bottom:16px}.preview-nav b{font-size:23px;letter-spacing:-1px}.preview-nav b span{color:var(--blue)}.preview-nav>span{color:#a5abb7;font-size:7px;letter-spacing:1px}.preview-status{font-size:6px;letter-spacing:1.4px;display:block;margin-top:24px;color:#b2bdcf}.preview-status i{display:inline-block;width:4px;height:4px;background:var(--blue);border-radius:50%;margin-right:5px}.preview-title{font-family:var(--display);font-size:clamp(22px,3.6vw,46px);line-height:1.18;letter-spacing:-2px;margin-top:16px}.preview-title>span{color:var(--blue)}.preview-line{width:37%;height:3px;background:#373e4c;margin-top:19px}.preview-foot{display:flex;justify-content:space-between;margin-top:25px;align-items:center}.preview-foot>span{font-size:6px;letter-spacing:1px;line-height:1.8;color:#7d889c}.preview-foot>b{background:var(--blue);padding:7px 11px;color:#101113;font-size:15px;border-radius:3px}.project-art-note{position:absolute;bottom:18px;left:23px;font-size:8px;letter-spacing:1.8px;color:#9aacd2}.project-info{display:flex;justify-content:space-between;align-items:center;padding:28px 0}.project-info .eyebrow{color:var(--muted);font-size:9px}.project-info h3{font-size:25px;letter-spacing:-.9px;margin-top:9px}.project-info p{color:var(--muted);font-size:13px;margin-top:9px;line-height:1.6}.tags{display:flex;gap:7px;margin-top:17px;flex-wrap:wrap}.tags span{font-size:9px;color:#bbbfc8;border:1px solid #34373d;border-radius:4px;padding:5px 9px}.project-arrow{align-self:flex-start;margin-top:15px;font-size:28px;color:var(--blue)}.practice{border-top:1px solid var(--line);padding-top:22px;display:grid;grid-template-columns:160px 1fr auto;gap:25px;align-items:center}.practice .eyebrow{font-size:9px;color:var(--muted)}.practice p{font-size:12px;color:var(--muted);line-height:1.7;max-width:440px}.text-link{font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:15px}.text-link:hover{color:var(--blue)}.about-section{padding:80px 0;background:#151619;border-block:1px solid #24262a}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.about-grid>div>.eyebrow{color:var(--muted)}.about-grid h2{font-size:44px;line-height:1.2;letter-spacing:-2px;margin-top:25px}.about-copy>.lead{font-size:21px;color:var(--text);line-height:1.5;margin:0 0 23px;letter-spacing:-.4px}.about-copy>p{font-size:13px;line-height:1.9;color:var(--muted);margin-top:15px}.skills{display:flex;flex-wrap:wrap;gap:22px;margin-top:29px;border-top:1px solid #303237;padding-top:26px}.skill{display:flex;align-items:center;gap:9px}.skill>span{font-size:11px}.skill small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.web-icons{display:flex;gap:1px}.journal-row{display:flex;align-items:center;gap:35px;padding:29px 0;border-top:1px solid var(--line)}.journal-row:last-child{border-bottom:1px solid var(--line)}.row-number{font-size:10px;color:#777b85;align-self:start;padding-top:4px}.journal-row .eyebrow{font-size:9px;color:var(--muted);letter-spacing:.9px}.journal-row h3{font-size:22px;letter-spacing:-.6px;margin-top:9px;transition:color .2s}.journal-row:hover h3{color:var(--blue)}.row-arrow{margin-left:auto;font-size:24px;color:var(--blue)}.contact-section{padding:58px 0 80px;border-top:1px solid var(--line)}.contact-section>.eyebrow{display:flex;align-items:center;gap:10px;color:var(--muted)}.contact-section h2{font-size:clamp(36px,5.3vw,66px);letter-spacing:-3px;line-height:1.15;margin:28px 0 35px}.contact-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px}.contact-bottom p{font-size:13px;line-height:1.9;color:var(--muted)}.socials{display:flex;gap:12px;flex-wrap:wrap}.social-link{display:inline-flex;align-items:center;gap:10px;border:1px solid #42454c;border-radius:5px;padding:13px 17px;font-size:12px}.social-link:hover{border-color:var(--blue);color:var(--blue)}.social-link img{filter:invert(1)}.footer{border-top:1px solid var(--line);padding:28px 0;display:flex;justify-content:space-between;align-items:center}.footer p,.footer>a:last-child{font-size:10px;color:#9699a2}.footer .wordmark{font-size:23px}.page-intro{padding:45px 0 55px}.breadcrumb{display:block;color:var(--muted);font-size:11px;margin-bottom:62px}.breadcrumb:hover{color:var(--blue)}.page-intro>.eyebrow{display:block;color:var(--muted)}.page-intro h1{margin:24px 0 30px}.intro-bottom{display:flex;justify-content:space-between;align-items:end}.intro-bottom>.eyebrow{color:var(--muted)}.intro-bottom .tags{margin:0}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;padding-block:20px 70px}.blog-art{height:245px;border-radius:5px;overflow:hidden;display:flex;align-items:center;justify-content:center}.art-web{background:#1b2a49}.art-java{background:#1b2228}.art-next{background:#20243b}.blog-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin:23px 0 13px}.blog-card h2{font-size:25px;line-height:1.35;letter-spacing:-.8px}.blog-card>p{font-size:12px;line-height:1.85;color:var(--muted);margin-top:14px}.blog-card>.text-link{margin-top:24px}.blog-card:hover h2{color:var(--blue)}.blog-note{display:flex;gap:13px;align-items:center;padding:25px 0 65px}.blog-note p{font-size:12px;color:var(--muted);line-height:1.7}.browser-art{width:79%;background:#11151c;border:1px solid #506080;border-radius:5px;transform:rotate(-5deg);box-shadow:0 20px 30px #0003;overflow:hidden}.browser-top{height:22px;border-bottom:1px solid #303b4d;display:flex;align-items:center;gap:3px;padding-inline:9px}.browser-top i{width:3px;height:3px;background:#60708e;border-radius:50%}.browser-top>span{color:#8490a9;font-size:5px;margin-left:10px}.browser-body{position:relative;padding:19px 20px 21px}.tiny-label{font-size:6px;letter-spacing:1.4px;color:#a9b8d4}.browser-body strong{display:block;font-family:var(--display);font-size:24px;font-weight:500;line-height:1.2;letter-spacing:-1px;margin-top:10px}.browser-body strong>span{color:var(--blue)}.art-rule{margin-top:12px;width:60%;height:2px;background:#3d4861}.art-lines{margin-top:8px;display:flex;gap:5px}.art-lines i{width:30%;height:2px;background:#293142}.browser-body>b{position:absolute;right:20px;bottom:17px;color:var(--blue);font-size:20px}.code-art{width:87%;font-size:10px;font-family:monospace}.code-label{font-size:6px;letter-spacing:1.4px;color:#8d9ba7}.code-art>p{margin:23px 0;line-height:2.2;font-size:9px;color:#bcc6d5}.code-art p span{color:#9faeff}.code-art em{color:#9fcbb7;font-style:normal}.code-bottom{font-size:7px;color:#99a7b4;display:flex;align-items:center;gap:7px}.code-bottom .status-dot{width:4px;height:4px}.chapter-art{width:82%}.chapter-art>strong{display:block;font-family:var(--display);font-weight:400;font-size:103px;line-height:1.5;letter-spacing:-9px}.chapter-art>strong>span{color:var(--blue);font-size:83px;padding-left:10px}.chapter-art>div{display:flex;justify-content:space-between;font-size:6px;letter-spacing:1.1px;color:#aab0cb;border-top:1px solid #505976;padding-top:15px}.article-header{max-width:940px;padding:45px 0}.article-header>.eyebrow{color:var(--muted);text-transform:uppercase}.article-header h1{font-size:clamp(42px,6.4vw,78px);letter-spacing:-3.8px;line-height:1.13;margin:23px 0}.meta-separator{padding:0 12px;color:#565b67}.article-deck{font-size:18px;color:var(--muted);line-height:1.8;max-width:680px}.byline{display:flex;align-items:center;gap:13px;margin-top:33px;font-size:12px}.avatar{width:37px;height:37px;display:grid;place-items:center;background:#233252;color:#9cb8ff;border:1px solid #43587d;border-radius:50%;font-size:14px;font-weight:700;letter-spacing:-1px}.byline>div>span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.article-visual{max-width:940px;height:360px;border-radius:6px;display:flex;align-items:center;justify-content:center;margin-top:10px;overflow:hidden}.article-visual .browser-art{width:340px}.article-visual .browser-top{height:28px}.article-visual .browser-body{padding:25px}.article-visual .browser-body strong{font-size:36px}.article-visual .code-art{width:490px}.article-visual .code-art>p{font-size:16px}.article-visual .code-label{font-size:9px}.article-visual .code-bottom{font-size:10px}.article-visual .chapter-art{width:380px}.article-visual .chapter-art>strong{font-size:150px}.article-visual .chapter-art>strong>span{font-size:120px}.article-visual .tiny-label,.article-visual .chapter-art>div{font-size:9px}.article-copy{width:min(660px,calc(100% - 48px));margin:65px auto 80px}.article-copy section+section{margin-top:39px}.article-copy h2{font-size:25px;letter-spacing:-.8px;margin-bottom:17px}.article-copy p{color:#b5b7bf;font-size:16px;line-height:1.95}.article-copy .text-link{margin-top:24px}.next-post{max-width:940px;padding:32px 0 65px;border-top:1px solid var(--line)}.next-post>.eyebrow{color:var(--muted)}.next-post>a{display:flex;justify-content:space-between;gap:20px;font-family:var(--display);font-size:27px;letter-spacing:-.9px;margin-top:22px;line-height:1.4}.next-post>a:hover{color:var(--blue)}.next-post a>span{color:var(--blue)}.project-cover{height:420px;background:#1b2a49;border-radius:6px;display:flex;align-items:center;justify-content:center}.project-cover>.browser-art{width:380px}.project-cover .browser-body{padding:30px}.project-cover .browser-body strong{font-size:45px}.project-cover .tiny-label{font-size:8px}
@media(max-width:950px){.wrap{width:calc(100% - 64px)}.hero h1{letter-spacing:-4px}.hero-bottom p{font-size:14px}.about-grid{gap:38px}.about-grid h2{font-size:36px}.about-copy>.lead{font-size:19px}.skills{gap:18px}.practice{grid-template-columns:125px 1fr}.practice>.text-link{grid-column:2}.blog-grid{grid-template-columns:1fr 1fr;gap:40px 24px}.blog-card:last-child{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.blog-card:last-child>.blog-art{grid-row:1 / 5;height:100%;min-height:250px}.blog-card:last-child>.blog-meta{margin-top:10px}.blog-card:last-child>h2,.blog-card:last-child>p,.blog-card:last-child>.text-link{grid-column:2}.project-art{height:350px}.preview-window{width:78%}.hero-location{display:none}}
@media(max-width:620px){.wrap{width:calc(100% - 40px)}.header{height:85px}.wordmark{font-size:19px}nav{gap:18px}nav>a{font-size:11px}nav .nav-contact{margin-left:0;padding:9px 11px}.nav-contact span{margin-left:7px}nav>a:first-child{display:none}.hero{padding-top:43px}.hero-top .eyebrow{font-size:8px;letter-spacing:1.1px}.hero h1{font-size:clamp(40px,10.5vw,65px);letter-spacing:-2.8px;line-height:1.18;margin:30px 0 23px}.hero-bottom{display:block}.hero-bottom p{font-size:14px;max-width:340px;line-height:1.8}.desktop-break{display:none}.button{margin-top:25px;font-size:11px;padding:15px 18px;gap:35px}.hero-index{margin-top:50px;font-size:7px;letter-spacing:.8px;padding-bottom:22px}.section{padding-block:57px}.section-head{gap:20px;align-items:end;margin-bottom:26px}.section-head h2{font-size:28px;letter-spacing:-1.3px;margin-top:13px}.section-head>.text-link{font-size:10px;gap:8px;white-space:nowrap;margin-bottom:3px}.section-head>p{display:none}.eyebrow{font-size:9px;letter-spacing:1.3px}.project-art{height:265px}.preview-window{padding:17px 20px;width:85%;transform:rotate(-3deg)}.preview-nav{padding-bottom:9px}.preview-nav b{font-size:18px}.preview-nav>span{font-size:5px}.preview-status{margin-top:15px;font-size:5px}.preview-title{font-size:30px;letter-spacing:-1.5px;margin-top:11px}.preview-line{margin-top:13px}.preview-foot{margin-top:16px}.preview-foot>span{font-size:5px}.preview-foot>b{padding:4px 8px}.project-art-note{bottom:12px;left:15px;font-size:6px}.project-info{padding:22px 0}.project-info h3{font-size:22px}.project-info p{font-size:12px;max-width:280px}.practice{display:block;padding-top:18px}.practice p{margin-top:10px;font-size:12px}.practice .text-link{margin-top:14px;font-size:11px}.about-section{padding:55px 0}.about-grid{grid-template-columns:1fr;gap:36px}.about-grid h2{font-size:37px;margin-top:20px}.about-copy>.lead{font-size:21px}.about-copy>p{font-size:13px}.skills{gap:20px}.skill>span{font-size:10px}.skill small{font-size:8px}.journal-row{gap:18px;padding:25px 0}.row-number{font-size:9px}.journal-row h3{font-size:17px;line-height:1.45;letter-spacing:-.4px;max-width:270px;margin-top:7px}.journal-row .eyebrow{font-size:8px}.row-arrow{font-size:20px}.contact-section{padding:39px 0 50px}.contact-section h2{font-size:38px;letter-spacing:-1.8px;margin-top:24px}.contact-bottom{display:block}.contact-bottom p{font-size:12px}.socials{margin-top:23px}.footer{padding:23px 0}.footer p,.footer>a:last-child{font-size:9px}.page-intro{padding:30px 0}.breadcrumb{margin-bottom:40px;font-size:10px}.page-intro h1{font-size:57px;letter-spacing:-3px;margin:20px 0}.intro-bottom{display:block}.intro-bottom p{font-size:14px}.intro-bottom>.eyebrow{display:block;margin-top:20px}.intro-bottom>.tags{margin-top:20px}.blog-grid{grid-template-columns:1fr;padding-block:10px 0;gap:43px}.blog-card:last-child{display:block;grid-column:auto}.blog-card:last-child>.blog-meta{margin-top:23px}.blog-card:last-child>.blog-art{height:245px;min-height:0}.blog-art{height:260px}.blog-card h2{font-size:27px}.blog-card>p{font-size:13px}.blog-card>.text-link{margin-top:18px}.blog-note{padding:35px 0 40px}.blog-note p{font-size:11px}.browser-art{max-width:300px}.code-art{max-width:300px}.code-art>p{font-size:11px}.chapter-art{max-width:290px}.chapter-art>strong{font-size:116px}.article-header{padding:30px 0}.article-header h1{font-size:44px;letter-spacing:-2px;margin:22px 0}.article-deck{font-size:15px}.byline{font-size:11px}.byline>div>span{font-size:8px}.article-visual{height:265px;margin-top:0}.article-visual .browser-art{width:260px}.article-visual .browser-body strong{font-size:30px}.article-visual .code-art{max-width:100%;width:300px;padding-inline:15px}.article-visual .code-art>p{font-size:10px}.article-visual .code-label{font-size:7px}.article-visual .code-bottom{font-size:8px}.article-visual .chapter-art{width:260px}.article-visual .chapter-art>strong{font-size:115px}.article-visual .chapter-art>strong>span{font-size:95px}.article-copy{margin:42px auto 50px;width:calc(100% - 48px)}.article-copy h2{font-size:23px}.article-copy p{font-size:15px;line-height:1.9}.article-copy section+section{margin-top:30px}.next-post{padding:26px 0 43px}.next-post>a{font-size:22px;letter-spacing:-.5px}.project-cover{height:300px}.project-cover>.browser-art{width:260px}.project-cover .browser-body strong{font-size:31px}.project-cover .browser-body{padding:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.bookstore-art{background:#293b50}.book-preview{width:78%;position:relative;max-width:850px;padding:26px 30px 22px;background:#eae7de;color:#202b31;box-shadow:0 20px 40px #0005;border-radius:3px;transform:rotate(-3deg);transition:transform .4s}.featured-project:hover .book-preview{transform:rotate(-1deg)}.book-preview-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid #b4bab7}.book-preview-head strong{font-family:Georgia,serif;font-size:28px;letter-spacing:-1px}.book-preview-head strong span{color:#1e5f99}.book-preview-head>span{font-size:7px;letter-spacing:1.7px}.book-covers{display:flex;justify-content:space-between;gap:17px;padding:24px 0}.book-covers img{width:calc((100% - 51px)/4);height:160px;object-fit:cover;box-shadow:5px 5px 8px #0003}.book-preview-foot{display:flex;justify-content:space-between;border-top:1px solid #b4bab7;padding-top:14px;font-size:6px;letter-spacing:1.1px}.portfolio-row{margin-bottom:25px}.portfolio-row p{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.6}.bookstore-cover{background:#293b50;height:480px}.bookstore-cover .book-preview{max-width:700px}.bookstore-cover .book-covers img{height:205px}.bookstore-cover .book-preview-head strong{font-size:34px}
@media(max-width:620px){.book-preview{width:85%;padding:15px 17px}.book-preview-head{padding-bottom:10px}.book-preview-head strong{font-size:20px}.book-preview-head>span{font-size:4px;letter-spacing:1px}.book-covers{gap:8px;padding:17px 0}.book-covers img{width:calc((100% - 24px)/4);height:100px}.book-preview-foot{font-size:4px;letter-spacing:.5px;padding-top:10px}.bookstore-cover{height:285px}.bookstore-cover .book-covers img{height:112px}.bookstore-cover .book-preview-head strong{font-size:23px}.portfolio-row p{font-size:11px}}

.education-list{margin-top:30px;max-width:460px}
.education-item{border-top:1px solid #303237;padding:22px 0}
.education-item:last-child{padding-bottom:0}
.education-item-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}
.education-logo{display:block;object-fit:contain;object-position:left center;max-width:100%;height:60px}
.education-years{font-size:10px;color:var(--muted);white-space:nowrap;letter-spacing:.3px}
.education-item h3{font-family:var(--body);font-size:13px;font-weight:500;line-height:1.6;letter-spacing:0}
.education-item p{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.6}
@media(max-width:950px) and (min-width:621px){.education-item-top{gap:10px;flex-wrap:wrap}.education-years{width:100%}}
@media(max-width:620px){.education-list{margin-top:25px}.education-item{padding-block:20px}.education-item-top{gap:12px}.education-logo-mmu{width:150px;height:54px}.education-logo-ryburn{width:162px;height:54px}.education-years{font-size:9px}.education-item h3{font-size:12px}}

/* Sparse student profile: space for future work, without experience claims. */
.sparse-section{padding-block:64px}
.empty-state{border-top:1px solid var(--line);padding:30px 0 22px;color:var(--muted);font-size:13px;line-height:1.8}
.minimal-about{padding-top:8px;max-width:430px}
.minimal-about>.eyebrow{display:block;color:var(--muted);margin-bottom:25px}
.minimal-about>.lead{font-size:25px;letter-spacing:-.7px}
.minimal-about>p{font-size:14px}
.journal-empty{min-height:240px;margin-bottom:60px}
@media(max-width:620px){.sparse-section{padding-block:46px}.minimal-about{padding-top:0}.minimal-about>.lead{font-size:23px}.empty-state{font-size:12px;padding-top:24px}.journal-empty{min-height:200px}.hero h1{font-size:clamp(38px,10.5vw,65px)}}

/* Contact form */
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.contact-intro>p{color:var(--muted);font-size:14px;line-height:1.9}.contact-intro .socials{margin-top:28px}
.contact-form{padding:30px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#769aff08,transparent 55%),#151619;transition:border-color .3s,box-shadow .3s}
.contact-form:focus-within{border-color:#769aff65;box-shadow:0 12px 45px #0002}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-field{margin-bottom:24px;min-width:0}
.form-field label{display:block;font-size:12px;margin-bottom:10px;color:#d8dae1;transition:color .2s}.form-field:focus-within label{color:var(--blue)}
.form-field input,.form-field textarea{display:block;width:100%;font:inherit;font-size:13px;line-height:1.6;background:#101113;border:1px solid #35383e;border-radius:6px;color:var(--text);padding:13px 14px;transition:border-color .2s,box-shadow .2s,background .2s;outline:none}
.form-field textarea{resize:vertical;min-height:140px;max-height:500px}.form-field input::placeholder,.form-field textarea::placeholder{color:#777c88}
.form-field input:hover,.form-field textarea:hover{border-color:#555d6e}.form-field input:focus,.form-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #769aff18;background:#12151c}
.form-honeypot{display:none!important}.form-footer{display:flex;justify-content:space-between;gap:20px;align-items:center}.form-note{font-size:10px;line-height:1.6;color:var(--muted)}
.send-button{font-family:inherit;border:0;cursor:pointer;gap:22px;white-space:nowrap;min-height:48px;justify-content:center;position:relative;overflow:hidden}.send-button:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.send-icon{transition:transform .25s}.send-button:hover .send-icon{transform:translateX(4px)}.send-button:active{transform:translateY(0) scale(.98)}.send-button:disabled{cursor:wait;opacity:.8;transform:none}.send-spinner{display:none;width:17px;height:17px;border:2px solid #10111340;border-top-color:#101113;border-radius:50%;animation:send-spin .7s linear infinite}.is-sending .send-icon{display:none}.is-sending .send-spinner{display:block}
.form-status{font-size:12px;line-height:1.7;color:var(--muted)}.form-status:not(:empty){margin-top:20px;padding-top:16px;border-top:1px solid var(--line);animation:contact-enter .3s ease-out}.form-status[data-state="success"]{color:#a6dac2}.form-status[data-state="error"]{color:#ffb4b4}
.contact-form.reveal-ready{opacity:0;transform:translateY(24px)}.contact-form.reveal-ready.is-visible{opacity:1;transform:translateY(0);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1),border-color .3s,box-shadow .3s}
@keyframes send-spin{to{transform:rotate(360deg)}}@keyframes contact-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:950px){.contact-layout{grid-template-columns:1fr;gap:32px}.contact-intro{display:flex;align-items:center;justify-content:space-between;gap:25px}.contact-intro .socials{margin-top:0}}
@media(max-width:620px){.contact-layout{gap:28px}.contact-intro{display:block}.contact-intro>p{font-size:12px}.contact-intro .socials{margin-top:20px}.contact-form{padding:22px 18px}.form-row{grid-template-columns:1fr;gap:0}.form-footer{align-items:stretch;flex-direction:column;gap:15px}.send-button{align-self:stretch}.form-field{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.contact-form.reveal-ready{opacity:1;transform:none}.send-button:hover .send-icon{transform:none}}

/* Quick navigation and reading tools */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;z-index:90;pointer-events:none;box-shadow:0 0 12px #769aff55}
.page-tools{position:fixed;bottom:22px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:80}.page-tools>button{pointer-events:auto;border:1px solid #414650;background:#191c23ed;backdrop-filter:blur(14px);color:#d7dbe6;cursor:pointer;font:inherit;box-shadow:0 5px 25px #0003;transition:transform .2s,border-color .2s,background .2s}.page-tools>button:hover{transform:translateY(-3px);border-color:var(--blue);background:#232c42}.page-tools>button:focus-visible,.quick-nav button:focus-visible,.quick-item:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.shortcut-launcher{display:flex;align-items:center;gap:11px;border-radius:9px;padding:11px 14px;font-size:11px!important}.shortcut-launcher svg{color:var(--blue)}.shortcut-launcher kbd{font:inherit;font-size:10px;color:#aab2c5;border:1px solid #434956;border-radius:4px;padding:3px 5px;margin-left:10px}.scroll-top{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:var(--blue)!important;animation:contact-enter .25s ease-out}.scroll-top[hidden]{display:none}
.quick-nav{color:var(--text);background:#15171c;border:1px solid #404753;border-radius:15px;padding:24px;width:min(510px,calc(100% - 32px));max-height:calc(100dvh - 48px);box-shadow:0 35px 120px #0008;overflow:auto}.quick-nav[open]{animation:menu-enter .2s ease-out}.quick-nav::backdrop{background:#080a10b8;backdrop-filter:blur(7px)}.quick-nav-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.quick-nav h2{font-size:23px;letter-spacing:-.7px}.quick-close{font:inherit;font-size:10px;color:var(--muted);background:transparent;border:1px solid #414753;border-radius:5px;padding:6px 9px;cursor:pointer}.quick-nav input{width:100%;padding:14px 15px;background:#0e1014;color:var(--text);border:1px solid #414753;border-radius:7px;font:inherit;font-size:13px;outline:none}.quick-nav input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #769aff14}.quick-results{display:grid;gap:4px;margin-top:16px}.quick-item{display:flex;justify-content:space-between;gap:16px;align-items:center;width:100%;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);text-align:left;font:inherit;font-size:13px;padding:13px 12px;cursor:pointer;transition:background .15s,border-color .15s}.quick-item:hover,.quick-item:focus{background:#769aff10;border-color:#769aff35}.quick-item small{font-size:10px;line-height:1.5;color:var(--muted);text-align:right}.quick-help{border-top:1px solid var(--line);margin-top:16px;padding-top:16px;color:var(--muted);font-size:10px;display:flex;justify-content:space-between}.quick-empty{font-size:13px;color:var(--muted);padding:25px 12px;line-height:1.8}.site-toast{position:fixed;z-index:100;bottom:80px;left:50%;transform:translateX(-50%);background:#212b3f;border:1px solid #769aff65;border-radius:8px;color:var(--text);font-size:12px;box-shadow:0 6px 25px #0004;max-width:calc(100% - 32px);text-align:center}.site-toast:not(:empty){padding:13px 20px;animation:menu-enter .2s ease-out}.site-toast:empty{display:none}.footer{padding-bottom:88px}
@keyframes menu-enter{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(max-width:620px){.page-tools{bottom:16px;left:16px;right:16px}.shortcut-launcher{padding:11px}.shortcut-launcher kbd{display:none}.quick-nav{padding:20px}.quick-item{padding:13px 8px}.quick-item small{max-width:145px}.quick-nav h2{font-size:21px}}
