:root{color:oklch(17% .02 258);font-synthesis:none;text-rendering:optimizelegibility;--paper:oklch(98.5% .004 255);--paper-deep:oklch(96.5% .007 255);--paper-raised:oklch(99.8% .002 255);--graphite:oklch(17% .02 258);--graphite-soft:oklch(43% .018 258);--graphite-faint:oklch(54% .014 258);--cobalt:oklch(48% .19 258);--cobalt-deep:oklch(39% .17 258);--blueprint:oklch(95% .022 258);--aluminium:oklch(90% .008 255);--line-subtle:oklch(17% .02 258/.08);--line:oklch(17% .02 258/.14);--line-strong:oklch(17% .02 258/.28);--radius-small:6px;--radius-medium:10px;--ease-standard:cubic-bezier(.4, 0, .2, 1);background:oklch(98.5% .004 255);font-family:Avenir Next,Avenir,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0}body,a{color:var(--graphite)}a{text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--cobalt);outline-offset:4px;border-radius:var(--radius-small)}.skip-link{z-index:100;border-radius:var(--radius-small);background:var(--graphite);color:var(--paper);transition:transform .15s var(--ease-standard);padding:10px 14px;font-size:.84rem;font-weight:700;position:fixed;inset-block-start:12px;inset-inline-start:12px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header,main,footer{width:min(100% - 48px,1240px);margin-inline:auto}.site-header{border-block-end:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;min-height:80px;display:grid}.brand{letter-spacing:-.025em;align-items:center;gap:12px;width:max-content;font-weight:700;display:inline-flex}.brand-mark{min-width:36px;min-height:28px;color:var(--cobalt);letter-spacing:-.05em;place-items:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;font-weight:700;display:inline-grid;position:relative}.brand-mark:before{content:"";background:var(--cobalt);border-radius:2px;width:2px;position:absolute;inset-block:0;inset-inline-start:0}.site-header nav{align-items:center;gap:32px;font-size:.86rem;font-weight:600;display:flex}.site-header nav a,.secondary-link,.footer-copy a{transition:color .15s var(--ease-standard)}.site-header nav a:hover,.secondary-link:hover,.footer-copy a:hover{color:var(--cobalt)}.header-contact{border-radius:var(--radius-small);background:var(--cobalt);color:#fff;min-height:44px;transition:background-color .15s var(--ease-standard), transform .1s var(--ease-standard);justify-self:end;align-items:center;gap:10px;padding-inline:17px;font-size:.82rem;font-weight:700;display:inline-flex}.header-contact:hover{background:var(--cobalt-deep)}.header-contact:active{transform:scale(.98)}.header-contact svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:18px}.hero{border-block-end:1px solid var(--line);grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:center;gap:clamp(56px,8vw,120px);min-height:680px;padding-block:96px 112px;display:grid}.eyebrow,.section-number,.project-category,.project-status,.project-index,.work-index-heading{text-transform:uppercase;letter-spacing:.09em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:700}.eyebrow{color:var(--graphite-soft);align-items:center;gap:12px;margin:0 0 30px;display:flex}.eyebrow>span{background:var(--cobalt);width:18px;height:2px}h1,h2,h3,p{margin-block-start:0}h1,h2,h3{letter-spacing:-.055em;margin-block-end:0}h1{max-width:810px;font-size:clamp(3.4rem,6.4vw,6.35rem);font-weight:650;line-height:.96}h1 em{color:var(--cobalt);font:inherit}.hero-intro{max-width:660px;color:var(--graphite-soft);margin:36px 0 0;font-size:clamp(1rem,1.4vw,1.16rem);line-height:1.72}.hero-actions{flex-wrap:wrap;align-items:center;gap:28px;margin-block-start:40px;display:flex}.primary-link,.secondary-link{align-items:center;gap:12px;min-height:44px;font-size:.86rem;font-weight:700;display:inline-flex}.primary-link{border-radius:var(--radius-small);background:var(--graphite);color:var(--paper);transition:background-color .15s var(--ease-standard), transform .1s var(--ease-standard);padding-inline:18px}.primary-link:hover{background:var(--cobalt)}.primary-link:active{transform:scale(.98)}.primary-link svg,.about-copy a svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:19px;transition:transform .15s var(--ease-standard)}.primary-link:hover svg,.about-copy a:hover svg{transform:translate(4px)}.work-index{border-block-start:2px solid var(--cobalt);align-self:center}.work-index-heading{color:var(--graphite-faint);border-block-end:1px solid var(--line);justify-content:space-between;gap:16px;padding-block:16px;display:flex}.work-index ol{margin:0;padding:0;list-style:none}.work-index li{border-block-end:1px solid var(--line)}.work-index li a{min-height:66px;transition:color .15s var(--ease-standard), padding-inline .15s var(--ease-standard);grid-template-columns:36px 1fr auto;align-items:center;gap:12px;display:grid}.work-index li a:hover{color:var(--cobalt);padding-inline:6px}.work-index-number{color:var(--cobalt);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;font-weight:700}.work-index-title{font-size:.94rem;font-weight:650}.work-index-arrow{font-size:1.1rem}.work-index>p{color:var(--graphite-faint);margin:18px 0 0;font-size:.72rem;line-height:1.5}.projects-section{padding-block:112px 132px}.section-heading{grid-template-columns:.55fr 1.45fr;align-items:start;gap:48px;margin-block-end:64px;display:grid}.section-number{color:var(--graphite-faint);align-items:center;gap:12px;margin-block:12px 0;display:flex}.section-number span{color:var(--cobalt)}.section-heading h2,.about-grid h2{max-width:830px;font-size:clamp(2.55rem,5vw,4.8rem);font-weight:620;line-height:1.04}.section-heading>div>p{max-width:660px;color:var(--graphite-soft);margin:24px 0 0;font-size:1rem;line-height:1.7}.projects-grid{gap:24px;display:grid}.project-card{border:1px solid var(--line);border-radius:var(--radius-medium);background:var(--paper-raised);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0;min-height:560px;scroll-margin-block-start:24px;display:grid;overflow:hidden}.project-card:nth-child(2n) .project-visual{order:2}.project-visual{background:var(--paper-deep);border-color:var(--line);place-items:center;min-height:560px;display:grid;position:relative;overflow:hidden}.project-card:nth-child(odd) .project-visual{border-inline-end:1px solid var(--line)}.project-card:nth-child(2n) .project-visual{border-inline-start:1px solid var(--line)}.project-index{z-index:4;color:var(--graphite-faint);position:absolute;inset-block-start:24px;inset-inline-start:26px}.app-visual{width:min(80%,360px);height:450px;position:relative}.app-screen{border:7px solid var(--graphite);background:var(--graphite);border-radius:30px;width:202px;height:auto;position:absolute;inset-block-start:22px;inset-inline-start:50%;transform:translate(-50%)}.app-icon{border:6px solid var(--paper-raised);outline:1px solid var(--line);border-radius:22px;width:90px;height:90px;position:absolute;inset-block-end:22px;inset-inline-end:0}.app-visual--dan .app-icon{inset-inline:0 auto}.chess-visual{aspect-ratio:1;width:min(78%,350px);position:relative}.chess-card{border:2px solid var(--graphite);border-radius:var(--radius-small);width:42%;height:62%;position:absolute}.chess-card-back{background:repeating-linear-gradient(45deg, var(--graphite) 0 5px, var(--cobalt) 5px 10px);inset-block-start:16%;inset-inline-start:16%;transform:rotate(-8deg)}.chess-card-front{background:var(--paper-raised);place-items:center;display:grid;inset-block-start:23%;inset-inline-end:16%;transform:rotate(6deg)}.chess-card-front span{font-size:clamp(4rem,8vw,6.4rem)}.chess-card-front small{color:var(--cobalt);font:700 .9rem ui-monospace,SFMono-Regular,Consolas,monospace;position:absolute;inset-block-start:12px;inset-inline-start:14px}.chess-grid{aspect-ratio:1;opacity:.22;background-image:linear-gradient(90deg, var(--graphite) 1px, transparent 1px), linear-gradient(var(--graphite) 1px, transparent 1px);background-size:25% 25%;width:32%;position:absolute;inset-block-end:0;inset-inline-end:0}.project-content{flex-direction:column;justify-content:center;min-width:0;padding:clamp(40px,5vw,72px);display:flex}.project-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-block-end:28px;display:flex}.project-category,.project-status{margin:0}.project-category{color:var(--graphite-faint)}.project-status{color:var(--cobalt);align-items:center;gap:8px;display:inline-flex}.project-status span{background:currentColor;border-radius:50%;width:7px;height:7px}.project-status--building{color:var(--graphite-faint)}.project-status--building span{background:0 0;border:1px solid}.project-content h3{font-size:clamp(2.65rem,5vw,4.55rem);font-weight:620;line-height:.98}.project-content h3 a{color:inherit}.project-content h3 a:hover{color:var(--cobalt)}.project-description{max-width:520px;color:var(--graphite-soft);margin:28px 0 0;font-size:1rem;line-height:1.72}.technology-list{color:var(--graphite-faint);letter-spacing:.05em;text-transform:uppercase;flex-wrap:wrap;gap:0;margin:30px 0 0;padding:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.7rem;font-weight:650;list-style:none;display:flex}.technology-list li:not(:last-child):after{content:"·";color:var(--cobalt);margin-inline:10px}.project-links{border-block-start:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;min-height:45px;margin-block-start:36px;padding-block-start:28px;display:flex}.project-link{border:1px solid var(--line);border-radius:var(--radius-small);min-height:44px;transition:border-color .15s var(--ease-standard), color .15s var(--ease-standard), background-color .15s var(--ease-standard), transform .1s var(--ease-standard);align-items:center;gap:9px;padding-inline:15px;font-size:.76rem;font-weight:700;display:inline-flex}.project-link:first-child{border-color:var(--cobalt);background:var(--cobalt);color:#fff}.project-link:hover{border-color:var(--cobalt);color:var(--cobalt)}.project-link:first-child:hover{border-color:var(--cobalt-deep);background:var(--cobalt-deep);color:#fff}.project-link:active{transform:scale(.98)}.project-link svg{fill:none;stroke:currentColor;stroke-width:1.6px;width:17px;height:17px}.project-link svg path[d^=M12]{fill:currentColor;stroke:none}.link-pending{color:var(--graphite-faint);letter-spacing:.04em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;font-weight:650}.about-section{border-block-start:1px solid var(--line);padding-block:112px 124px}.about-grid{grid-template-columns:1.15fr .85fr;gap:clamp(64px,10vw,148px);margin-block-start:40px;display:grid}.about-copy{padding-block-start:12px}.about-copy>p{color:var(--graphite-soft);margin-block-end:0;font-size:1.06rem;line-height:1.8}.contact-links{flex-wrap:wrap;gap:28px;margin-block-start:28px;display:flex}.about-copy a{min-height:44px;color:var(--cobalt);align-items:center;gap:12px;font-size:.86rem;font-weight:700;display:inline-flex}.project-page{padding-block-end:124px}.breadcrumb{border-block-end:1px solid var(--line);padding-block:28px}.breadcrumb ol{color:var(--graphite-faint);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;gap:8px;margin:0;padding:0;font:650 .72rem ui-monospace,SFMono-Regular,Consolas,monospace;list-style:none;display:flex}.breadcrumb li+li:before{content:"/";color:var(--cobalt);margin-inline-end:8px}.breadcrumb a:hover{color:var(--cobalt)}.project-page-hero{border-block-end:1px solid var(--line);grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:stretch;min-height:640px;display:grid}.project-page-copy{flex-direction:column;justify-content:center;padding:clamp(72px,8vw,116px) clamp(48px,7vw,96px) clamp(72px,8vw,116px) 0;display:flex}.project-page-copy .project-meta{justify-content:flex-start;gap:28px}.project-page-copy h1{max-width:720px;font-size:clamp(3.8rem,7vw,7.1rem)}.project-page-intro{max-width:660px;color:var(--graphite-soft);margin:32px 0 0;font-size:clamp(1.04rem,1.5vw,1.2rem);line-height:1.72}.project-page-visual{border-inline-start:1px solid var(--line);background:var(--paper-deep);place-items:center;min-height:560px;display:grid;position:relative;overflow:hidden}.project-page-sections{border-block-end:1px solid var(--line)}.project-page-sections>section{border-block-start:1px solid var(--line);grid-template-columns:minmax(170px,.55fr) minmax(0,1.45fr);gap:clamp(48px,8vw,112px);padding-block:62px;display:grid}.project-page-sections>section:first-child{border-block-start:0}.project-page-sections .section-number{align-self:start}.project-page-sections h2,.related-projects h2{font-size:clamp(2.2rem,4vw,3.8rem);font-weight:620;line-height:1.04}.project-page-sections section>div>p{max-width:760px;color:var(--graphite-soft);margin:24px 0 0;font-size:1.04rem;line-height:1.82}.feature-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:30px 0 0;padding:0;list-style:none;display:grid}.feature-list li{border-block-start:1px solid var(--line);color:var(--graphite-soft);padding:18px 0 18px 28px;line-height:1.65;position:relative}.feature-list li:before{content:"↘";color:var(--cobalt);font-weight:700;position:absolute;inset-block-start:18px;inset-inline-start:0}.platform-list{flex-wrap:wrap;gap:10px;margin:30px 0 0;padding:0;list-style:none;display:flex}.platform-list li{border:1px solid var(--line);border-radius:var(--radius-small);color:var(--graphite-soft);letter-spacing:.04em;text-transform:uppercase;padding:9px 12px;font:650 .72rem ui-monospace,SFMono-Regular,Consolas,monospace}.project-page-links{flex-wrap:wrap;gap:10px;margin-block-start:28px;display:flex}.availability-note{max-width:620px}.related-projects{padding-block-start:96px}.related-projects>.section-number{margin-block-end:28px}.related-projects>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-block-start:38px;display:grid}.related-projects>div>a{border:1px solid var(--line);border-radius:var(--radius-medium);background:var(--paper-raised);min-height:150px;transition:border-color .15s var(--ease-standard), color .15s var(--ease-standard), transform .1s var(--ease-standard);grid-template-columns:1fr auto;align-items:end;gap:10px 18px;padding:28px;display:grid}.related-projects>div>a:hover{border-color:var(--cobalt);color:var(--cobalt)}.related-projects>div>a:active{transform:scale(.99)}.related-projects a span{color:var(--graphite-faint);letter-spacing:.07em;text-transform:uppercase;grid-column:1/-1;font:650 .68rem ui-monospace,SFMono-Regular,Consolas,monospace}.related-projects a strong{letter-spacing:-.04em;font-size:clamp(1.5rem,3vw,2.2rem)}.related-projects a svg{fill:none;stroke:currentColor;stroke-width:1.6px;width:24px}footer{border-block-start:1px solid var(--line);min-height:132px;color:var(--graphite-faint);grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;font-size:.76rem;display:grid}footer p{margin:0}.footer-copy{justify-items:center;gap:8px;display:grid}.footer-copy nav{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.footer-copy a{color:var(--graphite-soft);font-weight:600}.footer-year{text-align:end}@media (width<=980px){.hero{grid-template-columns:1fr;gap:72px;min-height:0;padding-block:92px}.work-index{width:min(100%,620px)}.section-heading{grid-template-columns:.4fr 1.6fr}.project-card{grid-template-columns:1fr;min-height:0}.project-card:nth-child(2n) .project-visual{order:initial}.project-card .project-visual{border:0;border-block-end:1px solid var(--line);min-height:500px}.project-content{min-height:440px}.project-page-hero{grid-template-columns:1fr}.project-page-copy{padding-inline-end:0}.project-page-visual{border-inline-start:0;border-block-start:1px solid var(--line);min-height:520px}}@media (width<=700px){.site-header,main,footer{width:min(100% - 32px,1240px)}.site-header{grid-template-columns:auto 1fr auto;gap:16px;min-height:72px}.brand-name{display:none}.site-header nav{justify-self:center;gap:18px;font-size:.78rem}.header-contact{padding-inline:13px}.header-contact svg{display:none}.hero{gap:64px;padding-block:72px 80px}h1{font-size:clamp(3rem,14vw,4.6rem)}.hero-intro{margin-block-start:28px}.hero-actions{margin-block-start:32px}.work-index-heading{font-size:.62rem}.projects-section,.about-section{padding-block:80px 92px}.section-heading,.about-grid{grid-template-columns:1fr}.section-heading{gap:24px;margin-block-end:44px}.section-heading h2,.about-grid h2{font-size:clamp(2.4rem,11vw,3.5rem)}.projects-grid{gap:16px}.project-card .project-visual{min-height:390px}.app-visual{height:340px}.app-screen{border-width:5px;border-radius:24px;width:150px}.app-icon{border-width:5px;border-radius:18px;width:72px;height:72px}.project-content{min-height:0;padding:38px 28px 42px}.project-meta{flex-direction:column;align-items:flex-start;gap:10px;margin-block-end:24px}.project-description{margin-block-start:22px}.project-links{margin-block-start:30px}.about-grid{gap:32px}.project-page{padding-block-end:88px}.breadcrumb{padding-block:22px}.project-page-copy{padding-block:64px 72px}.project-page-copy h1{font-size:clamp(3.3rem,15vw,5.4rem)}.project-page-visual{min-height:420px}.project-page-sections>section{grid-template-columns:1fr;gap:18px;padding-block:48px}.project-page-sections .section-number{margin-block-end:0}.feature-list{grid-template-columns:1fr}.related-projects{padding-block-start:76px}.related-projects>div{grid-template-columns:1fr}footer{grid-template-columns:auto 1fr;min-height:176px}.footer-copy{grid-area:2/1/auto/-1}}@media (width<=430px){.site-header nav a:last-child,.header-contact span{display:none}.header-contact{justify-content:center;width:44px;padding:0}.header-contact:before{content:"↗";font-size:1rem}.primary-link,.secondary-link{justify-content:center;width:100%}.project-link{flex:auto;justify-content:center}}@media (prefers-contrast:more){:root{--line-subtle:oklch(17% .02 258/.18);--line:oklch(17% .02 258/.28);--graphite-soft:oklch(32% .018 258);--graphite-faint:oklch(40% .016 258)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
