*{box-sizing:border-box}html{--bg:#fff;--fg:#20201f;--muted:#777774;--soft:#f4f4f2;--line:#e9e9e6;--accent:#7863ab;--card:#fff;color-scheme:light;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}html[data-theme=dark]{--bg:#141514;--fg:#eeeeea;--muted:#aaa9a3;--soft:#242623;--line:#343632;--accent:#b6a2e0;--card:#1b1d1a;color-scheme:dark}@media(prefers-color-scheme:dark){html:not([data-theme=light]){--bg:#141514;--fg:#eeeeea;--muted:#aaa9a3;--soft:#242623;--line:#343632;--accent:#b6a2e0;--card:#1b1d1a;color-scheme:dark}}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip-link{position:fixed;top:-80px;left:24px;background:var(--fg);color:var(--bg);padding:12px;z-index:10}.skip-link:focus{top:20px}.theme-toggle{display:grid;place-items:center;width:40px;height:40px;background:none;border:0;border-radius:50%;transition:background .2s}.theme-toggle:hover{background:var(--soft)}.theme-toggle .icon{width:20px;height:20px}.home{min-height:100svh;display:grid;place-items:center}.home-header{position:absolute;top:32px;right:40px}.intro{width:min(100% - 48px,610px);padding:90px 0 75px;animation:arrive .6s ease both}.identity{display:flex;align-items:center;gap:12px;margin-bottom:32px}.identity h1{font-size:19px;font-weight:550;letter-spacing:-.35px;line-height:1.5;margin:0}.identity h1 span{color:var(--muted);font-weight:450}.identity-mark{width:28px;height:20px;flex-shrink:0;color:var(--accent);stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.bio{font-size:22px;line-height:1.57;letter-spacing:-.35px;color:var(--muted);margin:0 0 13px;max-width:600px}.ink{color:var(--fg)}.handwritten{font-family:Georgia,"Times New Roman",serif;font-style:italic;color:var(--accent)}.portfolio-link{display:flex;align-items:center;gap:12px;width:fit-content;margin:26px 0 28px;font-size:20px;font-weight:500;letter-spacing:-.3px}.portfolio-link>.icon{width:20px;height:20px;transition:transform .2s}.portfolio-link:hover>.icon{transform:translate(3px,-3px)}.project-count{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);background:var(--soft);padding:5px 9px;border-radius:20px}.contact-actions{display:flex;gap:10px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:10px 17px;border:1px solid transparent;border-radius:30px;font-size:15px;font-weight:500;transition:transform .2s,opacity .2s}.pill:hover{transform:translateY(-2px);opacity:.85}.primary{background:var(--fg);color:var(--bg)}.secondary{background:var(--soft);color:var(--fg)}.social-links{display:flex;gap:22px;margin-top:26px;color:var(--muted);font-size:13px}.social-links a{display:flex;align-items:center;gap:3px}.social-links .icon{width:13px;height:13px}.social-links a:hover{color:var(--fg)}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,10px);opacity:0;background:var(--fg);color:var(--bg);padding:12px 18px;border-radius:12px;font-size:14px;pointer-events:none;transition:.2s;max-width:calc(100% - 32px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.work-header,.work-main,.work-footer{width:min(1240px,100% - 80px);margin-inline:auto}.work-header{display:flex;align-items:center;justify-content:space-between;padding-top:30px}.back-link{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--muted)}.back-link:hover{color:var(--fg)}.back-link .icon{width:17px}.work-main{padding-top:58px}.work-intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:35px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin:0 0 13px}.work-intro h1{font-size:42px;font-weight:500;letter-spacing:-2px;margin:0}.heading-dot{color:var(--accent)}.work-note{font-family:Georgia,serif;font-size:17px;font-style:italic;color:var(--muted);padding-bottom:6px}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.project-card{min-width:0;border:1px solid var(--line);border-radius:23px;overflow:hidden;background:var(--card);box-shadow:0 2px 3px #00000002,0 8px 24px #00000003;transition:transform .25s,box-shadow .25s}.project-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px #0000000a}.cover-link{display:block}.cover{height:auto;aspect-ratio:1.65;position:relative;overflow:hidden;color:#242a28}.cover-topline{display:flex;justify-content:space-between;position:absolute;inset:24px 26px auto;font-size:8px;letter-spacing:1.5px;opacity:.65}.cover-caption{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-family:Georgia,serif;font-style:italic;font-size:17px;letter-spacing:-.2px}.catalog-cover{background:#e9eee8;display:grid;place-items:center;padding:18px}.catalog-screenshot{display:block;width:100%;height:100%;object-fit:contain;border-radius:8px}.search-diagram{position:absolute;left:15%;right:15%;top:27%;display:flex;flex-direction:column;align-items:center}.query-box{width:100%;display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #d9e0d6;padding:15px 16px;border-radius:11px;box-shadow:0 9px 25px #2944330a;font-size:13px}.search-glyph{font-size:22px;color:#73866d;line-height:1}.query-arrow{margin-left:auto;color:#798471}.index-line{height:20px;width:1px;background:#b7c4b1}.index-options{display:flex;gap:8px;align-items:center}.index-options>span{background:#f3f6ef;border:1px solid #d2dacd;border-radius:8px;padding:7px 14px;font-size:11px;color:#6b7765}.index-options>span.selected{background:#334e3c;color:#fff;border-color:#334e3c}.selected i{width:4px;height:4px;border-radius:50%;background:#a7d7ab;display:inline-block;vertical-align:middle;margin-left:6px}.vector-dots{margin-top:16px;display:grid;grid-template-columns:repeat(12,4px);gap:7px}.vector-dots i{height:4px;width:4px;border-radius:50%;background:#b5c4ae}.vector-dots i:nth-child(3n){background:#4b6b4b}.nextup-cover{background:#e9e5ed;display:grid;place-items:center;padding:18px}.nextup-screenshot{display:block;width:100%;height:100%;object-fit:contain;border-radius:8px}.focus-art{position:absolute;inset:16% 12% 15%;display:grid;place-items:center}.focus-icon{display:grid;place-items:center;width:78px;height:78px;border-radius:22px;box-shadow:0 14px 30px #65528323,inset 0 1px 1px #ffffff65;background:#796894;color:white;font-size:49px;font-weight:200;z-index:1}.orbit{position:absolute;border:1px solid #c9bddb;border-radius:50%;width:255px;height:130px;transform:rotate(-22deg)}.orbit-two{width:180px;height:205px;transform:rotate(28deg);opacity:.65}.orbit-label{position:absolute;font-size:10px;color:#756580;background:#eeeaf5;padding:4px 7px}.label-one{left:14%;top:32%}.label-two{right:10%;top:28%}.label-three{right:17%;bottom:13%}.algorithms-cover{background:#e9edf3}.algorithms-cover img{position:absolute;left:8%;top:18%;width:84%;height:90%;object-fit:cover;object-position:left top;border:1px solid #ccd3df;border-radius:9px;box-shadow:0 12px 35px #36455b20;transition:transform .4s}.cover-link:hover .algorithms-cover img{transform:translateY(-4px)}.repo-cover{background:#ebecf3;color:#242a28;display:grid;place-items:center;padding:18px}.repo-screenshot{display:block;width:100%;height:100%;object-fit:contain;border-radius:8px}.repo-art{position:absolute;inset:28% 12% 18%;display:flex;align-items:center;flex-direction:column}.repo-question{font-size:22px;letter-spacing:-.8px;line-height:1.4}.repo-question>span{color:#97c2c3}.repo-connection{width:1px;height:30px;background:#5c777e}.repo-files{display:flex;gap:10px}.repo-files>span{display:flex;gap:7px;align-items:center;border:1px solid #486069;border-radius:8px;padding:12px 10px;font-family:ui-monospace,monospace;font-size:9px;color:#bfd1d5;background:#2b393f}.repo-files b{font-size:13px;font-weight:400;color:#94bdc1}.repo-cover .cover-caption{color:#a4b9bd}.card-body{padding:22px 24px 20px}.card-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.card-heading h2{font-size:19px;font-weight:500;letter-spacing:-.4px;margin:0}.card-heading h2 a{display:flex;gap:7px;align-items:center}.card-heading h2 .icon{width:15px;height:15px;color:var(--muted)}.project-year{font-size:13px;color:var(--muted)}.card-body>p{font-size:14px;line-height:1.65;color:var(--muted);margin:11px 0 15px;max-width:485px}.card-body>p.tech{font-size:11px;line-height:1.5;letter-spacing:.1px;margin:0 0 19px;color:var(--muted)}.card-links{display:flex;gap:22px;font-size:12px}.card-links a{display:flex;gap:4px;align-items:center}.card-links .icon{width:13px;height:13px}.card-links a:hover{color:var(--accent)}.work-footer{display:flex;justify-content:space-between;gap:20px;padding:42px 0 32px;font-size:12px;color:var(--muted)}.work-footer a{display:flex;gap:4px;align-items:center}.work-footer .icon{width:13px;height:13px}.work-footer span{font-family:Georgia,serif;font-style:italic}.work-footer a:hover{color:var(--fg)}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){.intro{transform:translateY(-12px)}}@media(max-width:850px){.work-header,.work-main,.work-footer{width:calc(100% - 48px)}.projects-grid{gap:20px}.cover-topline{inset:18px 18px auto;font-size:7px;letter-spacing:.8px}.cover-caption{font-size:14px;bottom:17px}.query-box{padding:11px;font-size:10px;gap:7px}.search-diagram{left:12%;right:12%;top:25%}.vector-dots{margin-top:10px;gap:5px}.index-line{height:13px}.index-options>span{font-size:9px;padding:5px 11px}.orbit{width:190px;height:105px}.orbit-two{width:145px;height:150px}.focus-icon{width:60px;height:60px;border-radius:17px;font-size:36px}.orbit-label{font-size:8px}.repo-question{font-size:16px}.repo-files{gap:5px}.repo-files>span{font-size:7px;padding:9px 6px;gap:4px}.card-body{padding:18px}.card-heading h2{font-size:17px}.card-body>p{font-size:13px}.label-one{left:5%}.label-two{right:2%}}@media(max-width:600px){.home-header{top:20px;right:20px}.intro{width:calc(100% - 48px);padding:100px 0 70px}.identity{gap:8px;margin-bottom:26px;flex-wrap:wrap}.identity h1{font-size:16px}.identity-mark{width:24px;height:18px}.bio{font-size:20px;line-height:1.6}.portfolio-link{font-size:19px;margin:24px 0}.social-links{margin-top:24px}.work-header{padding-top:20px}.work-main{padding-top:42px}.work-intro{margin-bottom:26px;gap:15px}.work-intro h1{font-size:36px}.eyebrow{font-size:8px;letter-spacing:1.5px}.work-note{font-size:13px}.projects-grid{grid-template-columns:1fr;gap:24px}.cover{aspect-ratio:1.5}.cover-topline{inset:22px 23px auto;font-size:8px}.cover-caption{font-size:16px;bottom:22px}.query-box{font-size:12px;padding:14px}.index-line{height:20px}.index-options>span{font-size:10px;padding:7px 15px}.vector-dots{margin-top:14px;gap:6px}.focus-icon{width:75px;height:75px;font-size:45px;border-radius:21px}.orbit{width:250px;height:125px}.orbit-two{width:180px;height:195px}.orbit-label{font-size:10px}.repo-question{font-size:21px}.repo-files>span{font-size:9px;padding:11px 8px}.repo-files{gap:8px}.card-body{padding:21px}.card-heading h2{font-size:19px}.card-body>p{font-size:14px}.work-footer{flex-wrap:wrap;padding-top:32px}.work-footer>span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}