/* ETHAN ALDRED — ethanaldred.com
   Syne + Fira Code + DM Sans  |  Warm amber  |  Dark-first
   ──────────────────────────────────────────────────────── */

/* ─── TOKENS ──────────────────────────────────────────────────── */
:root {
    --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;
    --s7:40px;--s8:48px;--s9:64px;--s10:80px;--s11:96px;--s12:128px;

    --text-xs:.75rem;--text-sm:.8125rem;--text-base:1rem;
    --text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;
    --text-2xl:2rem;--text-3xl:2.75rem;--text-4xl:3.5rem;
    --leading-tight:1.1;--leading-snug:1.3;
    --leading-normal:1.65;--leading-relaxed:1.8;

    /* Light theme (base — JS applies dark by default) */
    --bg:#f6f3ee;
    --bg-card:#fefcf8;
    --bg-subtle:#edeae3;
    --border:#dedad2;
    --border-hover:#c5bdb2;
    --text:#5c5650;
    --text-muted:#9a9088;
    --text-strong:#191612;
    --accent:#b07a20;
    --accent-hover:#8e6218;
    --accent-subtle:rgba(176,122,32,.07);
    --accent-border:rgba(176,122,32,.2);
    --status-positive:#3d7a4e;
    --nav-bg:rgba(246,243,238,.93);
    --shadow-sm:0 1px 3px rgba(0,0,0,.04);
    --shadow-hover:0 10px 32px rgba(0,0,0,.1);

    /* Tag category colours */
    --tag-cloud-border:rgba(70,100,160,.14);--tag-cloud-text:#5070a0;
    --tag-sec-border:rgba(160,78,58,.14);--tag-sec-text:#a05840;
    --tag-net-border:rgba(48,138,108,.14);--tag-net-text:#3a8870;
    --tag-plat-border:rgba(118,98,68,.14);--tag-plat-text:#786850;

    --font-display:'Syne',system-ui,sans-serif;
    --font-mono:'Fira Code','Consolas',monospace;
    --font-sans:'DM Sans',-apple-system,sans-serif;

    --radius:5px;--radius-lg:10px;
    --transition:.18s ease;
    --transition-slow:.4s cubic-bezier(.4,0,.2,1);
    --max-width:960px;
}

[data-theme="dark"] {
    color-scheme: dark;
    --bg:#0d0b08;
    --bg-card:#131108;
    --bg-subtle:#1a1813;
    --border:#252018;
    --border-hover:#38322a;
    --text:#9e9682;
    --text-muted:#52493e;
    --text-strong:#ece7dc;
    --accent:#d4a843;
    --accent-hover:#e8bb55;
    --accent-subtle:rgba(212,168,67,.07);
    --accent-border:rgba(212,168,67,.22);
    --status-positive:#5f9e6e;
    --nav-bg:rgba(13,11,8,.92);
    --shadow-sm:0 1px 3px rgba(0,0,0,.5);
    --shadow-hover:0 14px 48px rgba(0,0,0,.65);
    --tag-cloud-border:rgba(95,140,200,.2);--tag-cloud-text:#7a9ec8;
    --tag-sec-border:rgba(200,95,75,.2);--tag-sec-text:#c07060;
    --tag-net-border:rgba(68,168,128,.2);--tag-net-text:#58ae8e;
    --tag-plat-border:rgba(148,125,88,.2);--tag-plat-text:#9a8868;
}

