:root{color:#202039;--ink:#202039;--muted:#626177;--accent:#7463b9;--line:#e6e0eb;font-synthesis:none;background:#fcfaf8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{background:radial-gradient(55rem 45rem at 96% 3%,#ece5fa80,#0000 70%),#fcfaf8;margin:0}a{color:inherit;text-underline-offset:.2em}a:focus-visible,button:focus-visible{outline-offset:5px;outline:3px solid #7463b9}img{max-width:100%}.shell{width:min(1240px,100% - 6rem);margin-inline:auto}.site-header{justify-content:space-between;align-items:center;gap:2rem;padding:1.3rem 0;display:flex}.brand{letter-spacing:-.04em;white-space:nowrap;align-items:center;gap:.65rem;font-size:1.5rem;font-weight:750;text-decoration:none;display:inline-flex}.brand img{width:36px;height:36px}.site-header nav{border:1px solid #ded7e7;border-radius:3rem;align-items:center;gap:.4rem;padding:.25rem .6rem;display:flex}.site-header nav a{border-radius:2rem;padding:.35rem 1.2rem;font-size:.92rem;font-weight:550;text-decoration:none}.site-header nav a:hover,.site-header nav [aria-current]{color:#59458f;background:#eee8f8}.skip{z-index:10;background:#fff;padding:.5rem 1rem;position:absolute;top:0;left:1rem;transform:translateY(-150%)}.skip:focus{transform:none}h1,h2,h3,p,figure{margin:0}h1,h2,h3{letter-spacing:-.045em;line-height:1.12}h1{font-size:clamp(2.8rem,5.2vw,4.5rem);font-weight:750}h2{font-size:clamp(1.85rem,3.3vw,2.8rem);font-weight:700}h3{font-size:1.4rem}.eyebrow{letter-spacing:.15em;text-transform:uppercase;color:#585073;margin-bottom:1rem;font-size:.72rem;font-weight:700}.lede{color:#504e65;max-width:35rem;margin-top:1.25rem;font-size:1.13rem;line-height:1.6}.button{color:#fff;white-space:nowrap;background:linear-gradient(135deg,#9c8ad9,#62539e);border:1px solid #0000;border-radius:3rem;justify-content:center;align-items:center;gap:.9rem;padding:.75rem 1.6rem;font-size:.92rem;font-weight:650;line-height:1.35;text-decoration:none;transition:transform .18s,box-shadow .18s;display:inline-flex}.button:hover{transform:translateY(-2px);box-shadow:0 .4rem 1.2rem #7463b923}.button.outline{color:#30234f;background:0 0;border-color:#b6a7d5}.button.compact{padding:.65rem 1.2rem}.hero-links{flex-wrap:wrap;gap:1rem;margin-top:1.5rem;display:flex}.portfolio-hero{isolation:isolate;grid-template-columns:1.15fr .85fr;min-height:530px;padding-top:3.5rem;padding-bottom:2rem;display:grid;position:relative}.hero-copy{z-index:2;max-width:46rem;position:relative}.hero-copy h1{width:115%;font-size:clamp(2.8rem,5.1vw,4.45rem)}.workspace-visual{z-index:-1;border-radius:50% 0 0 36%;width:59%;height:540px;position:absolute;top:-1rem;right:calc(min(1240px,100vw - 6rem)/2 - 50vw);overflow:hidden}.workspace-visual img{object-fit:cover;object-position:65% center;opacity:.95;width:100%;height:100%;mask-image:linear-gradient(90deg,#0000,#000 25%)}.craft-strip{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:1.5rem;width:65%;margin-top:2.6rem;display:grid}.craft-strip>div{flex-direction:column;font-size:.8rem;line-height:1.5;display:flex}.craft-strip>div+div{border-left:1px solid #ddd4e7;padding-left:1.4rem}.craft-icon{color:#7463b9;margin-bottom:.3rem;font-size:1.5rem;line-height:1.25}.craft-strip strong{font-size:.88rem;font-weight:650}.craft-strip>div>span:last-child{color:var(--muted)}.apps-section,.notes-section{padding-top:3.5rem;padding-bottom:1rem}.section-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.section-heading .eyebrow{margin-bottom:.7rem}.section-heading>p{color:var(--muted);font-size:.92rem}.showcase-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;display:grid}.showcase-card{isolation:isolate;border-radius:1.7rem;min-height:425px;padding:2rem 1.25rem 1.6rem;position:relative;overflow:hidden}.showcase-card:after{content:"";z-index:-1;background:#fff7;border-radius:50%;width:23rem;height:13rem;position:absolute;bottom:-7rem;right:-4rem;transform:rotate(-27deg)}.mint{background:linear-gradient(140deg,#edf5ee,#dcefe6)}.lavender{background:linear-gradient(140deg,#f2e9fb,#e7def8)}.sky{background:linear-gradient(140deg,#eaf3fd,#dceafa)}.app-copy{z-index:2;flex-direction:column;align-items:start;width:49%;display:flex;position:relative}.showcase-icon{border-radius:14px;width:54px;height:54px;margin-bottom:1rem;box-shadow:0 4px 12px #20203912}.app-copy h3{letter-spacing:-.055em;margin-bottom:.8rem;font-size:clamp(1.12rem,1.8vw,1.55rem)}.app-copy>p{font-size:.82rem;line-height:1.6}.app-copy .app-tagline{margin-bottom:.6rem;font-weight:650}.app-button{color:#233d35;background:#c4e6d6;gap:.55rem;margin-top:1.2rem;padding:.65rem 1rem;font-size:.82rem}.lavender .app-button{color:#3d2b65;background:#dbccf4}.sky .app-button{color:#243e5a;background:#c6def7}.availability{color:#5d5b70;margin-top:.75rem;font-size:.66rem}.device{background:#151624;border:5px solid #292936;border-radius:27px;width:48%;height:365px;position:absolute;top:2.2rem;right:-.6rem;overflow:hidden;transform:rotate(-5deg);box-shadow:6px 12px 22px #29293625}.device img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.device-grocery-cart-ai{box-shadow:none;background:0 0;border:0;border-radius:0;width:52%;height:395px;top:1.5rem;right:0;transform:rotate(-4deg)}.device-grocery-cart-ai img{object-fit:cover;object-position:bottom}.device-neoflight img{object-position:50% 50%}.notes-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.note-card{border:1px solid var(--line);background:#fff8;border-radius:1.3rem;overflow:hidden}.note-image{background:#eee6f8;height:155px;display:block;overflow:hidden}.note-image img{object-fit:cover;width:100%;height:100%}.note-card:first-child .note-image img{object-position:50% 20%}.note-copy{padding:1.15rem}.note-copy .eyebrow{margin-bottom:.6rem;font-size:.62rem}.note-copy h3{letter-spacing:-.035em;margin-bottom:.6rem;font-size:1.2rem;line-height:1.25}.note-copy h3 a{text-decoration:none}.note-copy h3 a:hover{text-decoration:underline}.note-copy>p:not(.eyebrow){color:#59576a;font-size:.86rem;line-height:1.55}.note-copy time{color:#777185;margin-top:.9rem;font-size:.73rem;display:block}.maker-section{grid-template-columns:1fr 1.2fr;gap:4rem;padding:4.5rem 1rem 3.5rem;display:grid}.maker-section p:not(.eyebrow){color:#59576a;margin-bottom:1rem;font-size:1rem}.text-link{color:#5f4b98;font-weight:650}.contact-banner{isolation:isolate;background:linear-gradient(110deg,#eee3fb,#f5f0f7 55%,#dceee4);border-radius:2rem;justify-content:space-between;align-items:center;gap:2rem;padding:2.5rem 3rem;display:flex;position:relative;overflow:hidden}.contact-banner:after{content:"";z-index:-1;background:linear-gradient(100deg,#d9cff4,#bde0d9);border-radius:50%;width:35rem;height:15rem;position:absolute;bottom:-8rem;right:-4rem;transform:rotate(-16deg)}.contact-banner .eyebrow{margin-bottom:.7rem}.contact-banner h2{font-size:clamp(1.7rem,3vw,2.55rem)}.contact-banner p:last-child{color:#4c465e;margin-top:.75rem;font-size:.95rem}.contact-banner .button{flex-shrink:0}.site-footer{justify-content:space-between;align-items:center;gap:2rem;padding:1.5rem 0 2rem;font-size:.8rem;display:flex}.footer-identity{align-items:center;gap:1.5rem;display:flex}.footer-byline{color:#625d74;border-left:1px solid #d6cede;flex-direction:column;padding-left:1.5rem;font-size:.72rem;display:flex}.footer-byline strong{color:var(--ink);font-weight:550}.footer-links{align-items:center;gap:1.2rem;display:flex}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer-social{gap:1rem;display:flex}.page-heading,.hero:not(.portfolio-hero){padding-block:4rem 3rem}.page-heading h1,.hero h1{font-size:clamp(2.6rem,6vw,4.7rem)}.prose{max-width:48rem;margin-inline:auto}.prose>p,.prose>ul,.prose>ol{color:#4f4b5e;margin-bottom:1.3rem;font-size:1.05rem;line-height:1.85}.prose>h2{margin:2.5rem 0 1rem;font-size:1.8rem}.prose>img,.prose p img{border-radius:1rem;max-width:100%;height:auto;margin:1.7rem auto;display:block}.prose>p>img{width:auto;max-height:600px}.about-portrait{max-width:16rem!important;margin-inline:0!important}.product,.journal{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}.product-demo{text-align:center;background:#eee7f7;border-radius:1.5rem;padding:1.5rem}.product-demo img{border-radius:1rem;width:auto;max-height:560px;margin:auto;display:block}.product-demo figcaption{color:var(--muted);margin-top:1rem;font-size:.8rem}.section{border-top:1px solid var(--line);padding:2.5rem 0}.feature{background:#eee5f7;border-radius:1.5rem;justify-content:space-between;align-items:center;gap:2rem;margin-block:1rem 2rem;padding:2.5rem;display:flex}.feature p{margin-top:1rem}.categories{flex-wrap:wrap;gap:.6rem;margin:1.5rem 0;display:flex}.categories a{border:1px solid var(--line);border-radius:2rem;padding:.4rem .9rem;font-size:.88rem;text-decoration:none}.categories [aria-current],.categories a:hover{background:#e9dff6}.posts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem;margin:2rem 0 3rem;padding:0;list-style:none;display:grid}.posts li{border:1px solid var(--line);border-radius:1.2rem;min-width:0;padding:1.2rem}.posts h2{font-size:1.35rem;line-height:1.25}.posts h2 a{text-decoration:none}.posts h2 a:hover{text-decoration:underline}.posts .eyebrow{font-size:.6rem}.posts li>p:last-child{color:var(--muted);margin-top:1rem;font-size:.9rem}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:1.5rem 0;display:grid}.feature-grid article{border:1px solid var(--line);border-radius:1.2rem;padding:1.4rem}.feature-grid h3{margin-bottom:1rem}.feature-grid p{color:var(--muted);font-size:.95rem}@media (width>=1450px){.workspace-visual{width:66%;right:-6rem}.hero-copy h1{width:120%}}@media (width<=1100px){.shell{width:calc(100% - 4rem)}.portfolio-hero{min-height:510px;padding-top:2.5rem}.workspace-visual{width:58%;right:-2rem}.hero-copy h1{width:125%}.craft-strip{width:75%}.showcase-card{min-height:420px;padding:1.5rem 1rem}.app-copy{width:50%}.device{width:49%;height:350px;top:2.4rem;right:-1.1rem}.device-grocery-cart-ai{height:380px;right:-.5rem}.app-copy>p{font-size:.76rem}.app-copy .app-tagline{display:none}.availability{font-size:.6rem}.footer-byline{display:none}.site-footer{gap:1rem}.footer-links{gap:.9rem}}@media (width<=800px){.shell{width:calc(100% - 3rem)}.site-header nav a{padding:.4rem .7rem}.portfolio-hero{grid-template-columns:1fr;min-height:0;padding-top:2rem}.hero-copy{max-width:36rem}.hero-copy h1{width:100%;font-size:clamp(2.8rem,7vw,4rem)}.workspace-visual{z-index:0;border-radius:2rem;grid-row:2;width:100%;height:300px;margin-top:2rem;position:relative;top:auto;right:auto}.workspace-visual img{object-position:center 70%;mask-image:none}.craft-strip{grid-row:3;width:100%;margin-top:1.5rem}.showcase-grid{grid-template-columns:1fr}.showcase-card{min-height:360px;padding:2rem;display:flex}.app-copy{width:50%;max-width:25rem}.app-copy h3{font-size:1.8rem}.app-copy>p{font-size:1rem}.app-copy .app-tagline{display:block}.showcase-icon{width:60px;height:60px}.device{width:33%;height:350px;top:2rem;right:3rem}.device-grocery-cart-ai{width:34%;height:400px;top:-.8rem;right:2rem}.availability{font-size:.72rem}.notes-grid{grid-template-columns:1fr}.note-card{grid-template-columns:.8fr 1.2fr;display:grid}.note-image{height:100%;min-height:230px}.note-copy{padding:1.5rem}.section-heading>p{display:none}.maker-section{gap:2rem;padding-inline:0}.contact-banner{padding:2rem}.site-footer{flex-wrap:wrap}.footer-identity{flex:1}.footer-links{font-size:.8rem}.posts{grid-template-columns:repeat(2,minmax(0,1fr))}.product,.journal,.feature-grid{grid-template-columns:1fr}.feature{flex-wrap:wrap}}@media (width<=520px){.shell{width:calc(100% - 2rem)}.site-header{flex-direction:column;align-items:start;gap:1rem;padding-top:1rem}.brand{font-size:1.4rem}.site-header nav{justify-content:space-around;width:100%}.site-header nav a{padding:.35rem .6rem;font-size:.85rem}.portfolio-hero{padding-top:1.4rem}.hero-copy .eyebrow{font-size:.6rem}.hero-copy h1{letter-spacing:-.05em;font-size:2.65rem}.lede{font-size:1rem}.workspace-visual{height:250px}.craft-strip{gap:.6rem}.craft-strip>div+div{padding-left:.65rem}.craft-strip strong{font-size:.72rem}.craft-strip>div{font-size:.67rem}.apps-section,.notes-section{padding-top:2.4rem}.section-heading{flex-direction:column;align-items:start;gap:1rem;margin-bottom:1.3rem}.section-heading h2{font-size:1.95rem}.showcase-card{min-height:390px;padding:1.5rem 1.1rem}.app-copy{width:49%}.app-copy h3{font-size:1.4rem}.app-copy>p{font-size:.85rem}.app-copy .app-tagline{font-size:.78rem}.showcase-icon{width:50px;height:50px}.device{width:43%;height:340px;top:2.6rem;right:.5rem}.device-grocery-cart-ai{width:46%;height:370px;top:1rem;right:-.15rem}.app-button{padding:.65rem 1rem}.availability{font-size:.61rem}.note-card{display:block}.note-image{height:180px;min-height:0}.note-copy{padding:1.2rem}.maker-section{grid-template-columns:1fr;gap:1.4rem;padding-block:3rem}.contact-banner{border-radius:1.6rem;flex-direction:column;align-items:start;gap:1.5rem;padding:1.7rem}.contact-banner h2{font-size:2rem}.contact-banner p:last-child{font-size:.88rem}.footer-links{flex-basis:100%;justify-content:space-between}.footer-social{margin-left:auto}.site-footer{padding-top:1.5rem}.posts{grid-template-columns:1fr}.page-heading,.hero:not(.portfolio-hero){padding-block:2.5rem 2rem}.desktop-break{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}.device-grocery-cart-ai{background:#151624;border:5px solid #292936;border-radius:27px;box-shadow:6px 12px 22px #29293625}.device-grocery-cart-ai img{object-position:top}.section-lede{max-width:54rem;color:var(--muted);margin-top:1.2rem;font-size:1.02rem}.home-web{margin-top:3.5rem;padding-block:3rem}.web-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:1.8rem;display:grid}.web-preview-grid article{border:1px solid var(--line);background:linear-gradient(145deg,#fff9,#eee7f866);border-radius:1.2rem;padding:1.6rem}.web-preview-grid .eyebrow{font-size:.62rem}.web-preview-grid h3{margin-bottom:.8rem;font-size:1.35rem}.web-preview-grid p:not(.eyebrow){color:var(--muted);font-size:.92rem}.web-preview-grid .text-link{margin-top:1rem;font-size:.85rem;display:inline-block}.stream-link{margin-top:1rem;font-size:.88rem!important}.about-intro{grid-template-columns:1.4fr .7fr;align-items:center;gap:4rem;display:grid}.about-intro h1{font-size:clamp(2.6rem,5vw,4.5rem)}.about-photo{background:linear-gradient(145deg,#e4d9f4,#e5f0ea);border-radius:2rem;padding:.8rem;transform:rotate(3deg)}.about-photo img{border-radius:1.5rem;width:100%;height:auto;display:block}.about-copy{grid-template-columns:1fr 1.2fr;gap:3rem;padding-block:3rem;display:grid}.about-copy p:not(.eyebrow){color:var(--muted);margin-bottom:1rem}.experience-list{margin-top:2rem}.experience-list article{border-top:1px solid var(--line);grid-template-columns:1fr 1.7fr;gap:2rem;padding:1.6rem 0;display:grid}.experience-list h3{margin-bottom:.4rem;font-size:1.2rem}.experience-list article>p{color:var(--muted);font-size:.95rem}.role-label{font-size:.86rem;font-weight:600}.experience-date{color:var(--muted);margin-top:.3rem;font-size:.78rem}.gaming-panel{background:linear-gradient(125deg,#ece1f7,#e2ecf8);border-radius:2rem;grid-template-columns:1.2fr .8fr;gap:3rem;margin:2rem 0;padding:3rem;display:grid}.gaming-panel h2{margin-bottom:1rem}.gaming-panel p:not(.eyebrow){color:#5b526c;max-width:37rem}.interest-tags{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.interest-tags span{border:1px solid #cbbdde;border-radius:2rem;padding:.3rem .7rem;font-size:.76rem}.stream-card{background:#fff7;border:1px solid #fff;border-radius:1.3rem;align-self:center;padding:1.7rem}.stream-card h3{margin-bottom:.8rem;font-size:1.7rem}.stream-card .button{margin-top:1.2rem}.play-symbol{color:#fff;background:#7463b9;border-radius:.8rem;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:1rem;display:inline-grid}.web-projects{grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;display:grid}.web-project{border:1px solid var(--line);background:linear-gradient(145deg,#f0eaf9,#fff);border-radius:1.5rem;padding:2rem}.web-project:nth-child(2){background:linear-gradient(145deg,#e4f0ec,#fff)}.project-monogram{color:#66508e;background:#dcd0ed;border-radius:1rem;place-items:center;width:4rem;height:4rem;margin-bottom:1.5rem;font-size:1.5rem;font-weight:750;display:grid}.web-project:nth-child(2) .project-monogram{color:#346554;background:#cce3da}.web-project .eyebrow{font-size:.65rem}.web-project h3{margin-bottom:1rem;font-size:1.8rem}.web-project>p:not(.eyebrow){color:var(--muted);margin-bottom:1.5rem}.additional-work{padding:2rem 0 0}.additional-work h3{margin-bottom:.75rem;font-size:1.25rem}.additional-work>p{color:var(--muted)}.additional-work ul{flex-wrap:wrap;gap:.75rem 2rem;padding-left:1.2rem;font-size:.9rem;display:flex}.skill-groups{grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2rem;display:grid}.skill-groups h3{margin-bottom:.7rem;font-size:1.2rem}.skill-groups p{color:var(--muted);font-size:.9rem}.contact-layout{grid-template-columns:1fr 1.2fr;align-items:start;gap:4rem;padding-bottom:3rem;display:grid}.contact-details h2,.enquiry-panel h2{margin-bottom:1rem;font-size:1.8rem}.contact-details>p,.enquiry-panel>p:not(.eyebrow){color:var(--muted);font-size:.95rem}.email-link{color:#66508e;overflow-wrap:anywhere;margin:1rem 0;font-weight:650;display:inline-block}.contact-routes{margin-top:1rem}.contact-routes article{border-top:1px solid var(--line);padding:1.2rem 0}.contact-routes h3{margin-bottom:.65rem;font-size:1.1rem}.contact-routes p{color:var(--muted);font-size:.9rem}.contact-social{flex-wrap:wrap;gap:1rem;margin-top:1.2rem;font-size:.88rem;display:flex}.enquiry-panel{background:#f2edf8;border:1px solid #e2d8ee;border-radius:1.5rem;padding:2rem}.enquiry-panel form{margin-top:1.5rem}.enquiry-panel label{margin:1rem 0 .45rem;font-size:.86rem;font-weight:650;display:block}.enquiry-panel label span{color:var(--muted);font-size:.75rem;font-weight:400}.enquiry-panel input,.enquiry-panel textarea,.enquiry-panel select{width:100%;min-width:0;color:var(--ink);font:inherit;background:#fffc;border:1px solid #cfc3df;border-radius:.7rem;padding:.75rem;font-size:.95rem}.enquiry-panel input:focus,.enquiry-panel textarea:focus,.enquiry-panel select:focus{outline-offset:2px;outline:2px solid #8772b4}.enquiry-panel textarea{resize:vertical}.form-pair{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-help{color:var(--muted);margin:.65rem 0 1rem;font-size:.75rem;line-height:1.6}.enquiry-panel button{cursor:pointer;margin-top:.4rem;font-family:inherit}.draft-result{border-top:1px solid #d8cbe7;margin-top:1.5rem;padding-top:1.4rem}.draft-result p[role]{margin-bottom:1rem;font-size:.9rem}.contact-bottom{border-top:1px solid var(--line);padding:2rem 0}.contact-bottom>p:last-child{flex-wrap:wrap;gap:1.5rem;font-size:.9rem;display:flex}.site-header nav a{padding-inline:.9rem}@media (width<=800px){.web-preview-grid,.skill-groups{grid-template-columns:1fr}.about-intro{grid-template-columns:1.5fr .7fr;gap:2rem}.about-copy{grid-template-columns:1fr;gap:1.5rem}.gaming-panel{grid-template-columns:1fr;gap:2rem;padding:2rem}.contact-layout{grid-template-columns:1fr;gap:2rem}.web-projects{grid-template-columns:1fr}.experience-list article{grid-template-columns:1fr 1.5fr}.site-header{gap:1rem}.site-header nav a{padding-inline:.6rem}.home-web{margin-top:2rem}}@media (width<=520px){.about-intro{grid-template-columns:1fr}.about-photo{max-width:14rem;margin:0 auto 1rem}.experience-list article{grid-template-columns:1fr;gap:.7rem}.gaming-panel{gap:1.5rem;padding:1.5rem}.stream-card,.enquiry-panel{padding:1.3rem}.form-pair{grid-template-columns:1fr;gap:0}.site-header nav{gap:0;padding-inline:.3rem}.site-header nav a{padding-inline:.4rem;font-size:.74rem}.home-web .section-heading h2{font-size:1.8rem}.contact-bottom>p:last-child{flex-direction:column;gap:.8rem}.web-project{padding:1.5rem}}
