/* Two Mac desktops: contemporary translucent glass and 2010-era silver Aqua. */
.mac-only { display: none; }
.mac-only[hidden] { display: none !important; }
body:is(.macos-theme,.mac2010-theme) { --mac-ink:#252835; --mac-muted:#656b7b; --mac-blue:#087eff; --mac-line:#00000016; background:#687fd0 url('../images/macos/modern/wallpaper.webp') center/cover fixed no-repeat; color:var(--mac-ink); font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif !important; cursor:default; }
body:is(.macos-theme,.mac2010-theme) :where(*) { font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif !important; }
body:is(.macos-theme,.mac2010-theme) .mac-only { display:flex; }
body:is(.macos-theme,.mac2010-theme) :is(.vista-taskbar,.vista-start-menu,.vista-hero,.visitor-counter,.nineties-marquee,.nineties-nav-table,.nineties-subtitle,.badges-section,.webring,.mac-window-close:not(button)) { display:none !important; }
body:is(.macos-theme,.mac2010-theme) .nineties-wrapper { max-width:1180px; padding:140px 30px 130px; box-sizing:border-box; }
body:is(.macos-theme,.mac2010-theme) :is(.nineties-header,.nineties-section,.guestbook) { background:#fbfcfff2; border:1px solid #ffffffb0; border-radius:15px; box-shadow:0 20px 65px #17173c3b,0 0 0 1px #00000019; padding:24px; backdrop-filter:none; -webkit-backdrop-filter:none; color:var(--mac-ink); overflow:visible; scroll-margin-top:60px; }
body:is(.macos-theme,.mac2010-theme) .nineties-header { padding:0; }
body:is(.macos-theme,.mac2010-theme) .nineties-title-container { border:0; background:none; padding:0; border-radius:0 0 14px 14px; overflow:hidden; }
body:is(.macos-theme,.mac2010-theme) .nineties-name { padding:20px 26px 0 210px; margin:0; font-size:11px; font-weight:600; letter-spacing:.12em; color:#6e7383; text-shadow:none; }
body:is(.macos-theme,.mac2010-theme) :is(.rainbow-text,.flame-text,.rotating-3d,.nineties-blink) { color:var(--mac-ink); text-shadow:none; }
body:is(.macos-theme,.mac2010-theme) a { color:#075fb8; }
body:is(.macos-theme,.mac2010-theme) a:hover { color:#034b92; }
body:is(.macos-theme,.mac2010-theme) :is(button,a,input,textarea):focus-visible { outline:3px solid #096dce; outline-offset:3px; }
body:is(.macos-theme,.mac2010-theme) .theme-controls { top:46px !important; right:max(24px,calc((100vw - 1120px)/2)) !important; flex-direction:row !important; gap:10px !important; padding:0; background:none; border:0; box-shadow:none; backdrop-filter:none; }
body:is(.macos-theme,.mac2010-theme) :is(.theme-toggle-btn,.nineties-toggle-btn) { background:#f6f8ffe0; border:1px solid #ffffffb0; color:#323744; border-radius:10px; box-shadow:0 4px 20px #1d234d19,inset 0 1px #fff; font-weight:500; text-shadow:none; text-transform:none; backdrop-filter:blur(20px); }
body:is(.macos-theme,.mac2010-theme) :is(.theme-toggle-btn,.nineties-toggle-btn):hover { background:#fff; transform:none; color:#202633; }
body:is(.macos-theme,.mac2010-theme) .theme-picker { --picker-bg:#f5f6faf5; --picker-ink:#2a303d; --picker-border:#ffffff80; --picker-hover:#e0eafb; --picker-selected:#d6e8ff; }
body:is(.macos-theme,.mac2010-theme) .theme-menu { border-radius:12px; backdrop-filter:blur(24px); max-height:calc(100dvh - 112px); }
body:is(.macos-theme,.mac2010-theme) .vista-window-titlebar { margin:-24px -24px 24px; padding:12px 16px; min-height:28px; gap:12px; color:#4a4d58; background:#eff1f6c9; border:0; border-bottom:1px solid var(--mac-line); border-radius:14px 14px 0 0; box-shadow:none; text-shadow:none; align-items:center; position:relative; }
body:is(.macos-theme,.mac2010-theme) .nineties-header .vista-window-titlebar { margin:0; }
body:is(.macos-theme,.mac2010-theme) .vista-window-titlebar > img { display:none; }
body:is(.macos-theme,.mac2010-theme) .vista-window-title { flex:1; text-align:center; font-size:13px; font-weight:600; padding-right:82px; }
body:is(.macos-theme,.mac2010-theme) .vista-window-controls { order:-1; margin:0; gap:4px; padding:0; }
body:is(.macos-theme,.mac2010-theme) .vista-window-controls button { display:flex; position:relative; width:22px; min-height:24px; border:0; padding:0; background:none; box-shadow:none; border-radius:5px; }
body:is(.macos-theme,.mac2010-theme) .vista-window-titlebar .vista-window-maximize { display:flex; }
body:is(.macos-theme,.mac2010-theme) .vista-window-controls button::before { content:''; position:absolute; width:12px; height:12px; left:5px; top:6px; border-radius:50%; border:1px solid #00000016; box-sizing:border-box; background:#febc2e; }
body:is(.macos-theme,.mac2010-theme) .vista-window-controls .mac-window-close::before { background:#ff6058; }
body:is(.macos-theme,.mac2010-theme) .vista-window-controls .vista-window-maximize::before { background:#28c840; }
body:is(.macos-theme,.mac2010-theme) .vista-window-controls button::after { opacity:0; box-shadow:none; }
body:is(.macos-theme,.mac2010-theme) .vista-window-controls:hover button::after,body:is(.macos-theme,.mac2010-theme) .vista-window-controls button:focus-visible::after { opacity:.7; }
body:is(.macos-theme,.mac2010-theme) .vista-window-minimize::after { width:6px; height:1px; left:8px; top:12px; bottom:auto; background:#634b14; }
body:is(.macos-theme,.mac2010-theme) .vista-window-maximize::after { width:5px; height:5px; left:8px; top:9px; bottom:auto; border:1px solid #145c22; }
body:is(.macos-theme,.mac2010-theme) .mac-window-close::after { content:'×'; position:absolute; left:6px; top:2px; color:#681613; font-size:15px; line-height:20px; }
body:is(.macos-theme,.mac2010-theme) .is-mac-closed { display:none !important; }
body:is(.macos-theme,.mac2010-theme) .is-vista-maximized { max-width:none; width:calc(100vw - 72px); left:auto; transform:none; margin-left:calc((100% - 100vw + 72px)/2); box-sizing:border-box; }
body:is(.macos-theme,.mac2010-theme) .is-vista-minimized { padding-bottom:0; }
body:is(.macos-theme,.mac2010-theme) .is-vista-minimized .vista-window-titlebar { margin-bottom:0; border-radius:14px; }
.mac-menubar { position:fixed; inset:0 0 auto; height:32px; z-index:10020; align-items:center; gap:22px; padding:0 20px; box-sizing:border-box; background:#f7f8ff85; border-bottom:1px solid #fff4; backdrop-filter:blur(28px) saturate(1.6); -webkit-backdrop-filter:blur(28px) saturate(1.6); color:#202633; font-size:13px; }
.mac-menubar :is(a,button) { display:flex; align-items:center; min-height:30px; border:0; padding:0; background:none; font-size:13px; color:#202633 !important; text-decoration:none; font-weight:400; cursor:pointer; }
.mac-menubar .mac-finder-title { font-weight:700; }
.mac-menu-right { display:flex; align-items:center; gap:18px; margin-left:auto; font-size:12px; white-space:nowrap; }
.mac-desktop-menu { position:fixed; top:36px; left:10px; z-index:10030; width:290px; max-width:calc(100vw - 20px); max-height:calc(100dvh - 48px); overflow:auto; flex-direction:column; padding:8px; box-sizing:border-box; border:1px solid #fff9; border-radius:12px; background:#f7f8fff5; box-shadow:0 12px 40px #1617354d; backdrop-filter:blur(24px); }
.mac-menu-profile { display:flex; align-items:center; gap:12px; padding:10px 8px 16px; border-bottom:1px solid var(--mac-line); margin-bottom:6px; font-size:14px; }
.mac-profile-photo { display:block; width:48px; height:48px; flex:0 0 48px; border-radius:50%; overflow:hidden; }
.mac-profile-photo img { width:100%; height:100%; object-fit:cover; transform:scale(1.8); transform-origin:50% 51%; }
.mac-menu-profile small { display:block; color:#606778; font-size:11px; margin-top:5px; }
.mac-desktop-menu [role=menuitem] { display:block; width:100%; box-sizing:border-box; color:var(--mac-ink) !important; padding:9px 10px; font-size:13px; text-align:left; border:0; background:none; text-decoration:none; border-radius:5px; cursor:pointer; }
.mac-desktop-menu [role=menuitem]:is(:hover,:focus-visible) { color:#fff !important; background:#087eff; outline-offset:0; }
.mac-welcome { position:relative; align-items:stretch; min-height:370px; padding-left:180px; }
.mac-sidebar { position:absolute; left:0; top:-34px; bottom:0; width:180px; padding:24px 12px; box-sizing:border-box; background:#eef0f8cf; border-right:1px solid var(--mac-line); display:flex; flex-direction:column; gap:5px; }
.mac-sidebar small { font-size:10px; font-weight:600; color:#737888; margin:6px 10px; }
.mac-sidebar a { display:flex; align-items:center; gap:9px; padding:8px; border-radius:6px; font-size:12px; text-decoration:none; color:#394151 !important; }
.mac-sidebar .mac-sidebar-home { background:#c7c9d952; }
.mac-sidebar img { object-fit:contain; }
.mac-sidebar > span { font-size:10px; line-height:1.5; padding:0 10px; color:#6b7281; }
.mac-welcome-content { flex:1; padding:34px 30px; min-width:0; }
.mac-eyebrow { color:#757d92; font-size:10px; font-weight:600; letter-spacing:.1em; }
.mac-welcome h2 { font-size:clamp(30px,3.6vw,46px); line-height:1.08; letter-spacing:-.04em; font-weight:650; text-transform:none; color:#262c3c; margin:18px 0; text-shadow:none; }
.mac-welcome p { color:#626b7c; font-size:15px; line-height:1.7; margin:0 0 22px; }
body:is(.macos-theme,.mac2010-theme) .mac-primary { display:inline-flex; gap:20px; align-items:center; background:#087eff; border:1px solid #076ee0; border-radius:7px; color:#fff; text-decoration:none; padding:10px 16px; font-size:13px; box-shadow:inset 0 1px #ffffff40,0 3px 8px #0051aa20; }
body:is(.macos-theme,.mac2010-theme) .mac-primary:hover { background:#096cda; color:#fff; }
.mac-file-preview { display:flex; align-items:center; gap:10px; border-top:1px solid var(--mac-line); margin-top:28px; padding-top:16px; }
.mac-file-preview img { object-fit:contain; }
.mac-file-preview strong { display:block; font-size:12px; font-weight:500; }
.mac-file-preview small { display:block; font-size:10px; color:#6f788b; margin-top:6px; }
.mac-quick-look { flex:0 0 200px; margin:36px 26px 30px 0; align-self:center; border:1px solid #00000015; border-radius:12px; background:#fff; overflow:hidden; box-shadow:0 8px 20px #202d5410; }
.mac-quick-look-title { background:#f2f3f7; padding:8px 10px; border-bottom:1px solid var(--mac-line); color:#686e7b; font-size:10px; text-align:left; }
.mac-quick-look-title span { margin-right:5px; color:#969cab; }
.mac-headshot { display:block; width:100%; height:auto; }
.mac-quick-look figcaption { padding:14px; text-align:left; }
.mac-quick-look strong { display:block; font-size:13px; }
.mac-quick-look figcaption span,.mac-quick-look figcaption small { display:block; font-size:10px; color:#747b8d; margin-top:7px; line-height:1.5; }
.mac-dock { position:fixed; bottom:12px; left:50%; transform:translateX(-50%); align-items:end; gap:8px; padding:8px 12px 12px; z-index:10020; background:#eef1ff8c; border:1px solid #ffffff99; border-radius:22px; box-shadow:0 14px 45px #1a254830,inset 0 1px #fff9; backdrop-filter:blur(28px) saturate(1.4); -webkit-backdrop-filter:blur(28px) saturate(1.4); }
.mac-dock :is(a,button) { display:block; position:relative; width:64px; height:66px; padding:0; flex:0 0 64px; border:0; background:none; cursor:pointer; border-radius:12px; text-decoration:none; }
.mac-dock img { display:block; width:64px; height:64px; object-fit:contain; transform:translateY(calc(var(--dock-lift,0) * -8px)) scale(var(--dock-scale,1)); transform-origin:center bottom; transition:transform .18s ease; filter:drop-shadow(0 4px 3px #21344925); }
.mac-dock span { position:absolute; left:50%; bottom:calc(100% + 15px); transform:translateX(-50%); padding:5px 10px; color:#263044; background:#fafbfff5; border:1px solid #fff; border-radius:6px; box-shadow:0 3px 10px #16234522; font-size:11px; white-space:nowrap; opacity:0; pointer-events:none; }
.mac-dock :is(a,button):is(:hover,:focus-visible) span { opacity:1; }
.mac-dock a::after { content:''; position:absolute; width:4px; height:4px; bottom:-5px; left:30px; background:#374050; border-radius:50%; opacity:.5; }
body:is(.macos-theme,.mac2010-theme) .nineties-section h2,body:is(.macos-theme,.mac2010-theme) .guestbook h3 { color:#343b4a !important; font-size:22px; letter-spacing:-.02em; text-shadow:none; font-weight:600; border-color:#00000016; }
body:is(.macos-theme,.mac2010-theme) .nineties-section h3 { color:#57647d !important; font-size:18px; text-shadow:none; border-color:#00000016 !important; }
body:is(.macos-theme,.mac2010-theme) .ascii-border { color:#4a5264; background:#f0f3f9; border-color:#d4dae6; border-radius:8px; }
body:is(.macos-theme,.mac2010-theme) .skill-name { color:#515c70; font-size:14px; }
body:is(.macos-theme,.mac2010-theme) .skill-progress { height:13px; background:#e2e6ee; border:1px solid #d5d9e2; border-radius:7px; }
body:is(.macos-theme,.mac2010-theme) .skill-fill { background:linear-gradient(#58b2ff,#1483ef); border-radius:7px; font-size:9px; line-height:12px; color:#fff; text-shadow:none; box-shadow:inset 0 1px #ffffff60; }
body:is(.macos-theme,.mac2010-theme) .vista-folder-toolbar { border:0; background:#f0f2f6; border-bottom:1px solid var(--mac-line); color:#626a7b; }
body:is(.macos-theme,.mac2010-theme) #vista-project-files { border:1px solid #dfe3eb; background:#fff; }
body:is(.macos-theme,.mac2010-theme) #vista-project-files :is(th,td) { background:#fff; color:#394153; border-color:#e4e7ed; }
body:is(.macos-theme,.mac2010-theme) #vista-project-files tr:nth-child(even) td { background:#f5f7fa; }
body:is(.macos-theme,.mac2010-theme) #vista-project-files th { background:linear-gradient(#fbfcff,#eaeef5); font-weight:500; }
body:is(.macos-theme,.mac2010-theme) .vista-search input,body:is(.macos-theme,.mac2010-theme) .guestbook-form :is(input,textarea) { background:#fff; border:1px solid #c9cfdb; border-radius:6px; box-shadow:inset 0 1px 3px #1524450a; color:#374051; }
body:is(.macos-theme,.mac2010-theme) :is(.guestbook-entries,.guestbook-form) { border-color:#d4d9e3 !important; background:#f6f8fb !important; border-radius:8px; color:#4e5a70 !important; }
body:is(.macos-theme,.mac2010-theme) .guestbook-submit { background:#087eff; border:1px solid #076bd6; border-radius:6px; color:#fff; text-shadow:none; }
body:is(.macos-theme,.mac2010-theme) .guestbook-submit:hover { background:#066edc; }
body:is(.macos-theme,.mac2010-theme) .experience-collection { --exp-surface:#ffffffdd; --exp-border:#dce1ec; --exp-text:#343c4e; --exp-muted:#656e80; --exp-accent:#1267b4; --exp-chip:#eef2f8; }
body.mac2010-theme { background:#101424 url('../images/macos/classic/wallpaper.webp') center/cover fixed no-repeat; --mac-ink:#343434; --mac-muted:#666; --mac-blue:#177ada; }
body.mac2010-theme :where(*) { font-family:'Lucida Grande','Lucida Sans Unicode',Helvetica,sans-serif !important; }
body.mac2010-theme .mac-menubar { background:linear-gradient(#f8f8f8,#ddd 65%,#c9c9c9); border-bottom:1px solid #888; box-shadow:0 1px 5px #0004; backdrop-filter:none; }
body.mac2010-theme :is(.nineties-header,.nineties-section,.guestbook) { background:#f5f5f5; border:1px solid #777; border-radius:6px; box-shadow:0 18px 45px #0007,0 0 0 1px #fff4; backdrop-filter:none; }
body.mac2010-theme .nineties-title-container { border-radius:0 0 5px 5px; }
body.mac2010-theme .vista-window-titlebar { min-height:22px; background:linear-gradient(#f0f0f0,#d5d5d5); border-bottom:1px solid #a3a3a3; border-radius:5px 5px 0 0; padding:7px 12px; box-shadow:inset 0 1px #fff; color:#404040; }
body.mac2010-theme .vista-window-title { font-weight:400; text-shadow:0 1px #fff; }
body.mac2010-theme .vista-window-controls button::before { background:radial-gradient(ellipse at 50% 15%,#ffffe2,#fdd849 40%,#dd9e20); border-color:#b49339; box-shadow:inset 0 -1px 2px #bd7906; }
body.mac2010-theme .vista-window-controls .mac-window-close::before { background:radial-gradient(ellipse at 50% 15%,#ffdeda,#ff7969 40%,#d74132); border-color:#b64c40; box-shadow:inset 0 -1px 2px #a92828; }
body.mac2010-theme .vista-window-controls .vista-window-maximize::before { background:radial-gradient(ellipse at 50% 15%,#d9ffe2,#84d98a 40%,#45a844); border-color:#4c9b48; box-shadow:inset 0 -1px 2px #2d7c31; }
body.mac2010-theme .mac-sidebar { background:linear-gradient(90deg,#dae2ea,#e4eaf0); border-color:#bcc5ce; }
body.mac2010-theme .mac-sidebar-home { background:linear-gradient(#91aac0,#758ea7); color:#fff !important; text-shadow:0 1px #54738e; border:1px solid #7590a6; }
body.mac2010-theme .mac-welcome h2 { font-weight:400; letter-spacing:-.035em; }
body.mac2010-theme .mac-primary { background:linear-gradient(#b3defd,#55a5ef 45%,#328de1 48%,#79bcf3); color:#143252; border-color:#6697c4; box-shadow:inset 0 1px #e5f4ff,0 1px 2px #0002; text-shadow:0 1px #ffffff99; border-radius:15px; }
body.mac2010-theme .mac-primary:hover { color:#143252; background:linear-gradient(#cae9ff,#74bcf6 45%,#55a3eb 48%,#98d1fa); }
body.mac2010-theme .mac-quick-look { border-radius:5px; border-color:#aaa; box-shadow:0 3px 10px #0002; }
body.mac2010-theme .mac-quick-look-title { background:linear-gradient(#e9e9e9,#ccc); border-color:#aaa; }
body.mac2010-theme :is(.theme-toggle-btn,.nineties-toggle-btn) { background:linear-gradient(#fafafa,#dedede); border:1px solid #989898; border-radius:5px; box-shadow:inset 0 1px #fff,0 2px 5px #0003; backdrop-filter:none; }
body.mac2010-theme .mac-dock { bottom:0; border-radius:0; border:0; background:none; box-shadow:none; backdrop-filter:none; padding:10px 24px 18px; isolation:isolate; }
body.mac2010-theme .mac-dock::before { content:''; position:absolute; z-index:-1; inset:15px 0 -8px; background:linear-gradient(#e5edff82,#d1dcea36 45%,#afbcc993 46%,#e2eafa80); border:1px solid #eef4ffb0; transform:perspective(170px) rotateX(30deg); box-shadow:0 2px 5px #0007,inset 0 1px #fffb; }
body.mac2010-theme .mac-dock img { -webkit-box-reflect:below 2px linear-gradient(transparent 55%,#ffffff30); filter:drop-shadow(0 5px 3px #0005); }
body.mac2010-theme .mac-dock span { background:linear-gradient(#fbfbfb,#e1e1e1); border-color:#9b9b9b; border-radius:4px; color:#333; }
body.mac2010-theme .mac-dock a::after { background:#fff; box-shadow:0 0 3px #a1dcff; }
body.mac2010-theme .mac-desktop-menu { background:#f7f7f7f5; border-color:#8d8d8d; border-radius:0 0 6px 6px; }
body.mac2010-theme .experience-list { grid-template-columns:1fr; gap:0; border:1px solid #bbc3cf; }
body.mac2010-theme .experience-card { border:0; border-bottom:1px solid #e0e4eb; border-radius:0; background:#fff; }
body.mac2010-theme .experience-card:nth-child(even) { background:#f0f4fa; }
body.mac2010-theme .experience-group-title { font-size:16px !important; }
body.mac2010-theme #vista-project-files th { background:linear-gradient(#eee,#d8d8d8); }
@media(max-width:1000px) {
    body:is(.macos-theme,.mac2010-theme) .nineties-name { padding-left:26px; }
    .mac-sidebar { display:none; }
    .mac-welcome { padding-left:0; }
    .mac-welcome-content { padding:26px; }
}
@media(max-width:700px) {
    .mac-menubar { gap:16px; padding:0 12px; }
    .mac-menu-experience,.mac-location,.mac-wifi { display:none !important; }
    .mac-menubar :is(a,button) { font-size:11px; }
    .mac-menu-right { font-size:10px; }
    body:is(.macos-theme,.mac2010-theme) .theme-controls { position:relative !important; inset:auto !important; margin:0 auto 26px; flex-direction:column !important; align-items:center; }
    body:is(.macos-theme,.mac2010-theme) .nineties-wrapper { padding:54px 12px 115px; }
    body:is(.macos-theme,.mac2010-theme) :is(.nineties-section,.guestbook) { padding:18px; }
    body:is(.macos-theme,.mac2010-theme) .vista-window-titlebar { margin:-18px -18px 18px; padding:10px; }
    body:is(.macos-theme,.mac2010-theme) .nineties-header .vista-window-titlebar { margin:0; }
    body:is(.macos-theme,.mac2010-theme) .vista-window-title { font-size:11px; padding-right:40px; }
    .mac-welcome { flex-direction:column; }
    .mac-welcome-content { padding:24px 22px; }
    .mac-welcome h2 { font-size:36px; }
    .mac-quick-look { align-self:stretch; flex:auto; margin:0 22px 24px; display:grid; grid-template-columns:100px 1fr; }
    .mac-quick-look-title { grid-column:1/-1; }
    .mac-headshot { width:100px; height:100px; object-fit:cover; }
    .mac-quick-look figcaption { padding:12px; }
    .mac-quick-look figcaption span { font-size:9px; }
    .mac-dock { max-width:calc(100vw - 20px); box-sizing:border-box; gap:4px; border-radius:16px; padding:5px 7px 10px; bottom:8px; }
    .mac-dock :is(a,button) { width:44px; height:44px; flex-basis:44px; }
    .mac-dock img { width:44px; height:44px; }
    .mac-dock a::after { left:20px; }
    body.mac2010-theme .mac-dock { padding:6px 10px 15px; }
    body:is(.macos-theme,.mac2010-theme) .is-vista-maximized { width:100%; margin-left:0; }
}
@media(max-width:350px) {
    .mac-menubar { gap:10px; padding:0 10px; }
    .mac-dock :is(a,button) { width:40px; height:44px; flex-basis:40px; }
    .mac-dock img { width:40px; height:40px; }
    .mac-dock a::after { left:18px; }
}
@media(prefers-reduced-motion:reduce) { .mac-dock img { transition:none; transform:none !important; } }