/* ─── RESET ───────────────────────────────────────────────────── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--border) var(--bg);overflow-y:scroll}
body{
    font-family:var(--font-sans);font-size:var(--text-base);
    background:var(--bg);color:var(--text);line-height:var(--leading-normal);
    overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column;
    transition:background var(--transition-slow),color var(--transition-slow);
    -webkit-font-smoothing:antialiased;
}
main{flex:1}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
:focus:not(:focus-visible){outline:none}
.pt-0{padding-top:0!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-link{
    position:fixed;top:-80px;left:var(--s4);z-index:200;
    background:var(--text-strong);color:var(--bg);
    padding:var(--s3) var(--s5);border-radius:0 0 var(--radius) var(--radius);
    font-size:var(--text-sm);font-weight:600;white-space:nowrap;transition:top var(--transition);
}
.skip-link:focus{top:0}

/* ─── NAV ─────────────────────────────────────────────────────── */
.nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:center;
    height:60px;padding:0 var(--s8);
    backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
    background:var(--nav-bg);
    border-bottom:1px solid var(--border);
}
.nav-logo{
    position:absolute;left:var(--s8);
    font-family:var(--font-display);font-size:.875rem;font-weight:800;
    color:var(--text-strong);text-transform:uppercase;letter-spacing:1px;
}
.nav-links{display:flex;gap:var(--s7)}
.nav-link{
    font-family:var(--font-mono);font-size:.7rem;
    color:var(--text-muted);letter-spacing:.3px;
    transition:color var(--transition);
}
.nav-link:hover{color:var(--text-strong)}
.nav-link.active{color:var(--accent)}
.nav-toggle{
    display:none;flex-direction:column;gap:5px;
    background:none;border:none;cursor:pointer;padding:var(--s2);
    position:absolute;right:var(--s8);
}
.nav-toggle span{display:block;width:20px;height:1.5px;background:var(--text-strong);transition:var(--transition);border-radius:1px}
.nav-toggle.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.nav.menu-open{border-bottom-color:transparent}

.mobile-menu{
    display:none;position:fixed;top:60px;left:0;right:0;z-index:99;
    background:var(--nav-bg);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
    border-bottom:1px solid var(--border);flex-direction:column;
    padding:var(--s4) var(--s6);
    overscroll-behavior:contain;
}
.mobile-menu.open{display:flex}
.mobile-link{
    font-family:var(--font-mono);font-size:var(--text-sm);
    padding:var(--s4) 0;color:var(--text-muted);
    border-bottom:1px solid var(--border);transition:color var(--transition);
}
.mobile-link:last-child{border-bottom:none}
.mobile-link:hover{color:var(--text-strong)}
.mobile-link.active{color:var(--accent);border-bottom-color:transparent}

/* ─── THEME TOGGLE ────────────────────────────────────────────── */
.theme-switch{
    position:fixed;top:18px;right:var(--s6);z-index:101;
    display:flex;align-items:center;gap:var(--s2);
    cursor:pointer;user-select:none;background:none;border:none;padding:0;font:inherit;
}
.theme-label{
    font-family:var(--font-mono);font-size:.58rem;font-weight:500;
    letter-spacing:1px;color:var(--text-muted);text-transform:uppercase;
}
.theme-label:first-child{opacity:.3}
.theme-label:last-child{opacity:1}
[data-theme="dark"] .theme-label:first-child{opacity:1}
[data-theme="dark"] .theme-label:last-child{opacity:.3}
.theme-track{width:34px;height:18px;background:var(--border);border-radius:50px;position:relative;transition:background var(--transition)}
.theme-thumb{
    position:absolute;top:3px;left:16px;width:12px;height:12px;
    border-radius:50%;background:var(--accent);
    transition:left var(--transition-slow),background var(--transition-slow);
}
[data-theme="dark"] .theme-thumb{left:3px}

/* ─── HERO ────────────────────────────────────────────────────── */
.hero-stacked{
    display:flex;flex-direction:column;align-items:flex-start;
    padding:calc(var(--s12) + var(--s6)) var(--s8) var(--s9);
    max-width:var(--max-width);margin:0 auto;width:100%;gap:var(--s5);
}

.intro-card{
    width:100%;max-width:680px;
    opacity:0;animation:fadeUp .7s ease forwards .1s;
}

