/* A blue observatory: familiar bold typography, calm reading surfaces,
   cursor-responsive depth and a manually controlled project orbit. */
:root{--bg:#05070d;--panel:#0b111d;--space-x:0px;--space-y:0px;--muted:#adb7c8}
body{background:#05070d;font-family:Arial,Helvetica,sans-serif}
.space-nebula{position:fixed;inset:-12%;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 15% 23%,#184fab30,transparent 40%),radial-gradient(ellipse at 86% 72%,#13395a24,transparent 39%);transform:translate3d(var(--space-x),var(--space-y),0);will-change:transform}
#particles{opacity:.74}
.header{background:#080c15e0;border-bottom-color:#91baff25;backdrop-filter:blur(22px)}
.section-label:before{background:#5ba7ff;box-shadow:0 0 12px #428cff55;transform:none;border-radius:50%}
.gradient{background-image:linear-gradient(105deg,#408bff 0%,#80d9ff 55%,#4b92ff 100%);background-size:180% 100%;animation:blue-flow 14s ease-in-out infinite}
.hero h1{font-size:clamp(52px,5.2vw,76px);line-height:1.08;letter-spacing:-3.8px;font-weight:800;margin-bottom:24px}
.hero{min-height:94svh;padding-top:150px}.hero-grid{grid-template-columns:1.25fr 1fr;gap:54px}.hero-description{font-size:16px;line-height:1.85;max-width:545px}.hero-eyebrow{font-size:10px;letter-spacing:1.25px}.hero-credentials>span{font-size:13px}.hero-credentials small{font-size:10px}
.build-line{display:flex;align-items:center;gap:10px;font-size:clamp(17px,1.6vw,23px);color:#d2d9e7;margin:0 0 27px;min-height:40px;line-height:1.4}.build-symbol{color:#68baff;font-size:25px}.build-words{display:inline-flex;position:relative;overflow:hidden;min-height:1.7em;align-items:center;min-width:15em}.build-words>span{display:inline-block;font-weight:700;animation:none;background-size:100%}
.button,.case-button{border-radius:99px;padding:14px 23px;font-size:13px;transition:transform .25s var(--ease),box-shadow .25s,border-color .25s}.button-small{padding:10px 18px;font-size:11px}.hero-cta .button{font-size:12px;padding:14px 22px}.button:hover{transform:translateY(-2px) scale(1.035);box-shadow:0 10px 35px #308eff40}.button-secondary:hover{box-shadow:0 8px 25px #348dff20}.case-button:hover{transform:scale(1.035);box-shadow:0 8px 25px #438bff25}.filters button,.lab-controls button,.quick-open,.deck-arrow,.skill-tag,.card-bottom button,.featured-tabs button,.saved-controls button{transition:transform .22s var(--ease),background .22s,border-color .22s,color .22s}.filters button:hover,.lab-controls button:hover,.quick-open:hover,.deck-arrow:hover,.skill-tag:hover,.card-bottom button:hover,.saved-controls button:not(:disabled):hover{transform:scale(1.045)}
.desktop-nav a,.about-links a,.contact-socials a,.demo-link{display:inline-block;transition:color .2s,transform .22s}.desktop-nav a:hover,.about-links a:hover,.contact-socials a:hover,.demo-link:hover{color:#a4d9ff;transform:translateY(-2px)}
.vision-lab{border-radius:20px;background:#0b111bd9;border:1px solid #97baff38;box-shadow:0 22px 90px #0005,0 0 80px #266dff0c;transform:perspective(950px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s var(--ease),box-shadow .35s;overflow:hidden}.vision-lab:hover{box-shadow:0 25px 90px #0006,0 0 70px #3b84ff18}.lab-top{font-size:10px;padding:20px 22px}.lab-note p{font-size:12px}.lab-controls button{font-size:11px;border-radius:99px;padding:10px 14px;min-height:42px}.lab-note{min-height:76px}.lab-preview{height:325px}.lab-preview:after{animation-duration:8s}.lab-bottom{font-size:7px}.stack-ribbon{background:#080d16a6;padding-inline:20px;border-radius:12px;font-size:13px}.stack-label{font-size:9px}
.project-deck{margin:42px 0 38px;position:relative}.deck-header{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:0 8px}.deck-hint{font-size:12px;color:#8a9bb5}.deck-stage{height:510px;position:relative;perspective:1200px;margin:28px 0 16px;touch-action:pan-y;isolation:isolate}.deck-stage:before{content:"";position:absolute;inset:15% 15% 0;border-radius:50%;background:radial-gradient(ellipse,#176ee71c,transparent 65%);pointer-events:none}.deck-card{position:absolute;top:0;left:50%;width:min(430px,50%);height:475px;border-radius:24px;border:1px solid #7796c13a;background:linear-gradient(145deg,#101c30,#090e18 75%);padding:0;text-align:left;overflow:hidden;box-shadow:0 20px 55px #0006;transform-origin:center;transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .6s,border-color .4s,box-shadow .5s;will-change:transform}
.deck-card[data-position=center]{transform:translateX(-50%) translateZ(30px);z-index:3;border-color:#8ac7ffb3;opacity:1;box-shadow:0 25px 65px #0008,0 0 45px #2684ff12}.deck-card[data-position=left]{transform:translateX(calc(-50% - 270px)) translateZ(-125px) rotateY(15deg) scale(.87);z-index:1;opacity:.55}.deck-card[data-position=right]{transform:translateX(calc(-50% + 270px)) translateZ(-125px) rotateY(-15deg) scale(.87);z-index:1;opacity:.55}.deck-card[data-position=left]:hover,.deck-card[data-position=right]:hover{opacity:.9;border-color:#77b7ff80}.deck-card:focus-visible{outline-offset:5px;outline-color:#a4e6ff}.deck-card-top{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);font-family:Consolas,monospace;text-transform:uppercase;font-size:10px;letter-spacing:1px;color:#b4c8e5}.deck-card-top>span:last-child{font-family:Arial;font-size:22px;color:#85bfff}.deck-art{display:block;height:205px;padding:0 20px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at center,#1a4f7b45,transparent 65%)}.deck-art .project-art{display:block;width:100%;height:100%}.deck-card-copy{display:block;padding:22px 24px}.deck-card-copy>.project-kicker{display:block;font-size:8px;color:#9fc5f7;margin-bottom:8px}.deck-card-copy>strong{display:block;font-size:28px;line-height:1.12;letter-spacing:-1px;color:#f3f7ff;margin-bottom:12px}.deck-description{display:block;font-size:12px;line-height:1.7;color:#a9b9d0;max-height:4.9em;overflow:hidden}.deck-tags{display:block;font-size:9px;color:#89afd8;margin-top:13px}.deck-visual-note{display:block;font-size:8px;color:#8294b0;margin-top:10px}.deck-controls{display:flex;align-items:center;justify-content:center;gap:24px}.deck-arrow{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #b4d7ff33;background:#111b2e;color:#9ed0ff;font-size:22px}.deck-arrow:hover{border-color:#75b5ff;background:#1b365d}#deck-status{font-size:12px;min-width:210px;text-align:center;color:#b5c8e3}
.featured-shell{border-radius:20px;background:#0e1623ec}.featured-tabs button{font-size:12px;min-height:56px}.featured-tabs button span{font-size:12px}.feature-copy p{font-size:15px}.feature-copy h3{font-size:38px}.feature-art{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .4s var(--ease);background-color:#0a111ed9}.feature-metrics small{font-size:11px}.demo-link{font-size:12px}.feature-links{flex-wrap:wrap;gap:18px}.repository-link{color:#9ccaff}.project-card{border-radius:18px;background:#0a111ce8;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}.project-card:hover{transform:translateY(-5px);border-color:#74adff55;box-shadow:0 18px 45px #0004,0 0 22px #2576db0d}.card-art{transform:perspective(850px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s var(--ease)}.card-content p{font-size:14px;line-height:1.85}.card-content h3{font-size:25px}.card-content .project-kicker{font-size:9px}.card-bottom button{font-size:12px;min-height:36px}.card-bottom .save-project{min-width:32px}.project-search input{font-size:14px}.project-search{border-radius:99px;min-height:46px}.filters button{font-size:12px;min-height:42px;border-radius:99px}.saved-controls button{font-size:12px;min-height:40px}.collection-footnote{font-size:12px}.github-more{margin-top:35px;border:1px solid var(--line);border-radius:18px;background:#0b1421da;padding:22px 26px}.github-more summary{cursor:pointer;font-size:20px;font-weight:600;line-height:1.6}.github-more summary>span{font-size:12px;font-weight:400;color:#8ba9d1;margin-left:18px}.repo-shelf{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;padding-top:25px}.repo-shelf a{display:block;border:1px solid var(--line);border-radius:12px;padding:20px;background:#0c1829;transition:transform .25s,border-color .25s}.repo-shelf a:hover{transform:translateY(-3px);border-color:#76b5ff66}.repo-shelf a>span{font-size:9px;letter-spacing:1px;color:#89b9f4;display:block;margin-bottom:10px}.repo-shelf strong{font-size:18px;display:block}.repo-shelf p{font-size:13px;margin:10px 0 0;line-height:1.8}.identity-card,.skill-card,.benchmark-lab{border-radius:18px;background-color:#0c1421e6}.skill-card p{font-size:14px}.skill-tag{min-height:34px;font-size:11px}.timeline-item p,.milestone-intro p{font-size:15px}.about-grid p:not(.large-copy){font-size:16px}.section-dots{display:flex;flex-direction:column;gap:22px;right:24px}.section-dots a{background:#48566a}.section-dots a.active{background:#72baff;box-shadow:0 0 13px #589eff66}.section-dots a span{font-size:11px}.motion-toggle{border-radius:99px;min-height:38px;background:#0b1627ed;border-color:#87b6f044}.dialog-body p,.dialog-body li{font-size:15px}.contact-section{background:linear-gradient(135deg,#12244220,transparent)}.contact-section p{font-size:16px}.email-address{font-size:15px}
@keyframes blue-flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(min-width:1600px){.hero h1{font-size:86px}.hero-grid{gap:90px}.hero-description{font-size:18px}.build-line{font-size:25px}.lab-preview{height:365px}.deck-stage{height:535px}.deck-card{height:490px}.deck-card-copy>strong{font-size:30px}}
@media(max-width:1100px){.hero h1{font-size:60px;letter-spacing:-3px}.hero-grid{gap:30px}.hero-description{font-size:15px}.build-line{font-size:17px}.build-words{min-width:14.5em}.section-dots{display:none}.deck-card[data-position=left]{transform:translateX(calc(-50% - 225px)) translateZ(-145px) rotateY(15deg) scale(.87)}.deck-card[data-position=right]{transform:translateX(calc(-50% + 225px)) translateZ(-145px) rotateY(-15deg) scale(.87)}.deck-card-copy>strong{font-size:25px}.feature-copy h3{font-size:33px}.feature-copy p{font-size:14px}.card-content p{font-size:13px}}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}.hero-copy{max-width:650px}.hero h1{font-size:74px}.hero-description{max-width:560px;font-size:16px}.build-line{font-size:22px}.vision-lab{max-width:620px;width:100%;align-self:center}.hero{padding-top:125px}.deck-stage{height:490px;overflow:hidden;padding-top:8px}.deck-card{width:370px;height:455px;top:8px}.deck-card[data-position=left]{transform:translateX(calc(-50% - 195px)) translateZ(-150px) rotateY(18deg) scale(.85)}.deck-card[data-position=right]{transform:translateX(calc(-50% + 195px)) translateZ(-150px) rotateY(-18deg) scale(.85)}.deck-art{height:190px}.deck-description{font-size:12px}.card-art{height:180px}.card-content h3{font-size:25px}.lab-preview{height:310px}.about-grid p:not(.large-copy){font-size:15px}.featured-tabs button span{font-size:11px}.github-more summary>span{display:block;margin-left:0}}
@media(max-width:680px){.hero h1{font-size:clamp(40px,8.8vw,60px);letter-spacing:-2.5px}.hero-grid{gap:30px}.hero-description{font-size:15px}.build-line{font-size:clamp(15px,3.7vw,21px);gap:7px;margin-bottom:20px}.build-symbol{font-size:22px}.build-words{min-width:0}.hero-eyebrow{font-size:9px;letter-spacing:.8px;line-height:1.8}.hero-cta .button{font-size:11px;padding:13px 17px}.hero-credentials>span{font-size:11px}.hero-credentials small{font-size:9px}.hero-credentials{gap:24px}.lab-preview{height:280px}.lab-note p{font-size:12px}.lab-controls button{font-size:11px}.deck-header{flex-direction:column;align-items:flex-start;gap:7px}.deck-hint{font-size:11px}.deck-stage{height:440px;margin-top:15px;margin-bottom:0;margin-inline:-15px}.deck-card{width:78%;height:415px;border-radius:18px}.deck-card[data-position=center]{transform:translateX(-50%) translateZ(0)}.deck-card[data-position=left]{transform:translateX(calc(-50% - 130px)) translateZ(-130px) rotateY(18deg) scale(.83)}.deck-card[data-position=right]{transform:translateX(calc(-50% + 130px)) translateZ(-130px) rotateY(-18deg) scale(.83)}.deck-card-top{padding:14px 17px;font-size:8px}.deck-art{height:165px;padding:0 12px}.deck-card-copy{padding:18px}.deck-card-copy>strong{font-size:24px}.deck-card-copy .project-kicker{font-size:7px}.deck-description{font-size:11px;line-height:1.7;max-height:5.1em}.deck-tags{font-size:8px;margin-top:12px}.deck-visual-note{font-size:7px;margin-top:8px}.deck-controls{gap:12px}.deck-arrow{width:44px;height:44px}#deck-status{font-size:11px;min-width:180px}.featured-tabs button{padding:14px 8px}.featured-tabs button span{font-size:10px}.feature-copy p{font-size:15px}.feature-copy h3{font-size:32px}.feature-links{gap:18px}.case-button{font-size:12px;padding:12px 17px}.feature-metrics small{font-size:10px}.card-content p{font-size:14px}.card-content h3{font-size:27px}.repo-shelf{grid-template-columns:1fr}.github-more{padding:20px}.github-more summary{font-size:18px}.github-more summary>span{font-size:12px}.repo-shelf a{padding:18px}.timeline-item p{font-size:14px}.section-heading p{font-size:15px}.saved-controls button{font-size:11px}.contact-section p{font-size:15px}.email-address{font-size:13px}.dialog-body p,.dialog-body li{font-size:14px}.stack-ribbon{padding-inline:15px;font-size:12px}.section-count{display:none}.hero-foot{padding-top:28px}.deck-card:focus-visible{outline-offset:-4px}}
@media(max-width:390px){.hero h1{font-size:40px;letter-spacing:-2px}.build-line{font-size:14px}.hero-cta .button{font-size:10px;padding:12px 14px}.deck-card-copy>strong{font-size:22px}.deck-description{font-size:10px}.deck-card{height:400px}.deck-stage{height:425px}.deck-controls{gap:8px}#deck-status{min-width:165px;font-size:10px}.lab-controls{padding-inline:14px}.lab-controls button{font-size:10px}.brand-copy{font-size:11px}}
.no-motion .space-nebula{transform:none}.no-motion .gradient{animation:none}.no-motion .vision-lab,.no-motion .card-art,.no-motion .feature-art{transform:none}.no-motion .deck-card,.no-motion button,.no-motion a{transition:none}.no-motion .button:hover,.no-motion .case-button:hover{transform:none}
/* Reserve enough space for long project names without clipping card copy. */
.deck-card-top{line-height:1.3}.deck-card-top>span:last-child{line-height:1}.deck-card{height:505px}.deck-stage{height:535px}.deck-card-copy{padding:20px 24px}.deck-card-copy>strong{font-size:26px}.deck-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.deck-visual-note{line-height:1.5}
@media(max-width:900px){.deck-card{height:485px}.deck-stage{height:520px}.deck-card-copy>strong{font-size:25px}}
@media(max-width:680px){.deck-card{height:445px}.deck-stage{height:470px}.deck-card-copy{padding:18px}.deck-card-copy>strong{font-size:22px}.deck-card-top{padding:14px 17px}.deck-description{max-height:5.1em}.deck-visual-note{font-size:8px}.deck-tags{font-size:9px}}
@media(max-width:390px){.deck-card{height:450px}.deck-stage{height:475px}.deck-card-copy>strong{font-size:21px}}
@media(prefers-reduced-motion:reduce){.space-nebula{transform:none}.gradient{animation:none}.vision-lab,.card-art,.feature-art{transform:none}.deck-card,button,a{transition:none}.button:hover,.case-button:hover{transform:none}}
