html .hh-avail,html .hh-big,html .hh-links,html .hh-start{display:none}@media (min-width:1024px){html .hh{max-width:none;min-height:0;height:clamp(720px,100vh,960px);padding:22px clamp(40px,4.5vw,72px) 0;display:block}html .hh-bar{position:relative;z-index:4;height:64px}html .hh-links{display:flex;gap:4px;position:absolute;left:50%;translate:-50% 0;padding:5px;border-radius:999px;background:rgb(255 255 255/.035);border:1px solid rgb(255 255 255/.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}html .hh-links a{white-space:nowrap;padding:10px 18px;border-radius:999px;font-size:.9rem;color:#c4c8c2;transition:color .2s,background-color .2s}html .hh-links a:hover{color:#fff;background:rgb(255 255 255/.05)}html .hh-links a.on{color:#fff;background:rgb(255 255 255/.08)}html .hh-start{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 22px;border-radius:999px;font-size:.92rem;font-weight:600;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-ring);box-shadow:0 10px 28px rgb(47 122 92/.32),inset 0 1px 0 rgb(255 255 255/.16);transition:transform .2s var(--ease-brand),box-shadow .2s}html .hh-start:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgb(47 122 92/.42),inset 0 1px 0 rgb(255 255 255/.16)}html .hh-menu-desk{display:none}html .hh-big{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:0;left:0;right:0;top:13%;font-family:var(--font-display);font-weight:800;font-size:clamp(150px,15.5vw,250px);line-height:.88;letter-spacing:-.06em;pointer-events:none;user-select:none;animation:hh-big-in 1.1s var(--ease-brand) both}html .hh-big span:first-child{color:rgb(255 255 255/.95)}html .hh-big span:last-child{color:rgb(255 255 255/.06);-webkit-text-stroke:1.5px rgb(255 255 255/.32)}@keyframes hh-big-in{0%{opacity:0;transform:translateY(24px);letter-spacing:-.02em}}html .hh-art.hh-aurora-art{position:absolute;z-index:1;left:50%;bottom:0;translate:-50% 0;margin:0;width:min(760px,56vw);height:86%;-webkit-mask-image:linear-gradient(180deg,#000,#000 74%,transparent 98%);mask-image:linear-gradient(180deg,#000,#000 74%,transparent 98%)}html .hh-aurora-art{overflow:visible}html .hh-aurora{inset:0;animation:none;background:radial-gradient(50% 46% at 50% 38%,rgb(47 122 92/.6),transparent 72%),radial-gradient(26% 22% at 64% 24%,rgb(127 207 166/.14),transparent 70%)}html .hh-aurora-art .hh-person{height:100%}html .hh-copy{position:absolute;z-index:2;left:clamp(40px,4.5vw,72px);right:clamp(40px,4.5vw,72px);bottom:clamp(56px,9vh,96px);display:grid;grid-template-columns:minmax(0,340px) 1fr auto;grid-template-areas:"avail . stats" "role . stats" "line . stats" "cta . stats";align-items:end;pointer-events:none}html .hh-copy>*{pointer-events:auto}html .hh-hi,html .hh-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}html .hh-avail{grid-area:avail;justify-self:start;display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;font-size:.8rem;color:#9fe08a;background:rgb(159 224 138/.07);border:1px solid rgb(159 224 138/.24)}html .hh-avail i{width:6px;height:6px;border-radius:50%;background:#9fe08a;box-shadow:0 0 0 3px rgb(159 224 138/.18)}html .hh-role{grid-area:role;margin-top:18px;font-family:var(--font-display);font-size:1.6rem;font-weight:600;line-height:1.25;letter-spacing:-.02em}html .hh-rule,html .hh-scroll{display:none}html .hh-line{grid-area:line;margin-top:12px;font-size:1.02rem;color:#8b9089}html .hh-line br{display:none}html .hh-cta{grid-area:cta;margin-top:26px;justify-content:flex-start}html .hh-btn{flex:0 0 auto;padding:0 28px;min-height:54px}html .hh-stats,html .hh[data-v=a] .hh-stats{grid-area:stats;display:flex;flex-direction:column;gap:26px;margin:0;padding:0;text-align:right;border:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}html .hh-stats div+div{border:0}html .hh-stats div{display:flex;flex-direction:column}html .hh-stats dd{font-family:var(--font-display);font-size:2.3rem;font-weight:700;letter-spacing:-.03em}html .hh-stats dt{margin-top:4px;font-size:.9rem;color:#8b9089}html .hh-curve,html .seam{display:none}html .flow{max-width:none}html .flow>.panel{max-width:560px;margin-inline:auto}html .flow>#apps.panel{max-width:1320px;padding:96px clamp(40px,4.5vw,72px) 110px;display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);column-gap:clamp(40px,5vw,88px);align-items:start}html #apps .split-top{grid-column:1;grid-row:1/span 5;display:block;margin:0}html #apps .split-top:before{content:"Portfolio";display:block;margin-bottom:14px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:#7f857d}html #apps .ptitle{font-size:clamp(2.6rem,3.6vw,3.4rem);line-height:1.04;letter-spacing:-.035em}html #apps .psub{margin-top:14px;font-size:1.05rem}html #apps .psub br{display:none}html #apps .split-top .btn{margin-top:26px}html #apps .split-top>:not(:first-child){display:none}html #apps .sc.sc-bento{display:contents}html #apps .sc-bento>*{grid-column:2}html #apps .sc-bento .sc-tabs{grid-row:1;margin:0 0 18px}html #apps .sc-bento>.bn-chip{grid-row:2;margin-bottom:16px}html #apps .bn-grid{grid-row:2;align-self:start;gap:16px}html #apps .sc-bento:has(>.bn-chip) .bn-grid{grid-row:3}html #apps .bn-feature{grid-row:3;margin-top:16px}html #apps .bn-dots{grid-row:4;margin-top:18px}html #apps .bn-g-mix{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.35fr);grid-template-rows:240px}html #apps .bn-g-mix>.sc-item:last-child{grid-column:3;grid-row:1}html #apps .bn-g-apps{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:240px;gap:16px}html #apps .bn-g-webs{grid-template-rows:280px}html #apps .bn-g-ai,html #apps .bn-g-webs{grid-template-columns:repeat(2,minmax(0,1fr))}html #apps .bn-g-ai{grid-template-rows:96px}html #apps .bn-cell{border-radius:26px;transition:transform .35s var(--ease-brand),border-color .35s,box-shadow .35s}html #apps .bn-cell:hover{transform:translateY(-4px);border-color:rgb(127 207 166/.28);box-shadow:0 24px 50px rgb(0 0 0/.45)}html #apps .bn-app{position:relative;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;padding:22px}html #apps .bn-app:before{content:"";position:absolute;inset:-30% -20% auto;height:80%;background:radial-gradient(closest-side,var(--t,#2f7a5c),transparent);opacity:.22;pointer-events:none}html #apps .bn-app>*{position:relative}html #apps .bn-app .bn-ai.sc-ai{width:72px;height:72px;border-radius:21px}html #apps .bn-app .bn-ai svg{width:32px;height:32px}html #apps .bn-app .bn-text{margin-top:auto;flex:0;width:100%}html #apps .bn-app .bn-text b{font-family:var(--font-display);font-size:1.2rem;letter-spacing:-.02em}html #apps .bn-app .bn-text small{font-size:.85rem}html #apps .bn-app .sc-meta{margin-top:6px;font-size:.82rem}html #apps .bn-glow{display:none}html #apps .bn-site-cap{left:22px;right:22px;bottom:20px}html #apps .bn-site-cap b{font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.02em}html #apps .bn-live{left:18px;top:18px}html #apps .bn-mlrow{flex-direction:row;align-items:center;gap:14px;padding:0 20px}html #apps .bn-mlrow .bn-text{margin:0;flex:1}html #apps .bn-mlrow .bn-mlicon{width:52px;height:52px}html #apps .sc-bento>.bn-chip{height:140px;border-radius:26px}html #apps .bn-feature{border-radius:26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center}html #apps .bn-feature .bn-chip{height:120px;grid-row:auto;margin:0}html #apps .bn-feature-cap{padding:0 26px 0 6px}html #apps .bn-feature-cap .bn-text b{font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.02em}}@media (min-width:1024px) and (max-width:1279px){html .hh-links a{padding:10px 12px;font-size:.86rem}html .hh-brand-t small{display:none}html .hh-art.hh-aurora-art{height:76%}html .hh-copy{grid-template-columns:minmax(0,250px) 1fr auto}html .hh-role{font-size:1.35rem}html .hh-big{top:15%}}@media (min-width:1024px) and (prefers-reduced-motion:reduce){html .hh-big{animation:none}html #apps .bn-cell:hover{transform:none}}@media (min-width:1024px){html #apps .split-top{display:flex;flex-direction:column;align-items:flex-start}html #apps .split-top>div:first-child{display:contents}html #apps .split-top:before{order:0}html #apps .split-top .ptitle{order:1}html #apps .split-top .psub{order:2}html #apps .split-top>:not(:first-child){display:block;order:3;width:100%;max-width:340px;height:240px;margin:18px 0 4px -10px}html #apps .split-top .btn{order:4;margin-top:8px}html .flow>#books.panel,html .flow>#courses.panel,html .flow>#portal.panel{max-width:1320px;padding-inline:clamp(40px,4.5vw,72px)}html .flow>#courses.panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(40px,5vw,80px);align-items:center;padding-block:96px}html #courses .cv{height:460px;margin:0;border-radius:32px;-webkit-mask-image:none;mask-image:none;background:radial-gradient(70% 80% at 28% 22%,rgb(47 122 92/.32),transparent 70%),rgb(255 255 255/.02);box-shadow:inset 0 0 0 1px rgb(255 255 255/.08)}html #courses .cv-person{right:-5%;height:96%}html #courses .cv-code{left:6%;top:13%;bottom:auto;width:32%}html #courses .cv-play{left:22%;top:68%}html #courses .cv-arc{display:none}html #courses .cv-fade{background:linear-gradient(180deg,transparent 60%,rgb(11 13 12/.55))}html #courses .course-body{padding:0}html #courses .course-body .ptitle{font-size:clamp(2.6rem,3.6vw,3.4rem);line-height:1.04;letter-spacing:-.035em}html .flow>#books.panel{padding-block:96px}html #books .bk-top{min-height:420px;margin-bottom:30px;display:flex;align-items:center}html #books .bk-copy{max-width:420px}html #books .bk-copy .ptitle{font-size:clamp(2.6rem,3.6vw,3.4rem);line-height:1.04;letter-spacing:-.035em}html #books .bks{right:0;top:-30px;width:50%}html #books .pills,html #books .rows{position:relative;z-index:1}html #books .pills{margin:0 0 20px;padding:0}html #books .rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}html #books .row{padding:16px;border-radius:24px;gap:18px;background:linear-gradient(160deg,rgb(255 255 255/.07),rgb(255 255 255/.02));transition:transform .3s var(--ease-brand),border-color .3s}html #books .row:hover{transform:translateY(-4px);border-color:rgb(127 207 166/.28)}html #books .row .bkm{width:88px;height:120px}html .flow>#portal.panel{padding-block:104px}html #portal .portal-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);column-gap:clamp(48px,6vw,96px);grid-template-areas:"badge card" "title card" "sub card" "tiles card" "cta card" "trust card";align-items:start;text-align:left}html #portal .pt-badge{grid-area:badge;justify-self:start}html #portal .ptitle{grid-area:title;font-size:clamp(2.6rem,3.6vw,3.4rem);line-height:1.04;letter-spacing:-.035em}html #portal .psub{grid-area:sub;margin-bottom:0}html #portal .pt-card{grid-area:card;align-self:center;padding:30px;border-radius:30px}html #portal .pt-proj b{font-size:1.5rem}html #portal .pt-pct{font-size:2.2rem}html #portal .pt-bar{height:8px}html #portal .pt-tiles{grid-area:tiles;margin-top:28px;gap:12px}html #portal .pt-tile{flex-direction:row;align-items:center;min-height:74px;padding:14px 16px}html #portal .pt-cta{grid-area:cta;justify-self:start;margin-top:26px}html #portal .trusted{grid-area:trust;justify-self:start}html #portal .pt-light{background:radial-gradient(40% 50% at 78% 50%,rgb(47 122 92/.22),transparent 70%),radial-gradient(30% 30% at 20% 30%,rgb(243 227 184/.07),transparent 70%)}html .flow>#contact.panel{max-width:none;padding:120px clamp(40px,4.5vw,72px) 300px;text-align:left}html #contact .ct-waves{height:360px}html #contact .contact-body{max-width:1320px;margin:0 auto;padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(48px,6vw,96px);grid-template-areas:"kick form" "title form" "csub form" "text form" "acts form" "touch form";align-items:start}html #contact .mail-ic{display:none}html #contact .ct-kicker{display:block;grid-area:kick;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:#c9b88f}html #contact .ptitle{grid-area:title;margin-top:12px;font-size:clamp(2.8rem,4vw,3.8rem);line-height:1.02;letter-spacing:-.035em}html #contact .contact-sub{grid-area:csub;margin-top:10px;font-size:1.3rem;font-family:var(--font-display)}html #contact .psub{grid-area:text;margin-top:10px}html #contact .psub br{display:none}html #contact .ct-actions{grid-area:acts;grid-template-columns:1fr;gap:12px;margin-top:30px}html #contact .action{min-height:76px;padding:12px 20px 12px 12px;border-radius:22px;justify-content:flex-start;background:linear-gradient(160deg,rgb(255 255 255/.09),rgb(255 255 255/.03));transition:transform .25s var(--ease-brand),border-color .25s}html #contact .action:hover{transform:translateX(4px);border-color:rgb(243 227 184/.32)}html #contact .a-ic{width:50px;height:50px;border-radius:16px}html #contact .a-t{font-weight:600;font-size:1.02rem}html #contact .a-t small{display:block;margin-top:2px;font-weight:400;font-size:.86rem;color:#a9aea7}html #contact .a-go{display:block;margin-left:auto;color:#c9b88f}html #contact .a-desk{display:flex}html #contact .ct-send{grid-area:form;margin:0;padding:30px;border-radius:30px;background:linear-gradient(180deg,rgb(20 22 20/.72),rgb(14 16 15/.6));border:1px solid rgb(255 255 255/.1);box-shadow:0 40px 80px rgb(0 0 0/.45),inset 0 1px 0 rgb(255 255 255/.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}html #contact .ct-send>.action{display:none}html #contact .ct-send:before{content:"Send a message";display:block;font:700 1.4rem/1.2 var(--font-display);letter-spacing:-.02em}html #contact .ct-form{margin-top:18px;padding:0;background:none;border:0;box-shadow:none}html #contact .ct-form textarea{min-height:170px}html #contact .touch{grid-area:touch;display:none}}html @media(min-width: 1024px){html .flow>#apps.panel{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);column-gap:clamp(48px,5vw,80px)}html #apps .split-top{grid-row:1/span 3;align-self:stretch}html #apps .split-top .btn{order:3;margin-top:24px}html #apps .split-top>:not(:first-child){order:4;flex:1 1 auto;min-height:210px;height:auto;max-height:300px;margin:8px 0 0 -10px}html #apps .bn-g-apps,html #apps .bn-g-mix{grid-template-rows:220px}html #contact .contact-body{grid-template-areas:"kick ." "title form" "csub form" "text form" "acts form" "touch touch"}html #contact .ct-send{align-self:stretch;display:flex;flex-direction:column}html #contact .ct-panel{flex:1}html #contact .ct-panel>div{display:flex}html #contact .ct-form{flex:1}html #contact .ct-form label:has(textarea){flex:1;display:flex;flex-direction:column}html #contact .ct-form textarea{flex:1;min-height:120px}html #contact .touch{display:inline-flex;justify-self:center;width:auto;min-height:58px;margin:72px 0 0;padding:0 30px;border-radius:999px;font-size:1.05rem;color:#141614;background:linear-gradient(180deg,#fbf4e3,#e9dcbf);box-shadow:0 16px 40px rgb(0 0 0/.35),inset 0 1px 0 #fff;transition:transform .2s var(--ease-brand)}html #contact .touch:hover{transform:translateY(-2px)}}@media (min-width:1024px){html #apps .bn-g-apps,html #apps .bn-g-mix{grid-template-rows:250px}html #apps .split-top>:not(:first-child){min-height:150px}html #apps .split-top .ptitle{font-size:clamp(2.4rem,3.3vw,3.2rem)}html #contact .ct-send{margin-top:20px}}html @media(min-width: 1024px){html #portal .portal-body{grid-template-areas:"badge ." "title card" "sub card" "tiles card" "row card"}html #portal .ptitle{line-height:1}html #portal .pt-card{align-self:stretch;display:flex;flex-direction:column;padding:34px;margin-top:calc(clamp(2.6rem, 3.6vw, 3.4rem) * .395)}html #portal .pt-bar{margin-top:auto;height:12px}html #portal .pt-pct{font-size:3.2rem}html #portal .pt-steps{margin-top:22px;padding-top:20px}html #portal .pt-dot{width:22px;height:22px}html #portal .pt-steps li{font-size:.8rem}html #portal .pt-steps li:not(:last-child):after{top:11px}html #portal .pt-tiles{margin-top:24px}html #portal .pt-tile{min-height:64px;padding:11px 14px}html #portal .pt-cta{justify-self:end}html #portal .pt-cta,html #portal .trusted{grid-area:row;align-self:center;margin-top:22px}html #portal .trusted{justify-self:start}html #portal .pt-tile.pt-dl{background:rgb(255 255 255/.04);border-color:rgb(255 255 255/.08)}html #portal .pt-tile.pt-dl:after{display:none}html #portal .pt-tile.pt-dl .pt-ic{color:#f3e3b8;background:rgb(243 227 184/.07);border-color:rgb(243 227 184/.16);box-shadow:none}html #portal .pt-tile.pt-dl .pt-ic svg{animation:none}html #portal .pt-tile.pt-dl .pt-tt small{color:#8b9089}}