*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --cream:#EDF2E7;--ink:#2a2d2a;--faded:#587058;--accent:#4A7016;
  --rule:#ADBFA5;--card-bg:#F3F8EE;--mono:'Space Mono',monospace;--serif:'Akt',serif;
}
html{scroll-behavior:smooth;}
body{background:var(--cream);color:var(--ink);font-family:var(--mono);cursor:none;overflow-x:hidden;}

/* ── CURSOR ── */
#cursor{position:fixed;pointer-events:none;z-index:9999;font-size:20px;line-height:1;transform:translate(-50%,-50%);mix-blend-mode:difference;color:#fff;}
#cursor.clicking{transform:translate(-50%,-50%) scale(0.8);}
@media (max-width:900px){body{cursor:auto;}#cursor,.sparkle{display:none;}}

/* ── SPARKLE TRAIL (hero only) ── */
.sparkle{position:fixed;pointer-events:none;z-index:9998;font-size:14px;line-height:1;transform:translate(-50%,-50%);mix-blend-mode:multiply;transition:opacity 0.4s ease, transform 0.4s ease;opacity:1;}
.sparkle.fade{opacity:0;transform:translate(-50%,-50%) scale(0.3);}

/* ── MARQUEE — always fixed, never hidden ── */
.marquee-bar{background:var(--ink);color:var(--cream);font-size:clamp(8px,1.2vw,11px);letter-spacing:0.12em;padding:8px 0;overflow:hidden;white-space:nowrap;position:fixed;top:0;left:0;right:0;z-index:200;}
.marquee-track{display:inline-block;animation:marquee 28s linear infinite;}
.marquee-track span{padding:0 2.5rem;}
.marquee-track .sep{color:var(--accent);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ── HOME NAV — mobile only (hidden on tablet+) ── */
.nav-logo{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:0.08em;color:var(--ink);text-decoration:none;}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{font-size:11px;letter-spacing:0.1em;color:var(--faded);text-decoration:none;text-transform:uppercase;transition:color 0.2s;}
.nav-links a:hover{color:var(--accent);}
/* hide home nav on tablet and above — use side nav instead */
@media (min-width:601px){ #home-view nav{ display:none; } }

/* ── SIDE NAV — tablet+ only ── */
.side-nav{position:fixed;right:1.75rem;top:50%;transform:translateY(-50%);z-index:150;display:flex;flex-direction:column;align-items:center;gap:1.25rem;}
/* hide side nav on mobile */
@media (max-width:600px){ .side-nav{ display:none; } }

.side-nav-dot{
  width:20px;height:20px;
  border-radius:50%;
  border:1.5px solid var(--faded);
  background:transparent;
  cursor:none;
  transition:all 0.25s;
  position:relative;
  display:flex;align-items:center;justify-content:center;
}
.side-nav-dot:hover{border-color:var(--accent);}
/* inactive dot: small filled circle in the centre */
.side-nav-dot::after{
  content:'';
  display:block;
  width:6px;height:6px;
  border-radius:50%;
  background:var(--faded);
  transition:all 0.25s;
}
.side-nav-dot:hover::after{background:var(--accent);}
/* active dot: show the ✦ cursor glyph, hide the inner circle */
.side-nav-dot.active{border-color:var(--accent);background:transparent;}
.side-nav-dot.active::after{display:none;}
.side-nav-dot.active::before{
  content:'✦';
  font-size:13px;
  line-height:1;
  color:var(--accent);
  padding:0 0 0.1rem 0;
}
.side-nav-dot .dot-label{position:absolute;right:26px;top:50%;transform:translateY(-50%);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--faded);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 0.2s;}
.side-nav-dot:hover .dot-label{opacity:1;}
.side-nav-line{width:1px;height:20px;background:var(--rule);}

/* ── SECTIONS ── */
section{position:relative;}

/* ── HERO + ABOUT (merged) ── */
.hero{display:flex;flex-direction:column;justify-content:center;padding:7rem 4rem 4rem;overflow:hidden;}
.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;width:100%;}
.hero-eyebrow{font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--faded);margin-bottom:1.5rem;display:flex;align-items:center;gap:0.75rem;}
.hero-eyebrow::before{content:'';display:inline-block;width:24px;height:1px;background:var(--faded);}
.hero h1{font-family:var(--serif);font-size:clamp(2.2rem,4vw,4rem);line-height:1.05;font-weight:600;margin-bottom:2rem;}
.hero h1 em{font-style:normal;color:var(--accent);}