.intro-status{
    font-family:var(--font-mono);font-size:.7rem;
    color:var(--status-positive);display:inline-flex;align-items:center;
    gap:var(--s2);letter-spacing:.4px;margin-bottom:var(--s5);
}
.intro-status-dot{
    width:6px;height:6px;border-radius:50%;background:var(--status-positive);
    animation:pulse 2.5s ease-in-out infinite;flex-shrink:0;
}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}

.intro-name{
    font-family:var(--font-display);
    font-size:clamp(2.8rem,10vw,6.5rem);
    font-weight:800;
    color:var(--text-strong);
    line-height:var(--leading-tight);
    letter-spacing:-3px;
    text-transform:uppercase;
    margin-bottom:var(--s5);
    text-wrap:balance;
}

.intro-greeting{
    font-size:var(--text-lg);font-weight:400;
    color:var(--text);margin-bottom:var(--s3);
    line-height:var(--leading-snug);
}
.intro-greeting::after{
    content:'_';
    color:var(--accent);
    font-family:var(--font-mono);
    font-size:var(--text-base);
    margin-left:2px;
    animation:blink 1.1s ease-in-out infinite;
}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}

.intro-greeting-hi{
    font-family:var(--font-mono);font-size:.875rem;
    color:var(--accent);font-weight:500;letter-spacing:.2px;
}

.intro-label{
    font-family:var(--font-mono);font-size:.7rem;
    color:var(--text-muted);letter-spacing:1.5px;
    text-transform:uppercase;margin-top:var(--s4);
}

/* ─── BUTTONS ─────────────────────────────────────────────────── */
.hero-cta{display:flex;gap:var(--s3);opacity:0;animation:fadeUp .5s ease forwards .45s}
.hero-cta .btn{min-width:148px}
.btn{
    font-family:var(--font-mono);font-size:.75rem;font-weight:500;
    padding:var(--s3) var(--s6);border-radius:var(--radius);
    border:1px solid transparent;cursor:pointer;
    transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition),opacity var(--transition);
    display:inline-block;text-align:center;letter-spacing:.4px;
    touch-action:manipulation;
}
.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px)}
.btn-secondary{background:transparent;color:var(--text);border-color:var(--border)}
.btn-secondary:hover{border-color:var(--border-hover);color:var(--text-strong);transform:translateY(-1px)}

.divider{width:100%;height:1px;background:linear-gradient(to right,var(--border),transparent);opacity:0;animation:fadeIn .6s ease forwards .55s;margin:var(--s2) 0}

/* ─── ABOUT ───────────────────────────────────────────────────── */
.about-below{
    width:100%;
    display:grid;
    grid-template-columns:96px 1fr;
    grid-template-areas:"label content" ". interests";
    column-gap:var(--s9);row-gap:var(--s6);
    opacity:0;animation:fadeUp .6s ease forwards .7s;
}
.about-below .section-header{
    grid-area:label;
    margin-bottom:0;
    padding-top:4px;
}
.about-text{grid-area:content}
.about-text p{
    margin-bottom:var(--s4);color:var(--text);
    font-size:var(--text-md);line-height:var(--leading-relaxed);
}
.about-text p:last-child{margin-bottom:0}
.about-interests{grid-area:interests}
.about-interests h3{
    font-family:var(--font-mono);font-size:.65rem;
    color:var(--text-muted);text-transform:uppercase;
    letter-spacing:1.5px;margin-bottom:var(--s4);
}
.interest-tags{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--s2)}
.tag{
    font-family:var(--font-mono);font-size:.68rem;
    padding:3px var(--s3);border:1px solid var(--border);
    border-radius:4px;color:var(--text-muted);
    letter-spacing:.3px;
}

/* ─── SECTIONS ────────────────────────────────────────────────── */
.section{max-width:var(--max-width);margin:0 auto;padding:var(--s10) var(--s8)}
.section-header{margin-bottom:var(--s8)}
.section-header.centered{text-align:center}
.section-label{
    font-family:var(--font-mono);font-size:.68rem;
    color:var(--accent);margin-bottom:var(--s3);
    letter-spacing:.6px;text-transform:uppercase;
}
.section-header h2{
    font-family:var(--font-display);font-size:var(--text-2xl);
    font-weight:800;color:var(--text-strong);
    line-height:var(--leading-snug);letter-spacing:-.8px;
    text-transform:uppercase;
}

