*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}img{display:block;max-width:100%}:root{--ink: oklch(.1 .015 240);--paper: oklch(.87 .01 240);--muted: oklch(.38 .01 240);--accent: oklch(.42 .13 230);--accent-light: oklch(.84 .04 230);--rule: oklch(.7 .01 240);--faint: oklch(.58 .008 240);--mono: "Martian Mono", monospace;--display: "Unbounded", sans-serif}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--mono);font-weight:300;font-size:16px;max-width:900px;margin:0 auto;padding:0 2rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}p{color:var(--muted)}strong{font-weight:400;color:var(--ink)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}nav{display:flex;justify-content:space-between;align-items:center;padding:2rem 0 1.5rem;border-bottom:1px solid var(--rule)}.nav-name{font-family:var(--display);font-size:11px;font-weight:400;letter-spacing:.04em;color:var(--ink)}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em;transition:color .15s}.nav-links a:hover{color:var(--ink)}.hero{padding:7rem 0 5rem;display:grid;grid-template-columns:1fr 1fr;align-items:end}.hero-name{font-family:var(--display);font-size:clamp(2.8rem,6vw,4.8rem);font-weight:700;line-height:1.05;letter-spacing:-.03em;color:var(--ink);margin-bottom:2.5rem}.hero-tagline{font-family:var(--mono);font-size:13px;font-weight:400;color:var(--accent);letter-spacing:.02em;margin-bottom:.75rem}.hero-sub{font-size:13px;color:var(--muted);line-height:1.75;max-width:38ch}.hero-right{display:flex;flex-direction:column;align-items:flex-end;gap:1rem;padding-bottom:.25rem}.hero-links{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.hero-links a{font-size:11px;color:var(--muted);letter-spacing:.04em;transition:color .15s}.hero-links a:hover{color:var(--accent)}.status-pill{display:inline-flex;align-items:center;gap:6px;background:var(--accent-light);color:var(--accent);font-size:10px;letter-spacing:.06em;padding:5px 12px;border-radius:2px;font-family:var(--mono)}.status-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.section-rule{height:1px;background:var(--rule)}.section-label{font-size:10px;letter-spacing:.12em;color:var(--muted);font-family:var(--mono);padding:2rem 0 0;margin-bottom:3rem;text-transform:uppercase}.projects{padding:0 0 5rem}.project-row{display:grid;grid-template-columns:140px 1fr auto;align-items:start;gap:0 2rem;padding:2.5rem 0;border-bottom:1px solid var(--rule);transition:background .2s}.project-row:first-of-type{border-top:1px solid var(--rule)}.project-row:hover{background:color-mix(in oklch,var(--paper),var(--ink) 3%)}.project-row:hover .project-num{color:var(--accent)}.project-num{font-family:var(--display);font-size:clamp(3rem,7vw,5rem);font-weight:700;line-height:1;color:var(--rule);transition:color .2s;letter-spacing:-.04em;user-select:none;padding-top:.1em}.project-type{font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-bottom:.75rem}.project-name{font-family:var(--display);font-size:clamp(1rem,2.2vw,1.4rem);font-weight:400;letter-spacing:-.02em;color:var(--ink);margin-bottom:.5rem;line-height:1.2}.project-desc{font-size:13px;color:var(--muted);line-height:1.8;max-width:52ch;margin-bottom:1rem}.project-stack{display:flex;flex-wrap:wrap;gap:6px}.project-link{font-size:11px;color:var(--muted);letter-spacing:.04em;white-space:nowrap;padding-top:.5rem;transition:color .15s;display:flex;align-items:center;gap:4px}.project-link:hover{color:var(--accent)}.arrow{font-size:14px;transition:transform .15s;display:inline-block}.project-link:hover .arrow{transform:translate(2px,-2px)}.tag{font-size:10px;letter-spacing:.04em;color:var(--muted);border:1px solid var(--rule);padding:3px 8px;border-radius:2px;font-family:var(--mono)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:1rem}.about{padding:0 0 5rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem}.about-text{font-size:14px;line-height:1.85;color:var(--muted);max-width:50ch}.about-text+.about-text{margin-top:1.25rem}.stack-grid{display:flex;flex-direction:column;gap:1.25rem}.stack-row-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-family:var(--mono);margin-bottom:.4rem}.stack-items{display:flex;flex-wrap:wrap;gap:5px}.contact{padding:4rem 0 5rem;display:flex;justify-content:space-between;align-items:flex-end}.contact-heading{font-family:var(--display);font-size:clamp(1.8rem,4vw,3.2rem);font-weight:700;letter-spacing:-.03em;line-height:1.1;color:var(--ink);max-width:14ch}.contact-heading span{color:var(--accent)}.contact-right{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.contact-email{font-size:13px;color:var(--muted);letter-spacing:.02em;transition:color .15s}.contact-email:hover{color:var(--accent)}.contact-socials{display:flex;gap:1.5rem}.contact-socials a{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color .15s}.contact-socials a:hover{color:var(--ink)}footer{border-top:1px solid var(--rule);padding:1.5rem 0;display:flex;justify-content:space-between;align-items:center}footer span{font-size:10px;color:var(--faint);letter-spacing:.06em;font-family:var(--mono)}@keyframes enter{0%{opacity:0;transform:translateY(16px)}}[data-page=home]>*{animation:enter .5s cubic-bezier(.16,1,.3,1) both}[data-page=home]>:nth-child(1){animation-delay:0s}[data-page=home]>:nth-child(2){animation-delay:.05s}[data-page=home]>:nth-child(3){animation-delay:.08s}[data-page=home]>:nth-child(4){animation-delay:.12s}[data-page=home]>:nth-child(5){animation-delay:.16s}[data-page=home]>:nth-child(6){animation-delay:.2s}[data-page=home]>:nth-child(7){animation-delay:.24s}[data-page=home]>:nth-child(8){animation-delay:.28s}[data-page=home]>:nth-child(9){animation-delay:.32s}@media(prefers-reduced-motion:reduce){[data-page=home]>*,[data-page=case-study] .back-link,[data-page=case-study] .case-header,[data-page=case-study] .case-header+.case-image{animation:none}html{scroll-behavior:auto}.js [data-page=case-study] .case-section,.js [data-page=case-study] .case-image-grid,.js [data-page=case-study] .case-section~.case-image{opacity:1;transform:none;transition:none}}[data-page=case-study] .back-link{animation:enter .5s cubic-bezier(.16,1,.3,1) both}[data-page=case-study] .case-header{animation:enter .5s cubic-bezier(.16,1,.3,1) both;animation-delay:.06s}[data-page=case-study] .case-header+.case-image{animation:enter .6s cubic-bezier(.16,1,.3,1) both;animation-delay:.15s}.js [data-page=case-study] .case-section,.js [data-page=case-study] .case-image-grid,.js [data-page=case-study] .case-section~.case-image{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}.js [data-page=case-study] .case-section.in-view,.js [data-page=case-study] .case-image-grid.in-view,.js [data-page=case-study] .case-section~.case-image.in-view{opacity:1;transform:none}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:400;letter-spacing:.04em;margin-bottom:4rem;margin-top:2rem;color:var(--muted);transition:color .15s}.back-link:hover{color:var(--ink)}.case-header{margin-bottom:3rem}.case-header h1{font-family:var(--display);font-size:clamp(2.2rem,6vw,3.8rem);font-weight:700;line-height:1.05;letter-spacing:-.03em;margin-bottom:.5rem}.case-year{font-size:10px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.case-context{font-size:14px;color:var(--muted);margin-top:1rem;max-width:55ch;line-height:1.8}.case-section{margin-bottom:3.5rem}.case-section h2{font-family:var(--display);font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:400;letter-spacing:-.02em;margin-bottom:1.5rem;color:var(--ink)}.case-section h3{font-family:var(--display);font-weight:400;font-size:1rem;letter-spacing:-.01em;color:var(--ink);margin-top:2.5rem;margin-bottom:.75rem}.case-section h3:first-child{margin-top:0}.case-section p{font-size:14px;max-width:58ch;line-height:1.85}.case-section p+p{margin-top:1rem}.case-section p+ul,.case-section p+ol{margin-top:.75rem}.case-section ul,.case-section ol{padding-left:1.25rem;color:var(--muted);font-size:14px;line-height:1.85;max-width:58ch}.case-section ul li,.case-section ol li{margin-bottom:.5rem;padding-left:4px}.case-section ul li:last-child,.case-section ol li:last-child{margin-bottom:0}.case-callout{margin-top:1rem;font-style:italic;color:var(--ink);font-size:13px}.case-section a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .15s}.case-section a:hover{color:var(--ink)}.case-image{width:100%;margin-bottom:3rem;border-radius:4px}.case-image-grid{display:grid;gap:1rem;margin-bottom:3rem}.case-image-grid .case-image{margin-bottom:0}.architecture-block{background:var(--ink);color:var(--rule);padding:2rem;border-radius:4px;overflow-x:auto}.architecture-block pre{margin:0;font-size:12px;line-height:1.65;font-family:var(--mono)}.architecture-block code{font-family:inherit}.tech-table{display:flex;flex-direction:column;max-width:540px}.tech-row{display:flex;font-size:13px;padding:.85rem 0;border-bottom:1px solid var(--rule);line-height:1.6}.tech-row:last-child{border-bottom:none}.tech-label{width:100px;flex-shrink:0;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.tech-row span:last-child{color:var(--muted)}.mobile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}.mobile-grid figure{margin:0}.mobile-grid img{width:100%}.mobile-grid figcaption{text-align:center;font-size:10px;letter-spacing:.04em;color:var(--muted);margin-top:.5rem;font-family:var(--mono)}@media(max-width:620px){body{padding:0 1.25rem}.nav-links a,.hero-links a,.back-link{padding:.5rem 0;min-height:44px;display:inline-flex;align-items:center}.nav-links{gap:1rem}.hero{grid-template-columns:1fr;gap:2.5rem;padding:4rem 0 3rem}.hero-right,.hero-links{align-items:flex-start}.about{grid-template-columns:1fr;gap:2.5rem}.contact{flex-direction:column;align-items:flex-start;gap:2rem}.contact-right{align-items:flex-start}.project-row{grid-template-columns:48px 1fr}.project-num{font-size:clamp(1.8rem,6vw,3rem)}.project-link{grid-column:2;padding:.5rem 0;min-height:44px;display:inline-flex;align-items:center}.case-header h1{font-size:clamp(1.6rem,6vw,2.4rem)}.architecture-block{padding:1rem;margin-inline:-1.25rem;width:calc(100% + 2.5rem)}.architecture-block pre{font-size:10px}.tech-label{width:80px}.mobile-grid{grid-template-columns:1fr;gap:1.5rem}.contact-socials a{padding:.5rem 0;min-height:44px;display:inline-flex;align-items:center}}