/* ── HERO TICKER ── */
.hero-ticker{
  display:flex;
  align-items:baseline;
  gap:0;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:0.04em;
  color:var(--faded);
  min-height:1.6em;
  margin-top:0;
}
.ticker-prefix{color:var(--accent);flex-shrink:0;}
.ticker-text{color:var(--faded);}
.ticker-cursor{
  color:var(--accent);
  animation:blink 0.8s step-end infinite;
  flex-shrink:0;
}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0;}}
@keyframes fadeInOut{0%,100%{opacity:1;}50%{opacity:0.1;}}

/* ── ABOUT BODY (right column of hero) ── */
.about-body p{font-family:var(--serif);font-size:clamp(1rem,1.5vw,1.4rem);line-height:1.7;margin-bottom:1.5rem;color:var(--ink);}

/* ── WORK — CAROUSEL ── */
.work{display:flex;flex-direction:column;justify-content:center;padding:0rem 4rem 0rem;}
.section-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--rule);}
.section-title{font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--faded);}
.section-count{font-size:10px;color:var(--rule);letter-spacing:0.1em;}

/* Carousel wrapper — clips overflow, allows horizontal scroll on touch */
.carousel-outer{position:relative;overflow:hidden;}
#cards-track{
  display:flex;
  gap:16px;
  transition:transform 0.45s cubic-bezier(0.25,0.46,0.45,0.94);
  will-change:transform;
}

/* Carousel controls */
.carousel-controls{display:flex;align-items:center;justify-content:space-between;margin-top:1.25rem;}
.carousel-dots{display:flex;gap:6px;align-items:center;}
.carousel-dot{width:6px;height:6px;border-radius:50%;border:1.5px solid var(--faded);background:transparent;cursor:none;transition:all 0.2s;}
.carousel-dot.active{background:var(--accent);border-color:var(--accent);}
.carousel-arrows{display:flex;gap:0.5rem;}
.carousel-btn{background:none;border:1px solid var(--rule);color:var(--faded);font-family:var(--mono);font-size:12px;width:32px;height:32px;cursor:none;transition:all 0.2s;display:flex;align-items:center;justify-content:center;}
.carousel-btn:hover{border-color:var(--accent);color:var(--accent);}
.carousel-btn:disabled{opacity:0.25;pointer-events:none;}

/* Cards */
.card{
  background:var(--card-bg);
  cursor:none;
  overflow:hidden;
  transition:background 0.2s;
  display:flex;
  flex-direction:column;
  flex-shrink:0;
  border:1.5px solid var(--rule);
}
.card:hover{background:#FFF8EE;}
.card:hover .card-img-inner{transform:scale(1.04);}
.card:hover .card-arrow{opacity:1;transform:translate(0,0);}
.card-img{width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--ink);}
.card-img-inner{width:100%;height:100%;background-size:cover;background-position:center;transition:transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94);}
.card-body{padding:1rem 1.25rem;flex:1;display:flex;flex-direction:column;}
.card-tag{font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faded);margin-bottom:0.4rem;}
.card-title{font-family:var(--serif);font-size:1.1rem;font-weight:400;line-height:1.2;margin-bottom:0.5rem;color:var(--ink);}
.card-desc{font-size:10px;line-height:1.7;color:var(--faded);flex:1;}
.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--rule);}
.card-year{font-size:10px;color:var(--rule);}
.card-arrow{font-size:12px;color:var(--accent);opacity:0;transform:translate(-4px,4px);transition:all 0.2s;}

/* Card widths — calculated from track width minus gaps */
/* Desktop: 3 visible. Tablet (≤900px): 2 visible. Mobile (≤600px): 1 visible */
@media (min-width:901px){
  .card{ width:calc((100% - 32px) / 3); }
}
@media (min-width:601px) and (max-width:900px){
  .card{ width:calc((100% - 16px) / 2); }
  .work{ padding:7rem 2rem 4rem; }
}
@media (max-width:600px){
  .card{ width:100%; }
  .hero{ padding-top:2rem; padding-bottom:2rem; }
  .hero-inner{ grid-template-columns:1fr; gap:2rem;padding-top: 6rem; }
  .work, .hero { padding:2rem 1.25rem 2rem; }
  .section-header{ padding-bottom:0.75rem; }
}