/* ─── PAGE HERO ───────────────────────────────────────────────── */
.page-hero{padding:var(--s12) var(--s8) var(--s8);max-width:var(--max-width);margin:0 auto}
.page-label{
    font-family:var(--font-mono);font-size:.68rem;
    color:var(--accent);margin-bottom:var(--s3);
    text-transform:uppercase;letter-spacing:1px;
    opacity:0;animation:fadeUp .4s ease forwards .1s;
}
.page-hero h1{
    font-family:var(--font-display);
    font-size:clamp(2rem,5.5vw,4rem);
    font-weight:800;color:var(--text-strong);
    margin-bottom:var(--s4);line-height:var(--leading-tight);
    letter-spacing:-1.5px;text-transform:uppercase;
    text-wrap:balance;
    opacity:0;animation:fadeUp .5s ease forwards .2s;
}
.page-hero .subtitle{
    font-family:var(--font-sans);
    font-size:var(--text-md);color:var(--text-muted);
    max-width:480px;line-height:var(--leading-normal);
    opacity:0;animation:fadeUp .4s ease forwards .3s;
}

/* ─── PROJECT CARDS ───────────────────────────────────────────── */
.project-card{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius-lg);padding:var(--s6);
    margin-bottom:var(--s4);
    transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);
}
.project-card:hover{
    border-color:var(--border-hover);
    box-shadow:var(--shadow-hover);
    transform:translateY(-2px);
}
.project-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s4)}
.project-status{
    display:inline-flex;align-items:center;gap:var(--s2);
    font-family:var(--font-mono);font-size:.63rem;font-weight:500;
    text-transform:uppercase;letter-spacing:.5px;
}
.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.status-active .status-dot{background:var(--status-positive)}.status-active{color:var(--status-positive)}
.status-complete .status-dot{background:var(--accent)}.status-complete{color:var(--accent)}
.status-planned .status-dot{background:var(--text-muted)}.status-planned{color:var(--text-muted)}
.project-card h3{
    font-family:var(--font-display);font-size:var(--text-xl);
    font-weight:700;color:var(--text-strong);
    margin-bottom:var(--s3);line-height:var(--leading-snug);
    letter-spacing:-.3px;
}
.project-desc{
    color:var(--text);font-size:var(--text-base);
    margin-bottom:var(--s5);line-height:var(--leading-normal);overflow-wrap:break-word;
}
.project-tags{display:flex;flex-wrap:wrap;gap:var(--s2)}
.project-tag{
    font-family:var(--font-mono);font-size:.63rem;
    padding:2px var(--s3);border:1px solid var(--border);
    border-radius:4px;color:var(--text-muted);letter-spacing:.2px;
}
.project-tag.tag-cloud{border-color:var(--tag-cloud-border);color:var(--tag-cloud-text)}
.project-tag.tag-sec{border-color:var(--tag-sec-border);color:var(--tag-sec-text)}
.project-tag.tag-net{border-color:var(--tag-net-border);color:var(--tag-net-text)}
.project-tag.tag-plat{border-color:var(--tag-plat-border);color:var(--tag-plat-text)}
.project-link{
    display:inline-block;margin-top:var(--s5);
    font-family:var(--font-mono);font-size:.72rem;
    color:var(--accent);transition:color var(--transition);letter-spacing:.2px;
}
.project-link:hover{color:var(--accent-hover)}
.github-cta{
    text-align:center;padding:var(--s8) var(--s6);margin-top:var(--s4);
    border:1px dashed var(--border);border-radius:var(--radius-lg);
}
.github-cta p{
    font-family:var(--font-mono);font-size:.75rem;
    color:var(--text-muted);margin-bottom:var(--s5);
}

