/* Palette selection extends the existing glass composition. */
html[data-palette=sapphire]{--bg:#eff5ff;--paper:#ffffffce;--ink:#192b49;--muted:#51627e;--line:#48699738;--brand:#245bb5;--brand-deep:#204e9d;--accent:#096f93;--soft:#dbe9fa88;--glass:#ffffff70;--glass-edge:#ffffffed;--glow:#90b3ee;--cyan:#92d8ed;--lens-ink:#223b60;--lens-paper:#ffffffb8;--signal:#346dc2;--mint:#147c94;--tint-a:#b5cffa;--tint-b:#b5e1ed;--contact:#122e58}
html[data-palette=sapphire][data-theme=dark]{--bg:#0b1425;--paper:#1b2d48df;--ink:#eff5ff;--muted:#b2c5df;--line:#a4c4ee38;--brand:#a0c6ff;--brand-deep:#315fa7;--accent:#8dd9ef;--soft:#223f6655;--glass:#b4d3ff0b;--glass-edge:#c1dcff40;--glow:#2f609b;--cyan:#276b88;--lens-ink:#e8f3ff;--lens-paper:#182f4be8;--signal:#a4ccff;--mint:#91e2ec;--tint-a:#19395c;--tint-b:#12435a;--contact:#0c203d}
html[data-palette=teal]{--bg:#eef7f5;--paper:#ffffffce;--ink:#183b37;--muted:#496d67;--line:#38796f35;--brand:#176c60;--brand-deep:#175e54;--accent:#246899;--soft:#cde8df70;--glass:#ffffff70;--glass-edge:#ffffffed;--glow:#86c3b3;--cyan:#a4d5e9;--lens-ink:#244b42;--lens-paper:#ffffffb8;--signal:#1c806e;--mint:#287b9c;--tint-a:#b5dfd1;--tint-b:#b7dce8;--contact:#173c36}
html[data-palette=teal][data-theme=dark]{--bg:#0b1b19;--paper:#1c3631df;--ink:#edf8f4;--muted:#b0cfc5;--line:#a0d6c338;--brand:#94d9c5;--brand-deep:#276f60;--accent:#a0d5ef;--soft:#244f4555;--glass:#b5e6d20b;--glass-edge:#c7f1e040;--glow:#367763;--cyan:#386f8b;--lens-ink:#e0f6ec;--lens-paper:#203a32e8;--signal:#9ae0c7;--mint:#a5d8ef;--tint-a:#194639;--tint-b:#204754;--contact:#0d2924}
html[data-palette=rose]{--bg:#fbf2f5;--paper:#ffffffce;--ink:#472938;--muted:#795967;--line:#92546e35;--brand:#a14168;--brand-deep:#8f345a;--accent:#6f5ba0;--soft:#f0d8e170;--glass:#ffffff70;--glass-edge:#ffffffed;--glow:#e1a4ba;--cyan:#c6b8df;--lens-ink:#593347;--lens-paper:#ffffffb8;--signal:#ad4a75;--mint:#7c66aa;--tint-a:#ecc2d1;--tint-b:#d8cee9;--contact:#49263c}
html[data-palette=rose][data-theme=dark]{--bg:#20111b;--paper:#3a2433df;--ink:#fff0f6;--muted:#d5b7c5;--line:#e2a9c238;--brand:#f2afcb;--brand-deep:#a54870;--accent:#d1bef7;--soft:#61354a55;--glass:#f1b7d40b;--glass-edge:#ffd4e540;--glow:#8e4b6a;--cyan:#715a99;--lens-ink:#ffe8f3;--lens-paper:#402638e8;--signal:#f0b4ce;--mint:#d3baff;--tint-a:#583047;--tint-b:#443153;--contact:#311b2b}
html[data-palette]:not([data-palette=violet]) body{background:radial-gradient(ellipse at 0 13%,color-mix(in srgb,var(--tint-a) 45%,transparent),transparent 31%),radial-gradient(ellipse at 100% 35%,color-mix(in srgb,var(--tint-b) 35%,transparent),transparent 28%),var(--bg)}
html[data-palette]:not([data-palette=violet]) .site-header{background:color-mix(in srgb,var(--bg) 96%,transparent)}
html[data-palette]:not([data-palette=violet]) .brand-mark,html[data-palette]:not([data-palette=violet]) .button-primary{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
html[data-palette]:not([data-palette=violet]) .hero{background:radial-gradient(ellipse at 77% 43%,color-mix(in srgb,var(--glow) 22%,transparent),transparent 44%)}
html[data-palette]:not([data-palette=violet]) .card-visual:before,html[data-palette]:not([data-palette=violet]) .case-visual:before{background:radial-gradient(ellipse at 90% 20%,color-mix(in srgb,var(--cyan) 35%,transparent),transparent 65%),radial-gradient(ellipse at 10% 85%,color-mix(in srgb,var(--glow) 35%,transparent),transparent 70%)}
html[data-palette]:not([data-palette=violet]) .theme-choice.active,html[data-palette]:not([data-palette=violet]) .theme-choice[aria-pressed=true]{background:var(--brand-deep);color:#fff}
html[data-palette]:not([data-palette=violet]) .contact-section,html[data-palette]:not([data-palette=violet]) .case-contact,html[data-palette]:not([data-palette=violet]) .site-footer{background:var(--contact)}
html[data-palette]:not([data-palette=violet]) .button-bright{background:#f3f7ff;color:var(--contact)}
html[data-palette]:not([data-palette=violet]) .lens-shell{background:linear-gradient(125deg,var(--glass),var(--paper));box-shadow:inset 0 1px #fff5,0 25px 65px #00000018}
html[data-palette]:not([data-palette=violet]) .lens-orbit{border-color:color-mix(in srgb,var(--brand) 25%,transparent)}
.settings-open{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--ink);font:600 12px 'DM Sans',sans-serif;cursor:pointer;flex-shrink:0}.settings-open svg{stroke:currentColor;stroke-width:1.6;fill:none}.settings-open svg circle{fill:var(--paper)}.settings-open:hover{background:var(--soft)}.settings-dialog{width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;border:0;border-radius:24px;background:var(--bg);color:var(--ink);box-shadow:0 24px 100px #0005;line-height:1.5}.settings-dialog::backdrop{background:#0b172c88;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.settings-heading{display:flex;align-items:start;gap:15px;justify-content:space-between;margin-bottom:28px}.settings-heading h2{font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.025em;margin:0 0 8px}.settings-heading p{font-size:14px;margin:0;color:var(--muted)}.settings-close{display:grid;place-items:center;width:40px;height:40px;background:var(--soft);color:var(--ink);border:0;border-radius:50%;flex-shrink:0;cursor:pointer}.settings-close svg{fill:none;stroke:currentColor;stroke-width:1.7}.settings-dialog fieldset{padding:0;border:0;margin:0 0 26px;min-width:0}.settings-dialog legend{font-size:15px;font-weight:600;margin-bottom:12px}.palette-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.palette-option{position:relative;display:block;padding:12px;border:2px solid transparent;border-radius:14px;background:var(--paper);cursor:pointer}.palette-option:has(input:checked){border-color:var(--brand)}.palette-option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.palette-option input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.palette-preview{display:flex;gap:0;height:32px;border-radius:7px;overflow:hidden;margin-bottom:12px}.palette-preview i{flex:1}.palette-sapphire i:nth-child(1){background:#eff5ff}.palette-sapphire i:nth-child(2){background:#245bb5}.palette-sapphire i:nth-child(3){background:#122e58}.palette-teal i:nth-child(1){background:#eef7f5}.palette-teal i:nth-child(2){background:#176c60}.palette-teal i:nth-child(3){background:#173c36}.palette-rose i:nth-child(1){background:#fbf2f5}.palette-rose i:nth-child(2){background:#a14168}.palette-rose i:nth-child(3){background:#49263c}.palette-violet i:nth-child(1){background:#f4f2f8}.palette-violet i:nth-child(2){background:#6350a2}.palette-violet i:nth-child(3){background:#29213e}.palette-name{display:block;font-size:15px;font-weight:600}.palette-name small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}.palette-check{position:absolute;right:14px;bottom:26px;width:8px;height:13px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);display:none}.palette-option:has(input:checked) .palette-check{display:block}.settings-appearance{display:flex;gap:8px;background:var(--soft);padding:5px;border-radius:14px}.settings-appearance .theme-choice{flex:1;min-height:46px;font-size:15px;border-radius:10px}.settings-note{font-size:13px;color:var(--muted);margin:0 0 25px}.settings-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px}.settings-reset{border:0;background:transparent;color:var(--brand);font-size:14px;padding:12px 0;cursor:pointer}.settings-done{border:0;border-radius:10px;background:var(--brand-deep);color:#fff;font-size:14px;font-weight:600;padding:13px 26px;cursor:pointer}.settings-dialog button:focus-visible,.settings-open:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.repo-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.repo-links a,.catalog-repo{display:inline-flex;align-items:center;gap:8px;background:var(--soft);color:var(--brand);border-radius:12px;font-size:13px;font-weight:600;padding:11px 15px}.repo-links a:hover,.catalog-repo:hover{background:var(--paper);text-decoration:underline;text-underline-offset:3px}.catalog-repo{margin-top:20px}.repo-links svg,.catalog-repo svg{fill:currentColor;width:18px;height:18px;flex-shrink:0}.repo-index{padding-top:20px;display:flex;align-items:center;flex-wrap:wrap;gap:15px}.repo-index p{font-size:13px;margin:0}
@media(max-width:1200px){.settings-open span{display:none}.settings-open{width:40px;padding:9px}.site-header .desktop-nav{gap:14px}}
@media(max-width:760px){.settings-dialog{padding:22px;border-radius:20px}.settings-heading h2{font-size:25px}.settings-open{width:38px;min-height:40px;padding:9px}.palette-options{gap:10px}.palette-option{padding:10px}.settings-appearance .theme-choice{min-height:44px}.repo-links a{font-size:12px}}
@media(max-width:390px){.header-actions{gap:7px}.header-inner{gap:7px}.header-actions .resume-link{display:none}}
@media(prefers-reduced-motion:no-preference){.settings-dialog[open]{animation:settings-in .22s ease-out}@keyframes settings-in{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:none}}}

/* Keep navigation reachable at tablet widths, with Settings always at the far right. */
.header-actions{margin-left:auto}.desktop-nav{white-space:nowrap}
@media(max-width:1100px){.site-header .desktop-nav{display:none}.site-header .menu-toggle{display:flex;width:40px;height:40px;border:1px solid var(--line);background:var(--paper);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}.menu-toggle span{width:17px;height:2px;background:var(--ink)}.mobile-nav:not([hidden]){display:flex;flex-direction:column;padding:10px 20px 20px;border-top:1px solid var(--line);border-radius:0 0 24px 24px;background:var(--paper);max-height:calc(100dvh - 110px);overflow-y:auto}.mobile-nav a{padding:10px 4px;font-size:14px;font-weight:600}}
@media(min-width:1101px){.site-header .mobile-nav{display:none}}