/* ── CONTACT ── */
.contact{display:flex;flex-direction:column;justify-content:center;padding:7rem 4rem 4rem;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;margin-top:2rem;}
.contact-left p{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.8rem);line-height:1.4;color:var(--ink);margin-bottom:2rem;}
.contact-links{display:flex;flex-direction:column;}
.contact-link{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-top:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:color 0.2s;}
.contact-link:first-child{border-top:none;}
.contact-link:last-child{border-bottom:1px solid var(--rule);}
.contact-link:hover{color:var(--accent);}
.contact-link:hover .link-arrow{transform:translate(4px,-4px);}
.link-label{font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--faded);margin-bottom:2px;}
.link-value{font-family:var(--serif);font-size:0.95rem;}
.link-arrow{font-size:14px;transition:transform 0.2s;color:var(--accent);}
.contact-right{font-family:var(--mono);font-size:clamp(5px,1.2vw,12px);line-height:1.3;color:var(--rule);user-select:none;white-space:pre;padding-top:1rem;display:flex;justify-content:center;}
@media (max-width:600px){
  .contact{ padding:2rem 1.25rem 2rem; }
  .contact-grid{ grid-template-columns:1fr; gap:2rem; }
}

/* ── FOOTER ── */
#home-view footer,#cs-view footer{border-top:1px solid var(--rule);padding:1.2rem 4rem;display:flex;justify-content:space-between;align-items:center;}
#home-view footer p,#cs-view footer p{font-size:10px;letter-spacing:0.08em;color:var(--rule);text-transform:uppercase;}
@media (max-width:600px){#home-view footer{padding:1.2rem 1.25rem;}}
.footer-status{display:flex;align-items:center;gap:0.5rem;font-size:10px;color:var(--faded);text-transform:uppercase;letter-spacing:0.08em;}
.status-dot{width:6px;height:6px;border-radius:50%;background:#4CAF50;animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}

/* ── SCROLL TO TOP ── */
.cs-scroll-top{
  position:fixed;bottom:2rem;right:2rem;z-index:150;
  width:36px;height:36px;
  background:var(--ink);color:var(--cream);
  border:none;font-family:var(--mono);font-size:14px;
  cursor:none;display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  opacity:0;pointer-events:none;
  transition:opacity 0.25s,transform 0.25s;
  transform:translateY(8px);
}
.cs-scroll-top.visible{opacity:1;pointer-events:auto;transform:translateY(0);}
.cs-scroll-top:hover{background:var(--accent);}

/* ── CASE STUDY PAGE ── */
#cs-view{background:var(--cream);min-height:100vh;opacity:0;transition:opacity 0.35s ease;}

.cs-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 2rem;
  border-bottom:1px solid var(--rule);
}
.cs-back-btn{background:none;border:none;font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--faded);cursor:none;padding:0;transition:color 0.2s;}
.cs-back-btn:hover{color:var(--accent);}

.cs-content{padding-top:4rem;display:grid;grid-template-columns:1fr min(800px,100%) 1fr;}
#cs-article-inner{grid-column:2;min-width:0;padding:0 2rem;}

/* TOC — sticky in right column, article stays viewport-centered */
.cs-toc{grid-column:3;position:sticky;top:5rem;align-self:start;padding-left:2rem;width:160px;}
.cs-toc-label{font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faded);font-family:var(--mono);margin-bottom:0.75rem;}
.cs-toc a{display:block;font-family:var(--mono);font-size:10px;letter-spacing:0.04em;color:var(--faded);text-decoration:none;padding:0.35rem 0 0.35rem 0.75rem;border-left:1.5px solid var(--rule);line-height:1.5;transition:color 0.2s,border-color 0.2s;}
.cs-toc a:hover{color:var(--accent);border-left-color:var(--accent);}
.cs-toc a.active{color:var(--ink);border-left-color:var(--accent);}
@media(max-width:1050px){.cs-toc{display:none;}}

.cs-more-work{max-width:800px;margin:0 auto;padding:4rem 2rem;}
.cs-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:2rem;}
.cs-cards-grid .card{width:100%;flex-shrink:1;}
@media (max-width:900px){.cs-cards-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){
  .cs-content{padding:2rem 0 4rem;}
  #cs-article-inner{padding:0 1.25rem;}
  .cs-more-work{padding:2rem 1.25rem;}
  .cs-cards-grid{grid-template-columns:1fr;}
  .cs-footer{padding:1.2rem 1.25rem;}
}

