:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;--page:#f7f8fc;--page-elevated:#ffffffc7;--surface:#ffffffdb;--surface-solid:#fff;--surface-soft:#f6f7fce6;--text:#171923;--text-strong:#0c0d13;--muted:#666b7b;--muted-strong:#464b5b;--line:#1f22321c;--line-strong:#1f22322e;--shadow-sm:0 10px 30px #1a1c2d12;--shadow-md:0 22px 65px #1a1c2d1c;--shadow-lg:0 38px 100px #1d1c3729;--violet:#7457ef;--violet-strong:#5c3ee4;--violet-soft:#ece7ff;--pink:#ee6eae;--coral:#f36f5d;--coral-soft:#fff0ec;--mint:#27b994;--mint-soft:#e6f8f1;--sky:#4389ea;--sky-soft:#e9f2ff;--header-height:74px;--content-width:1160px;background:var(--page);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0e14;--page-elevated:#15161fd1;--surface:#181923d6;--surface-solid:#181923;--surface-soft:#1b1c27e6;--text:#f4f3f8;--text-strong:#fff;--muted:#a9adbb;--muted-strong:#d1d3dc;--line:#ffffff1a;--line-strong:#ffffff2e;--shadow-sm:0 12px 34px #0000003d;--shadow-md:0 26px 70px #00000052;--shadow-lg:0 42px 110px #0006;--violet:#9a82ff;--violet-strong:#b09dff;--violet-soft:#7457ef29;--pink:#ff8ec3;--coral:#ff8a77;--coral-soft:#f36f5d24;--mint:#52d6b2;--mint-soft:#27b99424;--sky:#72a8f4;--sky-soft:#4389ea26}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable;scroll-padding-top:calc(var(--header-height) + 32px)}body{background:var(--page);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,a,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a,button{color:inherit}img,svg{display:block}::selection{background:color-mix(in srgb, var(--violet) 28%, transparent);color:var(--text-strong)}.site-shell{isolation:isolate;min-height:100vh;position:relative}.skip-link{z-index:1000;background:var(--text-strong);color:var(--page);border-radius:12px;padding:12px 16px;font-weight:750;text-decoration:none;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.ambient-background{z-index:-2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient-background:after{content:"";opacity:.2;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");position:absolute;inset:0}:root[data-theme=dark] .ambient-background:after{opacity:.08;mix-blend-mode:screen}.ambient-background__mesh{opacity:.45;background-image:linear-gradient(to right, color-mix(in srgb, var(--text) 3%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--text) 3%, transparent) 1px, transparent 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 68%);mask-image:linear-gradient(#000 0%,#0000 68%)}.ambient-background__orb{filter:blur(78px);will-change:transform;border-radius:999px;position:absolute}.ambient-background__orb--one{aspect-ratio:1;opacity:.19;background:#7c62f2;width:min(44vw,620px);animation:23s ease-in-out infinite alternate drift-one;top:-14%;left:-8%}.ambient-background__orb--two{aspect-ratio:1;opacity:.15;background:#f27dac;width:min(36vw,520px);animation:29s ease-in-out infinite alternate drift-two;top:24%;right:-12%}.ambient-background__orb--three{aspect-ratio:1;opacity:.12;background:#38c2a0;width:min(30vw,440px);animation:31s ease-in-out infinite alternate drift-three;bottom:-18%;left:34%}.ambient-background__beam{opacity:.28;background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--violet) 44%, transparent), transparent);transform-origin:top;width:1px;height:80vh;animation:18s ease-in-out infinite alternate beam-shift;position:absolute;top:7%;left:50%;transform:rotate(23deg)}@keyframes drift-one{to{transform:translate(12vw,9vh)scale(1.08)}}@keyframes drift-two{to{transform:translate(-10vw,12vh)scale(.94)}}@keyframes drift-three{to{transform:translate(-8vw,-10vh)scale(1.12)}}@keyframes beam-shift{to{opacity:.18;transform:translate(8vw)rotate(19deg)}}.site-header{z-index:100;width:min(100% - 32px,1280px);min-height:var(--header-height);border:1px solid color-mix(in srgb, white 38%, var(--line));background:color-mix(in srgb, var(--page-elevated) 92%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.25);backdrop-filter:blur(22px)saturate(1.25);border-radius:18px;grid-template-columns:1fr auto 1fr;align-items:center;margin:0;padding:9px 11px 9px 16px;display:grid;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 12px 44px #19192b14}.brand{align-items:center;gap:11px;width:fit-content;text-decoration:none;display:inline-flex}.brand-logo{width:39px;height:39px;box-shadow:0 7px 18px color-mix(in srgb, var(--violet) 16%, transparent), 0 0 0 1px color-mix(in srgb, white 48%, var(--line));border-radius:50%;flex:none}.brand-name{color:var(--text-strong);letter-spacing:-.02em;font-size:.94rem;font-weight:780}.site-nav{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 58%, transparent);border-radius:15px;align-items:center;gap:4px;padding:4px;display:flex}.mobile-nav{display:none}.site-nav a,.site-nav button{min-height:40px;color:var(--muted-strong);cursor:pointer;background:0 0;border:0;border-radius:11px;padding:0 15px;font-size:.86rem;font-weight:680;text-decoration:none;transition:color .18s,background .18s,transform .18s}.site-nav a{align-items:center;display:inline-flex}.site-nav a:hover,.site-nav button:hover{background:var(--surface-solid);color:var(--text-strong);transform:translateY(-1px)}.theme-button{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 64%, transparent);width:44px;height:44px;color:var(--muted-strong);cursor:pointer;border-radius:14px;justify-self:end;place-items:center;transition:transform .18s,color .18s,border-color .18s,background .18s;display:grid}.theme-button:hover{border-color:color-mix(in srgb, var(--violet) 30%, var(--line));background:var(--surface-solid);color:var(--violet-strong);transform:rotate(6deg)translateY(-1px)}main,.site-footer{width:min(calc(100% - 40px), var(--content-width));margin-inline:auto}.hero{text-align:center;justify-items:center;min-height:max(780px,100svh);padding:clamp(150px,17vh,172px) 0 84px;display:grid}.hero-portrait{opacity:0;width:fit-content;margin-bottom:28px;position:relative;transform:translateY(14px)scale(.98)}.hero-portrait.is-visible{animation:.7s cubic-bezier(.2,.75,.25,1) forwards reveal-portrait}@keyframes reveal-portrait{to{opacity:1;transform:translateY(0)scale(1)}}.profile-photo-frame{z-index:2;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--violet) 20%, var(--line-strong));background:color-mix(in srgb, var(--surface-solid) 78%, transparent);border-radius:50%;width:clamp(154px,12vw,174px);padding:6px;position:relative;box-shadow:0 22px 55px #2a234f29,inset 0 1px #ffffffbf}.profile-photo{object-fit:cover;object-position:50% 42%;border-radius:50%;width:100%;height:100%}.portrait-accent{z-index:1;filter:blur(18px);border-radius:999px;position:absolute}.portrait-accent--one{opacity:.55;background:color-mix(in srgb, var(--violet) 56%, transparent);width:74px;height:38px;bottom:3px;right:-17px}.portrait-accent--two{opacity:.42;background:color-mix(in srgb, var(--pink) 55%, transparent);width:56px;height:31px;top:7px;left:-13px}.hero-copy-wrap{z-index:1;opacity:0;max-width:980px;position:relative;overflow:visible;transform:translateY(18px)}.hero-copy-wrap.is-visible{animation:.78s cubic-bezier(.2,.75,.25,1) 90ms forwards reveal-copy}@keyframes reveal-copy{to{opacity:1;transform:translateY(0)}}.hero-eyebrow,.section-kicker,.dialog-kicker{color:var(--violet-strong);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:820}.hero-eyebrow{border:1px solid color-mix(in srgb, var(--violet) 20%, var(--line));background:color-mix(in srgb, var(--violet-soft) 46%, transparent);letter-spacing:.08em;border-radius:999px;align-items:center;gap:9px;margin-bottom:18px;padding:8px 12px;display:inline-flex}.hero-eyebrow span{background:var(--mint);width:7px;height:7px;box-shadow:0 0 0 5px color-mix(in srgb, var(--mint) 14%, transparent);border-radius:50%}.hero h1{color:var(--text-strong);letter-spacing:-.072em;margin:0;padding-bottom:.06em;font-size:clamp(3.65rem,8.8vw,7.3rem);font-weight:790;line-height:.96}.hero h1 span,.section-heading h2 span,.about-copy h2 span,.contact-panel h2 span{background:linear-gradient(110deg, var(--violet-strong), var(--pink) 54%, var(--coral));color:#0000;-webkit-background-clip:text;background-clip:text}.hero h1 span{margin-right:0;padding:0 .1em .08em 0;display:inline-block}.hero-lead{max-width:760px;color:var(--text);letter-spacing:-.025em;margin:26px auto 0;font-size:clamp(1.18rem,2.15vw,1.55rem);font-weight:560;line-height:1.5}.hero-supporting{max-width:670px;color:var(--muted);margin:12px auto 0;font-size:1.02rem;line-height:1.68}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px;display:flex}.button{cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:9px;min-height:52px;padding:0 20px;font-size:.92rem;font-weight:760;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;display:inline-flex}.button svg{width:18px;height:18px;transition:transform .18s}.button:hover:not(:disabled){transform:translateY(-2px)}.button:hover:not(:disabled) svg{transform:translate(3px)}.button:disabled{opacity:.66;cursor:wait}.button--primary{border:1px solid color-mix(in srgb, var(--violet-strong) 72%, black);background:linear-gradient(135deg, var(--violet-strong), #8a61f1 58%, #b161dd);color:#fff;box-shadow:0 15px 36px color-mix(in srgb, var(--violet) 25%, transparent)}.button--primary:hover{box-shadow:0 20px 44px color-mix(in srgb, var(--violet) 34%, transparent)}.button--secondary{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface-solid) 70%, transparent);color:var(--text-strong);box-shadow:var(--shadow-sm)}.button--secondary:hover{border-color:color-mix(in srgb, var(--violet) 30%, var(--line));background:var(--surface-solid)}.professional-links{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:13px 18px;margin-top:30px;font-size:.82rem;display:flex}.professional-links>span{font-weight:650}.professional-links>div{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.professional-links a{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 56%, transparent);min-height:38px;color:var(--muted-strong);border-radius:999px;align-items:center;gap:5px;padding:0 12px;font-weight:680;text-decoration:none;transition:transform .18s,border-color .18s,color .18s,background .18s;display:inline-flex}.professional-links a svg{width:14px;height:14px}.professional-links a:hover{border-color:color-mix(in srgb, var(--violet) 28%, var(--line));background:var(--surface-solid);color:var(--text-strong);transform:translateY(-2px)}.apps-section{padding:44px 0 126px}.section-heading{opacity:0;grid-template-columns:minmax(0,1.12fr) minmax(280px,.72fr);align-items:end;gap:54px;margin-bottom:40px;display:grid;transform:translateY(24px)}.section-heading.is-visible,.about-panel.is-visible,.contact-panel.is-visible{opacity:1;transition:opacity .7s cubic-bezier(.2,.75,.25,1),transform .7s cubic-bezier(.2,.75,.25,1);transform:translateY(0)}.section-heading h2,.about-copy h2,.contact-panel h2{color:var(--text-strong);letter-spacing:-.058em;margin:13px 0 0;font-size:clamp(2.35rem,5vw,4.6rem);font-weight:760;line-height:1.02}.section-heading>p{color:var(--muted);margin:0;font-size:1rem;line-height:1.75}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.project-card{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);min-width:0;color:var(--text);box-shadow:var(--shadow-sm);isolation:isolate;text-decoration:none;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:color-mix(in srgb, var(--card-accent) 30%, var(--line));box-shadow:var(--shadow-md);transform:translateY(-7px)}.project-card--featured{border-radius:34px;flex-direction:column;grid-column:1/-1;min-height:430px;padding:clamp(28px,4vw,48px)}.project-card--featured:before{content:"";z-index:-1;opacity:.62;background:radial-gradient(circle at 82% 28%, color-mix(in srgb, var(--card-accent) 23%, transparent), transparent 30%), linear-gradient(120deg, color-mix(in srgb, var(--card-soft) 72%, transparent), transparent 58%);position:absolute;inset:0}.project-card--featured:after{content:"";z-index:-1;opacity:.34;background-image:linear-gradient(to right, color-mix(in srgb, var(--card-accent) 12%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--card-accent) 12%, transparent) 1px, transparent 1px);background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 30%,#000);mask-image:linear-gradient(90deg,#0000 30%,#000)}.project-card--supporting{border-radius:26px;flex-direction:column;min-height:370px;padding:25px}.card-tone--violet{--card-accent:var(--violet);--card-soft:var(--violet-soft)}.card-tone--coral{--card-accent:var(--coral);--card-soft:var(--coral-soft)}.card-tone--mint{--card-accent:var(--mint);--card-soft:var(--mint-soft)}.card-tone--sky{--card-accent:var(--sky);--card-soft:var(--sky-soft)}.project-card__glow{z-index:-1;aspect-ratio:1;opacity:.22;background:var(--card-accent);filter:blur(85px);border-radius:50%;width:360px;transition:opacity .25s,transform .5s;position:absolute;bottom:-130px;right:-80px}.project-card:hover .project-card__glow{opacity:.32;transform:scale(1.08)}.project-card__header,.project-card__footer{z-index:2;justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.project-label{border:1px solid color-mix(in srgb, var(--card-accent) 18%, var(--line));background:color-mix(in srgb, var(--card-soft) 58%, var(--surface-solid));min-height:30px;color:color-mix(in srgb, var(--card-accent) 78%, var(--text));letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 10px;font-size:.69rem;font-weight:810;display:inline-flex}.project-arrow{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 70%, transparent);width:42px;height:42px;color:var(--text-strong);border-radius:14px;flex:none;place-items:center;transition:transform .22s,background .22s,border-color .22s;display:grid}.project-card:hover .project-arrow{border-color:color-mix(in srgb, var(--card-accent) 34%, var(--line));background:var(--surface-solid);transform:translate(2px,-2px)}.project-card__content{z-index:2;position:relative}.project-card--featured .project-card__content{max-width:570px;margin-top:auto;padding-top:80px}.project-card__content>p{color:color-mix(in srgb, var(--card-accent) 78%, var(--text));letter-spacing:.07em;text-transform:uppercase;margin:0 0 9px;font-size:.8rem;font-weight:780}.project-card__content h3{color:var(--text-strong);letter-spacing:-.065em;margin:0;font-size:clamp(2.3rem,5vw,4.9rem);font-weight:780;line-height:.98}.project-card__content>span{max-width:510px;color:var(--muted);margin-top:15px;font-size:1rem;line-height:1.66;display:block}.project-card__footer{border-top:1px solid var(--line);color:var(--muted);margin-top:30px;padding-top:20px;font-size:.78rem;font-weight:660}.project-card__footer strong{color:var(--text-strong);align-items:center;gap:8px;font-size:.84rem;display:inline-flex}.project-card__footer strong svg{width:16px;height:16px;transition:transform .2s}.project-card:hover .project-card__footer strong svg{transform:translate(4px)}.featured-art{aspect-ratio:1;width:clamp(210px,27vw,330px);position:absolute;top:50%;right:clamp(34px,8vw,118px);transform:translateY(-50%)}.featured-art__orbit{border:1px solid color-mix(in srgb, var(--card-accent) 32%, transparent);border-radius:50%;position:absolute}.featured-art__orbit--outer{animation:24s linear infinite orbit-turn;inset:0}.featured-art__orbit--outer:after{content:"";background:var(--card-accent);width:11px;height:11px;box-shadow:0 0 24px var(--card-accent);border-radius:50%;position:absolute;top:14%;left:8%}.featured-art__orbit--inner{border-style:dashed;animation:18s linear infinite orbit-turn-reverse;inset:18%}.featured-art__core{border:1px solid color-mix(in srgb, var(--card-accent) 28%, var(--line));background:color-mix(in srgb, var(--surface-solid) 74%, transparent);color:var(--card-accent);letter-spacing:-.06em;box-shadow:0 20px 55px color-mix(in srgb, var(--card-accent) 18%, transparent);border-radius:32%;place-items:center;font-size:clamp(2rem,4vw,4rem);font-weight:860;display:grid;position:absolute;inset:32%;transform:rotate(8deg)}.featured-art__dot{background:color-mix(in srgb, var(--card-accent) 72%, white);border-radius:50%;width:7px;height:7px;position:absolute}.featured-art__dot--one{top:19%;right:13%}.featured-art__dot--two{bottom:18%;left:19%}@keyframes orbit-turn{to{transform:rotate(360deg)}}@keyframes orbit-turn-reverse{to{transform:rotate(-360deg)}}.project-card__pattern{z-index:-1;opacity:.56;background:linear-gradient(145deg, color-mix(in srgb, var(--card-soft) 76%, transparent), transparent 68%);position:absolute;inset:0}.project-card__pattern:before,.project-card__pattern:after{content:"";border:1px solid color-mix(in srgb, var(--card-accent) 19%, transparent);position:absolute}.project-card__pattern[data-pattern="1"]:before{border-radius:50%;width:180px;height:180px;top:69px;right:-70px}.project-card__pattern[data-pattern="1"]:after{border-radius:50%;width:88px;height:88px;top:115px;right:-24px}.project-card__pattern[data-pattern="2"]:before{width:180px;height:1px;box-shadow:0 22px 0 color-mix(in srgb, var(--card-accent) 19%, transparent), 0 44px 0 color-mix(in srgb, var(--card-accent) 19%, transparent);top:112px;right:-18px;transform:rotate(-24deg)}.project-card__pattern[data-pattern="2"]:after{border-radius:24px;width:92px;height:92px;top:74px;right:22px;transform:rotate(20deg)}.project-card__pattern[data-pattern="3"]:before{border-radius:34px;width:160px;height:160px;top:65px;right:-52px;transform:rotate(32deg)}.project-card__pattern[data-pattern="3"]:after{border-radius:18px;width:56px;height:56px;top:118px;right:36px;transform:rotate(-14deg)}.supporting-mark{z-index:2;border:1px solid color-mix(in srgb, var(--card-accent) 22%, var(--line));background:color-mix(in srgb, var(--surface-solid) 72%, transparent);width:62px;height:62px;color:var(--card-accent);letter-spacing:-.04em;box-shadow:0 12px 32px color-mix(in srgb, var(--card-accent) 12%, transparent);border-radius:20px;place-items:center;margin-top:54px;font-size:1rem;font-weight:850;display:grid;position:relative}.project-card--supporting .project-card__content{margin-top:auto;padding-top:40px}.project-card--supporting .project-card__content h3{letter-spacing:-.05em;font-size:clamp(1.65rem,2.8vw,2.35rem)}.project-card--supporting .project-card__content>span{margin-top:12px;font-size:.91rem;line-height:1.62}.project-card--supporting .project-card__footer{margin-top:24px;padding-top:17px}.about-section{padding:0 0 126px}.about-panel{border:1px solid var(--line);background:radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--violet-soft) 72%, transparent), transparent 36%), color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow-md);opacity:0;border-radius:36px;grid-template-columns:minmax(0,.95fr) minmax(380px,1.05fr);gap:clamp(48px,8vw,96px);padding:clamp(34px,6vw,72px);display:grid;overflow:hidden;transform:translateY(24px)}.about-copy h2{font-size:clamp(2.35rem,4.8vw,4.3rem)}.about-copy>p:not(.section-kicker){color:var(--muted);margin:23px 0 0;font-size:1rem;line-height:1.78}.principles{align-content:center;gap:10px;display:grid}.principles article{border-bottom:1px solid var(--line);grid-template-columns:42px 1fr;gap:18px;padding:21px 0;display:grid}.principles article:first-child{padding-top:0}.principles article:last-child{border-bottom:0;padding-bottom:0}.principles article>span{color:var(--violet-strong);letter-spacing:.08em;font-size:.72rem;font-weight:820}.principles h3{color:var(--text-strong);letter-spacing:-.025em;margin:0;font-size:1.06rem}.principles p{color:var(--muted);margin:7px 0 0;font-size:.88rem;line-height:1.62}.contact-section{padding:0 0 96px}.contact-panel{border:1px solid color-mix(in srgb, var(--violet) 24%, var(--line));background:linear-gradient(125deg, color-mix(in srgb, var(--violet-soft) 75%, var(--surface-solid)), color-mix(in srgb, var(--surface) 94%, transparent) 50%, color-mix(in srgb, var(--coral-soft) 52%, var(--surface-solid)));box-shadow:var(--shadow-lg);opacity:0;border-radius:36px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:42px;padding:clamp(34px,6vw,68px);display:grid;position:relative;overflow:hidden;transform:translateY(24px)}.contact-panel:after{content:"";opacity:.23;background-image:radial-gradient(color-mix(in srgb, var(--violet) 35%, transparent) 1px, transparent 1px);pointer-events:none;background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 20%,#000);mask-image:linear-gradient(90deg,#0000 20%,#000)}.contact-panel__light{aspect-ratio:1;opacity:.2;background:var(--pink);filter:blur(90px);border-radius:50%;width:360px;position:absolute;top:-210px;right:10%}.contact-panel>div,.contact-action{z-index:2;position:relative}.contact-panel h2{max-width:800px;font-size:clamp(2rem,4.4vw,4rem);line-height:1.07}.contact-action{border:1px solid color-mix(in srgb, var(--violet-strong) 70%, black);background:var(--text-strong);min-width:224px;min-height:62px;color:var(--page);cursor:pointer;border-radius:19px;justify-content:space-between;align-items:center;gap:24px;padding:0 18px 0 22px;font-weight:760;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 18px 44px #1818242e}:root[data-theme=dark] .contact-action{color:#13121a;background:#f6f3ff}.contact-action svg{transition:transform .2s}.contact-action:hover{transform:translateY(-3px);box-shadow:0 24px 52px #18182440}.contact-action:hover svg{transform:translate(4px)}.site-footer{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:1fr auto auto;align-items:center;gap:40px;padding:30px 0 42px;font-size:.79rem;display:grid}.footer-brand{color:var(--text-strong);font-size:.92rem;font-weight:790;text-decoration:none}.site-footer p{margin:5px 0 0}.site-footer>p{white-space:nowrap;margin:0}.footer-links{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.footer-links a{color:var(--muted-strong);font-weight:650;text-decoration:none}.footer-links a:hover{color:var(--violet-strong)}.contact-dialog{overscroll-behavior:contain;border:1px solid var(--line-strong);background:var(--surface-solid);width:min(100% - 32px,980px);max-height:min(850px,100vh - 32px);color:var(--text);border-radius:30px;padding:0;overflow:auto;box-shadow:0 40px 130px #0c0b1459}.contact-dialog::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c0c1494}.dialog-shell{grid-template-columns:minmax(280px,.82fr) minmax(0,1.35fr);min-height:600px;display:grid}.dialog-intro{border-right:1px solid var(--line);background:radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--violet) 24%, transparent), transparent 45%), linear-gradient(155deg, color-mix(in srgb, var(--violet-soft) 74%, var(--surface-solid)), var(--surface-soft));padding:54px 40px;position:relative;overflow:hidden}.dialog-intro:after{content:"";border:1px solid color-mix(in srgb, var(--violet) 25%, transparent);width:210px;height:210px;box-shadow:0 0 0 30px color-mix(in srgb, var(--violet) 5%, transparent), 0 0 0 62px color-mix(in srgb, var(--violet) 4%, transparent);border-radius:50%;position:absolute;bottom:-100px;right:-90px}.dialog-intro h2{color:var(--text-strong);letter-spacing:-.065em;margin:16px 0 0;font-size:clamp(2.6rem,5vw,4.4rem);font-weight:780;line-height:.95}.dialog-intro>p:not(.dialog-kicker){color:var(--muted);margin:24px 0 0;line-height:1.72}.dialog-note{color:var(--muted);align-items:flex-start;gap:11px;margin-top:42px;font-size:.82rem;line-height:1.55;display:flex}.dialog-note span{background:var(--mint);width:8px;height:8px;box-shadow:0 0 0 5px color-mix(in srgb, var(--mint) 14%, transparent);border-radius:50%;flex:none;margin-top:5px}.dialog-note p{margin:0}.dialog-form-wrap{padding:54px 42px 32px;position:relative}.dialog-close{z-index:2;border:1px solid var(--line);background:var(--surface-soft);width:42px;height:42px;color:var(--muted-strong);cursor:pointer;border-radius:13px;place-items:center;transition:transform .18s,color .18s,background .18s;display:grid;position:absolute;top:18px;right:18px}.dialog-close:hover{background:var(--surface-solid);color:var(--text-strong);transform:rotate(4deg)}.contact-form{gap:18px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.contact-form label{color:var(--muted-strong);gap:8px;font-size:.79rem;font-weight:700;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--line-strong);background:var(--surface-soft);width:100%;color:var(--text-strong);border-radius:14px;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}.contact-form input{min-height:49px;padding:0 14px}.contact-form textarea{resize:vertical;min-height:150px;padding:13px 14px;line-height:1.55}.contact-form input:focus,.contact-form textarea:focus{border-color:color-mix(in srgb, var(--violet) 68%, var(--line));background:var(--surface-solid);box-shadow:0 0 0 4px color-mix(in srgb, var(--violet) 12%, transparent)}.honeypot{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form-footer{justify-content:space-between;align-items:center;gap:18px;margin-top:2px;display:flex}.form-status{max-width:260px;color:var(--muted);margin:0;font-size:.74rem;line-height:1.5}.form-status--success{color:var(--mint)}.form-status--error{color:var(--coral)}.form-footer .button{min-width:158px}.dialog-back{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-top:23px;padding:0;font-size:.78rem;display:inline-flex}.dialog-back:hover{color:var(--text-strong)}:where(a,button,input,textarea):focus-visible{outline:3px solid color-mix(in srgb, var(--violet) 52%, transparent);outline-offset:3px}.hero{isolation:isolate;position:relative}.hero-background{z-index:-1;inset-block:0;width:100vw;pointer-events:none;background:linear-gradient(145deg,#1c2432,#11141c);inline-size:100dvw;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.hero-background img{object-fit:cover;object-position:50% 48%;opacity:0;filter:saturate(1.34)contrast(1.1)brightness(.9);width:100%;height:100%;transition:opacity .9s;transform:scale(1.025)}.hero-background.is-loaded img{opacity:1;animation:34s ease-in-out infinite alternate hero-photo-drift}.hero-background__veil{background:linear-gradient(to bottom, #07091229 0%, #0709120d 48%, #07091224 76%, color-mix(in srgb, var(--page) 22%, transparent) 88%, var(--page) 100%), radial-gradient(ellipse at 50% 57%, #05070f14 0%, #05070f08 42%, transparent 72%);position:absolute;inset:0}:root[data-theme=dark] .hero-background img{filter:saturate(1.26)contrast(1.12)brightness(.76)}:root[data-theme=dark] .hero-background__veil{background:linear-gradient(to bottom, #02040a38 0%, #02040a14 50%, #02040a2e 76%, color-mix(in srgb, var(--page) 24%, transparent) 88%, var(--page) 100%), radial-gradient(ellipse at 50% 57%, #02040a1a 0%, #02040a0a 44%, transparent 74%)}.hero--with-photo .profile-photo-frame{border-color:color-mix(in srgb, white 58%, var(--line));background:#ffffffe6;box-shadow:0 24px 68px #1914333d,0 0 0 1px #ffffff8a}.hero--with-photo .hero-eyebrow,.hero--with-photo .professional-links a,.hero--with-photo .button--secondary{-webkit-backdrop-filter:blur(16px)saturate(1.15);backdrop-filter:blur(16px)saturate(1.15)}.hero--with-photo .hero-eyebrow{background:#ffffffe0;box-shadow:0 10px 30px #0a0c1829}.hero--with-photo .hero-copy-wrap:before{content:"";z-index:-1;filter:blur(10px);pointer-events:none;background:radial-gradient(#0507104d 0%,#05071026 44%,#0000 73%);border-radius:50%;position:absolute;inset:-54px -96px -64px}.hero--with-photo h1,.hero--with-photo .hero-lead{color:#fff;text-shadow:0 3px 28px #00000094}.hero--with-photo .hero-supporting,.hero--with-photo .professional-links>span{color:#ffffffe0;text-shadow:0 2px 20px #0000009e}:root[data-theme=dark] .hero--with-photo h1,:root[data-theme=dark] .hero--with-photo .hero-lead,:root[data-theme=dark] .hero--with-photo .hero-supporting{text-shadow:0 3px 30px #000000bd}.hero-photo-tools{z-index:3;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;max-width:min(620px,100% - 16px);display:flex;position:absolute;bottom:22px;right:8px}.hero-photo-credit,.hero-refresh-button,.hero-refresh-status:not(:empty){color:#ffffffd6;-webkit-backdrop-filter:blur(14px)saturate(1.18);backdrop-filter:blur(14px)saturate(1.18);background:#0d0f1880;border:1px solid #ffffff52;border-radius:999px;box-shadow:0 8px 28px #00000029}.hero-photo-credit{margin:0;padding:8px 11px;font-size:.68rem;line-height:1}.hero-photo-credit a{color:#fff;text-underline-offset:2px;font-weight:720}.hero-refresh-button{cursor:pointer;border-color:#ffffff61;align-items:center;gap:7px;min-height:34px;padding:0 11px;font-size:.68rem;font-weight:740;transition:transform .18s,background .18s,border-color .18s,opacity .18s;display:inline-flex}.hero-refresh-button svg{width:15px;height:15px}.hero-refresh-button:hover:not(:disabled){background:#0d0f18ad;border-color:#ffffffa3;transform:translateY(-1px)}.hero-refresh-button:disabled{opacity:.62;cursor:wait}.hero-refresh-button .is-spinning{animation:.9s linear infinite refresh-spin}.hero-refresh-status{align-items:center;min-height:34px;padding:0 11px;font-size:.67rem;display:inline-flex}.hero-refresh-status:empty{display:none}.hero-photo-tools:has(.hero-refresh-status:not(:empty)){max-width:min(760px,100% - 16px)}@keyframes refresh-spin{to{transform:rotate(360deg)}}@keyframes hero-photo-drift{0%{transform:scale(1.035)translate(-.35%,-.2%)}to{transform:scale(1.085)translate(.55%,.35%)}}@media (width>=761px) and (height<=860px){.hero{min-height:100svh;padding:138px 0 68px}.profile-photo-frame{width:154px}.hero-portrait{margin-bottom:24px}.hero-eyebrow{margin-bottom:16px}.hero h1{font-size:clamp(3.6rem,7.8vw,6.4rem)}.hero-lead{margin-top:22px;font-size:clamp(1.12rem,1.9vw,1.4rem)}.hero-supporting{margin-top:10px;line-height:1.58}.hero-actions,.professional-links{margin-top:26px}.hero-photo-tools{bottom:14px}}@media (width<=980px){.hero-photo-tools{right:10px}.site-header{-webkit-backdrop-filter:none;backdrop-filter:none}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card--featured{min-height:410px}.project-card--supporting:last-child{grid-column:1/-1;min-height:310px}.project-card--supporting:last-child .supporting-mark{margin-top:36px}.about-panel{grid-template-columns:1fr}.contact-panel{grid-template-columns:1fr;align-items:start}.contact-action{width:fit-content}}@media (width<=760px){:root{--header-height:66px}.site-header{grid-template-columns:1fr auto}.site-nav{display:none}.mobile-nav{z-index:120;right:18px;bottom:max(18px, env(safe-area-inset-bottom));border:1px solid var(--line);background:color-mix(in srgb, var(--page-elevated) 94%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.3);backdrop-filter:blur(22px)saturate(1.3);border-radius:18px;justify-content:center;gap:4px;padding:5px;display:flex;position:fixed;left:18px;box-shadow:0 14px 50px #13131f2e}.mobile-nav a,.mobile-nav button{min-height:45px;color:var(--muted-strong);cursor:pointer;background:0 0;border:0;border-radius:13px;flex:1;justify-content:center;align-items:center;padding-inline:10px;font-size:.86rem;font-weight:700;text-decoration:none;transition:color .18s,background .18s;display:inline-flex}.mobile-nav a:hover,.mobile-nav button:hover{background:var(--surface-solid);color:var(--text-strong)}.site-header{width:min(calc(100% - 20px), var(--content-width));min-height:var(--header-height);border-radius:16px;margin:0;top:10px}.brand-logo{border-radius:50%;width:36px;height:36px}main,.site-footer{width:min(calc(100% - 28px), var(--content-width))}.hero{min-height:100svh;padding:106px 0 156px}.profile-photo-frame{width:150px}.hero-portrait{margin-bottom:24px}.hero-background{width:100vw;inline-size:100dvw;inset-block:0}.hero-background img{object-position:50% 42%}.hero-photo-tools{max-width:100%;bottom:82px;right:0}.hero h1{font-size:clamp(3.3rem,17vw,5.2rem)}.hero-lead{font-size:1.12rem}.hero-supporting{font-size:.96rem}.professional-links{flex-direction:column}.section-heading{grid-template-columns:1fr;align-items:start;gap:22px}.projects-grid{grid-template-columns:1fr}.project-card--featured,.project-card--supporting,.project-card--supporting:last-child{grid-column:auto}.project-card--featured{min-height:500px;padding:26px}.project-card--featured .project-card__content{padding-top:220px}.featured-art{width:190px;top:82px;right:50%;transform:translate(50%)}.project-card--featured .project-card__footer{flex-direction:column;align-items:flex-start}.project-card--supporting,.project-card--supporting:last-child{min-height:330px}.about-panel,.contact-panel{border-radius:28px}.site-footer{text-align:center;grid-template-columns:1fr;gap:20px}.footer-links{order:3}.site-footer>p{white-space:normal}.dialog-shell{grid-template-columns:1fr}.dialog-intro{border-right:0;border-bottom:1px solid var(--line);min-height:260px;padding:42px 30px 36px}.dialog-intro h2{font-size:3rem}.dialog-note{margin-top:25px}.dialog-form-wrap{padding:56px 24px 28px}.form-grid{grid-template-columns:1fr}.form-footer{flex-direction:column;align-items:stretch}.form-status{max-width:none}.form-footer .button{width:100%}}@media (width<=480px){.hero-photo-tools{justify-content:center;left:0;right:0}.hero-refresh-button span{display:none}.hero-refresh-button{justify-content:center;width:34px;padding:0}.brand-name{display:none}.hero-eyebrow{font-size:.65rem}.hero-actions{display:grid}.button{width:100%}.professional-links>div{width:100%;display:grid}.professional-links a{justify-content:space-between}.apps-section,.about-section{padding-bottom:92px}.project-card__content h3{font-size:2.65rem}.project-card--supporting .project-card__content h3{font-size:1.9rem}.contact-action{width:100%}.mobile-nav{right:10px;bottom:max(10px, env(safe-area-inset-bottom));left:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}[data-reveal]{opacity:1;transform:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}main:focus{outline:none}.brand-logo{border-radius:12px}.site-nav a,.site-nav button{justify-content:center;align-items:center;display:inline-flex}.hero h1,.section-heading h2,.about-copy h2,.contact-panel h2{text-wrap:balance}.hero-lead,.hero-supporting,.section-heading>p,.about-copy>p,.contact-panel h2{text-wrap:pretty}:is(.contact-form input:user-invalid,.contact-form textarea:user-invalid){border-color:color-mix(in srgb, var(--coral) 58%, var(--line-strong))}@media (width<=480px){.hero h1{font-size:clamp(2.85rem,15vw,5.2rem)}}@media (hover:none){.project-card:hover,.button:hover:not(:disabled),.professional-links a:hover,.contact-action:hover,.theme-button:hover,.site-nav a:hover,.site-nav button:hover,.mobile-nav a:hover,.mobile-nav button:hover{transform:none}}html,body{overflow-x:clip}.hero-background{contain:paint}@media (width<=760px){.site-footer{padding-bottom:110px}}
