.dock{position:relative;gap:0;max-width:calc(100vw - 150px)}
/* The owner requested no visible focus rings, including after touch navigation. */
:focus,:focus-visible{outline:none!important}
.brand-logo{display:block;width:36px;height:36px;object-fit:cover;border-radius:10px;flex-shrink:0}
@media(max-width:650px){.brand-logo{width:32px;height:32px;border-radius:9px}}
.task-list{display:flex;gap:7px;align-items:center;overflow-x:auto;scrollbar-width:thin;max-width:660px;padding:3px 2px;min-width:0}
.task-list:empty{display:none}.dock-button{flex:none;padding:0 0 5px}.task-list .dock-button .dock-tooltip{display:none}
.dock-settings{display:flex;gap:3px;align-items:center;flex:none}
.dock.has-windows .dock-settings{border-left:1px solid #dfdce7;margin-left:11px;padding-left:11px}
.setting-button{width:45px;height:51px;display:grid;place-items:center;border-radius:12px;color:#777187;position:relative}
.setting-button:hover{background:#eeebf4;color:#514ca5}
.setting-button svg{width:22px;height:22px;stroke-width:1.5}
.setting-button:hover .dock-tooltip{opacity:1;transform:translate(-50%,-5px)}.desktop-toggle[hidden]{display:none}
.dock-button:focus-visible,.setting-button:focus-visible{outline-offset:-2px}
.task-list .dock-button.is-active{background:#eeebf7}.task-list .dock-button.is-minimized{opacity:.65}
.task-list .dock-button.case-task .app-icon{background:#e9e6f6;color:#7265a5}.case-number{position:absolute;right:-3px;top:-3px;border-radius:5px;background:#fffdfb;color:#6a6181;font-size:8px;padding:0 3px;border:1px solid #e4deed}
.setting-button{width:51px;height:55px;padding:0 0 5px;border-radius:13px}
.setting-button .setting-icon{width:43px;height:43px;border-radius:13px;box-shadow:none}
.setting-button .setting-icon svg{width:23px;height:23px}
.language-code{font-size:13px;font-weight:550;line-height:1;letter-spacing:.035em;text-align:center}
/* The crescent's visual mass sits below and left of its SVG center. */
.theme-symbol .theme-moon{transform:translate(1.5px,-1.5px)}
.desktop-intro{width:275px}.desktop-intro h1{font-size:30px;line-height:1.18}.desktop-intro p{max-width:275px;text-wrap:balance}
@media(max-width:1150px) and (min-width:901px){.desktop-intro{width:180px}.desktop-intro p{font-size:10px}.desktop-shortcuts{top:250px}}
@media(max-width:900px) and (min-width:651px){.desktop-intro{width:180px}.desktop-shortcuts{top:265px;grid-template-columns:repeat(2,64px);gap:20px 14px}.shortcut[data-app=notes]{display:flex}}
@media(max-width:650px){.desktop-intro{width:calc(100% - 48px)}.desktop-intro p{max-width:330px}.desktop-shortcuts{top:265px}.setting-button{width:45px;height:50px}.setting-button .setting-icon{width:40px;height:40px}.setting-button .setting-icon svg{width:21px;height:21px}}
@media(max-width:360px){.desktop-shortcuts{top:251px}.setting-button{width:42px}}
html[data-theme=dark]{color-scheme:dark;--ink:#e9e6f3;--muted:#aaa4b8;--blue:#b1a5f5;--blue-dark:#c2b8ff;--paper:#24242e;--line:#3b374a;--desktop:#1c1c26;--shadow:0 24px 70px #07070c50,0 3px 12px #07070c30}
[data-theme=dark] body{background:var(--desktop)}
[data-theme=dark] .system-bar{background:#22222bee;border-color:#36323f}
[data-theme=dark] .brand-mark{color:#eee9fc}[data-theme=dark] .brand-divider{background:#4c4659}
[data-theme=dark] .role,[data-theme=dark] #clock,[data-theme=dark] .system-status,[data-theme=dark] .prototype-label{color:#aaa3b8}
[data-theme=dark] .wallpaper{background:#1c1c26}[data-theme=dark] .wallpaper-ring{border-color:#47405e;opacity:.85}
[data-theme=dark] .wallpaper-disc{border-color:#4d4658;box-shadow:0 0 0 75px transparent,0 0 0 76px #373341}
[data-theme=dark] .wallpaper-line{background:#403a4b}[data-theme=dark] .wallpaper-caption{color:#302c3b}[data-theme=dark] .wallpaper-dot{background:#e89983;box-shadow:0 0 0 7px #3d3140}
[data-theme=dark] .eyebrow,[data-theme=dark] .desktop-intro p,[data-theme=dark] .shortcut-label,[data-theme=dark] .desktop-footnote,[data-theme=dark] .dock-caption{color:#afa5ba}
[data-theme=dark] .dock-caption span{border-color:#51485e}
[data-theme=dark] .app-icon{border-color:#ffffff18;box-shadow:0 7px 15px #0c0a1429}
[data-theme=dark] .app-icon.work{background:#8a79d4;color:#faf5ff}[data-theme=dark] .app-icon.about{background:#a57363;color:#f9ded2}
[data-theme=dark] .app-icon.research{background:#4c7974;color:#d6f4e8}[data-theme=dark] .app-icon.resume{background:#8d7b48;color:#fff1be}
[data-theme=dark] .app-icon.contact{background:#7b649f;color:#ebdafa}[data-theme=dark] .app-icon.notes{background:#625b69;color:#dcd4df}
[data-theme=dark] .shortcut-count{background:#393044;color:#dfd4e9;border-color:var(--desktop)}
[data-theme=dark] .dock-area{background:linear-gradient(transparent,#1c1c26b3)}
[data-theme=dark] .dock{background:#2b2735f5;border-color:#484152;box-shadow:0 8px 35px #0d0c143d}
[data-theme=dark] .dock.has-windows .dock-settings{border-color:#51475f}
[data-theme=dark] .setting-button{color:#c4b9d6}[data-theme=dark] .setting-button:hover,[data-theme=dark] .dock-button:hover,[data-theme=dark] .task-list .dock-button.is-active{background:#45394f;color:#eee2ff}
[data-theme=dark] .dock-button:after{background:#b4a3cc}[data-theme=dark] .dock-button.is-active:after{background:#d1b6ff}
[data-theme=dark] .task-list .dock-button.case-task .app-icon{background:#4e405f;color:#e0c8f9}[data-theme=dark] .case-number{background:#34283f;color:#e4ceff;border-color:#776085}
[data-theme=dark] .desktop-toggle{background:#302837;color:#c5b2d2;border-color:#665071}
[data-theme=dark] .app-window,[data-theme=dark] .app-window[data-app=work] .window-content{background:#26232f;border-color:#504658}
[data-theme=dark] .app-window.is-focused{box-shadow:0 30px 85px #07060b55,0 0 0 1px #77628822}
[data-theme=dark] .window-titlebar,[data-theme=dark] .window-footer{background:#2e2835;border-color:#493b56}
[data-theme=dark] .window-identity,[data-theme=dark] .window-identity small,[data-theme=dark] .window-footer{color:#bdabc9}
[data-theme=dark] .window-identity svg{color:#c3a5e5}[data-theme=dark] .window-controls button{color:#b7a1c5}
[data-theme=dark] .window-controls button:hover{background:#4a365a;color:#eed8ff}[data-theme=dark] .window-controls button[data-window-action=close]:hover{background:#603c4d;color:#ffc8cf}
[data-theme=dark] .window-heading p,[data-theme=dark] .work-tabs button,[data-theme=dark] .work-search input,[data-theme=dark] .card-body p,[data-theme=dark] .nda-note,[data-theme=dark] .nda-note button{color:#bdadc7}
[data-theme=dark] .heading-count{color:#83708f}[data-theme=dark] .work-tabs button[aria-pressed=true],[data-theme=dark] .work-tabs button:hover{background:#473355;color:#e1c3f9}
[data-theme=dark] .work-search{border-color:#624a71;color:#b09abd}[data-theme=dark] .work-search input::placeholder{color:#a991b6}
[data-theme=dark] .work-card{background:#312838;border-color:#503d5e}[data-theme=dark] .card-body h3{color:#ebdbf6}[data-theme=dark] .card-body svg{color:#b899cd}
[data-theme=dark] .work-cover .cover-pill{background:#302036ee;color:#f1def9;border-color:#694e78}
[data-theme=dark] .work-cover img{filter:brightness(.86)}[data-theme=dark] .empty-state{color:#c8a9dc}
[data-theme=dark] .helper-bubble,[data-theme=dark] .helper-bubble:after{background:#35283f;border-color:#634776}
[data-theme=dark] .helper-heading,[data-theme=dark] .helper-heading button{color:#b79bc8}[data-theme=dark] .helper-bubble p{color:#e9d6f6}
[data-theme=dark] #helper-options button{background:#584069;color:#ecd9ff}[data-theme=dark] #helper-options button:hover{background:#6c4d82}
[data-theme=dark] .helper-name{background:#35233fe8;color:#d6b8e9;border-color:#6c487c}
[data-theme=dark] .page-body h2{color:#f0defb}[data-theme=dark] .page-body h3{color:#e1c7f1}
[data-theme=dark] .page-body>p,[data-theme=dark] .about-hero p,[data-theme=dark] .case-columns p,[data-theme=dark] .case-points{color:#c7b0d5}
[data-theme=dark] .page-body .eyebrow,[data-theme=dark] .case-columns small{color:#bc94d1}
[data-theme=dark] .case-facts span{background:#402c4b;color:#d3b2e5;border-color:#684576}
[data-theme=dark] .primary-link{color:#282031}[data-theme=dark] .secondary-link{color:#d1abeb;border-color:#79548d}
[data-theme=dark] .process-list>div,[data-theme=dark] .career-row,[data-theme=dark] .notes-list div{border-color:#5e3d6d}
[data-theme=dark] .process-list b,[data-theme=dark] .career-row,[data-theme=dark] .contact-list a span,[data-theme=dark] .notes-list p{color:#dec0f0}
[data-theme=dark] .process-list p,[data-theme=dark] .career-row small,[data-theme=dark] .career-row span,[data-theme=dark] .contact-list a small,[data-theme=dark] .reading-note,[data-theme=dark] .notes-list .note-state{color:#c4a2d8}
[data-theme=dark] .research-panel{background:#32423c}[data-theme=dark] .research-panel:after{color:#4c6352}
[data-theme=dark] .research-panel h3{color:#d0e6cc}[data-theme=dark] .research-panel p{color:#b6cdb2}[data-theme=dark] .status-chip{background:#4a604b;color:#d0e5c5}
[data-theme=dark] .research-note{color:#b598c7!important}[data-theme=dark] .contact-list a{background:#412d4b;border-color:#765084}[data-theme=dark] .contact-list a:hover{background:#50335e}
@media(max-width:650px){.dock{max-width:calc(100vw - 28px);padding:7px 8px}.task-list{gap:3px}.dock.has-windows .dock-settings{margin-left:7px;padding-left:7px}.setting-button{width:45px;height:50px}.dock-settings{gap:0}.setting-button svg{width:21px;height:21px}.dock-tooltip{display:none}[data-theme=dark] .helper-avatar{filter:none}}

@media(max-width:360px){.setting-button{width:42px}}
@media(max-width:1150px) and (min-width:651px){.desktop-intro h1{font-size:27px}}
@media(max-width:650px){.desktop-intro h1{font-size:33px}.desktop-shortcuts{top:277px}}
@media(max-width:360px){.desktop-intro h1{font-size:31px}.desktop-shortcuts{top:264px}}

/* Keep the taskbar height stable when the last window is closed. */
.dock{height:81px;box-sizing:border-box}
@media(max-width:900px){.dock{height:77px}}
@media(max-width:650px){.dock{height:72px}}

/* Decorative desktop copy must not cover the lowest shortcuts. */
.desktop-footnote{pointer-events:none}
@media(min-width:901px) and (max-height:800px){.desktop-footnote{display:none}}

/* Render the complete first frame instead of cropping a taller sprite. */
.avatar-art{height:auto;aspect-ratio:1/2;background-size:200% 100%;background-position:0 50%}

/* Keep each theme's original palette; separate the helper with an edge and shadow. */
.helper-bubble{background:#fff;border:1px solid #c8bdd8;box-shadow:0 14px 38px #30213933,0 3px 10px #30213914}
.helper-bubble:after{background:#fff}
[data-theme=dark] .helper-bubble,[data-theme=dark] .helper-bubble:after{background:#35283f;border-color:#7d618d}
[data-theme=dark] .helper-bubble{box-shadow:0 16px 42px #08050c66,0 3px 12px #08050c3d}

/* Color the page canvas and overscroll areas as well as the desktop. */
html{background-color:var(--desktop);color-scheme:light}
html[data-theme=dark]{color-scheme:dark}

/* WebKit caches a gradient-only fixed edge. A nonzero background color lets
   it read the current theme directly; this 1/255 tint preserves the gradient. */
.dock-area{background-color:#eeeae301}
[data-theme=dark] .dock-area{background-color:#1c1c2601}

/* Anchor the counter to the icon corner, independently of the label width. */
.shortcut-count{top:0;right:0;transform:translate(35%,-35%);min-width:24px;height:24px;padding:0 5px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;font-variant-numeric:tabular-nums}

/* Temporary compositing hints are released as soon as the transition ends. */
.app-window{transform-origin:0 0}
.app-window[data-window-motion]{will-change:translate,scale,opacity}