#cs-view footer{border-top:1px solid var(--rule);padding:1.2rem 4rem;display:flex;justify-content:space-between;align-items:center;}
@media (max-width:600px){#cs-view footer{padding:1.2rem 1.25rem;}}

/* Article header */
.article-eyebrow{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--faded);margin-bottom:1.5rem;font-family:var(--mono);}
.article-title{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.5rem);font-weight:600;line-height:1.05;color:var(--ink);margin-bottom:0.75rem;}
.article-subtitle{font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:400;color:var(--faded);line-height:1.4;margin-bottom:2.5rem;}

/* Datapoints strip */
.article-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.5rem;padding:1.75rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:3rem;}
.meta-label{font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faded);margin-bottom:0.35rem;font-family:var(--mono);}
.meta-value{font-family:var(--mono);font-size:11px;color:var(--ink);line-height:1.5;}
.meta-tags{display:flex;flex-wrap:wrap;gap:0.3rem;}
.article-tag{font-size:9px;letter-spacing:0.08em;padding:2px 7px;border:1px solid var(--rule);color:var(--faded);text-transform:uppercase;}

/* Body prose */
.article-section-heading{font-family:'Crimson Text',serif;font-size:clamp(1.4rem,2vw,1.8rem);font-weight:600;line-height:1.2;color:var(--ink);  margin-bottom: .75rem;margin-top: 1.5rem;}
.article-section-label{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faded);margin: 1.5rem 0 0.75rem;font-family:var(--mono);}
.article-section-heading + .article-section-label{margin-top:0;}
.article-body p,.article-section p{font-family:'Crimson Text',serif;font-size:clamp(1.2rem,1.3vw,1.5rem);line-height:1.5;color:var(--ink);margin-bottom:1.5rem;}

/* Info card */
.article-info-cards{display:grid;gap:1rem;margin:2.5rem 0;}
.article-info-cards.cols-2{grid-template-columns:repeat(2,1fr);}
.article-info-cards.cols-3{grid-template-columns:repeat(3,1fr);}
.article-info-cards.cols-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.article-info-cards.cols-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.article-info-cards.cols-2,.article-info-cards.cols-3,.article-info-cards.cols-4{grid-template-columns:1fr;}}
.article-info-card{background:var(--card-bg);border:1px solid var(--rule);border-radius:8px;padding:1rem;}
.article-info-heading{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin-bottom:0.75rem;}
.article-info-card p{font-family:'Crimson Text',serif;font-size:clamp(1rem,1.3vw,1rem);line-height:1.2;color:var(--ink);margin-bottom:0;}
.article-info-card-list{list-style:none;padding:0;margin:0;}.article-info-card-list li{font-family:'Crimson Text',serif;font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.5;color:var(--ink);padding-left:1rem;position:relative;}.article-info-card-list li::before{content:'·';position:absolute;left:0;color:var(--faded);}

/* Quote carousel */
.quote-carousel{margin:2.5rem 0;border-left:3px solid var(--accent);padding-left:1.5rem;}
.quote-carousel-track{}
.quote-slide{display:none;}
.quote-slide.active{display:block;animation:quoteSlideIn 0.18s ease;}
@keyframes quoteSlideIn{from{opacity:0;}to{opacity:1;}}
.article-quote{font-family: 'Crimson Text',serif;
  font-size: clamp(1rem,1.8vw,1.2rem);
  font-style: italic;
  line-height: 1.2;
  color: var(--ink);
  margin: 0;}
.article-quote-cite{display:block;font-family:var(--mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--faded);margin-top:0.75rem;}
.quote-carousel-controls{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;}
.quote-dots{display:flex;gap:6px;align-items:center;}
.quote-dot{width:6px;height:6px;border-radius:50%;border:1.5px solid var(--faded);background:transparent;cursor:none;transition:all 0.2s;}
.quote-dot.active{background:var(--accent);border-color:var(--accent);}
.quote-carousel-arrows{display:flex;gap:0.5rem;}
.quote-carousel-btn{background:none;border:1px solid var(--rule);color:var(--faded);font-family:var(--mono);font-size:12px;width:32px;height:32px;cursor:none;transition:all 0.2s;display:flex;align-items:center;justify-content:center;}
.quote-carousel-btn:hover{border-color:var(--accent);color:var(--accent);}
.quote-carousel-btn:disabled{opacity:0.25;pointer-events:none;}