/* ─── CONTACT ─────────────────────────────────────────────────── */
.contact-list{max-width:560px}
.contact-row{
    display:flex;align-items:center;justify-content:space-between;
    gap:var(--s5);padding:var(--s6) 0;
    border-bottom:1px solid var(--border);
    transition:color var(--transition);color:var(--text);
}
.contact-list .contact-row:first-child{border-top:1px solid var(--border)}
.contact-method{
    font-family:var(--font-mono);font-size:.68rem;
    color:var(--text-muted);text-transform:uppercase;
    letter-spacing:1.2px;flex-shrink:0;
}
.contact-value{
    font-size:var(--text-base);color:var(--accent);
    display:inline-flex;align-items:center;gap:var(--s2);
    transition:color var(--transition);overflow-wrap:break-word;min-width:0;
}
.contact-row:hover .contact-value{color:var(--accent-hover)}
.contact-arrow{flex-shrink:0;transition:transform var(--transition);display:inline-block}
.contact-row:hover .contact-arrow{transform:translateX(3px)}
.empty-state-hint{text-align:center;margin-top:var(--s8);font-size:var(--text-sm);color:var(--text-muted)}

/* ─── COMING SOON ─────────────────────────────────────────────── */
.coming-soon-section{
    display:flex;flex-direction:column;align-items:center;
    justify-content:center;min-height:75vh;
    text-align:center;padding:var(--s12) var(--s6) var(--s8);
}
.coming-soon-section .page-label{opacity:1;animation:none}
.coming-soon-title{
    font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);
    font-weight:800;color:var(--text-strong);
    margin-bottom:var(--s4);letter-spacing:-1.5px;text-transform:uppercase;
    text-wrap:balance;
}
.coming-soon-text{
    font-size:var(--text-base);color:var(--text-muted);
    max-width:440px;line-height:var(--leading-relaxed);margin-bottom:var(--s7);
}

/* ─── NAV BADGE ───────────────────────────────────────────────── */
.nav-badge{
    font-family:var(--font-mono);font-size:.53rem;
    color:var(--accent);border:1px solid var(--accent-border);
    border-radius:4px;padding:1px 4px;
    vertical-align:middle;margin-left:var(--s1);opacity:.7;
    letter-spacing:.3px;text-transform:uppercase;
}

/* ─── TABS ────────────────────────────────────────────────────── */
.tab-count{
    font-family:var(--font-mono);font-size:.63rem;
    color:inherit;opacity:.5;margin-left:var(--s2);
}
.tabs{display:flex;gap:var(--s2);margin-bottom:var(--s7)}
.tab-btn{
    font-family:var(--font-mono);font-size:.72rem;font-weight:500;
    padding:var(--s3) var(--s5);border:1px solid var(--border);
    border-radius:var(--radius);background:transparent;
    color:var(--text-muted);cursor:pointer;letter-spacing:.3px;
    transition:color var(--transition),border-color var(--transition),background var(--transition);
}
.tab-btn:hover{color:var(--text-strong)}
.tab-btn.active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-subtle)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ─── FOOTER ──────────────────────────────────────────────────── */
.footer{border-top:1px solid var(--border);padding:var(--s5) var(--s8);background:var(--bg)}
.footer-inner{
    max-width:var(--max-width);margin:0 auto;
    display:flex;justify-content:center;align-items:center;gap:var(--s5);flex-wrap:wrap;
}
.footer-name{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted)}
.footer-links{display:flex;gap:var(--s5)}
.footer-link{
    font-family:var(--font-mono);font-size:.68rem;
    color:var(--text-muted);transition:color var(--transition);
}
.footer-link:hover{color:var(--accent)}

