:root{--bg:#0c0c0c;--fg:#d7e2ea;--muted:#91949d;--line:#ffffff24;--accent:#c0a3ff;--font:'Kanit',sans-serif;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--fg);font-family:var(--font);scroll-behavior:smooth}#main{background:var(--bg);overflow-x:clip}body{min-width:320px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #c4a6ff;outline-offset:6px}button{background:none}::selection{background:#a56ce6;color:#fff}button[hidden],[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;color:#000;padding:14px}.skip:focus{top:15px}.hero{min-height:780px;height:100svh;max-height:1250px;position:relative;display:flex;flex-direction:column;padding:0 40px;isolation:isolate}.nav{display:flex;justify-content:space-between;padding-top:28px;position:relative;z-index:5;font-size:clamp(.875rem,1.5vw,1.4rem);font-weight:500;text-transform:uppercase;letter-spacing:.09em}.nav a{transition:opacity .2s}.nav a:hover{opacity:.7}.hero-title-wrap{padding-top:55px;position:relative;z-index:2;pointer-events:none}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:400}.hero-title-wrap>.eyebrow{margin-bottom:20px;color:#a3a5af}.hero-heading{background:linear-gradient(180deg,#646973 0%,#bbccd7 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero h1{font-size:clamp(80px,12.8vw,220px);font-weight:900;text-transform:uppercase;line-height:.83;letter-spacing:-.055em}.hero h1>span{font-size:1.04em;white-space:nowrap}.hero-art{position:absolute;width:480px;height:480px;right:7%;top:23%;z-index:1;will-change:transform}.sphere{position:absolute;inset:13%;border-radius:50%;background:radial-gradient(circle at 30% 22%,#eadbff 0%,#b693e4 13%,#73529e 30%,#3b2256 52%,#180f24 70%,#7a53a2 100%);box-shadow:inset -18px -20px 45px #07030e,inset 8px 8px 20px #e0bcff44,0 25px 100px #62329720;overflow:hidden;transform:rotate(-15deg)}.sphere:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 6px,#ffffff08 7px 8px);border-radius:50%}.sphere-label{position:absolute;top:38%;left:28%;font-size:90px;font-weight:800;letter-spacing:-.1em;color:#eee3ffb0;line-height:1}.sphere-label span{display:block;font-size:9px;letter-spacing:.25em;line-height:1.5;margin-top:10px}.orbital{position:absolute;inset:8% -4%;border:1px solid #bda1d36b;border-radius:50%;transform:rotate(-30deg) scaleY(.38);z-index:2;box-shadow:0 2px 2px #cfb2ff44}.orbital-two{transform:rotate(54deg) scaleY(.5);border-color:#d5c3ee33;z-index:0}.art-note{position:absolute;font-size:9px;letter-spacing:.16em;color:#8d849a}.note-top{top:3%;left:15%}.note-bottom{bottom:6%;right:2%}.floating-chip{position:absolute;z-index:3;border:1px solid #cdb8e23b;background:#18131ed9;backdrop-filter:blur(8px);padding:12px 18px;border-radius:10px;font-size:11px;letter-spacing:.09em;box-shadow:0 10px 40px #0005}.chip-one{top:24%;right:-5%;transform:rotate(8deg)}.chip-two{bottom:18%;left:-8%;transform:rotate(-8deg);font-family:monospace}.floating-chip i{display:inline-block;width:6px;height:6px;background:#b6f1b0;border-radius:50%;margin-right:8px}.hero-bottom{display:flex;justify-content:space-between;align-items:end;margin-top:auto;padding-bottom:36px;z-index:4;gap:25px}.hero-bottom>p{max-width:290px;text-transform:uppercase;font-weight:300;letter-spacing:.04em;font-size:clamp(.9rem,1.4vw,1.4rem);line-height:1.4}.contact-button{display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:17px 35px;border-radius:100px;background:linear-gradient(123deg,#18011f 7%,#b600a8 37%,#7621b0 72%,#be4c00 100%);box-shadow:0 4px 4px #b501a740,inset 4px 4px 12px #7721b1;outline:2px solid #fff;outline-offset:-3px;color:white;text-transform:uppercase;font-size:.85rem;font-weight:500;letter-spacing:.12em;transition:transform .2s;white-space:nowrap}.contact-button:hover{transform:translateY(-3px)}.contact-button span{font-size:1.5em}.hero-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:18px 0;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.section-pad{padding:110px 40px}.section-kicker{display:flex;justify-content:space-between;gap:20px;text-transform:uppercase;font-size:.65rem;letter-spacing:.13em;color:var(--muted);margin-bottom:42px}.marquee-section{padding:95px 0 45px}.marquee-section>.section-kicker{padding:0 40px;margin-bottom:25px}.marquee-window{overflow:hidden;margin-bottom:12px}.marquee-track{display:flex;width:max-content;gap:12px;will-change:transform}.skill-tile{display:flex;align-items:center;justify-content:space-between;gap:45px;min-width:220px;background:#19171d;border:1px solid #ffffff12;border-radius:18px;padding:24px 30px;font-size:1.8rem;font-weight:500;white-space:nowrap}.skill-tile b{font-size:1.2rem;color:#b697d4;font-weight:300}.skill-tile.outline{background:#101010;color:#9998a0}.about{min-height:90vh;position:relative;text-align:center;display:flex;flex-direction:column;align-items:center}.about>.section-kicker{width:100%}.section-title{font-size:clamp(3rem,11.5vw,160px);font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:-.045em;text-align:center;margin-bottom:60px}.about-copy{max-width:680px;font-size:clamp(1.1rem,2vw,1.55rem);font-weight:400;line-height:1.7;margin-bottom:55px;position:relative;z-index:1}.scroll-word{white-space:nowrap;display:inline-block}.scroll-char{opacity:1}.js .scroll-char{opacity:.2}.about .contact-button{font-size:.7rem}.decor{position:absolute;color:#9d6cc5;opacity:.65;pointer-events:none;font-size:100px;line-height:1}.decor-left{top:25%;left:4%;transform:rotate(-18deg)}.decor-right{top:44%;right:4%;font-size:60px;transform:rotate(15deg)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);width:100%;max-width:1100px;gap:35px;margin-top:95px;text-align:left}.metric{border-top:1px solid var(--line);padding-top:25px}.metric strong{font-size:clamp(2.8rem,5vw,5rem);font-weight:500;line-height:1.1;letter-spacing:-.04em}.metric p{font-size:.9rem;margin:10px 0}.metric small{font-size:.65rem;color:var(--muted)}.services{background:#fff;color:#0c0c0c;border-radius:60px 60px 0 0;padding-bottom:150px}.services .section-kicker{color:#686868}.service-list{max-width:1100px;margin:auto}.service{display:flex;align-items:center;gap:60px;padding:38px 0;border-bottom:1px solid #0c0c0c26}.service:last-child{border-bottom:0}.service-number{font-size:clamp(3rem,9vw,130px);font-weight:900;line-height:1;letter-spacing:-.06em;min-width:155px}.service h3{text-transform:uppercase;font-size:clamp(1rem,2.2vw,2.1rem);font-weight:500;margin-bottom:10px}.service p{font-size:clamp(.9rem,1.5vw,1.2rem);font-weight:300;line-height:1.6;max-width:680px;color:#646464}.service-arrow{margin-left:auto;font-size:2rem}.projects{border-radius:60px 60px 0 0;margin-top:-55px;position:relative;z-index:1;background:var(--bg);padding-bottom:70px}.project-toolbar{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:45px}.project-toolbar>p{font-size:.9rem;color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{border:1px solid #ffffff30;border-radius:50px;padding:9px 17px;font-size:.7rem;transition:background .2s,color .2s}.filters button.active{background:var(--fg);color:#0c0c0c}.project-slot{height:100vh;min-height:760px;position:relative}.project-slot:last-child{height:auto;min-height:0;padding-bottom:70px}.project-card{position:sticky;top:calc(32px + var(--card-index,0)*20px);border:2px solid #d7e2ea;border-radius:45px;padding:25px;background:#0c0c0c;transform-origin:top center;will-change:transform}.project-slot:nth-child(2) .project-card{--card-index:1}.project-slot:nth-child(3) .project-card{--card-index:2}.project-slot:nth-child(4) .project-card{--card-index:3}.project-top{display:flex;align-items:center;gap:30px;margin-bottom:25px}.project-number{font-size:clamp(3rem,6.5vw,95px);font-weight:900;line-height:1;letter-spacing:-.05em}.project-name{flex:1}.project-name>.eyebrow{color:var(--muted);font-size:.6rem}.project-name h3{font-size:clamp(1.1rem,2.2vw,2.2rem);font-weight:500;text-transform:uppercase;line-height:1.2;margin-top:7px}.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:2px solid var(--fg);border-radius:50px;padding:13px 23px;text-transform:uppercase;font-size:.7rem;font-weight:500;letter-spacing:.1em;white-space:nowrap}.ghost-button:hover{background:#d7e2ea1a}.project-visual{display:grid;grid-template-columns:2fr 3fr;gap:16px;height:440px}.project-side{display:grid;grid-template-rows:1fr 1.15fr;gap:16px;min-width:0}.mini-panel,.tech-panel,.system-panel{border-radius:30px;overflow:hidden}.mini-panel{padding:26px;background:var(--tint);color:var(--ink);position:relative}.mini-panel>.eyebrow{font-size:.6rem}.mini-panel>p{font-size:clamp(1.3rem,2.4vw,2.4rem);font-weight:500;line-height:1.12;max-width:80%;margin-top:20px;letter-spacing:-.03em}.mini-plus{position:absolute;right:18px;bottom:5px;font-size:80px;opacity:.25}.theme-violet{--tint:#c8b7e7;--ink:#2b1b43;--glow:#ab7beb;--deep:#261837}.theme-orange{--tint:#edb78c;--ink:#4e2818;--glow:#e99b5d;--deep:#3d2118}.theme-green{--tint:#b9cfb0;--ink:#20351d;--glow:#a1d48d;--deep:#1c3023}.theme-blue{--tint:#a7c4db;--ink:#1b3145;--glow:#73b2df;--deep:#15283b}.tech-panel{background:#19191c;padding:25px}.tech-panel>.eyebrow{font-size:.6rem;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.tags span{border:1px solid #ffffff29;border-radius:40px;padding:5px 11px;font-size:.65rem}.tech-panel>p{font-size:.8rem;color:#b1b0b8;line-height:1.5;max-width:390px}.system-panel{position:relative;background:radial-gradient(ellipse at 50% 42%,var(--deep),#111115 75%);border:1px solid #ffffff12;display:flex;flex-direction:column;align-items:center;padding:25px}.system-panel-top{display:flex;justify-content:space-between;align-items:center;width:100%;text-transform:uppercase;font-size:.6rem;letter-spacing:.12em;color:#bbb3c7}.system-dot{width:6px;height:6px;border-radius:50%;background:var(--glow)}.system-illustration{flex:1;position:relative;width:100%;display:grid;place-items:center;min-height:130px}.system-core{display:grid;place-items:center;width:140px;height:140px;border-radius:30px;background:linear-gradient(135deg,var(--tint),var(--deep));color:var(--ink);box-shadow:inset 0 1px 3px #fff9,0 25px 60px #0008,0 0 70px color-mix(in srgb,var(--glow) 20%,transparent);font-size:90px;transform:rotate(-12deg);z-index:1}.system-ring{position:absolute;width:230px;height:230px;border:1px solid color-mix(in srgb,var(--glow) 30%,transparent);border-radius:50%;transform:rotateX(55deg) rotateZ(-20deg)}.system-ring:after{content:'';position:absolute;inset:-30px;border:1px dashed #ffffff20;border-radius:50%}.pipeline{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;position:relative;z-index:2}.pipeline>span{padding:12px 10px;border:1px solid #ffffff25;border-radius:10px;background:#ffffff06;font-size:.7rem;text-align:center}.pipeline b{font-weight:300;color:var(--glow)}.visual-caption{font-size:.55rem;color:#a09aa9;margin-top:20px;letter-spacing:.04em}.project-footer{display:flex;justify-content:space-between;text-transform:uppercase;font-size:.55rem;letter-spacing:.12em;color:var(--muted);padding-top:20px}.project-stack.is-filtered .project-slot{height:auto;min-height:0;padding-bottom:30px}.project-stack.is-filtered .project-card{position:relative;top:0;transform:none!important}.experience{padding-top:50px}.experience .section-title{font-size:clamp(3rem,10vw,140px)}.experience-list{max-width:1100px;margin:auto}.job{display:grid;grid-template-columns:220px 1fr 30px;gap:30px;border-top:1px solid var(--line);padding:35px 0}.job-dates{font-size:.8rem;color:var(--muted);padding-top:6px}.job h3{font-size:1.5rem;font-weight:500}.company{color:#baa2d4;margin:5px 0 12px;font-size:.9rem}.job-summary{color:var(--muted);font-weight:300;font-size:1rem;max-width:650px}.education{max-width:1100px;margin:40px auto 0;padding:30px;border:1px solid var(--line);border-radius:20px}.education h3{font-weight:500;font-size:1.4rem;margin:15px 0 5px}.education>p{color:var(--muted);font-size:.85rem}.contact{background:radial-gradient(ellipse at 80% 60%,#24132e55,transparent 60%);padding-bottom:0}.contact>.eyebrow{margin-bottom:25px}.contact h2{font-size:clamp(3.8rem,11.5vw,170px);line-height:.95;text-transform:uppercase;letter-spacing:-.04em;font-weight:900}.contact-row{display:flex;align-items:center;flex-wrap:wrap;gap:30px;margin-top:50px}.copy-email{border:0;font-size:.8rem;color:var(--muted)}.text-link{font-size:.85rem;border-bottom:1px solid #ffffff44;padding-bottom:3px}.email-address{font-size:clamp(1rem,2vw,1.7rem);font-weight:300;color:#9f9aa7;margin-top:30px}.copy-status{min-height:25px;font-size:.8rem;color:#c8b7e7;margin-top:8px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);padding:25px 0;margin-top:65px;font-size:.65rem;color:var(--muted)}dialog{margin:auto;background:#131217;color:var(--fg);border:1px solid #ffffff30;border-radius:28px;width:min(680px,calc(100% - 30px));max-height:85svh;overflow:auto}dialog::backdrop{background:#000b;backdrop-filter:blur(7px)}.dialog-content{padding:45px;position:relative}.dialog-close{position:absolute;top:10px;right:20px;border:0;font-size:2rem;padding:0 8px}.dialog-content h2{font-size:2.2rem;line-height:1.1;margin:20px 0}.dialog-content>p:not(.eyebrow){color:#aaa5b2;line-height:1.7}.dialog-content h3{font-size:1rem;font-weight:500;margin:25px 0 15px}.dialog-content ul{padding-left:20px;color:#c2bec9;font-size:.95rem;line-height:1.7}.dialog-content li{margin-bottom:10px}.dialog-note{font-size:.7rem;margin-top:25px}.dialog-content .ghost-button{margin-top:20px}.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.25,.1,.25,1)}.js .reveal.visible{opacity:1;transform:translateY(0)}
@media(min-width:1600px){.hero{padding:0 4vw}.hero-art{width:600px;height:600px;right:10%;top:20%}.section-pad{padding-left:6vw;padding-right:6vw}.project-visual{height:500px}.project-slot{min-height:850px}.project-card{max-width:1500px;margin:auto}}
@media(max-width:1023px){.hero{min-height:750px;padding:0 28px}.hero-title-wrap{padding-top:70px}.hero-art{width:380px;height:380px;right:3%;top:31%}.hero h1{font-size:14vw}.hero-bottom>p{max-width:220px}.section-pad{padding:85px 28px}.service{gap:35px}.service-number{min-width:110px}.project-visual{height:410px}.project-card{padding:20px;border-radius:35px}.project-top{gap:20px}.project-name h3{font-size:1.3rem}.ghost-button{padding:12px 18px;font-size:.6rem}.mini-panel,.tech-panel{padding:20px}.system-panel{padding:20px}.pipeline{gap:5px}.pipeline>span{font-size:.6rem;padding:10px 6px}.decor{opacity:.25}.job{grid-template-columns:180px 1fr 20px}.projects{padding-bottom:50px}.contact{padding-bottom:0}.project-slot{min-height:720px}}
@media(max-width:639px){.hero{height:100svh;min-height:760px;padding:0 20px}.nav{padding-top:25px;font-size:.75rem;letter-spacing:.07em}.hero-title-wrap{padding-top:55px}.hero-title-wrap>.eyebrow{font-size:.55rem;margin-bottom:20px}.hero h1{font-size:17vw;line-height:.9}.hero-art{width:300px;height:300px;right:calc(50% - 150px);top:35%}.sphere-label{font-size:60px}.sphere-label span{font-size:6px}.floating-chip{padding:9px 12px;font-size:8px}.art-note{font-size:7px}.chip-one{right:-1%}.chip-two{left:-1%}.hero-bottom{gap:20px;padding-bottom:25px}.hero-bottom>p{font-size:.75rem;max-width:155px}.contact-button{padding:14px 22px;gap:15px;font-size:.65rem}.hero-meta{font-size:.5rem;padding:16px 0}.hero-meta>span:last-child{display:none}.section-pad{padding:75px 20px}.section-kicker{font-size:.52rem;margin-bottom:35px}.section-kicker>span:last-child{text-align:right;max-width:140px}.marquee-section{padding-top:65px}.marquee-section>.section-kicker{padding:0 20px}.skill-tile{font-size:1.3rem;padding:20px;min-width:175px;border-radius:14px}.section-title{margin-bottom:40px;font-size:15vw}.about-copy{font-size:1.05rem;line-height:1.65;max-width:95%}.decor{display:none}.metrics{gap:18px;margin-top:65px;grid-template-columns:1fr}.metric{display:grid;grid-template-columns:100px 1fr;gap:4px 20px;align-items:center}.metric strong{font-size:2.7rem;grid-row:span 2}.metric p{font-size:.85rem;margin:0}.metric small{font-size:.6rem}.services{border-radius:35px 35px 0 0;padding-bottom:110px}.service{gap:20px;padding:28px 0;align-items:flex-start}.service-number{min-width:60px;font-size:3.2rem}.service h3{font-size:1.1rem}.service p{font-size:.9rem}.service-arrow{display:none}.projects{border-radius:35px 35px 0 0;margin-top:-35px}.project-toolbar{display:block;margin-bottom:30px}.project-toolbar>p{margin-bottom:20px;font-size:.8rem}.filters{gap:6px}.filters button{padding:8px 12px;font-size:.6rem}.project-slot{height:auto;min-height:0;padding-bottom:25px}.project-slot:last-child{padding-bottom:0}.project-card{position:relative;top:0;border-radius:26px;padding:15px;transform:none!important}.project-top{flex-wrap:wrap;gap:15px;margin-bottom:18px}.project-number{font-size:3.2rem}.project-name h3{font-size:1.1rem}.project-name .eyebrow{font-size:.5rem}.project-top>.ghost-button{margin-left:auto;padding:9px 15px;font-size:.55rem}.project-visual{height:auto;grid-template-columns:1fr;gap:12px}.project-side{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:12px}.mini-panel,.tech-panel{padding:16px;border-radius:20px;min-height:190px}.mini-panel>p{font-size:1.25rem;max-width:100%;margin-top:20px}.mini-plus{font-size:50px}.tech-panel>p{display:none}.tags{gap:5px}.tags span{font-size:.55rem;padding:5px 8px}.system-panel{height:285px;border-radius:20px;padding:18px}.system-core{width:100px;height:100px;border-radius:24px;font-size:65px}.system-ring{width:170px;height:170px}.pipeline>span{font-size:.6rem;padding:10px 9px}.visual-caption{font-size:.5rem}.project-footer{font-size:.45rem;gap:10px;padding-top:15px}.experience .section-title{font-size:13.5vw}.job{grid-template-columns:1fr 20px;gap:10px;padding:25px 0}.job-dates{grid-column:1 / -1;font-size:.7rem}.job h3{font-size:1.25rem}.company{font-size:.8rem}.job-summary{font-size:.9rem}.education{padding:22px}.education>p{font-size:.75rem;line-height:1.6}.contact{padding-bottom:0}.contact h2{font-size:15vw}.contact-row{gap:22px;margin-top:35px}.contact .contact-button{font-size:.7rem}.copy-email,.text-link{font-size:.75rem}.footer-bottom{margin-top:35px;font-size:.55rem}.footer-bottom>span:nth-child(2){order:3;width:100%}.dialog-content{padding:40px 25px}.dialog-content h2{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){html,body{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.js .scroll-char{opacity:1}.project-card,.marquee-track{transform:none!important;will-change:auto}.contact-button{transition:none}}

/* Continuous technology marquee. Adjust 45 px/sec in measureMarquees(). */
.marquee-track.marquee-ready {
  animation: tools-cycle var(--marquee-duration, 80s) linear infinite;
}
.marquee-track.reverse.marquee-ready { animation-direction: reverse; }
@keyframes tools-cycle {
  from { transform: translate3d(calc(-1 * var(--marquee-distance)), 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track.marquee-ready { animation: none; transform: none !important; }
  .marquee-window { overflow-x: auto; }
}

/* Original hero: desktop magnetic hover, static rings, no dragging or bounce. */
.hero-art { z-index:1; animation:none; pointer-events:auto; cursor:default; touch-action:auto; }
.hero-title-wrap { z-index:2; }
/* All cards share one sticky containing block, so later cards cover earlier ones. */
.project-stack { position:relative; isolation:isolate; padding-bottom:35vh; }
.project-stack > .project-slot { display:contents; }
.project-stack > .project-slot[hidden] { display:none !important; }
.project-stack .project-card { position:sticky; top:calc(24px + var(--card-index,0)*18px); margin:0 auto 24vh; transform-origin:top center; }
.project-stack .project-slot:last-child .project-card { margin-bottom:0; }
.project-stack.is-filtered { padding-bottom:0; }
.project-stack.is-filtered > .project-slot { display:block; height:auto; min-height:0; padding-bottom:30px; }
.project-stack.is-filtered .project-card { position:relative; top:0; margin-bottom:0; }
@media(min-width:640px) {
 .project-stack .project-visual { height:clamp(240px,48svh,440px); }
 .project-stack .project-card { padding:20px; }
}
@media(max-width:639px) {
 .project-stack .project-card { position:sticky; top:calc(12px + var(--card-index,0)*10px); margin-bottom:20vh; transform-origin:top center; }
 .project-stack .project-side { display:none; }
 .project-stack .project-visual { display:block; }
 .project-stack .system-panel { height:clamp(180px,35svh,285px); }
 .project-stack .project-top { gap:10px; }
 .project-stack .project-top>.ghost-button { margin-left:auto; }
 .project-stack.is-filtered .project-card { position:relative; top:0; margin-bottom:0; }
}
@media(prefers-reduced-motion:reduce) {
 .orbital,.orbital-two { animation:none; }
 .project-stack .project-card { transform:none !important; }
}

/* Intrinsic sizing keeps every panel and footer inside the card border. */
.project-stack .project-card {
  width:100%; height:auto; min-height:0; box-sizing:border-box;
  transform:none !important; will-change:auto; overflow:clip;
}
.project-stack .project-visual {
  height:auto; min-height:0; align-items:stretch;
  grid-template-columns:minmax(0,2fr) minmax(0,3fr);
}
.project-stack .project-side { min-width:0; grid-template-rows:auto auto; }
.project-stack .mini-panel,.project-stack .tech-panel { min-width:0; height:auto; overflow:visible; }
.project-stack .mini-panel { min-height:190px; }
.project-stack .tech-panel { min-height:210px; }
.project-stack .system-panel { min-width:0; min-height:420px; height:auto; }
.project-stack .project-top { min-width:0; flex-wrap:wrap; }
.project-stack .project-name { min-width:0; overflow-wrap:anywhere; }
.project-stack .project-footer { flex-wrap:wrap; gap:8px 20px; }
.project-stack .pipeline { flex-wrap:wrap; }
@media(max-width:639px) {
 .project-stack .project-visual { display:block; }
 .project-stack .system-panel { min-height:260px; height:auto; }
 .project-stack .system-illustration { min-height:160px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-art { animation:none; transform:none; }
}

@media(max-width:639px) {
 .project-stack .project-top { display:grid; grid-template-columns:54px minmax(0,1fr); gap:12px; align-items:center; }
 .project-stack .project-top>.ghost-button { grid-column:1 / -1; justify-self:end; margin-left:0; }
 .project-stack .project-name h3 { overflow-wrap:normal; font-size:1.05rem; }
}

/* Compact spacing and identical sticky behavior for all project filters. */
.projects.section-pad { padding-bottom:24px; }
.experience.section-pad { padding-top:32px; }
.project-stack { padding-bottom:0; }
.project-stack > .project-slot { display:contents; }
.project-stack > .project-slot[hidden] { display:none !important; }
.project-stack .project-card { margin-bottom:clamp(24px,6vh,64px); }
.project-stack .project-card.last-visible-card { margin-bottom:0; }
@media(max-width:639px) {
 .projects.section-pad { padding-bottom:16px; }
 .experience.section-pad { padding-top:24px; }
 .project-stack .project-card { margin-bottom:28px; }
 .project-stack .project-card.last-visible-card { margin-bottom:0; }
 /* Only mobile technology tiles shrink; desktop is unchanged. */
 .marquee-section { padding-top:36px; padding-bottom:20px; }
 .marquee-section>.section-kicker { margin-bottom:16px; }
 .marquee-window { margin-bottom:8px; }
 .marquee-track { gap:8px; }
 .skill-tile { min-width:125px; padding:12px 16px; gap:22px; border-radius:10px; font-size:1rem; }
 .skill-tile b { font-size:.85rem; }
}
