:root{--bg:#fafaf8;--bg-alt:#f3efe8;--text:#1a1714;--text-secondary:#6a6560;--accent:#b8a898;--border:#e6e2dc;--nav-height:72px}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fafaf8;background-color:var(--bg);font-family:Jost,sans-serif;font-size:1rem}body,h1,h2,h3,h4{color:#1a1714;color:var(--text);font-weight:400;margin:0}h1,h2,h3,h4{font-family:Cormorant Garamond,serif;letter-spacing:-.01em}p{color:#6a6560;color:var(--text-secondary);line-height:1.7;margin:0}a{text-decoration:none;transition:opacity .2s ease}a,a:hover{color:inherit}a:hover{opacity:.55}.main-container{background-color:#fafaf8;background-color:var(--bg);min-height:100vh}.portfolio-nav{align-items:center;background:#0000;display:flex;gap:48px;height:72px;height:var(--nav-height);justify-content:flex-start;left:0;padding:0 48px;position:fixed;right:0;top:0;transition:background .4s ease,border-bottom .4s ease,-webkit-backdrop-filter .4s ease;transition:background .4s ease,border-bottom .4s ease,backdrop-filter .4s ease;transition:background .4s ease,border-bottom .4s ease,backdrop-filter .4s ease,-webkit-backdrop-filter .4s ease;z-index:100}.portfolio-nav.scrolled{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#fafaf8eb;border-bottom:1px solid #e6e2dc;border-bottom:1px solid var(--border)}.nav-logo{color:#1a1714;color:var(--text);font-family:Cormorant Garamond,serif;font-size:1.35rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.nav-right{align-items:center;display:flex;gap:36px}.nav-link{background:none;border:none;color:#6a6560;color:var(--text-secondary);cursor:pointer;font-family:Jost,sans-serif;font-size:.72rem;font-weight:400;letter-spacing:.14em;padding:0;text-transform:uppercase;transition:color .2s ease}.nav-link:hover{color:#1a1714;color:var(--text);opacity:1}.nav-mode-btn{align-items:center;background:none;border:1px solid #e6e2dc;border:1px solid var(--border);border-radius:50%;color:#6a6560;color:var(--text-secondary);cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.nav-mode-btn:hover{border-color:#b8a898;border-color:var(--accent);color:#1a1714;color:var(--text)}.nav-mode-btn svg{height:14px;width:14px}.nav-hamburger{background:none;border:none;color:#1a1714;color:var(--text);cursor:pointer;display:none;padding:0}.mobile-drawer-header{align-items:center;border-bottom:1px solid #e6e2dc;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:24px 28px}.mobile-drawer-title{color:#1a1714;color:var(--text);font-family:Cormorant Garamond,serif;font-size:1.1rem;letter-spacing:.1em;text-transform:uppercase}.mobile-nav-item{border-bottom:1px solid #e6e2dc;border-bottom:1px solid var(--border);color:#6a6560;color:var(--text-secondary);cursor:pointer;font-family:Jost,sans-serif;font-size:.78rem;letter-spacing:.14em;padding:18px 28px;text-transform:uppercase;transition:color .2s ease}.mobile-nav-item:hover{color:#1a1714;color:var(--text)}.section-label{color:#b8a898;color:var(--accent);display:block;font-family:Jost,sans-serif;font-size:.68rem;font-weight:400;letter-spacing:.2em;margin-bottom:20px;text-transform:uppercase}.container{align-items:center;display:flex;flex-direction:column;justify-content:center;width:100%}.cursor-dot{background-color:#b8a898;background-color:var(--accent);border-radius:50%;height:6px;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition:opacity .3s ease,width .2s ease,height .2s ease,background-color .2s ease;width:6px;will-change:transform;z-index:9999}.cursor-dot.cursor-dot--active{background-color:#1a1714;background-color:var(--text);height:4px;width:4px}.cursor-ring{border:1px solid #b8a898;border:1px solid var(--accent);border-radius:50%;height:36px;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition:opacity .3s ease,width .25s ease,height .25s ease,border-color .25s ease;width:36px;will-change:transform;z-index:9998}.cursor-ring.cursor-ring--active{border-color:#1a1714;border-color:var(--text);height:52px;margin-left:-8px;margin-top:-8px;width:52px}.reveal{opacity:0;transform:translateY(32px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}.reveal.in-view{opacity:1;transform:none}.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.18s}.reveal-d3{transition-delay:.28s}.reveal-d4{transition-delay:.38s}.marquee-strip{background-color:#1a1714;background-color:var(--text);border-bottom:1px solid #e6e2dc;border-bottom:1px solid var(--border);border-top:1px solid #e6e2dc;border-top:1px solid var(--border);overflow:hidden;padding:14px 0;width:100%}.marquee-track{animation:marquee-scroll 28s linear infinite;display:flex;white-space:nowrap}.marquee-item{color:#fafaf8;color:var(--bg);font-family:Jost,sans-serif;font-size:.7rem;font-weight:400;letter-spacing:.18em;padding-right:4px;text-transform:uppercase}.marquee-dot{color:#b8a898;color:var(--accent);padding:0 20px}@keyframes marquee-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.dark-mode .marquee-strip{background-color:#f3efe8;background-color:var(--bg-alt)}.dark-mode .marquee-strip .marquee-item{color:#6a6560;color:var(--text-secondary)}@media(max-width:768px){.portfolio-nav{padding:0 24px}.nav-right{display:none}.nav-hamburger{align-items:center;display:flex}}.items-container{display:flex;flex-direction:column;margin:0 auto;max-width:1200px;padding:100px 10%;text-align:left;width:100%}@media(max-width:768px){.items-container{padding:64px 5%}}footer{background-color:var(--bg);border-top:1px solid var(--border);padding:36px 10%;transition:background-color .3s ease}.footer-inner{grid-gap:24px;align-items:center;display:grid;gap:24px;grid-template-columns:1fr auto 1fr;margin:0 auto;max-width:1200px}.footer-name{color:var(--text-secondary);font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:400;letter-spacing:.06em}.footer-links{align-items:center;display:flex;gap:18px}.footer-icon-link{align-items:center;border:none;border-radius:0;color:var(--text-secondary);display:flex;height:auto;justify-content:center;padding:0;transition:opacity .2s ease,transform .2s ease,border-color .2s ease;width:auto}.footer-icon-link svg{height:1.15rem!important;transition:transform .2s ease;width:1.15rem!important}.footer-icon-link:hover{opacity:.7}.footer-icon-link:hover svg{transform:translateY(-2px)}.footer-made{color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.68rem;font-weight:400;letter-spacing:.12em;text-align:right;text-transform:uppercase}.footer-made .footer-heart{color:#e11d48;letter-spacing:0}@media(max-width:600px){footer{padding:28px 6%}.footer-inner{gap:16px;grid-template-columns:1fr}.footer-inner,.footer-made{text-align:center}.footer-links{gap:14px}.footer-icon-link{height:auto;width:auto}.footer-source{display:none}}.hero{align-items:center;display:flex;min-height:100vh;overflow:hidden;padding:0 10%;padding-top:var(--nav-height);position:relative}.hero:before{background-color:var(--bg-alt);content:"";height:100%;position:absolute;right:0;top:0;transition:background-color .3s ease;width:46%;z-index:0}.hero-grain{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px;inset:0;opacity:.028;pointer-events:none;position:absolute;z-index:1}.hero-inner{grid-gap:60px;align-items:center;display:grid;gap:60px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;position:relative;width:100%;z-index:2}.hero-text{padding-right:40px}.hero-eyebrow{color:var(--accent);display:block;font-family:Courier New,Courier,monospace;font-size:.78rem;font-weight:400;letter-spacing:.04em;margin-bottom:20px}.hero-name{color:var(--text);font-family:Cormorant Garamond,serif;font-size:clamp(4.5rem,8.5vw,8rem);font-weight:300;letter-spacing:-.04em;line-height:.92;margin-bottom:36px}.hero-name .hero-name-last{color:var(--text-secondary);font-style:normal;font-weight:300}.hero-name .hero-cursor{animation:blink-cursor 1.1s step-end infinite;color:var(--accent);font-family:Courier New,Courier,monospace;font-style:normal;font-weight:400;vertical-align:.15em}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.hero-blurb{color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.97rem;font-weight:400;letter-spacing:.01em;line-height:1.85;margin-bottom:14px;max-width:460px}.hero-blurb--secondary{color:var(--text-secondary);margin-bottom:44px;opacity:.8}.hero-divider{background-color:var(--border);height:1px;margin-bottom:40px;width:36px}.hero-links{display:flex;flex-wrap:wrap;gap:18px}.hero-link{align-items:center;border:none;border-radius:0;display:flex;flex:0 0 auto;height:auto;justify-content:center;padding:0;position:relative;width:auto}.hero-link,.hero-link svg{color:var(--text-secondary);transition:color .2s ease}.hero-link svg{font-size:1.35rem}.hero-link:after{background-color:var(--accent);bottom:-2px;content:"";height:1px;left:0;position:absolute;transition:width .3s ease;width:0}.hero-link:hover{color:var(--text);opacity:1}.hero-link:hover:after{width:100%}.hero-link:hover svg{color:var(--text)}.hero-image-wrap{align-items:center;display:flex;justify-content:center;padding:60px 20px 60px 40px;position:relative}.hero-img-frame{position:relative;transition:transform .5s cubic-bezier(.22,1,.36,1);will-change:transform}.hero-img-frame:after,.hero-img-frame:before{content:"";height:36px;position:absolute;transition:border-color .3s ease;width:36px;z-index:2}.hero-img-frame:before{border-left:2px solid var(--accent);border-top:2px solid var(--accent);left:-10px;top:-10px}.hero-img-frame:after{border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);bottom:-10px;right:-10px}.hero-img-frame img{border-radius:2px;display:block;filter:saturate(.88) contrast(1.04);height:400px;object-fit:cover;object-position:center top;position:relative;transition:filter .5s ease;width:320px;z-index:1}.hero-img-frame img:hover{filter:saturate(1) contrast(1.02)}.hero-badge{align-items:center;background-color:var(--bg);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 24px #0000000f;display:flex;flex-direction:row;gap:10px;left:-16px;padding:10px 16px;position:absolute;top:52px;white-space:nowrap;z-index:3}.hero-badge-dot{animation:pulse-dot 2.5s ease-in-out infinite;background-color:#22c55e;border-radius:50%;flex-shrink:0;height:7px;width:7px}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 0 #22c55e73}60%{box-shadow:0 0 0 5px #22c55e00}}.hero-badge-text{display:flex;flex-direction:column;gap:2px}.hero-badge-text span:first-child{color:var(--text);font-family:Jost,sans-serif;font-size:.78rem;font-weight:500;letter-spacing:.01em}.hero-badge-text span:last-child{color:var(--text-secondary);font-family:Courier New,Courier,monospace;font-size:.63rem;font-weight:400;letter-spacing:.02em}.hero-scroll-hint{align-items:center;bottom:36px;display:flex;flex-direction:column;gap:10px;pointer-events:none;position:absolute;right:10%;z-index:2}.scroll-line{animation:scroll-pulse 2s ease-in-out infinite;background:linear-gradient(to bottom,var(--accent),#0000);display:block;height:44px;width:1px}@keyframes scroll-pulse{0%,to{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.15)}}.scroll-label{color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.6rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;transform:rotate(180deg);writing-mode:vertical-lr}@media(max-width:960px){.hero{align-items:flex-start;padding:0 6%;padding-top:var(--nav-height)}.hero:before{display:none}.hero-inner{gap:0;grid-template-columns:1fr;padding:48px 0 80px}.hero-image-wrap{justify-content:flex-start;order:-1;padding:0 0 40px}.hero-img-frame img{height:250px;width:200px}.hero-text{padding-right:0}.hero-badge,.hero-scroll-hint{display:none}.hero-links{gap:14px}.hero-link svg{font-size:1.2rem}}.expertise-section{background-color:var(--bg);padding:120px 10%}.expertise-header{margin:0 auto 72px;max-width:1200px}.expertise-header h2{color:var(--text);font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,4vw,3.6rem);font-weight:400;line-height:1.1;margin-top:12px}.expertise-grid{grid-gap:0;border-top:1px solid var(--border);display:grid;gap:0;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:1200px}.expertise-card{border-right:1px solid var(--border);overflow:hidden;padding:48px 40px 56px 0;position:relative;transition:background-color .4s ease}.expertise-card:before{background-color:var(--accent);content:"";height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,1,.36,1)}.expertise-card:hover{background-color:var(--bg-alt)}.expertise-card:hover:before{transform:scaleX(1)}.expertise-card:last-child{border-right:none;padding-left:40px;padding-right:0}.expertise-card:nth-child(2){padding-left:40px}.expertise-card .card-icon{align-items:center;color:var(--accent);display:inline-flex;height:48px;justify-content:center;margin-bottom:28px;transition:transform .35s cubic-bezier(.22,1,.36,1);width:48px}.expertise-card .card-icon svg{color:var(--accent);font-size:1.75rem}.expertise-card:hover .card-icon{transform:translateY(-3px)}.expertise-card h3{color:var(--text);font-family:Cormorant Garamond,serif;font-size:1.65rem;font-weight:400;line-height:1.2;margin-bottom:16px}.expertise-card .card-desc{color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.88rem;font-weight:300;line-height:1.8;margin-bottom:32px}.expertise-card .tag-label{color:var(--accent);display:block;font-family:Jost,sans-serif;font-size:.63rem;font-weight:400;letter-spacing:.2em;margin-bottom:14px;text-transform:uppercase}.expertise-card .tag-row{display:flex;flex-wrap:wrap;gap:8px}.expertise-card .tag{border:1px solid var(--border);border-radius:2px;color:var(--text-secondary);cursor:default;font-family:Jost,sans-serif;font-size:.7rem;font-weight:400;letter-spacing:.04em;padding:5px 12px;transition:border-color .2s ease,color .2s ease,background-color .2s ease}.expertise-card .tag:hover{background-color:var(--bg);border-color:var(--accent);color:var(--text)}@media(max-width:900px){.expertise-section{padding:80px 6%}.expertise-grid{border-top:none;grid-template-columns:1fr}.expertise-card{border-right:none;border-top:1px solid var(--border);padding:40px 0!important}}.history-section{background-color:var(--bg-alt);padding:120px 10%;transition:background-color .3s ease}.history-inner{margin:0 auto;max-width:820px}.history-header{margin-bottom:48px;text-align:center}.history-header h2{color:var(--text);font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,4vw,3.6rem);font-weight:400;line-height:1.1;margin:0;text-transform:lowercase}.tl-list{display:flex;flex-direction:column;gap:8px}.tl-row{background-color:var(--bg);border-radius:6px;box-shadow:0 1px 3px #1a17140f,0 1px 2px #1a17140a;padding:0 24px;transition:box-shadow .25s ease,transform .25s ease}.tl-row:hover{box-shadow:0 6px 18px #1a17141a,0 2px 6px #1a17140f;transform:translateY(-2px)}.tl-row--open{box-shadow:0 6px 20px #1a17141f,0 2px 6px #1a171412}.tl-trigger{align-items:flex-start;background:none;border:none;cursor:pointer;display:flex;gap:24px;padding:24px 0;text-align:left;width:100%}.tl-trigger:hover .tl-role{color:var(--accent)}.tl-trigger-right{align-items:center;display:flex;flex-shrink:0;gap:16px;margin-left:auto;padding-top:2px}.tl-date{color:var(--accent);font-size:.68rem;font-weight:400;letter-spacing:.1em;line-height:1.5;white-space:nowrap}.tl-badge,.tl-date{font-family:Jost,sans-serif;text-transform:uppercase}.tl-badge{align-items:center;background-color:var(--border);border-radius:3px;color:var(--text-secondary);display:inline-flex;flex-shrink:0;font-size:.55rem;font-weight:500;letter-spacing:.12em;padding:2px 7px}.tl-badge--incoming{background-color:#22c55e1f;color:#16a34a;outline:1px solid #22c55e4d}.tl-badge--internship{background-color:#b8a89826;color:var(--text-secondary);outline:1px solid var(--border)}.tl-badge--leadership{background-color:#99000014;color:#900;outline:1px solid #9003}.tl-badge--research{background-color:#8b5cf61a;color:#7c3aed;outline:1px solid #8b5cf633}.tl-badge--club{background-color:#2563eb14;color:#1d4ed8;outline:1px solid #2563eb33}.tl-trigger-main{align-items:flex-start;display:flex;gap:16px}.tl-logo-wrap{align-items:center;background-color:var(--bg-alt);border:1px solid var(--border);border-radius:8px;display:flex;flex-shrink:0;height:44px;justify-content:center;padding:7px;transition:border-color .2s ease;width:44px}.tl-trigger:hover .tl-logo-wrap{border-color:var(--accent)}.tl-logo{align-items:center;color:#fff;display:flex;font-family:Jost,sans-serif;font-size:.9rem;font-weight:600;height:100%;justify-content:center;letter-spacing:0;width:100%}.tl-logo--image{background-color:#0000}.tl-logo--image img{display:block;height:100%;object-fit:contain;width:100%}.tl-main-text{display:flex;flex:1 1;flex-direction:column;gap:4px;padding-top:1px}.tl-company-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.tl-company{font-family:Cormorant Garamond,serif;font-size:1.45rem;font-weight:500;line-height:1.2}.tl-company-link{color:var(--text);text-decoration:none;transition:color .2s ease}.tl-trigger:hover .tl-company-link{color:var(--accent)}.tl-role{font-size:.83rem;letter-spacing:.01em}.tl-location,.tl-role{color:var(--text-secondary);display:block;font-family:Jost,sans-serif;font-weight:400}.tl-location{font-size:.68rem;letter-spacing:.06em;opacity:.65;text-transform:uppercase}.tl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tl-tag{border:1px solid var(--border);border-radius:2px;color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.63rem;font-weight:400;letter-spacing:.03em;padding:3px 9px;transition:border-color .2s ease,color .2s ease}.tl-row--open .tl-tag{border-color:var(--accent);opacity:.7}.tl-chevron{align-items:center;border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);display:flex;flex-shrink:0;height:26px;justify-content:center;transition:border-color .25s ease,color .25s ease;width:26px}.tl-chevron svg{transition:transform .3s ease}.tl-row--open .tl-chevron{border-color:var(--accent);color:var(--accent)}.tl-row--open .tl-chevron svg{transform:rotate(180deg)}.tl-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1)}.tl-body-inner{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px;padding:20px 0 28px 60px}.tl-progression{color:#900;font-family:Jost,sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.08em;margin:0;text-transform:uppercase}.tl-bullets{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.tl-bullet{color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.93rem;font-weight:400;line-height:1.75;max-width:600px;padding-left:16px;position:relative}.tl-bullet:before{color:var(--accent);content:"—";font-size:.8rem;left:0;position:absolute}.tl-desc{color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.93rem;font-weight:400;line-height:1.85;margin:0;max-width:600px}.tl-awards{border-top:1px solid var(--border);margin-top:72px;padding-top:48px}.tl-awards-label{color:var(--accent);display:block;font-family:Jost,sans-serif;font-size:.68rem;font-weight:400;letter-spacing:.2em;margin-bottom:28px;text-transform:uppercase}.tl-awards-list{display:flex;flex-wrap:wrap;gap:16px}.tl-award{align-items:flex-start;background-color:var(--bg);border:1px solid var(--border);border-radius:4px;display:flex;flex:1 1;gap:14px;min-width:240px;padding:18px 24px;transition:border-color .2s ease}.tl-award:hover{border-color:var(--accent)}.tl-award-icon{color:var(--accent);flex-shrink:0;font-size:.55rem;margin-top:5px}.tl-award-title{color:var(--text);font-family:Jost,sans-serif;font-size:.85rem;font-weight:500;line-height:1.4;margin:0 0 4px}.tl-award-detail{color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.72rem;font-weight:400;line-height:1.5;margin:0}@media(max-width:768px){.history-section{padding:80px 6%}.tl-row{padding:0 16px}.tl-trigger{gap:12px;padding:20px 0}.tl-date{display:none}.tl-body-inner{border-top:1px solid var(--border);padding:16px 0 24px}.tl-awards-list{flex-direction:column}}.projects-section{background-color:var(--bg);overflow-x:clip;padding:120px 0 48px}.projects-header{margin-bottom:48px;padding:0 10%;text-align:center}.projects-header h2{color:var(--text);font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,4vw,3.6rem);font-weight:400;line-height:1.1;margin:0;text-transform:lowercase}.projects-nav{gap:12px;margin-top:32px}.proj-arrow-btn,.projects-nav{display:flex;justify-content:center}.proj-arrow-btn{align-items:center;background:none;border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);cursor:pointer;height:40px;transition:border-color .2s ease,color .2s ease,background-color .2s ease;width:40px}.proj-arrow-btn:hover{background-color:var(--bg-alt);border-color:var(--text);color:var(--text)}.projects-rail{-webkit-overflow-scrolling:touch;cursor:grab;display:flex;gap:20px;overflow-x:auto;padding:12px calc(50% - 170px) 40px;scrollbar-width:none;-webkit-user-select:none;user-select:none}.projects-rail::-webkit-scrollbar{display:none}.projects-rail--dragging{cursor:grabbing}.proj-rail-end{flex-shrink:0;width:1px}.proj-card{background-color:var(--bg);border:1px solid #c8c2ba;border-radius:8px;box-shadow:0 4px 12px #1a171414,0 1px 3px #1a17140d;flex-shrink:0;overflow:hidden;transition:box-shadow .25s ease,transform .25s ease,opacity .15s ease;width:340px}.proj-card:hover{box-shadow:0 12px 36px #1a171424,0 4px 10px #1a171414;transform:translateY(-4px)}.proj-card a{display:flex;flex-direction:column;height:100%;text-decoration:none}.proj-card a:hover{opacity:1}.proj-card-header{background-color:var(--card-accent);display:flex;flex-direction:column;gap:12px;min-height:160px;padding:28px 28px 24px;position:relative}.proj-card-header:after{background:linear-gradient(135deg,#ffffff0f,#0000 60%);content:"";inset:0;pointer-events:none;position:absolute}.proj-card-img{display:block;height:100%;inset:0;object-fit:cover;object-position:center top;position:absolute;transition:transform .5s cubic-bezier(.22,1,.36,1);width:100%}.proj-card:hover .proj-card-img{transform:scale(1.04)}.proj-num{bottom:20px;color:#ffffff2e;font-family:Cormorant Garamond,serif;font-size:3.2rem;font-weight:300;letter-spacing:-.04em;line-height:1;position:absolute;right:24px}.proj-category{color:#ffffffb3;font-family:Jost,sans-serif;font-size:.62rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase}.proj-traction{color:#fff;font-family:Jost,sans-serif;font-size:.85rem;font-weight:500;line-height:1.4;max-width:200px}.proj-card-body{border-top:1px solid #c8c2ba;display:flex;flex:1 1;flex-direction:column;gap:12px;padding:24px 28px 28px}.proj-title{color:var(--text);font-family:Cormorant Garamond,serif;font-size:1.45rem;font-weight:500;line-height:1.2;margin:0}.proj-desc{color:var(--text-secondary);flex:1 1;font-family:Jost,sans-serif;font-size:.84rem;font-weight:400;line-height:1.75;margin:0}.proj-footer{align-items:flex-end;display:flex;gap:12px;justify-content:space-between;margin-top:4px}.proj-tags{display:flex;flex-wrap:wrap;gap:5px}.proj-tag{letter-spacing:.03em;padding:2px 8px}.proj-badge,.proj-tag{border:1px solid var(--border);border-radius:2px;color:var(--text-secondary);font-family:Jost,sans-serif;font-size:.6rem;font-weight:400}.proj-badge{align-items:center;display:inline-flex;gap:6px;letter-spacing:.1em;margin-top:4px;padding:3px 8px;text-transform:uppercase}.proj-badge-dot{animation:badge-pulse 2.5s ease-in-out infinite;background-color:#22c55e;border-radius:50%;flex-shrink:0;height:6px;width:6px}@keyframes badge-pulse{0%,to{box-shadow:0 0 0 0 #22c55e73}60%{box-shadow:0 0 0 4px #22c55e00}}.proj-link{color:var(--accent);flex-shrink:0;font-family:Jost,sans-serif;font-size:.65rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;transition:color .2s ease;white-space:nowrap}.proj-card:hover .proj-link{color:var(--text)}@media(max-width:768px){.projects-section{padding:80px 0}.projects-header{margin-bottom:32px;padding:0 6%}.projects-rail{gap:14px;padding:12px calc(50% - 145px) 32px;scroll-padding-left:calc(50% - 145px)}.proj-card{width:290px}}
/*# sourceMappingURL=main.d4fba4b1.css.map*/