/* Images */
.article-figure{margin:2.5rem 0;}
.article-image-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.5rem 0;}
.article-image-pair .article-figure{margin:0;}
@media (max-width:600px){.article-image-pair{grid-template-columns:1fr;}}
.article-figure img{width:100%;display:block;border-radius:8px;padding:4px;border:0.5px solid var(--rule);background:rgba(255,255,255,0.7);}
.article-placeholder{width:100%;aspect-ratio:16/9;background:var(--ink);border-radius:8px;padding:4px;border:0.5px solid var(--rule);display:flex;align-items:center;justify-content:center;}
.article-placeholder span{font-size:10px;letter-spacing:0.1em;color:rgba(200,194,182,0.25);text-transform:uppercase;}
.article-figure figcaption{font-size:10px;letter-spacing:0.06em;color:var(--faded);margin-top:0.6rem;line-height:1.6;font-family:var(--mono);}
.article-video{margin-left:auto;margin-right:auto;}
.video-wrapper{position:relative;cursor:pointer;}
.video-wrapper video{width:100%;display:block;border-radius:8px;border:0.5px solid var(--rule);pointer-events:none;}
.video-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:opacity 0.25s;pointer-events:none;}
.video-overlay.playing{opacity:0;}
.video-play-icon{width:56px;height:56px;border-radius:50%;background:rgba(26,41,24,0.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;}
.video-play-icon::after{content:'▶';font-size:16px;color:#fff;line-height:1;padding-left:3px;}
.article-video video{width:100%;display:block;border-radius:8px;border:0.5px solid var(--rule);}

/* Dot point list */
.article-list{list-style:none;padding:0;margin-top:0.75rem;}
.article-list li{font-family:'Crimson Text',serif;font-size:clamp(1.2rem,1.3vw,1.5rem);line-height:1.5;color:var(--ink);padding: 0 0 .5rem .75rem;position:relative;}
.article-list li::before{content:'·';position:absolute;left:0;color:var(--accent);font-size:inherit;line-height: inherit;}

/* Outcomes */
.article-outcomes ul{list-style:none;padding:0;margin-top:0.75rem;}
.article-outcomes li{font-family:'Crimson Text',serif;font-size:clamp(1.05rem,1.3vw,1.2rem);line-height:1.7;color:var(--ink);padding:0.75rem 0;border-bottom:1px solid var(--rule);display:flex;align-items:baseline;gap:0.75rem;}
.article-outcomes li::before{content:'✦';font-size:inherit;line-height: inherit;color:var(--accent);flex-shrink:0;}

/* ── SCROLL REVEAL ── */
.reveal{opacity:0;transform:translateY(22px);transition:opacity 0.55s cubic-bezier(0.25,0.46,0.45,0.94),transform 0.55s cubic-bezier(0.25,0.46,0.45,0.94);}
.reveal.in-view{opacity:1;transform:translateY(0);}

/* ── LANDING PAGE ── */
body.landing-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;}
.page{max-width:640px;margin:0 auto;padding-top:2rem;}
.eyebrow{font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--faded);margin-bottom:1.5rem;display:flex;align-items:center;gap:0.75rem;}
.eyebrow::before{content:'';display:inline-block;width:24px;height:1px;background:var(--faded);}
.page h1{font-family:var(--serif);font-size:clamp(2.2rem,5vw,4rem);font-weight:600;line-height:1.05;margin-bottom:2rem;color:var(--ink);}
.page h1 em{font-style:normal;color:var(--accent);}
.body{font-family:var(--serif);font-size:clamp(1rem,1.5vw,1.3rem);line-height:1.7;color:var(--faded);margin-bottom:2.5rem;}
.links{display:flex;flex-direction:column;border-top:1px solid var(--rule);}
.link{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:color 0.2s;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;}
.link:hover{color:var(--accent);}
.link:hover .link-arrow{transform:translate(4px,-4px);}
.portfolio-link{display:inline-flex;align-items:center;gap:0.5rem;margin-top:2.5rem;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--faded);text-decoration:none;transition:color 0.2s;}
.portfolio-link:hover{color:var(--accent);}
.portfolio-link::after{content:'→';transition:transform 0.2s;}
.portfolio-link:hover::after{transform:translateX(4px);}
body.landing-page footer{margin-top:auto;padding-top:4rem;font-size:10px;letter-spacing:0.08em;color:var(--rule);text-transform:uppercase;}

