/* The same content, with a quiet daylight palette and a more expressive night palette. */
:root{color-scheme:light}
.project-meta{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-top:8px}
.project-meta .project-kind{margin:0}
.project-year{font-size:12px;color:#60728a;font-variant-numeric:tabular-nums;flex-shrink:0;letter-spacing:.5px}
.theme-toggle{position:fixed;z-index:30;left:24px;bottom:24px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #dce6f1;border-radius:16px;background:#ffffffdc;color:#365a82;box-shadow:0 6px 24px #163b6710;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background .25s,border-color .25s,box-shadow .25s}
.theme-toggle>svg{width:22px;height:22px;stroke-width:1.45;grid-area:1/1}
.theme-toggle .theme-sun{display:none}
.theme-spark{stroke:#6a8de4}
.theme-tooltip{position:absolute;left:calc(100% + 12px);padding:5px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:12px;line-height:1.6;white-space:nowrap;opacity:0;pointer-events:none;transform:translateX(-4px);transition:opacity .2s,transform .2s}
.theme-toggle:focus-visible .theme-tooltip{opacity:1;transform:none}
@media(hover:hover){.theme-toggle:hover{border-color:#a7c5ed;box-shadow:0 6px 25px #164a7d1c}.theme-toggle:hover .theme-tooltip{opacity:1;transform:none}}
@media(max-width:600px){.theme-toggle{left:auto;right:64px;top:9px;bottom:auto;width:42px;height:42px;border-radius:12px;box-shadow:none}.theme-toggle>svg{width:19px;height:19px}.theme-tooltip{left:auto;right:0;top:calc(100% + 10px);transform:translateY(-4px)}}

:root[data-theme=dark]{color-scheme:dark;--navy:#83e8f4;--blue:#79def1;--ink:#edf4ff;--text:#b8c5d9;--muted:#94a6bf;--line:#243146;--surface:#101a2a;--violet:#bcabff;--panel:#101927;--raised:#18263a}
:root[data-theme=dark] body{background-color:#080d17;background-image:radial-gradient(ellipse at 96% 0%,#7056dc17,transparent 45%),radial-gradient(ellipse at 0% 90%,#16b6d40a,transparent 45%);background-attachment:fixed}
:root[data-theme=dark] ::selection{background:#20465b;color:#effcff}
:root[data-theme=dark] :is(a,button,[tabindex]):focus-visible{outline-color:#83e8f4}
:root[data-theme=dark] .site-header{background:#090f1bd9;border-bottom-color:#26354b}
:root[data-theme=dark] .nav-link{color:#a8b8cf}
:root[data-theme=dark] :is(.nav-link.active,.nav-link:hover){background:#182d3c;color:var(--blue)}
:root[data-theme=dark] .header-resume span{background:#1a293d;color:#b4c4dc}
:root[data-theme=dark] .mobile-menu:not([hidden]){background:#0c1422f5}
:root[data-theme=dark] .mobile-menu a{color:#bdd0e8}
:root[data-theme=dark] .portrait{box-shadow:0 0 0 1px #88c9f533,0 10px 36px #0005}
:root[data-theme=dark] .profile-links a{color:#b5c7e0}
:root[data-theme=dark] .profile-links a:hover{color:var(--blue);background:#162839}
:root[data-theme=dark] .profile-links svg{color:#8aa9c8}
:root[data-theme=dark] .intro-copy strong{color:var(--ink)}
:root[data-theme=dark] :is(.profile-study,.location,.file-label,.section-kicker,.project-kind,.preview-chrome,.preview-type,.preview-footer,.preview-switch button,.education-row .education-detail,.education-row .education-date,.education-date>span,.footer-bottom,#dialog-eyebrow,.project-facts span,.live-address,.live-options button,.detail-metrics span,.detail-pipeline span,.detail-pipeline p,.frame-loading,.experience-date,.experience-context,.site-footer>p,.detail-note,.screenshot-header,.screenshot-position,.screenshot-options button>span){color:var(--muted)}
:root[data-theme=dark] :is(.project-year,.section-kicker){color:var(--violet);font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
:root[data-theme=dark] .availability{color:#a5bed7}
:root[data-theme=dark] .tags>span{border-color:#34405c;color:#b9b6dd;background:#191b3038}
:root[data-theme=dark] .details-button>span{border-color:#426c7d}
:root[data-theme=dark] .details-button:hover>span{background:#193746}
:root[data-theme=dark] .project-preview{background:linear-gradient(135deg,#121d2d,#151828);border-color:#30405a;box-shadow:0 8px 26px #0002}
:root[data-theme=dark] :is(.project-preview:hover,.project-row:has(.details-button:hover) .project-preview){border-color:#568196;box-shadow:0 18px 46px -20px #37c4e33b,0 0 0 1px #ad9aff0a}
:root[data-theme=dark] .preview-chrome{background:#111b2be6;border-bottom-color:var(--line)}
:root[data-theme=dark] .window-dots i{background:#4d6580}
:root[data-theme=dark] .window-dots i:first-child{background:#73cddb}
:root[data-theme=dark] .window-dots i:last-child{background:#9c8ad9}
:root[data-theme=dark] :is(.preview-image,.cardio-image.atlas-selected,.geography-image,.wholeviz-image){background:#152033}
:root[data-theme=dark] .preview-hover{background:#101b2eee;border-color:#50708a;box-shadow:0 5px 24px #0005;color:#c0f4fc}
:root[data-theme=dark] .expand-icon{border-color:#9fdbea}
:root[data-theme=dark] .expand-icon:after{background:#101b2e}
:root[data-theme=dark] .preview-footer{background:#111a29;border-top-color:var(--line)}
:root[data-theme=dark] .preview-footer>button{color:var(--blue)}
:root[data-theme=dark] .live-indicator{background:#81e5ed;box-shadow:0 0 0 3px #22404d,0 0 10px #56d6e033}
:root[data-theme=dark] .preview-switch{background:#0b1320;border-color:#2b3b54}
:root[data-theme=dark] .preview-switch button[aria-pressed=true]{background:#25324b;color:#dfd6ff;box-shadow:0 1px 5px #0003}
:root[data-theme=dark] :is(.experience-row h3>span,.education-row .honours){color:#b4a9e4}
:root[data-theme=dark] :is(.footer-bottom>a,.copy-email){color:#a5bdd7}
:root[data-theme=dark] .copy-email:hover{background:#192e40;color:var(--blue)}
:root[data-theme=dark] .skip-link{background:var(--blue);color:#071723}

/* App chrome follows the theme; source images and external websites retain their colors. */
:root[data-theme=dark] .project-dialog{background:#0f1726f5;border-color:#344963;box-shadow:0 40px 140px #0009,0 0 0 1px #73cde00a}
:root[data-theme=dark] .project-dialog::backdrop{background:#010511b3}
:root[data-theme=dark] :is(.dialog-mark,.close-dialog,.dialog-tabs){background:#182439;border-color:#2e405a}
:root[data-theme=dark] .close-dialog{color:#b2c8e2}
:root[data-theme=dark] .close-dialog:hover{background:#263a53}
:root[data-theme=dark] .dialog-toolbar{border-color:var(--line)}
:root[data-theme=dark] .dialog-tabs button{color:#a8b9d2}
:root[data-theme=dark] .dialog-tabs button[aria-selected=true]{background:#2b3b54;color:#cdf5ff;box-shadow:0 2px 8px #0003}
:root[data-theme=dark] .open-website{color:var(--blue)}
:root[data-theme=dark] :is(.live-panel,.details-panel,.frame-loading){background:#0d1624}
:root[data-theme=dark] .details-panel{scrollbar-color:#49617f transparent}
:root[data-theme=dark] .live-address{background:#111e30}
:root[data-theme=dark] .live-options button[aria-pressed=true]{background:#22354a;border-color:#456077;color:#c4f4fd}
:root[data-theme=dark] .loader{border-color:#2d4059;border-top-color:var(--blue)}
:root[data-theme=dark] .details-intro{color:#d0dbef}
:root[data-theme=dark] .project-facts>div{color:#bacbe2}
:root[data-theme=dark] .detail-note{border-left-color:#70639f}
:root[data-theme=dark] .detail-links a{background:#182c3d;border-color:#344d63;color:#a7e9f4}
:root[data-theme=dark] .detail-links a:hover{background:#243e54}
:root[data-theme=dark] .detail-links a:first-child{background:#91e5ee;border-color:#91e5ee;color:#102332}
:root[data-theme=dark] .detail-pipeline>div{background:#141f32;border-color:#31425d}
:root[data-theme=dark] .detail-pipeline h4{color:#b7acf3}
:root[data-theme=dark] .screenshot-viewer{background:#0a1321}
:root[data-theme=dark] :is(.screenshot-header,.screenshot-bottom){background:#111c2d}
:root[data-theme=dark] :is(.screenshot-header button,.screenshot-navigation>button){background:#17283c;border-color:#344b65;color:var(--blue)}
:root[data-theme=dark] .screenshot-navigation>button:hover{background:#253e54}
:root[data-theme=dark] .screenshot-options{background:#0b1423}
:root[data-theme=dark] .screenshot-options button{color:#a5b7d0}
:root[data-theme=dark] .screenshot-options button[aria-pressed=true]{background:#24344e;color:#c7f2fb}
:root[data-theme=dark] .screenshot-caption{color:#b8c5d9}
:root[data-theme=dark] .toast{background:#182d42ed;border-color:#41617c;color:#d8f6ff}
#project-frame{color-scheme:light}

:root[data-theme=dark] .theme-toggle{background:linear-gradient(140deg,#193340ed,#261e40ed);border-color:#566583;color:#a9eafa;box-shadow:0 0 25px #6b70eb16,inset 0 1px 0 #a1edff14}
:root[data-theme=dark] .theme-toggle .theme-moon{display:none}
:root[data-theme=dark] .theme-toggle .theme-sun{display:block}
:root[data-theme=dark] .theme-tooltip{background:#17243a;color:#dcf7ff}
@media(hover:hover){:root[data-theme=dark] .theme-toggle:hover{border-color:#9f92d9;box-shadow:0 0 25px #8b7deb30}}
@media(prefers-reduced-motion:no-preference){body,.site-header,.project-dialog,.details-panel,.preview-chrome,.preview-footer{transition:background-color .25s,color .25s,border-color .25s}}
@media(prefers-reduced-motion:reduce){.theme-toggle,.theme-tooltip{transition:none}}
