.full-page{width:100vh;height:100vh}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0a0c12;--color-surface: #13151c;--color-surface-elevated: #1c1f28;--color-surface-alpha: rgba(19, 21, 28, .65);--color-surface-elevated-alpha: rgba(28, 31, 40, .65);--color-border: #2a2d3d;--color-text: #e2e4ed;--color-text-muted: #7a7f96;--color-accent: #a31515;--color-accent-dim: rgba(163, 21, 21, .15);--font-mono: "Fira Code", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px}html{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{display:none}body{overflow-x:hidden}body{font-family:var(--font-mono);background-color:var(--color-bg);color:var(--color-text)}.pcb-background{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.pcb-svg{width:100%;height:100%}.pcb-trace{fill:none;stroke:var(--color-border);stroke-width:50;stroke-linecap:round;stroke-linejoin:round}.snap-scroll-wrapper{position:relative;height:100dvh}.snap-scroll-container{position:relative;z-index:1;height:100dvh;overflow-y:scroll;overflow-x:hidden;scroll-snap-type:y mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:none}.snap-scroll-container::-webkit-scrollbar{display:none}.snap-page{min-height:100dvh;max-height:100dvh;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;align-items:start;justify-content:center}.snap-page-content{width:100%;min-height:100%;padding:2rem;padding-top:calc(56px + 2rem)}.snap-page-content--full-bleed{padding:56px 0 0;height:calc(100dvh - 56px)}.snap-nav{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:flex-end;gap:.25rem;padding:0 1.5rem;height:56px;background:transparent;z-index:100}.snap-nav-item{background:none;border:none;color:var(--color-text-muted);font-family:var(--font-mono);font-size:.85rem;font-weight:500;padding:.4rem .75rem;border-radius:var(--radius-sm);cursor:pointer;transition:color .2s,background .2s;letter-spacing:.04em}.snap-nav-item:hover{color:var(--color-text);background:#ffffff0f}.snap-nav-item.active{color:var(--color-accent);background:var(--color-accent-dim)}@media(max-width:600px){.snap-nav{padding:0 1rem;height:48px}.snap-nav-item{font-size:.8rem;padding:.35rem .6rem}.snap-page-content{padding:1rem;padding-top:calc(48px + 1rem)}.snap-page-content--full-bleed{padding:48px 0 0;height:calc(100dvh - 48px)}}.hero-page{width:100%;min-height:calc(100dvh - 56px - 4rem);display:flex;flex-direction:column;align-items:stretch;padding:0 10vw 2.5rem}.hero-main{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1rem}.hero-greeting{font-family:var(--font-mono);font-size:clamp(2rem,5vw,3.5rem);font-weight:600;color:var(--color-text);margin:0}.hero-tagline{font-family:var(--font-mono);font-size:clamp(1rem,2.5vw,1.5rem);color:var(--color-text-muted);margin:0}.hero-accent{color:var(--color-accent)}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-shrink:0}.hero-scroll-hint{display:flex;flex-direction:row;align-items:center;gap:.65rem;-webkit-user-select:none;user-select:none;pointer-events:none}.hero-scroll-arrows{display:flex;flex-direction:column;align-items:center;gap:1px;flex-shrink:0}.hero-scroll-arrow{font-size:.6rem;color:var(--color-accent);opacity:.3;animation:hero-arrow-cascade 1.8s ease-in-out infinite}.hero-scroll-arrow:nth-child(3){animation-delay:0s}.hero-scroll-arrow:nth-child(2){animation-delay:.2s}.hero-scroll-arrow:nth-child(1){animation-delay:.4s}@keyframes hero-arrow-cascade{0%,50%,to{opacity:.25;transform:translateY(0)}25%{opacity:1;transform:translateY(-3px)}}.hero-scroll-label{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);letter-spacing:.04em;line-height:1.55}.hero-projects-btn{font-family:var(--font-mono);font-size:.78rem;color:var(--color-text);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:.55rem .5rem;text-decoration:none;text-align:center;display:flex;flex-direction:column;align-items:flex-start;line-height:1.55;letter-spacing:.03em;background:var(--color-accent-dim);transition:background .2s}.hero-projects-btn:hover{background:#a3151533}@media(max-width:600px){.hero-page{padding:0 1.5rem 1.5rem}}.about-page{height:calc(100dvh - 56px - 4rem);display:flex;flex-direction:column;gap:2.5rem}.about-section{display:flex;flex-direction:column;gap:1rem}.about-bio{display:flex;flex-direction:column;gap:.75rem}.about-bio-para{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-muted);line-height:1.7;margin:0;max-width:72ch}.about-skills{display:flex;flex-direction:row;justify-content:space-evenly}.about-skills-divider{display:none}.skill-col{display:flex;flex-direction:column;gap:.55rem;min-width:10rem}.skill-col-label{font-family:var(--font-mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);opacity:.5;padding-bottom:.35rem;border-bottom:1px solid var(--color-border);margin-bottom:.1rem}.skill-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.skill-name{font-family:var(--font-mono);font-size:.82rem;color:var(--color-text);min-width:5rem}.skill-years{font-family:var(--font-mono);font-size:.72rem;color:var(--color-accent);font-weight:600}@media(max-width:600px){.about-page{height:calc(100dvh - 48px - 2rem);gap:1.75rem}.about-bio-para{font-size:.78rem}.about-skills-divider{margin:0 1.25rem}.skill-name{font-size:.75rem;min-width:4rem}}.snap-card{position:relative;width:16rem;height:400px;flex-shrink:0;padding:1.25rem 1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem;border-radius:var(--radius-md);background:var(--color-surface-elevated-alpha);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);box-shadow:0 4px 24px #0000004d;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.snap-card:hover,.snap-card:active{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 8px 32px #a3151526}.snap-card-header{display:flex;flex-direction:row;align-items:center;gap:.75rem;flex-shrink:0}.snap-card-icon{width:2.25rem;height:2.25rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--color-accent)}.snap-card-icon svg{width:2rem;height:2rem}.snap-card-title{font-family:var(--font-mono);font-size:.95rem;font-weight:600;color:var(--color-accent);margin:0;flex:1;min-width:0}.snap-card-category{font-family:var(--font-mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:.15rem .45rem;white-space:nowrap;flex-shrink:0}.snap-card-body{display:flex;flex-direction:column;flex:1;min-height:0;gap:.75rem}.snap-card-description{font-family:var(--font-mono);font-size:.78rem;color:var(--color-text-muted);line-height:1.6;margin:0;flex:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;min-height:0}.snap-card-description::-webkit-scrollbar{display:none}.snap-card-tags{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.4rem;flex-shrink:0}.snap-card-tag{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.2rem .5rem}@media(max-width:600px){.snap-card{width:10rem;height:auto;padding:1rem .75rem;gap:.75rem}.snap-card-icon{width:1.75rem;height:1.75rem}.snap-card-icon svg{width:1.5rem;height:1.5rem}.snap-card-title{font-size:.85rem}.snap-card-description{font-size:.72rem}}.scroll-hint{display:flex;align-items:center;justify-content:center;gap:4px;height:20px;flex-shrink:0;-webkit-user-select:none;user-select:none;pointer-events:none}.scroll-hint-arrow{font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--color-accent);opacity:1;line-height:1}.scroll-hint-dots{font-family:var(--font-mono);font-size:.7rem;font-weight:700;padding:0 1rem;color:var(--color-accent);opacity:1;letter-spacing:.15em;margin-right:-.15em;line-height:1;animation:hint-dots 3.2s ease-in-out infinite}.scroll-hint-arrow--left,.scroll-hint-arrow--right{animation:hint-wiggle 3.2s ease-in-out infinite}.scroll-hint-arrow--hidden{opacity:0}@keyframes hint-wiggle{0%{transform:translate(0)}7%{transform:translate(-5px)}15%{transform:translate(5px)}23%{transform:translate(-5px)}30%{transform:translate(0)}to{transform:translate(0)}}.snap-card-group{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.snap-card-group-label{font-family:var(--font-mono);font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em;margin:0;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.snap-card-group-cards{display:flex;flex-direction:row;gap:.75rem;align-items:stretch;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}.snap-card-group-cards::-webkit-scrollbar{display:none}.snap-card-group-wrap{position:relative}.snap-card-group .scroll-hint{margin-top:-.6rem}.cert-card{position:relative;width:14rem;flex-shrink:0;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;border-radius:var(--radius-md);background:var(--color-surface-elevated-alpha);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);box-shadow:0 4px 24px #0000004d;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.cert-card:hover,.cert-card:active{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 8px 32px #a3151526}.cert-card-source{font-family:var(--font-mono);font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.cert-card-title-wrap{height:2.21rem;overflow:hidden;flex-shrink:0}.cert-card-title{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--color-accent);margin:0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cert-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto}.cert-card-tag{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.15rem .4rem}@media(max-width:600px){.cert-card{width:calc((100vw - 3.5rem) / 3);padding:.75rem;flex-shrink:0;scroll-snap-align:start}.cert-card-source{font-size:.58rem}.cert-card-title-wrap{height:calc(2 * 1.3 * .72rem)}.cert-card-title{font-size:.72rem}.cert-card-tag{font-size:.6rem;padding:.1rem .3rem}}.skills-page{height:calc(100dvh - 56px - 4rem);display:flex;flex-direction:column;gap:2.5rem}.skills-page .snap-card-group:first-child{flex:1;flex-shrink:1;min-height:0}.skills-page .snap-card-group:first-child .snap-card-group-wrap{flex:1;min-height:0}.skills-page .snap-card-group:first-child .snap-card-group-cards{height:100%}.skills-page .snap-card-group:first-child .snap-card{height:20rem}.skills-page .snap-card-group-cards{padding:6px 4px 16px}@media(min-height:950px){.skills-page .snap-card-group:first-child .snap-card{height:24rem}}@media(max-width:600px){.skills-page{height:calc(100dvh - 48px - 2rem);gap:1.25rem}.skills-page .snap-card-group:first-child .snap-card-group-cards{display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,1fr);gap:.5rem;column-gap:.75rem;scroll-snap-type:x mandatory}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card:nth-child(3n+1){scroll-snap-align:start}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card{width:calc(100vw - 2.25rem);height:100%;padding:.75rem 1rem;gap:.5rem;box-sizing:border-box}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card-header{gap:.5rem}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card-icon{width:1.5rem;height:1.5rem}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card-title{font-size:.85rem}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card-body{gap:.4rem}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card-description{font-size:.7rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}}@media(max-width:600px)and (max-height:750px){.skills-page .snap-card-group:first-child .snap-card-group-cards{grid-template-rows:repeat(2,1fr)}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card:nth-child(3n+1){scroll-snap-align:none}.skills-page .snap-card-group:first-child .snap-card-group-cards .snap-card:nth-child(odd){scroll-snap-align:start}}.another-timeline-wrapper{display:flex;flex-direction:column;width:100%;height:100%}.another-timeline{flex:1;min-height:0;width:100%;overflow-x:scroll;scrollbar-width:none}.another-timeline::-webkit-scrollbar{display:none}.another-timeline-content{--px-per-month: 10px;display:flex;flex-direction:column;height:100%;flex-shrink:0;padding:0 2rem;width:calc(var(--months) * var(--px-per-month) + 4rem)}.timeline-events{display:flex;position:relative;align-items:center;gap:2rem;flex:1;width:100%}.timeline-events-top,.timeline-events-bottom{display:flex}.timeline-entry{position:absolute;height:100%;display:flex;flex-direction:column;box-sizing:border-box}.timeline-events-top .timeline-entry{bottom:0}.timeline-events-bottom .timeline-entry{top:0}.timeline-events-bottom .timeline-entry-milestones{order:2}.timeline-entry-milestones{flex:1;position:relative;padding-top:50px;padding-bottom:50px}.timeline-entry-card{height:64px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--color-surface-alpha);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);box-sizing:border-box;transition:border-color .2s,background .2s}.timeline-entry-card-content{width:fit-content;height:100%;padding:8px 10px;display:flex;flex-direction:column;justify-content:center;gap:2px}.timeline-entry-card-content--sticky{position:sticky;left:0;z-index:1}@media(hover:hover){.timeline-entry-card:hover{border-color:#ffffff1f;background:var(--color-surface-elevated-alpha)}}.timeline-entry-card--current{border-right:3px solid var(--color-accent);background:var(--color-surface-elevated-alpha)}.timeline-entry-org{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-entry-role{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-entry-tags{display:flex;flex-wrap:nowrap;gap:3px;margin-top:3px}.timeline-entry-tag{font-family:var(--font-mono);font-size:.48rem;color:var(--color-text-muted);background:var(--color-surface-elevated-alpha);border:1px solid var(--color-border);border-radius:2px;padding:1px 4px;white-space:nowrap;opacity:.7}.milestone{position:absolute;display:flex;align-items:center;height:var(--stem-h);pointer-events:none}.milestone--top{bottom:0;flex-direction:column}.milestone--bottom{top:0;flex-direction:column-reverse}.milestone-tip{display:flex;align-items:center;flex-shrink:0}.milestone-diamond{width:5px;height:5px;background:var(--color-accent);transform:rotate(45deg);opacity:.75;flex-shrink:0}.milestone-label{position:absolute;left:calc(100% + 6px);font-family:var(--font-mono);font-size:.58rem;color:var(--color-text-muted);opacity:.7;letter-spacing:.03em;text-align:left;line-height:1.4;white-space:pre}.milestone-line{flex:1;width:1px;min-height:0}.milestone--top .milestone-line{background:linear-gradient(to bottom,var(--color-accent),transparent);opacity:.35}.milestone--bottom .milestone-line{background:linear-gradient(to top,var(--color-accent),transparent);opacity:.35}.milestone--latest .milestone-diamond{width:7px;height:7px;opacity:1}.milestone--latest .milestone-label{color:var(--color-text);opacity:1;font-weight:100}.milestone--highlighted.milestone--top .milestone-line,.milestone--highlighted.milestone--bottom .milestone-line{background:var(--color-accent);opacity:.6}@keyframes diamond-pulse{0%,to{opacity:.75;transform:rotate(45deg) scale(1)}50%{opacity:1;transform:rotate(45deg) scale(1)}}.milestone--highlighted .milestone-diamond{animation:diamond-pulse 2.4s ease-in-out infinite}.milestone--highlighted.milestone--latest .milestone-diamond{animation:diamond-pulse 2.4s ease-in-out infinite;transform-origin:center}.timeline-spine{height:60px;position:relative}.timeline-line{position:absolute;left:0;right:0;top:50%;height:1px;width:100%;background:var(--color-text-muted);transform:translateY(-50%)}.timeline-line:after{content:"";position:absolute;left:-2rem;top:0;height:100%;width:2rem;background:var(--color-text-muted)}.timeline-now-dot{position:absolute;right:0;top:50%;width:10px;height:10px;border-radius:50%;background:var(--color-accent);transform:translate(50%,-50%);z-index:1}.timeline-now-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;background:var(--color-accent);opacity:.3;animation:now-pulse 2s ease-out infinite}@keyframes now-pulse{0%{transform:scale(1);opacity:.4}to{transform:scale(2.8);opacity:0}}.timeline-now-label{position:absolute;right:0;bottom:calc(50% + 10px);transform:translate(50%);font-family:var(--font-mono);font-size:.58rem;color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}.timeline-spine-highlight{position:absolute;height:2px;background:var(--color-accent);transition:left .2s ease,width .2s ease}.timeline-spine-highlight--top{top:calc(50% - 1px)}.timeline-spine-highlight--bottom{top:calc(50% + 2px)}.timeline-spine-highlight-label{position:absolute;bottom:calc(100% + 3px);font-family:var(--font-mono);font-size:.48rem;font-weight:700;color:var(--color-accent);white-space:nowrap;line-height:1;opacity:.85}.timeline-spine-highlight-label--start{left:0}.timeline-spine-highlight-label--end{right:0}.timeline-year-label{position:absolute;top:calc(50% + 2px);font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);transform:translate(-50%);white-space:nowrap;-webkit-user-select:none;user-select:none}@media(max-width:768px){.another-timeline-content{--px-per-month: calc(100vw / 48)}}.contact-page{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;padding:0 10vw;text-align:center}.contact-tagline{font-family:var(--font-mono);font-size:clamp(1rem,2.5vw,1.5rem);color:var(--color-text-muted);line-height:1.6;margin:0;max-width:52ch}.contact-accent{color:var(--color-accent)}.contact-cards{display:flex;flex-direction:row;gap:.75rem}.contact-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;width:7rem;height:7rem;border-radius:var(--radius-md);background:var(--color-surface-elevated-alpha);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);box-shadow:0 4px 24px #0000004d;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s}.contact-card:hover,.contact-card:active{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 8px 32px #a3151526}.contact-card-glyph{font-family:var(--font-mono);font-size:1.3rem;font-weight:900;color:var(--color-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.contact-card-label{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--color-accent);text-align:center}@media(max-width:600px){.contact-card{width:6rem;height:6rem}}.project-card{display:flex;flex-direction:column;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s;cursor:pointer}.project-card:hover{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 8px 32px #a3151526}.project-card--featured{border-color:#a3151566;background:linear-gradient(160deg,rgba(163,21,21,.08) 0%,var(--color-surface) 50%)}.project-card--featured:hover{border-color:var(--color-accent);box-shadow:0 8px 40px #a3151540}.project-card-thumbnail{width:100%;aspect-ratio:16 / 9;background:var(--color-surface-elevated);overflow:hidden;flex-shrink:0}.project-card-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.project-card-body{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.1rem 1.1rem;flex:1}.project-card-title-row{display:flex;align-items:center;gap:.6rem}.project-card-title{font-family:var(--font-mono);font-size:.9rem;font-weight:600;color:var(--color-accent);margin:0}.project-card-featured-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent);background:var(--color-accent-dim);border:1px solid rgba(163,21,21,.4);border-radius:var(--radius-sm);padding:.15rem .45rem;white-space:nowrap;flex-shrink:0}.project-card-description{font-family:var(--font-mono);font-size:.78rem;color:var(--color-text-muted);line-height:1.6;margin:0;flex:1}.project-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.25rem}.project-card-tag{font-family:var(--font-mono);font-size:.68rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.15rem .45rem;transition:color .15s,border-color .15s,background .15s}.project-card-tag--active{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-dim)}.project-filter{display:flex;align-items:center;gap:.75rem;min-width:0;position:sticky;top:0;z-index:10;background:var(--color-bg);padding:1.25rem 4rem;margin:0 -4rem 1.5rem}@media(max-width:600px){.project-filter{padding:1rem 1.25rem;margin:0 -1.25rem 1.5rem}}.project-filter-scroll{display:flex;align-items:center;gap:.4rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex:1;min-width:0;padding-bottom:2px}.project-filter-scroll::-webkit-scrollbar{display:none}.project-filter-tag{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.35rem .75rem;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:color .15s,border-color .15s,background .15s}.project-filter-tag:hover{color:var(--color-text);border-color:var(--color-text-muted)}.project-filter-tag--active{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-dim)}.project-filter-tag--active:hover{color:var(--color-accent);border-color:var(--color-accent)}.project-filter-clear{font-family:var(--font-mono);font-size:.7rem;color:var(--color-accent);background:none;border:none;cursor:pointer;white-space:nowrap;flex-shrink:0;padding:.35rem 0;transition:opacity .15s}.project-filter-clear:hover{opacity:.75}.projects-page{min-height:100vh;background-color:var(--color-bg);padding:3rem 4rem}.projects-home-btn{font-family:var(--font-mono);font-size:.75rem;color:var(--color-accent);background:none;border:none;cursor:pointer;padding:0;margin-bottom:1.5rem;display:block;transition:opacity .15s}.projects-home-btn:hover{opacity:.75}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;width:100%}@media(max-width:600px){.projects-page{padding:2rem 1.25rem}.projects-grid{grid-template-columns:1fr}}.image-gallery{display:flex;flex-direction:column;gap:.5rem}.image-gallery-track-wrap{position:relative}.image-gallery-track{display:flex;gap:.75rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}.image-gallery-track::-webkit-scrollbar{display:none}.image-gallery-item{flex-shrink:0;width:min(100%,640px);aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-elevated);scroll-snap-align:start}.image-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.project-content{display:flex;flex-direction:column;gap:1.5rem;max-width:860px}.project-content-header{display:flex;align-items:baseline;gap:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border);margin-top:.5rem}.project-content-header-text{font-family:var(--font-mono);font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.project-content-header-date{font-family:var(--font-mono);font-size:.72rem;color:var(--color-text-muted);white-space:nowrap}.project-content-text{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-muted);line-height:1.75;margin:0}.project-detail-page{min-height:100vh;background-color:var(--color-bg);padding:3rem 4rem}.project-detail-back{margin-bottom:2rem;display:block;font-family:var(--font-mono);font-size:.75rem;color:var(--color-accent);background:none;border:none;cursor:pointer;padding:0;transition:opacity .15s}.project-detail-back:hover{opacity:.75}.project-detail-not-found{font-family:var(--font-mono);font-size:.875rem;color:var(--color-text-muted)}.project-detail-thumbnail{width:100%;max-width:860px;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-elevated);margin-bottom:2rem}.project-detail-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.project-detail-content{max-width:860px;display:flex;flex-direction:column;gap:1rem;margin-bottom:3rem}.project-detail-title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.project-detail-title{font-family:var(--font-mono);font-size:1.5rem;font-weight:600;color:var(--color-accent);margin:0}.project-detail-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent);background:var(--color-accent-dim);border:1px solid rgba(163,21,21,.4);border-radius:var(--radius-sm);padding:.2rem .5rem;white-space:nowrap}.project-detail-description{font-family:var(--font-mono);font-size:.875rem;color:var(--color-text-muted);line-height:1.7;margin:0}.project-detail-tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-detail-tag{font-family:var(--font-mono);font-size:.72rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.2rem .5rem}@media(max-width:600px){.project-detail-page{padding:2rem 1.25rem}}