/* ─── ANIMATIONS ──────────────────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.fade-in{opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .55s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
.fade-in:nth-child(2){transition-delay:.08s}
.fade-in:nth-child(3){transition-delay:.16s}
.fade-in:nth-child(4){transition-delay:.24s}
.fade-in:nth-child(5){transition-delay:.32s}

/* ─── RESPONSIVE ──────────────────────────────────────────────── */
@media(pointer:coarse){
    .nav-link,.mobile-link,.btn,.footer-link,.project-link,.contact-row{min-height:44px;display:flex;align-items:center}
    .nav-toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center}
    .project-card:hover{transform:none;box-shadow:var(--shadow-sm)}
    .btn:hover{transform:none}
    .intro-greeting::after{display:none}
}
@media(max-width:900px){
    .nav-links{display:none}
    .nav-toggle{display:flex;right:var(--s5)}
    .nav{padding:0 var(--s5)}
    .nav-logo{left:var(--s5)}
    .theme-switch{right:calc(var(--s5) + 48px);top:18px}
    .theme-label{display:none}
    .hero-stacked{padding:calc(var(--s11) + var(--s5)) var(--s5) var(--s8);gap:var(--s6)}
    .about-below{
        grid-template-columns:1fr;
        grid-template-areas:"label" "content" "interests";
        column-gap:0;row-gap:var(--s4);
    }
    .page-hero{padding:var(--s11) var(--s5) var(--s6)}
    .section{padding-left:var(--s5);padding-right:var(--s5)}
    .section-header h2{font-size:var(--text-xl)}
    .project-card-header{flex-direction:column;align-items:flex-start;gap:var(--s2)}
    .footer{padding:var(--s4) var(--s5)}
}
@media(max-width:600px){
    .hero-cta{flex-direction:column;width:100%}
    .hero-cta .btn{width:100%}
    .contact-row{flex-direction:column;align-items:flex-start;gap:var(--s1)}
    .intro-name{letter-spacing:-1.5px}
}
@media(max-width:500px){
    .hero-stacked{padding:var(--s10) var(--s4) var(--s7);gap:var(--s5)}
    .intro-name{font-size:clamp(2.4rem,13vw,3.5rem);letter-spacing:-1px}
    .hero-cta{max-width:100%}
    .btn{width:100%;padding:var(--s4) var(--s5)}
    .section,.page-hero{padding-left:var(--s4);padding-right:var(--s4)}
    .project-card{padding:var(--s5)}
    .project-card h3{font-size:var(--text-lg)}
    .about-text p{font-size:var(--text-base)}
    .footer{padding:var(--s4)}
}
@media(max-height:500px)and(orientation:landscape){
    .hero-stacked{padding-top:var(--s9);padding-bottom:var(--s5);gap:var(--s4)}
    .coming-soon-section{min-height:auto;padding-top:var(--s9)}
}
@supports(padding-top:env(safe-area-inset-top)){
    .nav{padding-top:env(safe-area-inset-top);height:calc(60px + env(safe-area-inset-top))}
    .mobile-menu{top:calc(60px + env(safe-area-inset-top))}
}
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
    .fade-in,.intro-card,.about-below,.hero-cta,.divider,.page-label,.page-hero h1,.page-hero .subtitle{opacity:1;transform:none}
    .intro-greeting::after{animation:none;opacity:1}
    html{scroll-behavior:auto}
}
@media(forced-colors:active){
    .btn-primary,.btn-secondary{border:2px solid ButtonText}
    .intro-status-dot,.status-dot{forced-color-adjust:none}
    .tag,.project-tag{border:1px solid ButtonText}
}
@media print{
    .nav,.theme-switch,.mobile-menu,.hero-cta,.github-cta{display:none!important}
    body{background:#fff;color:#000;font-size:11pt}
    .hero-stacked,.section,.page-hero{padding:1rem 0}
    .project-card{box-shadow:none;border:1px solid #ccc;page-break-inside:avoid}
    a[href^="http"]::after{content:" (" attr(href) ")";font-size:.75em;color:#666}
    .btn::after,.intro-greeting::after{content:none}
}
