@font-face{font-family:Selawik;src:url('assets/fonts/selawk.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Selawik;src:url('assets/fonts/selawksb.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Selawik;src:url('assets/fonts/selawkl.woff2') format('woff2');font-style:normal;font-weight:300;font-display:swap}
:root{--font:'Segoe UI Variable Text','Segoe UI',Selawik,'Microsoft YaHei UI','Microsoft YaHei','PingFang SC',sans-serif;--display:'Segoe UI Variable Display','Segoe UI',Selawik,'Microsoft YaHei UI','PingFang SC',sans-serif;--surface:#fff;--panel:#f3f3f3;--layer:#fafafa;--line:#e5e5e5;--stroke:#d1d1d1;--text:#242424;--secondary:#616161;--accent:#0f6cbd;--pressed:#0c3b5e;--hover:#f0f0f0;--selected:#ebf3fc;--window-stroke:#00000026;--shadow:0 8px 32px #00000024;--focus:#242424;color-scheme:light;font:400 14px/20px var(--font);color:var(--text);font-optical-sizing:auto;font-synthesis:none}
body.dark{--surface:#292929;--panel:#202020;--layer:#242424;--line:#383838;--stroke:#666;--text:#fff;--secondary:#d1d1d1;--accent:#479ef5;--pressed:#77b7f7;--hover:#ffffff0f;--selected:#ffffff12;--window-stroke:#ffffff20;--shadow:0 8px 32px #0007;--focus:#fff;color-scheme:dark}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid transparent;background:transparent;border-radius:4px;min-height:32px;padding:5px 12px;line-height:20px;transition:background .1s,border-color .1s}button:hover{background:var(--hover)}button:active{background:var(--selected);color:var(--secondary)}button:disabled{opacity:.45;cursor:default}button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}input,select{background:var(--surface);border:1px solid var(--stroke);border-bottom-color:#8a8a8a;border-radius:4px;min-height:32px;padding:5px 12px}input:hover,select:hover{border-color:#adadad;border-bottom-color:var(--text)}input:focus,select:focus{outline:none;border-bottom:2px solid var(--accent);padding-bottom:4px}textarea:focus-visible{outline:0}.primary{background:var(--accent)!important;color:#fff!important;border-color:transparent!important;font-weight:600}.primary:hover{background:#115ea3!important}.primary:active{background:var(--pressed)!important}.secondary{background:var(--surface);border:1px solid var(--stroke)}.secondary:hover{background:var(--hover)}.fi{display:inline-block;width:20px;height:20px;flex-shrink:0;background:currentColor;mask:var(--icon) center/contain no-repeat;vertical-align:middle;pointer-events:none}.icon-button{padding:6px;min-width:32px;display:inline-flex;align-items:center;justify-content:center}.hidden,[hidden]{display:none!important}
#desktop{height:calc(100dvh - 48px);position:relative;overflow:hidden;background:#b4cbe0}.wallpaper{position:absolute;inset:0;background:radial-gradient(ellipse at 75% 10%,#eff5f9,transparent 55%),linear-gradient(120deg,#9bb1cf,#d4e3ed 60%,#c7d3df);overflow:hidden}.ribbon{position:absolute;width:85vw;height:48vw;min-height:400px;border-radius:50%;border:90px solid #b0c8e0;box-shadow:inset 18px 10px 40px #f4f9ffb0,20px 35px 40px #5c81aa45;transform:rotate(-35deg);left:31%;top:10%}.r2{left:42%;top:27%;border-color:#cbddea;transform:rotate(-35deg) scale(.86)}.r3{left:51%;top:48%;border-color:#dce7ee;transform:rotate(-35deg) scale(.7)}.brand{position:absolute;bottom:48px;left:44px;display:flex;gap:12px;align-items:center;color:#16334e9c;font-size:14px;line-height:20px}.brand b{font:600 28px/36px var(--display);letter-spacing:0}.brand .symbol{width:64px;height:64px;object-fit:contain}#desktop-icons{position:relative;display:flex;flex-direction:column;gap:16px;padding:16px 8px;width:96px}.desktop-icon{width:80px;height:80px;padding:4px 0;color:#153049;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:4px;font-size:12px;line-height:16px}.desktop-icon>span:last-child{white-space:nowrap;max-width:88px;font-size:11px}.desktop-icon:hover{background:#ffffff38;border-color:#ffffff60}.app-icon{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;flex-shrink:0}.app-icon img{width:100%;height:100%;object-fit:contain}.window{position:absolute;min-width:360px;min-height:280px;width:900px;height:570px;max-width:100%;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--window-stroke);border-radius:8px;box-shadow:var(--shadow);overflow:hidden;resize:both;color:var(--text)}.window.max{inset:0!important;width:100%!important;height:100%!important;resize:none;border-radius:0}.window:not(.is-active){box-shadow:0 4px 16px #00000018}.titlebar{height:40px;flex-shrink:0;display:flex;align-items:center;padding-left:16px;user-select:none;background:var(--panel);gap:8px;touch-action:none}.titlebar .app-icon{width:16px;height:16px}.title{flex:1;font-size:12px;line-height:16px}.window:not(.is-active) .title{color:var(--secondary)}.window-controls{display:flex;height:100%}.window-controls button{width:46px;border-radius:0;padding:0;display:grid;place-items:center}.window-controls .fi{width:14px;height:14px}.window-controls button:last-child:hover{background:#c42b1c;color:#fff}.content{flex:1;overflow:auto;position:relative;min-height:0;background:var(--surface)}.toolbar{display:flex;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);min-height:48px;background:var(--surface)}.toolbar button{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.toolbar .divider{height:20px;width:1px;background:var(--line);margin:0 4px}.navigation-toolbar{background:var(--panel);padding:8px 12px;border:0;gap:8px}.address{display:flex;gap:12px;align-items:center;flex:1;min-width:0;min-height:32px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:5px 12px;font-size:14px;white-space:nowrap;overflow:hidden}.address .fi{width:16px;height:16px;color:var(--secondary)}.file-search-wrap{position:relative;width:200px}.file-search-wrap input{width:100%;padding-right:34px;border-color:var(--line);border-bottom-color:var(--stroke)}.file-search-wrap>.fi{position:absolute;right:10px;top:6px;width:16px}.explorer{display:flex;height:100%;flex-direction:column}.file-area{display:flex;flex:1;min-height:0}.sidebar{width:184px;padding:12px 8px;background:var(--panel);flex-shrink:0;border-right:1px solid var(--line)}.sidebar button{position:relative;width:100%;text-align:left;padding:8px 12px;margin-bottom:4px;display:flex;align-items:center;gap:12px;height:36px;font-size:14px;white-space:nowrap}.sidebar .fi{width:18px;height:18px;color:var(--secondary)}.selected{background:var(--selected)!important;color:var(--text)}.sidebar .selected:before,.settings-nav .selected:before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--accent)}.files{flex:1;padding:24px;overflow:auto}.section-label{font-size:12px;line-height:16px;color:var(--secondary);margin:0 0 16px;font-weight:400}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}.file{padding:16px 8px 12px;text-align:center;border:1px solid transparent;border-radius:4px;min-width:0;cursor:default}.file:hover{background:var(--hover)}.file:focus,.file[aria-pressed=true]{background:var(--selected);border-color:#0f6cbd33}.file .app-icon{display:flex;margin:0 auto 12px;width:44px;height:44px}.file-name{word-break:break-word;font-size:12px;line-height:16px}.file small{display:block;color:var(--secondary);margin-top:6px;font-size:12px;line-height:16px}.statusbar{display:flex;gap:16px;padding:6px 16px;font-size:12px;line-height:16px;color:var(--secondary);border-top:1px solid var(--line);background:var(--surface);flex-shrink:0}
#taskbar{height:48px;position:relative;display:flex;align-items:center;justify-content:center;gap:4px;background:#edf1f7;border-top:1px solid #ffffff80;padding:4px 12px;z-index:10000;color:#242424}.dark #taskbar{background:#202020;color:#fff}#taskbar>button,#tasks button{height:40px;min-width:40px;border-radius:4px;padding:4px}.start-logo{display:block;width:26px;height:26px;margin:auto}.task-search{width:196px;background:#ffffffa6;border:1px solid #0000000d!important;border-bottom:1px solid #00000020!important;text-align:left;display:flex;align-items:center;gap:8px;padding:0 12px!important;height:32px!important;min-height:32px;border-radius:16px!important}.task-search .fi{width:16px;height:16px}.task-search span{font-size:12px;color:#616161;white-space:nowrap}.dark .task-search{background:#ffffff0d}.dark .task-search span{color:#d1d1d1}#tasks{display:flex;gap:4px}#tasks button{position:relative}#tasks .app-icon{width:28px;height:28px}#tasks button:after{content:'';width:6px;height:3px;background:#858585;position:absolute;bottom:0;left:17px;border-radius:2px}#tasks button.active{background:#ffffff80}#tasks button.active:after{width:16px;left:12px;background:var(--accent)}.tray{position:absolute;right:8px;display:flex;align-items:center;height:100%;gap:4px}.tray button{height:40px}.tray #quick-launch{display:flex;align-items:center;gap:8px;padding:8px}.tray .fi{width:16px;height:16px}#clock{font-size:12px;line-height:16px;min-width:78px;text-align:right;padding:2px 6px}#show-desktop{min-width:4px;width:4px;border:0;border-left:1px solid #0002;border-radius:0;padding:0;margin-left:6px}
.flyout{position:absolute;bottom:12px;background:var(--surface);border:1px solid var(--window-stroke);border-radius:8px;box-shadow:var(--shadow);z-index:9999;padding:32px;width:600px;left:50%;transform:translateX(-50%);color:var(--text)}.flyout input{width:100%;height:32px}.flyout h3{font-size:14px;line-height:20px;font-weight:600;margin:28px 16px 16px}.apps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.apps-grid button{height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:8px 0;font-size:12px;line-height:16px;white-space:nowrap}.profile{border-top:1px solid var(--line);margin:28px -32px -32px;padding:16px 40px;display:flex;justify-content:space-between;align-items:center;background:var(--panel)}.profile>span{display:flex;align-items:center;gap:12px;font-size:12px}.profile .avatar-small{width:32px;height:32px;display:grid;place-items:center;background:var(--line);border-radius:50%}#quick{left:auto;right:12px;transform:none;width:344px;padding:24px}#quick h3{margin:0 0 20px}#quick .settings-card{background:transparent;padding:16px 0;border:0;border-bottom:1px solid var(--line);border-radius:0}.quick-footer{margin:20px -24px -24px;padding:12px 24px;background:var(--panel);display:flex;justify-content:flex-end}.editor{display:flex;flex-direction:column;height:100%}.editor .note-doc{flex:1;min-height:0;overflow:auto;border:0;padding:20px 24px;background:var(--surface);line-height:1.7;font-size:14px;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;outline:0}.editor .toolbar{min-height:44px}.settings-shell{display:flex;min-height:100%;background:var(--panel)}.settings-nav{width:200px;padding:24px 12px;flex-shrink:0}.settings-user{display:flex;gap:12px;align-items:center;padding:0 8px 28px}.settings-user .app-icon{width:40px;height:40px}.settings-user strong{font-size:14px;font-weight:600}.settings-user small{display:block;color:var(--secondary);font-size:12px}.settings-nav button{position:relative;display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin-bottom:4px;height:36px;white-space:nowrap}.settings{padding:28px 32px;flex:1;min-width:0;max-width:850px}.settings h1{font:600 28px/36px var(--display);margin:0 0 24px}.settings h2{font-size:14px;line-height:20px;font-weight:600;margin:28px 0 12px}.settings-card{border:1px solid var(--line);background:var(--surface);padding:20px 16px;margin:0 0 4px;border-radius:4px;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:76px}.settings-card>.fi{width:24px;height:24px}.settings-card>div{flex:1}.settings-card p{font-size:12px;line-height:16px;color:var(--secondary);margin:4px 0 0}.settings-card button,.settings-card select{flex-shrink:0}.settings select{min-width:100px}.settings-card button:not(.primary){border-color:var(--stroke);background:var(--surface)}.settings-card button:hover{background:var(--hover)}.about-detail{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:20px 16px;font-size:12px;line-height:16px}.about-detail dt{color:var(--secondary)}.about-detail dd{margin:0}.welcome{padding:32px}.welcome h1{font:600 28px/36px var(--display);margin:0 0 8px}.welcome p{color:var(--secondary);line-height:20px}.welcome .hero-mark{margin-bottom:20px}.hero-mark img{width:64px;height:64px}.welcome-links{display:flex;gap:8px;margin-top:24px}.welcome-links button{border:1px solid var(--stroke);padding:12px 16px;background:var(--surface);display:flex;gap:12px;align-items:center}.welcome-links .app-icon{width:24px;height:24px}.welcome .settings-card{background:var(--panel);border:0}.terminal{height:100%;background:#0c0c0c;color:#ccc;padding:16px;font:14px/22px 'Cascadia Mono',Consolas,'SFMono-Regular',monospace;overflow:auto}.terminal pre{white-space:pre-wrap;margin:0;font:inherit}.terminal form{display:flex;align-items:center;gap:8px}.terminal input{flex:1;min-width:0;background:none;border:0;color:inherit;outline:none;font:inherit;padding:0;min-height:22px}.empty{padding:48px 20px;text-align:center;color:var(--secondary)}#toast{position:absolute;bottom:16px;right:16px;padding:12px 20px;background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 16px #0002;color:var(--text);opacity:0;pointer-events:none;z-index:10001;transition:opacity .15s}
.sys-dialog{width:min(440px,calc(100vw - 32px));padding:24px;border:1px solid var(--window-stroke);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font:14px/20px var(--font)}.sys-dialog::backdrop{background:#0006}.sys-dialog h2{font-size:20px;line-height:28px;font-weight:600;margin:0 0 16px}.sys-dialog p{margin:0 0 16px}.sys-dialog label{display:block;margin-bottom:8px}.sys-dialog input{width:100%}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.dialog-actions button{min-width:88px}.sys-dialog .input-error{font-size:12px;color:#bc2f32;margin:8px 0 0;min-height:16px}.context-menu{position:fixed;z-index:18000;padding:4px;min-width:190px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);box-shadow:0 8px 24px #0002}.context-menu button{width:100%;text-align:left;display:flex;align-items:center;gap:12px;padding:6px 12px}
@media(max-width:1050px){.task-search{width:160px}.tray #quick-launch{gap:4px}.window{width:min(900px,calc(100vw - 32px));height:min(570px,calc(100dvh - 96px))}}@media(max-width:800px){.task-search{display:none}.tray{position:static;margin-left:auto}.window{max-width:100%;left:0!important;min-width:320px}.sidebar{width:150px}.flyout{max-width:calc(100% - 24px)}#taskbar{justify-content:flex-start}.settings-nav{width:150px}.settings{padding:24px 20px}.file-search-wrap{width:150px}.toolbar{gap:4px}.toolbar button{padding:5px 8px}.welcome-links{flex-wrap:wrap}}@media(max-width:560px){.sidebar{width:116px;padding:12px 4px}.sidebar button{gap:8px;padding:8px;font-size:12px}.files{padding:16px}.file-search-wrap{width:112px}.settings-nav{display:none}.settings-card{flex-wrap:wrap}.file-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}.apps-grid{grid-template-columns:repeat(3,1fr)}.flyout{padding:24px}.profile{margin:24px -24px -24px;padding:12px 24px}.brand{left:24px}.tray #quick-launch .fi:first-child{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){button,input,select,.window,.flyout,.file{border:1px solid ButtonText}.selected{outline:2px solid Highlight}.fi{background:ButtonText}}
/* Immersive Synapse lock and sign-in surfaces. */
#lockscreen{position:fixed;inset:0;z-index:20000;background:#092f70;color:#fff;overflow:hidden;isolation:isolate;font-family:'Segoe UI',system-ui,sans-serif}#lockscreen [hidden]{display:none!important}.lock-art{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 14% 5%,#16315a 0,transparent 62%),radial-gradient(ellipse at 95% 95%,#257dd1 0,transparent 56%),linear-gradient(135deg,#0e254d,#104287 65%,#2f79b1);transition:filter .65s,transform .8s}.lock-orbit{position:absolute;border-radius:46%;transform:rotate(-33deg);box-shadow:inset 12px 16px 35px #e4faff38,12px 20px 50px #001b5b70;animation:lock-arrive 1.1s ease-out both}.orbit-one{width:88vw;height:65vw;min-width:780px;min-height:550px;left:43%;top:4%;border:95px solid #1e7dd4;background:linear-gradient(145deg,#51d8f1,#0860c9 45%,#123b94);box-shadow:inset 15px 20px 55px #78e6ff,20px 30px 55px #001d5370}.orbit-two{width:79vw;height:53vw;min-width:650px;min-height:430px;left:48%;top:35%;border:70px solid #54c9f0;background:linear-gradient(130deg,#3d9fe4,#1d70bd);box-shadow:inset 12px 18px 50px #c4f8ff95,15px 25px 55px #001b5b70}.orbit-three{width:65vw;height:40vw;min-width:500px;min-height:340px;left:64%;top:66%;border:60px solid #a2e6fb;background:#2b83c5;box-shadow:inset 10px 12px 45px #efffff80,18px 25px 55px #001b5b55}.lock-halo{position:absolute;inset:0;background:linear-gradient(90deg,#071c3d65,transparent 70%),linear-gradient(0deg,#041d4190,transparent 30%);pointer-events:none}.lock-brand{position:absolute;left:42px;top:32px;display:flex;align-items:center;gap:11px;font-size:15px;letter-spacing:.15px;color:#eef8ffde}.lock-brand img{width:36px;height:36px}.lock-brand b{font-weight:600}.lock-clock-view{position:absolute;left:7.6%;top:24%;display:flex;flex-direction:column;align-items:flex-start;color:white;text-align:left;padding:10px 20px 20px;border-radius:12px;cursor:pointer}.lock-clock-view:hover{background:transparent}.lock-clock-view:focus-visible{outline:2px solid #c9edff;outline-offset:8px}.lock-time{font-size:clamp(90px,13vw,166px);font-weight:300;line-height:1.05;letter-spacing:-7px;font-variant-numeric:tabular-nums;text-shadow:0 2px 30px #002b5640}.lock-date{margin-top:18px;font-size:clamp(19px,2.5vw,28px);font-weight:400;letter-spacing:.6px}.lock-continue{margin-top:64px;font-size:12px;letter-spacing:.5px;color:#e9f5ffbd;display:flex;gap:12px;align-items:center}.lock-chevron{font-size:23px;line-height:12px}.lock-footer{position:absolute;left:44px;right:36px;bottom:27px;display:flex;justify-content:space-between;align-items:center;color:#edf7ffe0}.lock-edition{font-size:10px;letter-spacing:3px}.lock-edition span{letter-spacing:.6px;border-left:1px solid #d7efff50;margin-left:10px;padding-left:12px}.lock-status{display:flex;gap:18px;align-items:center;font-size:11px}.lock-status>span{display:flex;gap:8px;align-items:center}.lock-status svg{width:18px;height:18px}.lock-status button{color:white;width:36px;height:36px;display:grid;place-items:center}.lock-status button:hover,.lock-status button[aria-pressed=true]{background:#ffffff20}.signin-view{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px 90px;animation:signin-arrive .35s ease-out}.is-signin .lock-art{filter:blur(22px) brightness(.72);transform:scale(1.08)}.signin-back{position:absolute;top:110px;left:44px;color:#fff;font-size:22px;width:40px;height:40px}.user-avatar{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#b5e9ff5c,#7eb9eb20);border:1px solid #d3f1ff66;box-shadow:0 10px 40px #06214933;backdrop-filter:blur(16px);color:#ebf8ff}.user-avatar svg{width:70px;height:70px}.signin-view h1{font-size:28px;font-weight:500;margin:24px 0 6px}.signin-account{font-size:13px;color:#d3e7f6;margin:0 0 30px}.signin-enter{background:#f2f9ff;color:#153652;min-width:220px;padding:11px 17px;display:flex;justify-content:space-between;align-items:center;border:1px solid #fff;border-radius:5px;box-shadow:0 2px 10px #00214520}.signin-enter:hover{background:#dcefff}.signin-hint{font-size:11px;color:#d5e9f3b0;margin-top:15px}#lockscreen button:focus-visible{outline:2px solid #fff;outline-offset:4px}.lock-reduce-motion *{animation:none!important;transition:none!important}@keyframes lock-arrive{from{opacity:.5;translate:3% 2%}to{opacity:1;translate:0 0}}@keyframes signin-arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@media(max-width:600px){.lock-brand{left:22px;top:22px}.lock-clock-view{left:6%;top:30%}.lock-time{font-size:100px;letter-spacing:-5px}.lock-continue{margin-top:42px}.lock-footer{left:24px;right:20px;bottom:20px}.lock-status>span{font-size:0;gap:0}.lock-edition{letter-spacing:2px}.signin-back{left:20px;top:88px}.orbit-one{left:25%;top:15%}.orbit-two{left:37%;top:45%}}
/* Windows lock-screen typography and restrained signature surface. */
#lockscreen{font-family:var(--font)}.lock-brand{top:28px;left:32px;font-size:14px;letter-spacing:0}.lock-clock-view{left:50%;top:17%;transform:translateX(-50%);align-items:center;text-align:center;white-space:nowrap}.lock-time{font-family:var(--display);font-size:clamp(80px,10vw,128px);font-weight:600;letter-spacing:-3px;line-height:1.1}.lock-date{font-size:18px;line-height:24px;letter-spacing:0;margin-top:12px}.lock-continue{margin-top:32px;font-size:12px;letter-spacing:0}.lock-footer{font-size:12px}.lock-edition{font-size:12px;letter-spacing:0}.lock-edition span{letter-spacing:0}.lock-status{font-size:12px}.signin-view h1{font-family:var(--display);font-size:28px;line-height:36px;font-weight:600}.signin-account{font-size:14px}.signin-hint{font-size:12px;color:#e3edf5}.signin-enter{min-height:36px;font-size:14px;border-radius:4px}.lock-brand b{font-weight:600}.user-avatar{backdrop-filter:none;box-shadow:none;background:#ffffff26;border:1px solid #ffffff3d}.lock-reduce-motion *{animation:none!important;transition:none!important}@media(max-width:600px){.lock-clock-view{left:50%;top:22%}.lock-time{font-size:88px;letter-spacing:-2px}.lock-date{font-size:16px}.lock-brand{left:20px;top:20px}.lock-status>span{font-size:0}}
body.dark .primary{background:#479ef5!important;color:#0a0a0a!important}body.dark .primary:hover{background:#62abf5!important}body.dark #tasks button.active{background:#ffffff12}.toolbar .icon-button:disabled{background:transparent}.sys-dialog button:focus-visible{outline-offset:2px}.context-menu .fi{width:20px;height:20px}.lock-brand{opacity:.85}.lock-footer{color:#fff}.lock-continue{color:#fff}.lock-status button:focus-visible{outline:2px solid white}.settings .section-label{line-height:20px}button span{pointer-events:none}
.settings-avatar{width:44px;height:44px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:var(--line);color:var(--secondary)}.settings-avatar .fi{width:26px;height:26px}input[aria-invalid=true]{border-color:#bc2f32;border-bottom-color:#bc2f32}.dark input[aria-invalid=true]{border-color:#f1707b}.dark .input-error{color:#f1707b}
/* Keep operational copy concise; account and sign-in spacing stands on its own. */
.signin-enter{margin-top:24px}.settings-user strong:only-child{display:block}.settings-card{min-height:72px}
/* Spotlight-inspired photography, with on-demand metadata. */
.landscape-lock .lock-art{background:#18222a;pointer-events:none;animation:none}.lock-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.landscape-lock .lock-halo{background:linear-gradient(180deg,#0008 0%,#0008 37%,#0002 52%,#0009 72%,#0008 100%)}.landscape-lock .lock-clock-view{top:12%;padding:16px 24px}.landscape-lock .lock-time{font-size:clamp(80px,9vw,128px);font-weight:600;letter-spacing:-3px;text-shadow:0 2px 16px #0003}.landscape-lock .lock-date{font-size:20px;line-height:28px;font-weight:600;margin-top:8px}.landscape-lock .lock-footer{justify-content:flex-end;left:auto;right:32px;bottom:24px}.landscape-lock .lock-status button{width:36px;height:36px;border-radius:4px}.landscape-lock .lock-status .fi{width:20px;height:20px}.lock-scene-controls{position:absolute;right:32px;top:24px;display:flex;align-items:center;gap:4px}.lock-scene-controls button{color:#fff;display:flex;align-items:center;gap:8px;min-height:36px;font-size:12px;line-height:16px;text-shadow:0 1px 4px #0009}.lock-scene-controls button:hover,.lock-scene-controls button[aria-expanded=true]{background:#0003}.lock-scene-controls .fi{width:18px;height:18px}.spotlight-caption{position:absolute;top:61%;left:50%;transform:translateX(-50%);width:min(340px,calc(100% - 64px));text-align:center;pointer-events:none;text-shadow:0 1px 8px #0008}.spotlight-caption h2{font-size:14px;line-height:20px;font-weight:600;margin:0 0 8px}.spotlight-caption p{font-size:14px;line-height:20px;font-weight:400;margin:0;max-width:300px;margin-inline:auto}.spotlight-panel{position:absolute;right:32px;top:72px;width:320px;max-height:calc(100% - 150px);overflow:auto;padding:24px;border:1px solid #ffffff26;border-radius:8px;box-shadow:0 8px 32px #0003;background:#222c36;color:#fff}.spotlight-panel h2{font-size:20px;line-height:28px;font-weight:600;margin:0 0 4px}.spotlight-panel p{font-size:14px;line-height:20px;margin:16px 0}.spotlight-panel .scene-location{font-size:12px;line-height:16px;color:#e0e4e8;margin:0 0 20px}.spotlight-panel dl{font-size:12px;line-height:16px;display:grid;grid-template-columns:40px 1fr;gap:12px;margin:24px 0}.spotlight-panel dt{color:#d8e0e8}.spotlight-panel dd{margin:0;overflow-wrap:anywhere}.spotlight-panel a{color:#9bd1ff;text-underline-offset:3px}.spotlight-panel .scene-source{display:inline-flex;align-items:center;gap:4px;font-size:14px;line-height:20px}.spotlight-panel a:focus-visible{outline:2px solid #fff;outline-offset:3px}.is-signin .lock-scene-controls,.is-signin .spotlight-caption{display:none}.landscape-lock.is-signin .lock-art{filter:blur(16px) brightness(.75);transform:scale(1.05)}.landscape-lock .user-avatar .fi{width:64px;height:64px}.landscape-lock .signin-enter .fi{width:18px;height:18px}@media(max-width:600px){.landscape-lock .lock-clock-view{top:16%}.landscape-lock .lock-time{font-size:88px}.landscape-lock .lock-date{font-size:16px;line-height:24px}.lock-scene-controls{top:16px;right:16px}.spotlight-panel{right:16px;top:64px;width:min(320px,calc(100% - 32px))}.spotlight-caption{top:auto;bottom:20%}.landscape-lock .lock-footer{right:20px;bottom:20px}}@media(max-height:520px){.landscape-lock .lock-clock-view{top:4%}.landscape-lock .lock-time{font-size:64px}.landscape-lock .lock-date{font-size:16px;line-height:20px}.spotlight-caption{top:auto;bottom:18%}.lock-scene-controls{top:12px;right:16px}}
.landscape-lock .lock-clock-view:focus-visible{outline:none}.landscape-lock.keyboard-navigation .lock-clock-view:focus-visible{outline:2px solid #fff;outline-offset:6px}.spotlight-caption p{text-wrap:balance}.spotlight-caption h2{text-wrap:balance}

.spotlight-panel .scene-source{display:block;font-size:12px;line-height:16px;color:inherit}
/* Explorer empty states span the complete file area, never one icon-grid cell. */
.file-grid > .empty{grid-column:1 / -1;justify-self:stretch;text-align:center}
/* Complete Settings catalog. Category navigation and main content scroll separately. */
.full-settings{height:100%;min-height:0}.full-settings .settings-nav{width:244px;padding:16px 12px;display:flex;flex-direction:column;overflow:hidden}.full-settings .settings-user{padding:4px 8px 20px}.settings-search-wrap{position:relative;margin-bottom:20px;flex-shrink:0}.settings-search-wrap input{width:100%;padding-right:32px;font-size:12px}.settings-search-wrap>.fi{position:absolute;right:10px;top:8px;width:16px;height:16px;color:var(--secondary)}.settings-categories{overflow:auto;flex:1;padding-right:4px;scrollbar-width:thin}.settings-categories button{font-size:14px;height:36px;gap:12px;padding:8px;min-height:36px;flex-shrink:0}.settings-categories .fi{width:20px;height:20px}.settings-categories .selected:before{left:-1px}.full-settings .settings-page{max-width:none;flex:1;padding:24px 32px 40px;overflow:auto;min-height:0;scrollbar-width:thin}.setting-row{min-height:64px;padding:16px;cursor:default}.setting-row>.fi{width:22px;height:22px}.setting-value{font-size:12px;color:var(--secondary);white-space:nowrap}.settings-page h1{margin-bottom:24px}.settings-page h2{margin-top:24px}.settings-no-results{margin-top:48px;text-align:center;color:var(--secondary)}.settings-home-identity{display:flex;align-items:center;gap:16px;margin-bottom:28px}.settings-home-identity .app-icon{width:52px;height:52px}.settings-home-identity h2{margin:0 0 4px;font-size:20px;line-height:28px}.settings-home-identity span{font-size:12px;color:var(--secondary)}.settings-home-links{display:flex;flex-direction:column;gap:4px}.settings-home-links button{display:flex;align-items:center;gap:16px;min-height:60px;padding:16px;text-align:left;background:var(--surface);border-color:var(--line)}.settings-home-links button span:not(.fi){flex:1}.off-desktop,.peek-hidden{display:none!important}#taskview-launch{display:grid;place-items:center}#taskview-launch .fi{width:24px;height:24px}#taskview-launch[aria-expanded=true]{background:#ffffff80}.dark #taskview-launch[aria-expanded=true]{background:#ffffff1a}
/* Task View uses quiet surfaces and a desktop strip, with windows kept alive. */
#taskview{position:fixed;inset:0 0 48px;z-index:9998;background:#e9eef7f5;color:var(--text);display:flex;flex-direction:column;overflow:hidden;padding:28px 40px 24px;backdrop-filter:blur(18px)}.dark #taskview{background:#181c23f5}.taskview-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.taskview-header h1{font:600 20px/28px var(--display);margin:0}.taskview-windows{flex:1;min-height:0;display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:24px;overflow:auto;padding:24px 0}.task-preview{width:280px;max-width:100%;border:1px solid var(--window-stroke);border-radius:8px;overflow:hidden;background:var(--surface);box-shadow:0 4px 16px #00000012}.task-preview-open{width:100%;padding:0;text-align:left;display:block;border-radius:0}.preview-title{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px;line-height:16px}.preview-title .app-icon{width:20px;height:20px}.preview-title>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-body{height:112px;display:grid;place-items:center;background:var(--layer)}.preview-body .app-icon{width:48px;height:48px}.move-window{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--line);font-size:12px;gap:12px}.move-window select{max-width:160px;min-width:100px;font-size:12px}.taskview-empty{color:var(--secondary);font-size:14px;align-self:center;margin:auto}.desktop-strip{display:flex;gap:16px;overflow-x:auto;padding:8px 4px;flex-shrink:0;min-height:156px;justify-content:flex-start;scrollbar-width:thin}.desktop-tile{width:208px;flex-shrink:0}.desktop-tile-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.desktop-name{font-size:12px;line-height:16px;padding:4px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;max-width:168px}.close-desktop{min-height:24px;height:24px;min-width:24px;width:24px;padding:4px}.close-desktop .fi{width:16px;height:16px}.desktop-miniature{position:relative;width:208px;height:112px;overflow:hidden;border:2px solid transparent;border-radius:6px;padding:0;display:block;box-shadow:0 1px 4px #0002;background:#abc3dd}.current .desktop-miniature{border-color:var(--accent);outline:2px solid var(--surface);outline-offset:1px}.mini-wallpaper{position:absolute;inset:0;background:radial-gradient(ellipse at 75% 15%,#f3f8ff,transparent 60%),linear-gradient(135deg,#91accc,#dce6f0)}.mini-wallpaper:after{content:'';position:absolute;width:200px;height:120px;top:20px;left:90px;border:24px solid #abc3dc;border-radius:50%;transform:rotate(-35deg);box-shadow:inset 2px 2px 6px #fff9}.mini-apps{position:absolute;inset:16px 20px;display:flex;gap:8px;flex-wrap:wrap;align-content:center;justify-content:center}.mini-apps .app-icon{width:28px;height:28px;padding:3px;background:#ffffffb8;border:1px solid #ffffffc0;border-radius:4px}.desktop-add{align-self:flex-end;flex-shrink:0;width:208px;height:112px;border:1px solid var(--stroke);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;border-radius:6px;background:var(--surface);margin-bottom:0;font-size:12px}.desktop-add .fi{width:24px;height:24px}
@media(max-width:800px){.full-settings .settings-nav{width:204px}.full-settings .settings-page{padding:24px 20px}.settings-categories button{font-size:12px}.setting-row{gap:12px;flex-wrap:wrap}.setting-row>.fi{width:20px;height:20px}#taskview{padding:20px 24px}.task-preview{width:240px}.taskview-windows{gap:16px}}@media(max-width:560px){.full-settings .settings-nav{display:flex;width:64px;padding:12px 4px}.full-settings .settings-user{padding:0 6px 16px}.full-settings .settings-user strong,.full-settings .settings-search-wrap{display:none}.settings-categories button{padding:8px 12px;font-size:0;gap:0}.settings-categories button .fi{font-size:14px;width:20px;height:20px}.full-settings .settings-page{padding:20px 16px}.full-settings .settings-avatar{width:36px;height:36px}.setting-row{padding:12px;min-height:56px}.setting-row>div{font-size:12px}.setting-value{white-space:normal}.desktop-tile,.desktop-miniature,.desktop-add{width:176px}.desktop-miniature,.desktop-add{height:100px}.desktop-strip{min-height:144px}#taskview{padding:16px}.taskview-windows{padding:16px 0}.task-preview{width:200px}.preview-body{height:72px}}
/* Synapse appearance: a recognizable blue identity on restrained Fluent surfaces. */
.wallpaper{background-size:cover;background-position:center;background-repeat:no-repeat}.wallpaper>.ribbon{display:none}#desktop[data-wallpaper-type=photo] .brand{display:none}#desktop.wallpaper-dark .desktop-icon{color:#f1f6ff;text-shadow:0 1px 4px #0009}#desktop.wallpaper-dark .brand{color:#dceeffb0}#desktop[data-wallpaper-type=photo] .desktop-icon{color:#fff;text-shadow:0 1px 4px #000,0 1px 8px #000a}
.synapse-settings{--settings-pane:#eef3f9;--settings-canvas:#f9fbfe;--settings-group:#fff;background:var(--settings-canvas)}.dark .synapse-settings{--settings-pane:#1c2633;--settings-canvas:#18212c;--settings-group:#202d3b}.synapse-settings .settings-nav{width:228px;background:var(--settings-pane);border-right:1px solid var(--line);padding-top:20px}.settings-brand{display:flex;align-items:center;gap:10px;padding:0 10px 20px}.settings-brand img{width:36px;height:36px}.settings-brand>span{font:600 20px/24px var(--display);letter-spacing:-.3px}.settings-brand>span>span{display:block;font:400 12px/16px var(--font);color:var(--secondary);letter-spacing:0;margin-top:2px}.synapse-settings .settings-user{padding:0 10px 16px;gap:10px}.synapse-settings .settings-avatar{width:28px;height:28px;background:#dce7f3}.dark .synapse-settings .settings-avatar{background:#304356}.synapse-settings .settings-avatar .fi{width:18px;height:18px}.synapse-settings .settings-user strong{font-size:12px;font-weight:400}.synapse-settings .settings-search-wrap{margin-bottom:16px}.synapse-settings .settings-categories button{height:34px;min-height:34px;font-size:12px;padding:7px 10px;gap:10px;margin-bottom:2px}.synapse-settings .settings-categories button.selected{background:#fff!important;color:var(--accent);box-shadow:0 1px 2px #13284c08}.dark .synapse-settings .settings-categories button.selected{background:#31465c!important;color:#9cceff}.synapse-settings .settings-categories .selected:before{left:0;background:var(--accent);top:9px;bottom:9px}.synapse-settings .settings-page{background:var(--settings-canvas);padding:28px 32px 40px}.settings-page-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}.settings-page-heading h1{margin:0!important}.settings-page-symbol{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:#e5effa;color:#0f6cbd}.dark .settings-page-symbol{background:#2b4158;color:#91caff}.settings-page-symbol .fi{width:22px;height:22px}.synapse-settings .settings-row-group{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--settings-group);margin-top:24px}.synapse-settings .settings-row-group .setting-row{margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;min-height:56px;padding:16px 20px}.synapse-settings .settings-row-group .setting-row:last-child{border-bottom:0}.synapse-settings .setting-row>.fi{width:20px;height:20px;color:var(--secondary)}.synapse-settings .settings-home-links button{border-radius:4px;background:var(--settings-group)}.synapse-settings .settings-page section>h2{margin:28px 0 12px}.synapse-settings .settings-page section>h2+.settings-row-group{margin-top:0}
.appearance-top{display:grid;grid-template-columns:minmax(0,1fr) 196px;gap:24px;align-items:center}.desktop-preview{aspect-ratio:16/10;position:relative;overflow:hidden;border-radius:8px;border:1px solid var(--window-stroke);box-shadow:0 2px 8px #102e4b10;isolation:isolate}.desktop-preview>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.preview-desktop-window{position:absolute;top:20%;left:25%;width:56%;height:54%;border-radius:4px;overflow:hidden;background:#ffffffed;border:1px solid #ffffffa0;box-shadow:0 6px 20px #19374e26}.dark .preview-desktop-window{background:#202d3bea;border-color:#ffffff20}.preview-window-bar{height:24%;min-height:14px;display:flex;align-items:center;gap:8px;padding:3px 6px;border-bottom:1px solid #9dacc32b;background:#eef3f9}.dark .preview-window-bar{background:#1c2633}.preview-window-bar .app-icon{width:12px;height:12px}.preview-window-bar>i{width:28%;height:3px;border-radius:2px;background:#7d93aa}.preview-window-content{display:flex;flex-direction:column;gap:7px;padding:12px}.preview-window-content i{height:4px;width:74%;border-radius:2px;background:#d1dce7}.preview-window-content i:nth-child(2){width:55%}.preview-window-content i:nth-child(3){width:65%}.dark .preview-window-content i{background:#486079}.preview-taskbar{position:absolute;bottom:0;left:0;right:0;height:9%;min-height:14px;display:flex;align-items:center;justify-content:center;gap:6px;background:#f1f5fbe6;border-top:1px solid #ffffff70}.dark .preview-taskbar{background:#1c2633ee;border-color:#ffffff20}.preview-taskbar .app-icon{width:12px;height:12px}.appearance-modes{padding:0;margin:0;border:0;display:flex;gap:12px;min-width:0}.appearance-modes legend{font-size:14px;line-height:20px;font-weight:600;padding:0;margin-bottom:12px}.mode-option{display:block;position:relative;flex:1;min-width:0;cursor:pointer}.mode-option>input,.wallpaper-option>input{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;margin:0;opacity:0;cursor:pointer;z-index:1}.mode-sample{height:62px;display:flex;position:relative;overflow:hidden;border:2px solid var(--stroke);border-radius:6px;padding:7px;background:#f3f6fa;gap:5px}.mode-dark{background:#152130}.sample-side{width:23%;height:100%;border-radius:2px;background:#d5e2ef}.mode-dark .sample-side{background:#30475e}.sample-page{flex:1;background:white;border-radius:2px;padding:8px 5px;display:flex;flex-direction:column;gap:4px}.mode-dark .sample-page{background:#293a4e}.sample-page i{height:3px;background:#d5e2ef;border-radius:1px}.mode-dark .sample-page i{background:#486079}.sample-page i:last-child{width:60%}.mode-label{display:flex;align-items:center;gap:6px;font-size:12px;line-height:16px;margin-top:8px}.mode-label .fi{width:16px;height:16px}.mode-check,.wallpaper-check{display:none;position:absolute;right:5px;bottom:5px;width:20px;height:20px;align-items:center;justify-content:center;background:#0f6cbd;color:white;border:1px solid #ffffffd9;border-radius:50%}.mode-check .fi,.wallpaper-check .fi{width:14px;height:14px}.mode-option input:checked+.mode-sample{border-color:var(--accent)}.mode-option input:checked+.mode-sample .mode-check,.wallpaper-option input:checked+.wallpaper-thumb .wallpaper-check{display:flex}.mode-option input:focus-visible+.mode-sample,.wallpaper-option input:focus-visible+.wallpaper-thumb{outline:2px solid var(--focus);outline-offset:3px}.mode-option:hover .mode-sample{box-shadow:0 0 0 1px var(--accent)}.current-wallpaper-label{margin-top:24px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--secondary)}.current-wallpaper-label strong{font-size:14px;font-weight:400;line-height:20px;color:var(--text)}.wallpaper-library{margin-top:28px}.wallpaper-library>h2{font-size:16px;line-height:22px;margin:0 0 16px!important;font-weight:600}.wallpaper-group{border:0;padding:0;margin:0 0 20px;min-width:0}.wallpaper-group legend{font-size:12px;line-height:16px;padding:0;margin-bottom:10px;color:var(--secondary)}.wallpaper-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.wallpaper-option{position:relative;cursor:pointer;min-width:0}.wallpaper-thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border-radius:6px;border:2px solid transparent;background:var(--panel);box-shadow:0 0 0 1px var(--window-stroke)}.wallpaper-thumb>img{display:block;width:100%;height:100%;object-fit:cover}.wallpaper-option input:checked+.wallpaper-thumb{border-color:var(--accent);box-shadow:none}.wallpaper-option:hover .wallpaper-thumb{border-color:var(--accent)}.wallpaper-name{display:block;margin-top:8px;font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setting-row>.appearance-modes{width:196px;flex-shrink:0}.setting-row>.appearance-modes legend{display:none}
@media(max-width:800px){.synapse-settings .settings-nav{width:196px}.synapse-settings .settings-page{padding:24px}.appearance-top{grid-template-columns:1fr;gap:20px}.appearance-controls{display:flex;align-items:center;gap:28px}.appearance-controls .appearance-modes{width:196px;flex-shrink:0}.current-wallpaper-label{margin-top:0}.desktop-preview{max-width:480px}.wallpaper-options{gap:12px}}@media(max-width:560px){.synapse-settings .settings-nav{width:64px;padding:12px 4px}.settings-brand{padding:0 8px 20px}.settings-brand img{width:32px;height:32px}.settings-brand>span{display:none}.synapse-settings .settings-user{padding:0 10px 16px}.synapse-settings .settings-categories button{font-size:0;padding:7px 12px;gap:0}.synapse-settings .settings-page{padding:20px 16px}.settings-page-symbol{display:none}.appearance-controls{flex-wrap:wrap;gap:20px}.wallpaper-options{grid-template-columns:repeat(2,minmax(0,1fr))}.synapse-settings .settings-row-group .setting-row{padding:14px 12px}.mode-sample{height:58px}}
.synapse-appearance .appearance-top{grid-template-columns:minmax(0,340px) 196px;max-width:560px}.synapse-appearance .wallpaper-library{max-width:580px;margin-top:24px}.synapse-appearance .wallpaper-thumb{aspect-ratio:2.2/1}.synapse-appearance .wallpaper-group{margin-bottom:16px}@media(max-width:800px){.synapse-appearance .appearance-top{grid-template-columns:1fr;max-width:480px}}@media(max-width:560px){.synapse-appearance .wallpaper-thumb{aspect-ratio:16/9}}
/* Keep wallpaper, thumbnails and lock photography within SDR reference white. */
.wallpaper,.lock-photo,.wallpaper-thumb img,.desktop-preview>img,.mini-wallpaper{dynamic-range-limit:standard}
.browser-start{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;gap:16px}.browser-start>.app-icon,.browser-start>.app-icon img{width:72px;height:72px}.browser-start h1{font-size:24px;font-weight:600;margin:0;color:var(--text)}.browser-shortcuts{display:flex;gap:12px;margin-top:16px}.browser-shortcuts a{padding:12px 24px;color:var(--text);background:var(--panel);border:1px solid #8883;border-radius:6px;text-decoration:none}.browser-shortcuts a:hover{background:#0f6cbd18}
.edge-start{background:radial-gradient(ellipse at 50% 10%,#56b9e016,transparent 66%),var(--surface);justify-content:flex-start;padding-top:80px;gap:28px}.edge-wordmark{display:flex;align-items:center;gap:14px}.edge-wordmark .app-icon,.edge-wordmark .app-icon img{width:52px;height:52px}.edge-wordmark h1{font-size:27px;letter-spacing:-.6px;font-weight:600}.edge-search{width:min(560px,90%);display:flex;align-items:center;gap:12px;height:48px;padding:0 12px 0 18px;background:var(--surface);border:1px solid #8885;border-bottom-color:#0f6cbd66;border-radius:8px;box-shadow:0 3px 12px #102d4d08;color:var(--secondary)}.edge-search:focus-within{outline:2px solid var(--accent);outline-offset:1px}.edge-search input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font:inherit}.edge-search button{width:32px;height:32px;border:0;border-radius:4px;background:transparent;color:var(--accent);display:grid;place-items:center}.edge-search button:hover{background:#0f6cbd16}.edge-start .browser-shortcuts{margin-top:0}.edge-start .browser-shortcuts a{font-size:12px;min-width:88px;text-align:center;padding:14px 18px}
.edge-site{padding:28px 40px;max-width:960px;margin:0 auto}.edge-site a{color:var(--accent);text-decoration:none}.edge-site a:hover{text-decoration:underline}.edge-site-nav{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #8883;padding:0 0 20px;margin-bottom:32px}.edge-site-nav strong{font-size:20px;font-weight:600}.edge-product{text-align:center;padding:40px 0}.edge-product h1{font-weight:600;font-size:32px}.edge-product .browser-shortcuts{justify-content:center}.edge-results h1{font-size:24px;font-weight:600}.edge-page-search{width:100%;max-width:600px;margin-bottom:24px}.edge-result-summary,.edge-result-url{font-size:12px;color:var(--secondary)}.edge-results article{margin:28px 0;max-width:640px}.edge-results h2{font-size:20px;font-weight:500;margin:6px 0}.edge-results p{line-height:1.7}.edge-story img{width:100%;max-height:320px;object-fit:cover;border-radius:8px;dynamic-range-limit:standard}.edge-story p,.edge-help p{line-height:1.8;color:var(--secondary)}.edge-story h1,.edge-help h1{font-size:28px;font-weight:600}.edge-help h2{font-size:18px;margin:28px 0 12px}.edge-error p{margin:0;color:var(--secondary)}.edge-error button{border:1px solid #8885;background:var(--panel);color:var(--text);padding:8px 20px;border-radius:4px}


/* Synapse Edge: opaque layered chrome, blue selection rail, compact controls. */

.browser-shortcuts a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.edge-browser{position:relative;height:100%;display:flex;flex-direction:column;background:var(--surface);color:var(--text)}
.edge-browser .fi{width:16px;height:16px;color:currentColor}
.edge-tabstrip{flex:none;display:flex;align-items:flex-end;gap:4px;height:40px;padding:0 8px;background:var(--panel)}
.edge-tablist{display:flex;align-items:flex-end;min-width:0;flex:0 1 auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.edge-tablist::-webkit-scrollbar{display:none}
.edge-tab{position:relative;display:flex;align-items:center;flex:0 1 220px;min-width:72px;width:220px;height:32px;border-radius:6px 6px 0 0;color:var(--secondary)}
.edge-tab:not(.selected):hover{background:var(--hover);color:var(--text)}
.edge-tab:not(.selected)+.edge-tab:not(.selected):before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:1px;background:var(--line)}
.edge-tab.selected{background:var(--surface);color:var(--text);box-shadow:0 -1px 0 var(--line),1px 0 0 var(--line),-1px 0 0 var(--line)}
.edge-tab.selected:after{content:'';position:absolute;left:8px;right:8px;top:0;height:2px;border-radius:0 0 2px 2px;background:var(--accent)}
.edge-tab-main{flex:1;min-width:0;height:32px;min-height:0;display:flex;align-items:center;gap:8px;padding:0 4px 0 10px;border:0;border-radius:6px 6px 0 0;background:transparent;color:inherit;font-size:12px;line-height:16px;text-align:left}
.edge-tab-main:hover{background:transparent}
.edge-tab-main .app-icon,.edge-tab-main .app-icon img,.edge-favicon{width:16px;height:16px;flex:none;object-fit:contain}
.edge-tab-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edge-tab.selected .edge-tab-title{font-weight:600}
.edge-tab-close{flex:none;width:24px;min-width:24px;height:24px;min-height:24px;margin-right:4px;padding:0;display:grid;place-items:center;border:0;border-radius:4px;color:var(--secondary)}
.edge-tab-close .fi{width:12px;height:12px}
.edge-tab-close:hover{background:var(--hover);color:var(--text)}
.edge-tab:not(.selected):not(:hover) .edge-tab-close{opacity:0}
.edge-tab:focus-within .edge-tab-close{opacity:1}
.edge-spinner{width:14px;height:14px;flex:none;margin:1px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:edge-spin .8s linear infinite}
@keyframes edge-spin{to{transform:rotate(360deg)}}
.edge-tabstrip>.edge-tool{margin-bottom:4px}
.edge-tool{flex:none;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;display:inline-grid;place-items:center;border:0;border-radius:4px;background:transparent;color:var(--text)}
.edge-tool:hover{background:var(--hover)}
.edge-tool:active{background:var(--selected)}
.edge-tool:disabled{opacity:.38;background:transparent}
.edge-tool[hidden]{display:none}
.edge-tool[aria-expanded=true]{background:var(--selected);color:var(--accent)}
.edge-toolbar{flex:none;display:flex;align-items:center;gap:4px;height:44px;padding:0 8px;background:var(--surface);border-bottom:1px solid var(--line)}
.edge-toolbar:has(+.edge-favorites-bar:not([hidden])){border-bottom-color:transparent}
.edge-omnibox{flex:1;min-width:120px;display:flex;align-items:center;gap:4px;height:32px;margin:0 4px;padding:0 2px 0 10px;border:1px solid transparent;border-radius:16px;background:var(--panel);color:var(--secondary)}
.edge-omnibox:hover{border-color:var(--line)}
.edge-omnibox:focus-within{background:var(--surface);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.edge-site-state{flex:none;display:grid;place-items:center;width:16px;height:16px}
.edge-site-state .app-icon,.edge-site-state .app-icon img{width:16px;height:16px}
.edge-omnibox input{flex:1;min-width:0;height:30px;min-height:0;padding:0 6px;border:0;background:transparent;color:var(--text);font-size:14px;outline:0}
.edge-omnibox input:focus{border:0;padding-bottom:0}
.edge-omnibox .edge-tool{width:28px;min-width:28px;height:28px;min-height:28px;border-radius:14px}
.edge-omnibox .edge-tool.is-on{color:var(--accent)}
.edge-tools{display:flex;gap:2px;flex:none}
.edge-favorites-bar{flex:none;display:flex;align-items:center;gap:2px;height:32px;padding:0 8px 2px;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--line)}
.edge-favorites-bar[hidden]{display:none}
.edge-favorites-bar button{flex:none;display:flex;align-items:center;gap:6px;max-width:180px;height:28px;min-height:28px;padding:0 8px;border:0;border-radius:4px;color:var(--text);font-size:12px;line-height:16px}
.edge-favorites-bar button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edge-favorites-bar .fi{color:var(--secondary)}
.edge-tabpanes{position:relative;flex:1;min-height:0}
.edge-pane{height:100%;overflow:auto;background:var(--surface);color:var(--text)}
.edge-pane[hidden]{display:none}
.edge-pane:focus{outline:0}
.edge-pane:has(>.edge-test-frame){overflow:hidden}
.edge-pane>.edge-start{min-height:100%;box-sizing:border-box}
.edge-test-frame{display:block;width:100%;height:100%;border:0;background:#fff}
::highlight(edge-find){background-color:#ffe27a;color:#1a1a1a}
::highlight(edge-find-current){background-color:#f7a600;color:#1a1a1a}
.edge-findbar{position:absolute;z-index:6;top:88px;right:16px;display:flex;align-items:center;gap:4px;width:min(360px,calc(100% - 32px));padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 4px 16px #0000001f}
.edge-findbar[hidden]{display:none}
.edge-browser:has(.edge-favorites-bar:not([hidden])) .edge-findbar{top:120px}
.edge-findbar input{flex:1;min-width:0;height:32px}
.edge-find-count{min-width:44px;font-size:12px;color:var(--secondary);text-align:center;white-space:nowrap}
.edge-flyout{position:absolute;z-index:7;top:86px;right:8px;width:min(340px,calc(100% - 16px));max-height:calc(100% - 100px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 8px 24px #00000024;overflow:hidden}
.edge-flyout header{display:flex;align-items:center;gap:2px;padding:8px 8px 8px 16px;border-bottom:1px solid var(--line)}
.edge-flyout h2{flex:1;margin:0;font-size:14px;line-height:20px;font-weight:600}
.edge-flyout-list{overflow:auto;padding:4px}
.edge-download{display:flex;align-items:center;gap:2px;border-radius:4px}
.edge-download:hover{background:var(--hover)}
.edge-download-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:8px;border:0;text-align:left;background:transparent}
.edge-download-open:hover{background:transparent}
.edge-download-open .app-icon,.edge-download-open .app-icon img{width:32px;height:32px;flex:none}
.edge-download-open>span:last-child{display:grid;min-width:0}
.edge-download-open strong{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edge-download-open small{font-size:12px;line-height:16px;color:var(--secondary)}
.edge-download-open:disabled strong{text-decoration:line-through;color:var(--secondary)}
.edge-empty{margin:0;padding:32px 16px;text-align:center;color:var(--secondary)}
.edge-empty[hidden]{display:none}
.edge-download-host{display:none}
.edge-internal{display:flex;min-height:100%;background:var(--surface)}
.edge-internal-nav{flex:none;width:200px;display:flex;flex-direction:column;gap:2px;padding:16px 8px;background:var(--layer);border-right:1px solid var(--line)}
.edge-internal-nav button{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;height:36px;padding:0 12px;border:0;border-radius:4px;color:var(--text);text-align:left}
.edge-internal-nav button.selected{background:var(--selected);font-weight:600}
.edge-internal-nav button.selected:before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--accent)}
.edge-internal-nav button.selected .fi{color:var(--accent)}
.edge-internal-main{flex:1;min-width:0;max-width:880px;padding:24px 32px 40px}
.edge-internal-main>header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:16px}
.edge-internal-main h1{flex:1 0 auto;margin:0;font:600 20px/28px var(--display)}
.edge-internal-main h1:focus{outline:0}
.edge-internal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.edge-internal-actions .secondary,.edge-row .secondary{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.edge-filter{position:relative;width:240px}
.edge-filter .fi{position:absolute;left:10px;top:8px;color:var(--secondary)}
.edge-filter input{width:100%;padding-left:34px}
.edge-day{margin-top:8px}
.edge-day[hidden]{display:none}
.edge-day h2{margin:16px 0 4px;font-size:14px;line-height:20px;font-weight:600;color:var(--secondary)}
.edge-entry{display:flex;align-items:center;gap:12px;min-height:48px;padding:4px 4px 4px 12px;border-bottom:1px solid var(--line)}
.edge-entry:hover{background:var(--layer)}
.edge-entry[hidden]{display:none}
.edge-entry-icon{flex:none;width:44px;display:grid;place-items:center;color:var(--secondary);font-size:12px;font-variant-numeric:tabular-nums}
.edge-entry-icon .app-icon,.edge-entry-icon .app-icon img{width:28px;height:28px}
.edge-entry-text{flex:1;min-width:0;display:grid}
.edge-entry-title{justify-self:start;max-width:100%;min-height:0;padding:0;border:0;border-radius:2px;background:none;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.edge-entry-title:hover{background:none;color:var(--accent);text-decoration:underline}
.edge-entry-title:disabled{opacity:1;color:var(--secondary);text-decoration:line-through}
.edge-entry-meta{font-size:12px;line-height:16px;color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edge-entry-actions{display:flex;gap:2px;flex:none;opacity:0}
.edge-entry:hover .edge-entry-actions,.edge-entry:focus-within .edge-entry-actions{opacity:1}
.edge-group{margin-bottom:24px}
.edge-group h2{margin:0 0 4px;font-size:14px;line-height:20px;font-weight:600}
.edge-row{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;padding:4px 16px;background:var(--layer);border:1px solid var(--line);border-top:0}
.edge-group h2+.edge-row{border-top:1px solid var(--line);border-radius:4px 4px 0 0}
.edge-row:last-child{border-radius:0 0 4px 4px}
.edge-group h2+.edge-row:last-child{border-radius:4px}
.edge-value{color:var(--secondary)}
.edge-switch{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:40px;height:20px;min-height:20px;margin:0;padding:0;border:1px solid var(--secondary);border-radius:10px;background:transparent;cursor:pointer}
.edge-switch:before{content:'';position:absolute;left:3px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--secondary);transition:left .12s}
.edge-switch:checked{background:var(--accent);border-color:var(--accent)}
.edge-switch:checked:before{left:23px;background:#fff}
body.dark .edge-switch:checked:before{background:#0a0a0a}
.edge-switch:focus{padding-bottom:0;border-bottom:1px solid var(--secondary)}
.edge-switch:checked:focus{border-bottom-color:var(--accent)}
.edge-switch:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.edge-omnibox input:focus-visible,.edge-filter input:focus-visible,.edge-findbar input:focus-visible{outline:0}
@media(max-width:600px){.edge-internal-nav{width:56px;padding:12px 4px}.edge-internal-nav span{display:none}.edge-internal-nav button{justify-content:center;padding:0}.edge-internal-main{padding:16px}.edge-filter{width:100%}.edge-tab{flex-basis:140px}}
.window:has(.edge-browser){min-width:400px}
@media(forced-colors:active){.edge-tab.selected:after,.edge-internal-nav button.selected:before{background:Highlight}.edge-switch:before{background:ButtonText}.edge-switch:checked{background:Highlight}}
/* PDF reader */
.pdf-app{--pdf-canvas:#e6e8eb;position:relative;height:100%;display:flex;flex-direction:column;background:var(--surface);color:var(--text)}
body.dark .pdf-app{--pdf-canvas:#1b1b1b}
.pdf-app .fi{width:16px;height:16px;color:currentColor}
.pdf-toolbar{flex:none;display:flex;align-items:center;gap:4px;height:44px;padding:0 8px;background:var(--surface);border-bottom:1px solid var(--line);overflow:hidden}
.pdf-toolbar .divider{flex:none;width:1px;height:20px;margin:0 4px;background:var(--line)}
.pdf-toolbar .spacer{flex:1}
.pdf-pagebox{display:flex;align-items:center;gap:6px;flex:none;font-size:12px;color:var(--secondary)}
.pdf-pagebox input{width:52px;height:28px;min-height:28px;padding:2px 6px;text-align:center;font-variant-numeric:tabular-nums}
.pdf-zoom{height:28px;min-height:28px;padding:2px 8px;font-size:12px;flex:none}
.pdf-app .edge-tool[aria-pressed=true]{background:var(--selected);color:var(--accent)}
.pdf-body{position:relative;flex:1;min-height:0;display:flex}
.pdf-sidebar{flex:none;width:176px;overflow:auto;padding:12px 0;background:var(--layer);border-right:1px solid var(--line)}
.pdf-sidebar[hidden]{display:none}
.pdf-thumb{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;min-height:0;padding:8px 0;border:0;border-radius:0;background:transparent;font-size:12px;line-height:16px;color:var(--secondary)}
.pdf-thumb:hover{background:var(--hover)}
.pdf-thumb-frame{display:grid;place-items:center;width:112px;border:2px solid transparent;border-radius:4px;padding:2px}
.pdf-thumb canvas{display:block;max-width:104px;background:#fff;box-shadow:0 1px 3px #00000033}
.pdf-thumb[aria-current=page]{color:var(--accent);font-weight:600}
.pdf-thumb[aria-current=page] .pdf-thumb-frame{border-color:var(--accent);background:var(--selected)}
.pdf-viewport{position:relative;flex:1;min-width:0;overflow:auto;background:var(--pdf-canvas);padding:16px 16px 32px;outline:0}
.pdf-viewport:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}
.pdf-page{position:relative;margin:0 auto 12px;background:#fff;box-shadow:0 1px 2px #0000001f,0 2px 8px #00000014}
.pdf-page canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.pdf-page-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#8a8a8a;font-size:12px}
.pdf-status{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:12px;padding:24px;text-align:center;color:var(--secondary);background:var(--pdf-canvas)}
.pdf-status[hidden]{display:none}
.pdf-findbar{position:absolute;z-index:4;top:8px;right:16px;display:flex;align-items:center;gap:4px;width:min(340px,calc(100% - 32px));padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 4px 16px #0000001f}
.pdf-findbar[hidden]{display:none}
.pdf-findbar input{flex:1;min-width:0;height:32px}
.pdf-findbar input:focus-visible{outline:0}
.pdf-find-count{min-width:44px;font-size:12px;color:var(--secondary);text-align:center;white-space:nowrap}
.pdf-empty{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;padding:48px 24px;gap:16px;background:var(--surface)}
.pdf-empty>.app-icon,.pdf-empty>.app-icon img{width:48px;height:48px}
.pdf-empty h2{margin:0;font:600 20px/28px var(--display)}
.pdf-empty-list{width:min(480px,100%);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.pdf-empty-list button{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left}
.pdf-empty-list button:last-child{border-bottom:0}
.pdf-empty-list .app-icon,.pdf-empty-list .app-icon img{width:24px;height:24px;flex:none}
.pdf-empty-list span:last-child{display:grid;min-width:0}
.pdf-empty-list small{font-size:12px;line-height:16px;color:var(--secondary)}
.pdf-app .textLayer{position:absolute;text-align:initial;inset:0;overflow:clip;opacity:1;line-height:1;-webkit-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;z-index:0}
.pdf-app .textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}
.pdf-app .textLayer>:not(.markedContent),.pdf-app .textLayer .markedContent span:not(.markedContent){z-index:1}
.pdf-app .textLayer span.markedContent{top:0;height:0}
.pdf-app .textLayer ::selection{background:#0f6cbd40}
.pdf-app .textLayer br::selection{background:transparent}
.pdf-app .textLayer[data-main-rotation="90"]{transform:rotate(90deg) translateX(-100%)}
.pdf-app .textLayer[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}
.pdf-app .textLayer[data-main-rotation="270"]{transform:rotate(270deg) translateY(-100%)}
::highlight(pdf-find){background-color:#ffe27a80}
::highlight(pdf-find-current){background-color:#f7a60099}
.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}
.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}
@media(max-width:600px){.pdf-sidebar{position:absolute;z-index:3;inset:0 auto 0 0;box-shadow:4px 0 16px #00000024}}
@media(forced-colors:active){.pdf-thumb[aria-current=page] .pdf-thumb-frame{border-color:Highlight}}
.language-control{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-left:auto;min-width:0}
.language-restart{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px 12px}
.language-select{min-width:200px;max-width:100%}
.language-pending{font-size:12px;line-height:16px;color:var(--secondary)}
@media(forced-colors:active){}
.edge-day .edge-entry-icon{width:64px;justify-items:start;white-space:nowrap}
:root:lang(zh-TW){--font:'Segoe UI Variable Text','Segoe UI','Microsoft JhengHei UI','Microsoft JhengHei','PingFang TC','Noto Sans TC',Selawik,sans-serif;--display:'Segoe UI Variable Display','Segoe UI','Microsoft JhengHei UI','Microsoft JhengHei','PingFang TC','Noto Sans TC',Selawik,sans-serif}
:root:lang(ja){--font:'Segoe UI Variable Text','Segoe UI','Yu Gothic UI','Meiryo UI','Hiragino Sans','Hiragino Kaku Gothic ProN',Selawik,sans-serif;--display:'Segoe UI Variable Display','Segoe UI','Yu Gothic UI','Hiragino Sans','Hiragino Kaku Gothic ProN',Selawik,sans-serif}
/* ===== Synapse shell layer =====
   Cool slate neutrals; windows are a tinted frame (chrome, navigation) holding an opaque content sheet;
   the blue-to-cyan signal marks active state only (active window, selection rails, running app, dialogs). */
:root{--panel:#eef2f7;--frame:#eef2f7;--layer:#f6f8fb;--line:#e1e6ee;--stroke:#c5cdd8;--hover:#15304d0d;--selected:#e4eefa;--window-stroke:#13284c29;--bar:#f8fafc;--signal:linear-gradient(90deg,#0f6cbd,#0e9ac6);--signal-v:linear-gradient(180deg,#0f6cbd,#0e9ac6);--shadow:0 16px 40px #0b1e3a24,0 2px 8px #0b1e3a14;--ease:cubic-bezier(.1,.9,.2,1)}
body.dark{--panel:#1b1e24;--frame:#1b1e24;--surface:#262a31;--layer:#22262c;--line:#343a43;--stroke:#5b636f;--hover:#ffffff10;--selected:#2a3a4e;--window-stroke:#ffffff1f;--bar:#20242b;--signal:linear-gradient(90deg,#479ef5,#4cc9e6);--signal-v:linear-gradient(180deg,#479ef5,#4cc9e6);--shadow:0 16px 40px #0009,0 2px 8px #0006}
@keyframes synapse-rise{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation:none!important;transition:none!important}
/* Desktop and Synapse bar */
#desktop{height:100dvh}
.brand{bottom:84px}
#taskbar{position:fixed;left:8px;right:8px;bottom:8px;height:48px;padding:0;border:0;background:transparent;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--text)}
.dark #taskbar{background:transparent;color:var(--text)}
.taskbar-main,#taskbar .tray{pointer-events:auto;display:flex;align-items:center;gap:2px;height:48px;padding:0 6px;background:var(--bar);border:1px solid var(--window-stroke);border-radius:8px;box-shadow:0 8px 24px #0b1e3a1f,0 1px 2px #0b1e3a14}
#taskbar .tray{position:absolute;right:0;top:0}
#taskbar>.taskbar-main button,#taskbar>.tray button,#tasks button{height:38px;min-height:38px;border-radius:6px}
#taskbar>.taskbar-main button:hover,#taskbar>.tray button:hover{background:var(--hover)}
.task-search{width:188px;height:34px!important;min-height:34px;margin:0 4px;background:var(--layer);border:1px solid var(--line)!important;border-radius:6px!important}
.dark .task-search{background:var(--layer)}
.task-search span{color:var(--secondary)}
#tasks button:after{background:var(--stroke);bottom:2px}
#tasks button.active{background:var(--hover)}
#tasks button.active:after{width:16px;left:12px;background:var(--signal)}
#show-desktop{height:24px!important;min-height:24px!important;border-left:1px solid var(--line);margin-left:4px}
.window.max{inset:0 0 var(--dock-height,48px) 0!important;width:auto!important;height:auto!important;border-radius:0}
#taskview{inset:0 0 64px}
#toast{bottom:72px}
.flyout{bottom:64px;border-radius:8px;border-color:var(--window-stroke);box-shadow:var(--shadow);animation:synapse-rise .18s var(--ease)}
@media(max-width:600px){#taskbar{justify-content:space-between;gap:6px}#taskbar .tray{position:static;flex:none}.taskbar-main{padding:0 4px;min-width:0;flex:0 1 auto}#tasks{min-width:0;overflow-x:auto;scrollbar-width:none}#clock{min-width:0}}
/* Windows: frame + sheet */
.window{background:var(--frame);border-color:var(--window-stroke)}
.window.opening{animation:synapse-rise .16s var(--ease)}
.window.is-active{border-color:color-mix(in srgb,var(--accent) 34%,var(--window-stroke))}
.window.is-active::before{content:'';position:absolute;inset:0 0 auto;height:2px;background:var(--signal);z-index:4;pointer-events:none}
.titlebar{height:40px;background:transparent;padding-left:14px;gap:10px}
.titlebar .title{font-size:12px;line-height:16px}
.window-controls{align-items:center;gap:2px;padding:0 6px}
.window-controls button{width:36px;height:28px;min-height:28px;border-radius:4px}
.window-controls button:hover{background:var(--hover)}
.window-controls button:last-child:hover{background:#c42b1c;color:#fff}
.content{background:transparent}
/* File Explorer and Recycle Bin */
.explorer{background:var(--frame)}
.explorer>.toolbar{background:transparent;border-bottom:0}
.explorer .address,.explorer .file-search-wrap input{background:var(--surface);border-color:var(--line)}
.explorer .sidebar{background:transparent;border-right:0}
.explorer .files{background:var(--surface);border:1px solid var(--line);border-width:1px 0 0 1px;border-top-left-radius:8px}
.explorer .statusbar{background:transparent;border-top:1px solid var(--line)}
/* Settings */
.synapse-settings{--settings-pane:var(--frame);--settings-canvas:var(--layer);--settings-group:var(--surface);background:var(--frame)}
.dark .synapse-settings{--settings-pane:var(--frame);--settings-canvas:var(--layer);--settings-group:var(--surface)}
.synapse-settings .settings-nav{background:transparent;border-right:0}
.synapse-settings .settings-page{border:1px solid var(--line);border-width:1px 0 0 1px;border-top-left-radius:8px}
.synapse-settings .settings-categories button.selected,.dark .synapse-settings .settings-categories button.selected{background:var(--surface)!important;color:var(--text);font-weight:600;box-shadow:0 1px 2px #0b1e3a0f}
.synapse-settings .settings-categories button.selected .fi{color:var(--accent)}
/* Notepad, Terminal, Synapse Overview */
.editor{background:var(--frame)}
.editor>.toolbar{background:transparent;border-bottom:0}
.editor .note-doc{margin:0 6px;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;background:var(--surface)}

.editor .statusbar{background:transparent}
.window:has(.terminal) .content{padding:0 6px 6px}
.terminal{border-radius:8px}
.welcome{background:var(--surface);min-height:100%;box-sizing:border-box;border:1px solid var(--line);border-width:1px 0 0;border-radius:8px 8px 0 0}
/* Edge and PDF Reader sit on the same frame */
.edge-browser{background:var(--frame)}
.edge-tabstrip{background:transparent;padding-top:2px}
.pdf-app{background:var(--frame)}
.pdf-toolbar{background:transparent;border-bottom:0}
.pdf-body{margin:0 6px;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;overflow:hidden}
.pdf-empty{background:var(--surface);margin:0 6px;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0}
/* Selection rails use the signal */
.sidebar .selected:before,.settings-nav .selected:before,.synapse-settings .settings-categories .selected:before,.edge-internal-nav button.selected:before{background:var(--signal-v)}
.edge-tab.selected:after{background:var(--signal)}
/* Start */
#start{width:680px;padding:0;overflow:hidden;background:var(--surface)}
.start-home{display:grid;grid-template-columns:minmax(0,1fr) 216px;gap:20px;padding:4px 20px 20px}
.start-recent{border-left:1px solid var(--line);padding-left:16px;min-width:0}
#start h3{margin:14px 4px 8px;font-size:12px;line-height:16px;font-weight:600;color:var(--secondary)}
#start .apps-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
#start .apps-grid button{height:84px;min-width:0;border-radius:6px}
#start .apps-grid button span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
#start .apps-grid .app-icon,#start .apps-grid .app-icon img{width:32px;height:32px}
.start-list{display:grid;gap:2px}
.start-row{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:6px 8px;border-radius:6px;text-align:left}
.start-row:hover{background:var(--hover)}
.start-row>.app-icon,.start-row>.app-icon img{width:24px;height:24px;flex:none}
.start-row>.fi{width:20px;height:20px;flex:none;margin:0 2px;color:var(--accent)}
.start-row>span{display:grid;min-width:0}
.start-row>span>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.start-row small{font-size:12px;line-height:16px;color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.start-empty{margin:8px 4px;font-size:12px;color:var(--secondary)}
.start-results{max-height:min(420px,calc(100dvh - 260px));overflow:auto;padding:4px 20px 16px}
#start .profile{margin:0;padding:10px 20px;background:var(--frame);border-top:1px solid var(--line)}
@media(max-width:600px){.start-home{grid-template-columns:1fr}.start-recent{border-left:0;padding-left:0}#start .apps-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Quick settings */
#quick{width:360px;padding:0;overflow:hidden;background:var(--surface)}
.quick-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 20px 4px}
#quick .quick-head h3{margin:0;font-size:14px;line-height:20px;font-weight:600}
.quick-head span{font-size:12px;line-height:16px;color:var(--secondary);white-space:nowrap}
.quick-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 20px}
.quick-tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:10px;height:76px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--layer);color:var(--text);text-align:left;font-size:12px;line-height:16px;white-space:normal}
.quick-tile .fi{width:20px;height:20px;color:currentColor}
.quick-tile[aria-pressed=true]{background:var(--accent);border-color:transparent;color:#fff}
.dark .quick-tile[aria-pressed=true]{color:#0a0a0a}
.quick-tile[aria-pressed=true]:hover{background:var(--pressed)}
.quick-wallpapers{margin:0;padding:4px 20px 16px;border:0;min-width:0}
.quick-wallpapers legend{padding:0;margin-bottom:8px;font-size:12px;line-height:16px;color:var(--secondary)}
.quick-wallpapers>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.quick-wallpapers label{position:relative;display:block;aspect-ratio:16/10;border-radius:4px;overflow:hidden;cursor:pointer;box-shadow:0 0 0 1px var(--window-stroke)}
.quick-wallpapers img{width:100%;height:100%;object-fit:cover;display:block;dynamic-range-limit:standard}
.quick-wallpapers input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;cursor:pointer}
.quick-wallpapers label:has(input:checked){box-shadow:0 0 0 2px var(--accent)}
.quick-wallpapers label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
#quick .quick-footer{margin:0;padding:8px 12px;background:var(--frame);border-top:1px solid var(--line);justify-content:flex-end}
/* Menus, dialogs, toasts */
.context-menu{border-radius:8px;border-color:var(--window-stroke);box-shadow:var(--shadow);animation:synapse-rise .12s var(--ease)}
.context-menu button{border-radius:4px;min-height:32px}
.sys-dialog{background:var(--signal) top left/100% 2px no-repeat,var(--surface);border-color:var(--window-stroke);overflow:hidden}
.sys-dialog .dialog-actions{margin:24px -24px -24px;padding:16px 24px;background:var(--frame);border-top:1px solid var(--line)}
#toast{border-radius:8px;border-color:var(--window-stroke);padding:12px 16px 12px 20px;background:var(--signal-v) left top/3px 100% no-repeat,var(--surface);box-shadow:var(--shadow)}
@media(forced-colors:active){.window.is-active::before,.sidebar .selected:before,.settings-nav .selected:before,.synapse-settings .settings-categories .selected:before,.edge-internal-nav button.selected:before,.edge-tab.selected:after,#tasks button.active:after{background:Highlight}.sys-dialog,#toast{background:Canvas}.quick-tile[aria-pressed=true]{background:Highlight;color:HighlightText}}
/* ===== Synapse materials, light and motion =====
   Mica (wallpaper-tinted) on active window frames; acrylic (blur + luminosity + tint + noise) on transient surfaces only;
   content sheets stay opaque. Everything below falls back to the solid shell when body.glass is absent. */
:root{--mica-tint:#eef2f7d6;--acrylic-tint:#f6f8fbb8;--acrylic-luminosity:#ffffff66;--reveal-light:#0f6cbd1c;--reveal-edge:#0f6cbd80;--noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body.dark{--mica-tint:#1b1e24d9;--acrylic-tint:#1e2229c2;--acrylic-luminosity:#0000004d;--reveal-light:#ffffff1a;--reveal-edge:#9fd2ffa6}
.explorer,.synapse-settings,.dark .synapse-settings,.editor,.edge-browser,.pdf-app{background:transparent}
body.glass .window.is-active{background:linear-gradient(var(--mica-tint),var(--mica-tint)),var(--mica-image,none) center/cover fixed,var(--frame)}
body.glass :is(.taskbar-main,#taskbar .tray,#start,#quick,.edge-flyout){background:var(--noise),linear-gradient(var(--acrylic-tint),var(--acrylic-tint)),linear-gradient(var(--acrylic-luminosity),var(--acrylic-luminosity));-webkit-backdrop-filter:blur(30px) saturate(1.6);backdrop-filter:blur(30px) saturate(1.6)}
body.glass #toast{background:var(--signal-v) left top/3px 100% no-repeat,var(--noise),linear-gradient(var(--acrylic-tint),var(--acrylic-tint));-webkit-backdrop-filter:blur(30px) saturate(1.6);backdrop-filter:blur(30px) saturate(1.6)}
body.glass #start .profile,body.glass #quick .quick-footer{background:#0b1e3a0a}
body.glass.dark #start .profile,body.glass.dark #quick .quick-footer{background:#00000026}
body.glass .quick-tile:not([aria-pressed=true]){background:color-mix(in srgb,var(--layer) 58%,transparent)}
body.glass .sys-dialog::backdrop{background:#0b1e3a4d}
body.glass.dark .sys-dialog::backdrop{background:#0000008c}
/* Reveal: light follows the pointer; nearby borders light up inside groups */
@media(hover:hover) and (pointer:fine){
 :is(#taskbar button,.start-row,#start .apps-grid button,.quick-tile,.context-menu button,.sidebar button,.settings-categories button,.file,.edge-internal-nav button,.edge-tab,.edge-tool,.window-controls button,.desktop-icon,.toolbar button,.edge-entry,.edge-download,.pdf-thumb,.edge-favorites-bar button):hover{background-image:radial-gradient(circle 76px at var(--rx,50%) var(--ry,50%),var(--reveal-light),transparent 72%)}
 :is(#start .apps-grid,.start-list,.quick-tiles,.file-grid,#desktop-icons)>*{position:relative}
 :is(#start .apps-grid,.start-list,.quick-tiles,.file-grid,#desktop-icons).revealing>*::after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:radial-gradient(circle 92px at var(--bx,-200px) var(--by,-200px),var(--reveal-edge),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}
}
:is(.quick-tile,#start .apps-grid button,.start-row,.file,.desktop-icon,.edge-tool,#taskbar button){transition:background-color .12s,transform .12s var(--ease)}
:is(.quick-tile,#start .apps-grid button,.start-row,.file,.desktop-icon,#tasks button):active{transform:scale(.97)}
/* Window motion: drag lift, snap settle, close and minimize */
.window.dragging{box-shadow:0 28px 64px #0b1e3a38,0 6px 16px #0b1e3a1f;cursor:default}
.window.settling{transition:left .22s var(--ease),top .22s var(--ease),width .22s var(--ease),height .22s var(--ease)}
@keyframes synapse-close{to{opacity:0;transform:scale(.96)}}
@keyframes synapse-minimize{to{opacity:0;transform:translateY(56px) scale(.9)}}
.window.closing{animation:synapse-close .12s ease-in forwards;pointer-events:none}
.window.minimizing{animation:synapse-minimize .16s cubic-bezier(.7,0,1,.5) forwards;pointer-events:none}
#snap-preview{position:absolute;inset:30%;opacity:0;pointer-events:none;border-radius:8px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 16%,transparent);transition:opacity .14s,inset .2s var(--ease)}
body.glass #snap-preview{-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3)}
#snap-preview.visible{opacity:1}
#snap-preview[data-zone=left]{inset:8px calc(50% + 4px) 72px 8px}
#snap-preview[data-zone=right]{inset:8px 8px 72px calc(50% + 4px)}
#snap-preview[data-zone=max]{inset:8px 8px 72px 8px}
.appearance-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;font-size:14px;line-height:20px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.window.closing,.window.minimizing{animation:none}}
@media(forced-colors:active){#snap-preview{background:Highlight;opacity:.4}}
/* ===== Start grows out of the Synapse bar =====
   The bar's Search box is Start's only search field; Start and quick settings rise out of the bar and sink back into it.
   Timing follows Windows motion: direct entrance 250ms cubic-bezier(0,0,0,1), gentle exit 167ms cubic-bezier(1,0,1,1) with fade.
   #start centres with the independent `translate` property so the entrance transform cannot displace it. */
:root{--ease-direct:cubic-bezier(0,0,0,1);--ease-exit:cubic-bezier(1,0,1,1)}
@keyframes bar-flyout-open{from{opacity:0;transform:translateY(20px) scale(.97);clip-path:inset(35% 0 0 0 round 8px)}to{opacity:1;transform:none;clip-path:inset(0 round 8px)}}
@keyframes bar-flyout-close{from{opacity:1;transform:none}to{opacity:0;transform:translateY(16px) scale(.98)}}
#start,#quick{animation:bar-flyout-open .25s var(--ease-direct)}
#start{transform:none;translate:-50% 0;transform-origin:var(--origin-x,50%) 100%}
#quick{transform-origin:calc(100% - 48px) 100%}
:is(#start,#quick).closing{animation:bar-flyout-close .167s var(--ease-exit) forwards;pointer-events:none}
.start-home{padding-top:12px}
.start-results{padding-top:12px}
.task-search{display:flex;align-items:center;gap:8px;padding:0 3px 0 11px;cursor:text;transition:width .25s var(--ease-direct),background-color .12s,border-color .12s}
.task-search:hover{border-color:var(--stroke)!important}
.task-search>.fi{flex:none;width:16px;height:16px;color:var(--secondary)}
#task-search{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;font-size:14px;color:var(--text)}
#task-search::placeholder{color:var(--secondary);opacity:1}
.task-search:focus-within{background:var(--surface);border-color:var(--line)!important;box-shadow:inset 0 -2px 0 var(--accent)}
#taskbar #task-search-clear{flex:none;width:28px;min-width:28px;height:28px;min-height:28px;padding:0;display:grid;place-items:center;border-radius:4px}
#taskbar #task-search-clear[hidden]{display:none}
#task-search-clear .fi{width:12px;height:12px}
@media(max-width:800px){.task-search{display:flex;width:40px;padding:0;justify-content:center;gap:0;background:transparent;border-color:transparent!important}#task-search{flex:0 0 0;width:0}body.start-open .task-search{width:min(240px,46vw);padding:0 3px 0 11px;justify-content:flex-start;gap:8px;background:var(--surface);border-color:var(--line)!important}body.start-open #task-search{flex:1}}
@media(forced-colors:active){.task-search:focus-within{box-shadow:none;outline:2px solid Highlight}}
/* Minimize/restore connect the window with its taskbar button (Windows motion: "Connected"). */
@keyframes synapse-minimize{to{opacity:0;transform:translate(var(--task-x,0px),var(--task-y,56px)) scale(.08)}}
@keyframes synapse-restore{from{opacity:0;transform:translate(var(--task-x,0px),var(--task-y,56px)) scale(.08)}to{opacity:1;transform:none}}
.window.minimizing{animation:synapse-minimize .2s cubic-bezier(.55,0,1,.45) forwards}
.window.restoring{animation:synapse-restore .25s var(--ease-direct)}
/* Glass rim and depth: Fluent's elevation stroke rendered as light caught by the edge of a thick pane.
   The rim is brightest along the top edge (ambient light from above, as in Windows icon lighting) and returns faintly at the bottom.
   A soft inner sheen gives the pane thickness. Glass-only; the solid shell keeps its 1px stroke. */
:root{--rim:linear-gradient(180deg,#ffffffe6,#ffffff59 22%,#ffffff1a 60%,#ffffff4d);--sheen:linear-gradient(180deg,#ffffff38,#ffffff00 42%)}
body.dark{--rim:linear-gradient(180deg,#ffffff47,#ffffff1a 22%,#ffffff08 60%,#ffffff17);--sheen:linear-gradient(180deg,#ffffff0d,#ffffff00 42%)}
.taskbar-main{position:relative}
body.glass :is(.taskbar-main,#taskbar .tray,#start,#quick,.context-menu,.edge-flyout)::after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--rim);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none;z-index:2}
body.glass :is(.taskbar-main,#taskbar .tray,#start,#quick,.context-menu,.edge-flyout)::before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--sheen);pointer-events:none;z-index:-1}
body.glass :is(.taskbar-main,#taskbar .tray,#start,#quick,.context-menu,.edge-flyout){border-color:transparent}
@media(forced-colors:active){body.glass :is(.taskbar-main,#taskbar .tray,#start,#quick,.context-menu,.edge-flyout)::after,body.glass :is(.taskbar-main,#taskbar .tray,#start,#quick,.context-menu,.edge-flyout)::before{display:none}}
/* ===== Desktop and window management (Windows conventions) ===== */
#desktop-icons{position:absolute;inset:0 0 64px 0;display:block;width:auto;padding:0;gap:0;touch-action:none}
#desktop-icons[hidden]{display:none}
#desktop-icons.refreshing{opacity:0}
#desktop-icons .desktop-icon{position:absolute;width:82px;height:auto;min-height:96px;justify-content:flex-start;padding:6px 2px 4px;border:1px solid transparent;cursor:default}
#desktop-icons .desktop-icon .app-icon{width:48px;height:48px}
#desktop-icons .desktop-icon>span:last-child{white-space:normal;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;text-align:center;font-size:12px;line-height:16px}
#desktop-icons .desktop-icon.selected{background:transparent!important;border-color:#0f6cbd;color:#153049}
#desktop.wallpaper-dark .desktop-icon.selected{border-color:#8bd0ff;color:#f1f6ff}
#desktop[data-wallpaper-type=photo] .desktop-icon.selected{color:#fff}
#desktop-icons .desktop-icon.selected>span:last-child{-webkit-line-clamp:4}
#desktop-icons[data-size=small] .desktop-icon{width:68px;min-height:72px}#desktop-icons[data-size=small] .app-icon{width:32px;height:32px}
#desktop-icons[data-size=large] .desktop-icon{width:120px;min-height:140px}#desktop-icons[data-size=large] .app-icon{width:96px;height:96px}
#desktop-icons .desktop-icon.dragging{opacity:.7;pointer-events:none;z-index:2;transition:none;background:transparent!important;border-color:transparent;outline:none}
#desktop-icons .desktop-icon.dragging::after{display:none}
@media(forced-colors:active){#desktop-icons .desktop-icon.selected{border-color:Highlight}#desktop-icons .desktop-icon.dragging{border-color:transparent}}
.drop-target{background:#cce8ff66!important;border-color:#0f6cbd99!important;outline:1px solid #0f6cbd99}
.marquee{position:absolute;border:1px solid #0f6cbd;background:#0f6cbd2e;pointer-events:none;z-index:3}
.drag-ghost{position:fixed;left:0;top:0;z-index:20000;pointer-events:none;opacity:.85;display:flex;align-items:flex-start}.drag-ghost .app-icon{width:40px;height:40px}.drag-ghost b{margin-left:-10px;min-width:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;line-height:18px;text-align:center}
.file.dragging{opacity:.5}
.file:focus:not([aria-pressed=true]){background:transparent;border-color:transparent}.file:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.context-menu .menu-separator{height:1px;margin:4px 0;background:var(--line)}
.context-menu .menu-mark{width:20px;height:20px;flex:none;display:grid;place-items:center}.context-menu .menu-mark.on::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.context-menu .menu-label{flex:1;white-space:nowrap}.context-menu .menu-default .menu-label{font-weight:600}
.context-menu button[aria-haspopup]>.fi:last-child{width:12px;height:12px;margin-left:12px}
.context-menu button:disabled{opacity:.45}
.window{resize:none}
.resize-handles span{position:absolute;z-index:6}
.resize-handles [data-edge=n],.resize-handles [data-edge=s]{left:10px;right:10px;height:5px;cursor:ns-resize}.resize-handles [data-edge=n]{top:0}.resize-handles [data-edge=s]{bottom:0}
.resize-handles [data-edge=e],.resize-handles [data-edge=w]{top:10px;bottom:10px;width:5px;cursor:ew-resize}.resize-handles [data-edge=e]{right:0}.resize-handles [data-edge=w]{left:0}
.resize-handles [data-edge=ne],.resize-handles [data-edge=nw],.resize-handles [data-edge=se],.resize-handles [data-edge=sw]{width:12px;height:12px}
.resize-handles [data-edge=ne]{top:0;right:0;cursor:nesw-resize}.resize-handles [data-edge=sw]{bottom:0;left:0;cursor:nesw-resize}.resize-handles [data-edge=nw]{top:0;left:0;cursor:nwse-resize}.resize-handles [data-edge=se]{bottom:0;right:0;cursor:nwse-resize}
.window.max .resize-handles{display:none}.window.resizing{transition:none;user-select:none}.window.resizing iframe{pointer-events:none}
#snap-preview[data-zone=tl]{inset:8px calc(50% + 4px) calc(50% + 36px) 8px}#snap-preview[data-zone=tr]{inset:8px 8px calc(50% + 36px) calc(50% + 4px)}
#snap-preview[data-zone=bl]{inset:calc(50% - 28px) calc(50% + 4px) 72px 8px}#snap-preview[data-zone=br]{inset:calc(50% - 28px) 8px 72px calc(50% + 4px)}

/* Shared shell surface: the capsule itself grows; menu content never scales. */
#taskbar>.shell-surface{position:fixed;z-index:0;pointer-events:none;box-sizing:border-box;background:var(--bar);border:1px solid var(--window-stroke);border-radius:8px;box-shadow:0 8px 24px #0b1e3a1f,0 1px 2px #0b1e3a14}
#taskbar>.shell-surface[hidden]{display:none}
body.glass #taskbar>.shell-surface{background:var(--noise),linear-gradient(var(--acrylic-tint),var(--acrylic-tint)),linear-gradient(var(--acrylic-luminosity),var(--acrylic-luminosity));backdrop-filter:blur(30px) saturate(1.6)}
#taskbar .taskbar-main,#taskbar .tray{z-index:2}
#taskbar .surface-owner{background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#taskbar .surface-owner::before,#taskbar .surface-owner::after{display:none!important}
#taskbar>#start,#taskbar>#quick{position:fixed;right:auto;max-width:calc(100vw - 16px);margin:0;padding:0;translate:none;transform:none;animation:none!important;background:transparent!important;border:0;box-shadow:none;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:8px 8px 0 0;z-index:1;pointer-events:auto;overflow:auto;overscroll-behavior:contain}
#taskbar>#start::before,#taskbar>#start::after,#taskbar>#quick::before,#taskbar>#quick::after{display:none!important}
#taskbar>#start[data-closing],#taskbar>#quick[data-closing]{pointer-events:none}
.edge-tab{overflow:hidden}
.edge-tab[data-closing]{pointer-events:none}
@media(forced-colors:active){#taskbar>.shell-surface{background:Canvas;border-color:ButtonText}}

/* Maximized windows meet one continuous dock; it keeps the same translucent glass as the floating capsules. */
#taskbar>.dock-piece{position:fixed;z-index:-1;pointer-events:none;box-sizing:border-box;background:var(--frame);border:0;border-radius:8px}
#taskbar>.dock-piece[hidden]{display:none}
#taskbar.dock-covered>:is(.taskbar-main,.tray){background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#taskbar.dock-covered>:is(.taskbar-main,.tray)::before,#taskbar.dock-covered>:is(.taskbar-main,.tray)::after{display:none!important}
#quick .quick-tile{min-height:76px;height:auto;gap:10px}
#quick .quick-tile>.fi,#quick .quick-tile>span:last-child{flex-shrink:0}
#quick .quick-tile>span:last-child{line-height:16px;overflow-wrap:anywhere}
.quick-head{flex-wrap:wrap;row-gap:4px}
@media(forced-colors:active){#taskbar>.dock-piece{background:Canvas}}

/* Compact joined dock and persistent task-button slots. */
:root{--dock-height:48px}
#taskbar{transition:bottom .26s cubic-bezier(.2,0,0,1)}
#taskbar[data-joined=true]{bottom:0}
#tasks{gap:0}
#tasks .task-button{flex:0 0 auto;width:40px;min-width:40px;max-width:40px;margin:0 2px;overflow:hidden;white-space:nowrap}
#tasks .task-button[data-closing]{pointer-events:none}
#tasks .task-button.task-minimized::after{width:4px;height:4px;left:calc(50% - 2px);bottom:2px;border-radius:50%;background:var(--secondary)}
@media(prefers-reduced-motion:reduce){#taskbar{transition:none}}
@media(forced-colors:active){#tasks .task-button.task-minimized::after{background:ButtonText}}

/* Liquid shell: a shared SDF silhouette; controls never enter the optical layer. */
:root{--liquid-tint:#edf5ffe3;--liquid-edge:#7189a44d;--liquid-glint:.78}
body.dark{--liquid-tint:#192431df;--liquid-edge:#a0b9d338;--liquid-glint:.32}
#taskbar{transition:bottom .38s cubic-bezier(.2,0,0,1)}
#taskbar.liquid-shell>:is(.taskbar-main,.tray){background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:24px}
#taskbar.liquid-shell>:is(.taskbar-main,.tray)::before,#taskbar.liquid-shell>:is(.taskbar-main,.tray)::after{display:none!important}
#taskbar>.liquid-surface{position:fixed;z-index:0;pointer-events:none;contain:layout style}
.liquid-fill,.liquid-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.liquid-fill{background:var(--bar)}
body.glass .liquid-fill{background:linear-gradient(155deg,#ffffff16,transparent 38%),var(--noise),linear-gradient(var(--liquid-tint),var(--liquid-tint));-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4)}
body.glass .liquid-surface[data-refraction=ready] .liquid-fill{backdrop-filter:blur(20px) saturate(1.4) url('#synapse-liquid-refraction')}
.liquid-outline{overflow:visible;filter:drop-shadow(0 4px 9px #0a1b3229)}
.liquid-edge{fill:none;stroke:var(--liquid-edge);stroke-width:1.2}
.liquid-rim{fill:none;stroke:url('#synapse-liquid-rim');stroke-width:1.1;opacity:0}
body.glass .liquid-rim{opacity:var(--liquid-glint)}
#taskbar.liquid-shell>#start,#taskbar.liquid-shell>#quick{border-radius:22px 22px 0 0}
#taskbar.liquid-shell #start .profile{background:transparent}
#taskbar.liquid-shell .taskbar-main>button,#taskbar.liquid-shell .tray>button,#taskbar.liquid-shell #tasks button{border-radius:14px}
@media(prefers-reduced-motion:reduce){#taskbar{transition:none}}
@media(forced-colors:active){.liquid-fill{background:Canvas!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.liquid-edge{stroke:ButtonText}.liquid-rim{display:none}.liquid-outline{filter:none}}

/* Clear liquid glass and larger water-rounded frames. The opaque sheets keep text crisp. */
:root{--liquid-tint:#edf6ffad;--liquid-edge:#7189a466;--liquid-glint:1;--window-radius:28px;--window-glass-tint:#eaf3ff99}
body.dark{--liquid-tint:#0d1b30a6;--liquid-edge:#c6e2ff59;--liquid-glint:.65;--window-glass-tint:#101b2a99}
body.glass .liquid-fill{background:linear-gradient(135deg,#ffffff24,transparent 35%,#ffffff08 70%,#ffffff1a),linear-gradient(var(--liquid-tint),var(--liquid-tint));-webkit-backdrop-filter:blur(1.5px) saturate(1.2);backdrop-filter:blur(1.5px) saturate(1.2)}
body.glass .liquid-surface[data-refraction=ready] .liquid-fill{backdrop-filter:blur(1.5px) saturate(1.2) url('#synapse-liquid-refraction')}
.window:not(.max){border-radius:var(--window-radius)}
body.glass .window,body.glass .window.is-active{background:var(--window-glass-tint);-webkit-backdrop-filter:blur(1.5px) saturate(1.2);backdrop-filter:blur(1.5px) saturate(1.2) var(--window-lens,blur(0px))}
.window::after{content:'';position:absolute;inset:0;z-index:9;pointer-events:none;border-radius:inherit;padding:1px;background:linear-gradient(145deg,#ffffff90,#ffffff12 35%,#ffffff08 65%,#ffffff45);mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
body:not(.glass) .window::after{display:none}
.titlebar{height:44px;padding-left:20px}
.window-controls{padding-right:10px}
.window-controls button{border-radius:12px}
.window .statusbar{padding-left:20px;padding-right:20px}
.explorer .files,.synapse-settings .settings-page{border-top-left-radius:20px}
.editor .note-doc,.pdf-body,.welcome{border-radius:20px 20px 0 0}
.terminal{border-radius:20px}
.window-lens-defs{position:fixed;width:0;height:0;pointer-events:none;overflow:hidden}
.files{position:relative;touch-action:none}
.file{border-radius:12px}
.file-marquee{z-index:5}
#desktop-icons,.brand,.files,.sidebar,.titlebar,#taskbar,.context-menu{-webkit-user-select:none;user-select:none}
input,textarea,[contenteditable=true],.terminal pre,.textLayer{-webkit-user-select:text;user-select:text}
body.shell-pointer-gesture,body.shell-pointer-gesture *{-webkit-user-select:none!important;user-select:none!important;cursor:default}
.drag-ghost{filter:drop-shadow(0 5px 8px #0004)}
@media(forced-colors:active){.window::after{display:none}body.glass .window{background:Canvas;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
/* Desktop icons show the keyboard focus ring only during keyboard navigation, as on the Windows desktop. */
#desktop-icons:not(.keyboard-nav) .desktop-icon:focus-visible{outline:none}
/* Corner hierarchy: radius scales with surface size so nested curves stay concentric (windows 28, shell flyouts 22, dialogs 20, menus 12 with 8px items). */
.sys-dialog{border-radius:20px}
.context-menu,.edge-flyout{border-radius:12px}
.context-menu button{border-radius:8px}
/* Menu items highlight with a fill for both pointer and keyboard, as Windows menus do; the 2px ring stays for other controls. */
.context-menu button:focus-visible{outline:none}
.context-menu button:focus{background-color:var(--hover)}
@media(forced-colors:active){.context-menu button:focus{outline:2px solid Highlight}}
/* ===== Liquid glass windows (live backdrop + WebGL, glass-renderer.js + liquid-windows.js) =====
   The frame shows what is really beneath it through a light blur and a WebGL-generated SVG lens; a transparent overlay canvas
   adds tint, rim and edge line from the merged field. The CSS stroke and rim are off; shadows ease off as windows fuse.
   Tints differ for active and inactive windows and blend smoothly across a merged neck. */
:root{--glass-tint-active:var(--liquid-tint);--glass-tint-inactive:#e7eef7b8}
body.dark{--glass-tint-active:var(--liquid-tint);--glass-tint-inactive:#121a26c4}
.window{--glass-tint:var(--glass-tint-inactive)}
.window.is-active{--glass-tint:var(--glass-tint-active)}
.glass-surface{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.glass-bridge{position:absolute;pointer-events:none}
body.gl-glass .window,body.gl-glass .window.is-active{background:transparent;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px) var(--window-lens,blur(0px));border-color:transparent;box-shadow:0 16px 40px rgb(11 30 58/calc(.16*(1 - var(--merge,0)))),0 2px 8px rgb(11 30 58/calc(.08*(1 - var(--merge,0))))}
body.gl-glass.dark .window{box-shadow:0 16px 40px rgb(0 0 0/calc(.5*(1 - var(--merge,0)))),0 2px 8px rgb(0 0 0/calc(.32*(1 - var(--merge,0))))}
body.gl-glass .window::after{display:none}

/* The fused neck between two windows: its own live backdrop clipped to the merged outline, under the overlay light. */
.glass-neck,.glass-neck-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
body.gl-glass .glass-neck{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}
/* The neck carries the same lens as fused windows (liquid tier), so the merged body refracts as one droplet. */
body.gl-glass .glass-neck{backdrop-filter:blur(1.5px) var(--neck-lens,blur(0px))}

/* Merged windows cast one shadow from the merged outline (glass-shadow) instead of their own. */
.glass-shadow{position:absolute;pointer-events:none}
/* ===== Synapse scrollbars =====
   Windows 11's conscious scrollbar, refined (learn.microsoft.com/windows/apps/design/controls/scroll-controls): hidden at rest;
   a 3px panning indicator while the area is hovered or scrolling; pointing at the bar widens the thumb to 7px over a faint track.
   No arrow buttons, pill caps, neutral colours. Chromium and Safari use ::-webkit-scrollbar (the standard scrollbar-width and
   scrollbar-color properties would disable it there), Firefox uses the standard properties. */
:root{--scroll-thumb:#18283a5c;--scroll-thumb-hover:#18283a99;--scroll-thumb-active:#18283acc;--scroll-track:#18283a12}
body.dark{--scroll-thumb:#ffffff52;--scroll-thumb-hover:#ffffff8f;--scroll-thumb-active:#ffffffbd;--scroll-track:#ffffff12}
@supports selector(::-webkit-scrollbar){
 .settings-categories,.full-settings .settings-page,.desktop-strip{scrollbar-width:auto}
 ::-webkit-scrollbar{width:11px;height:11px;background:transparent}
 ::-webkit-scrollbar-button{display:none;width:0;height:0}
 ::-webkit-scrollbar-corner{background:transparent}
 ::-webkit-scrollbar-track{background:transparent;border:2px solid transparent;border-radius:999px;background-clip:padding-box}
 ::-webkit-scrollbar-thumb{min-height:36px;min-width:36px;border:4px solid transparent;border-radius:999px;background-color:transparent;background-clip:padding-box}
 .scroll-hover::-webkit-scrollbar-thumb,.is-scrolling::-webkit-scrollbar-thumb{background-color:var(--scroll-thumb)}
 ::-webkit-scrollbar-track:hover{background-color:var(--scroll-track)}
 ::-webkit-scrollbar-thumb:hover{border-width:2px;background-color:var(--scroll-thumb-hover)}
 ::-webkit-scrollbar-thumb:active{border-width:2px;background-color:var(--scroll-thumb-active)}
 #tasks::-webkit-scrollbar{display:none}
}
@supports not selector(::-webkit-scrollbar){
 *{scrollbar-width:thin;scrollbar-color:transparent transparent}
 .scroll-hover,.is-scrolling{scrollbar-color:var(--scroll-thumb) transparent}
 #tasks,.edge-tablist{scrollbar-width:none}
}
@media(forced-colors:active){.scroll-hover::-webkit-scrollbar-thumb,.is-scrolling::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background-color:ButtonText}}
/* In WebGL glass the frame edge is drawn by the overlay; a CSS border (even transparent) leaves a 1px untinted ring at every
   window edge that reads as a seam across a merged neck, so it is removed. */
body.gl-glass .window{border-width:0}

/* Overlapping windows are one glass body: the backdrop only blurs (saturation would compound where two frames overlap and
   outline the front window), and the active window's top signal line fades out while it is merged instead of cutting across. */
body.gl-glass .window.is-active::before{opacity:calc(1 - var(--merge,0));transition:opacity .15s}

/* Windows wear the shell's material: active tint is the shell's --liquid-tint and the backdrop blur matches .liquid-fill. */

/* Settings category changes: the title swaps immediately; the sheet fades out, then the new sheet fades in and rises into place. */
.settings-page-body.is-leaving{animation:settings-leave 100ms linear forwards;pointer-events:none}
.settings-page-body.is-entering{animation:settings-enter 167ms cubic-bezier(0,0,0,1) both}
@keyframes settings-leave{from{opacity:1}to{opacity:0}}
@keyframes settings-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* Explorer tabs sit on the frame. The selected tab carries the signal line and meets the sheet; inactive tabs stay quiet. */
.explorer-tabstrip{display:flex;align-items:flex-end;gap:4px;height:40px;padding:4px 8px 0;flex:none;min-width:0}
.explorer-tablist{display:flex;align-items:flex-end;gap:2px;min-width:0;flex:0 1 auto;overflow-x:auto;scrollbar-width:none}
.explorer-tablist::-webkit-scrollbar{display:none}
.explorer-tab{position:relative;display:flex;align-items:center;min-width:72px;max-width:200px;flex:0 1 200px;height:32px;border-radius:8px 8px 0 0;color:var(--secondary);overflow:hidden}
.explorer-tab.selected{background:var(--surface)!important;color:var(--text)}
.explorer-tab.selected::before{content:"";position:absolute;left:10px;right:10px;top:0;height:2px;border-radius:2px;background:var(--signal)}
.explorer-tab-main{display:flex;align-items:center;gap:8px;min-width:0;flex:1;height:32px;padding:0 2px 0 10px;border:0;border-radius:8px 8px 0 0;background:transparent;color:inherit;font:inherit;text-align:left}
.explorer-tab.selected .explorer-tab-main{font-weight:600}
.explorer-tab-main .fi{width:16px;height:16px;flex:none}
.explorer-tab-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.explorer-tab-close{width:24px;height:24px;margin-right:4px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;display:grid;place-items:center;opacity:0}
.explorer-tab:hover .explorer-tab-close,.explorer-tab.selected .explorer-tab-close,.explorer-tab-close:focus-visible{opacity:1}
.explorer-tab-close:hover{background:var(--hover)}
.explorer-tab-close .fi{width:12px;height:12px}
.explorer-tab-add{width:32px;height:32px;flex:none;margin:0 0 2px}
.explorer-tab[data-closing]{pointer-events:none}
@media(forced-colors:active){.explorer-tab.selected{background:Highlight!important;color:HighlightText;forced-color-adjust:none}.explorer-tab.selected::before{background:HighlightText}}

/* A new tab is the page. The tab already names it, so the sheet starts at the search field. */
.edge-newtab{padding-top:48px}

/* Tabs and a mark share the title band. The app name is not a second row. */
.window.chrome-tabs .titlebar{align-items:flex-end;gap:2px;padding-left:8px}
.window.chrome-tabs .titlebar>.app-icon{align-self:center;margin:0 2px 0 4px}
.window.chrome-tabs .window-controls,.window.chrome-mark .window-controls{align-self:center;height:auto}
.window.chrome-mark .window-controls{margin-left:auto}
.titlebar-tabs{flex:1;min-width:0;height:40px;display:flex;align-items:flex-end}
.window.chrome-tabs :is(.edge-tabstrip,.explorer-tabstrip){flex:1;height:40px;margin:0;padding:0 4px;background:transparent}

/* Context menus use the same glass as windows. */
body.glass .context-menu{background:var(--window-glass-tint);-webkit-backdrop-filter:blur(1.5px) saturate(1.2);backdrop-filter:blur(1.5px) saturate(1.2)}
@media(forced-colors:active){body.glass .context-menu{background:Canvas;backdrop-filter:none;-webkit-backdrop-filter:none}}

/* Overview: a welcome poster. One full-bleed visual per page above the copy; the copy follows the Fluent display ramp. */
.overview{height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:20px;padding:12px 12px 16px;background:var(--surface);border:1px solid var(--line);border-width:1px 0 0;border-radius:20px 20px 0 0;color:var(--text);overflow:hidden}
.poster-stage{position:relative;flex:1 1 auto;min-height:200px;border-radius:16px;overflow:hidden;background:radial-gradient(120% 90% at 50% 40%,#1a3a78 0%,#0b1630 55%,#060b18 100%);isolation:isolate}
.poster-art{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:scale(1.04);transition:opacity .5s cubic-bezier(0,0,0,1),transform .7s cubic-bezier(0,0,0,1);pointer-events:none}
.poster-art.is-current{opacity:1;transform:none}
.poster-copy{padding:0 28px;max-width:760px}
.poster-eyebrow{margin:0 0 4px;font-size:14px;line-height:20px;color:var(--secondary)}
.poster-title{margin:0;font:600 40px/52px var(--display);letter-spacing:-.2px}
.poster-body{margin:8px 0 0;font-size:18px;line-height:24px;color:var(--secondary);max-width:40em}
.poster-copy.is-leaving{animation:settings-leave 100ms linear forwards}
.poster-copy.is-entering{animation:settings-enter 220ms cubic-bezier(0,0,0,1) both}
.poster-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px 0 28px;flex-wrap:wrap}
.poster-pips{display:flex;gap:4px}
.poster-pips button{width:24px;min-width:24px;height:32px;min-height:32px;padding:0;display:grid;place-items:center;border:0;background:transparent}
.poster-pips button::before{content:"";width:6px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--text) 32%,transparent);transition:width .25s cubic-bezier(.2,0,0,1),background-color .25s}
.poster-pips button[aria-current]::before{width:18px;background:var(--signal)}
.poster-nav{display:flex;gap:8px;margin-left:auto}
.poster-nav [hidden]{display:none}
/* Mark: the real logo on a field of light; four faint threads run from the core to the panes' corners. */
.art-mark img{position:relative;width:min(56%,300px);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 20px 60px #4f8dff66)}
.art-halo{position:absolute;width:min(70%,420px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#b9a8ff55 0%,#5aa9ff33 35%,transparent 68%)}
.art-links{position:absolute;width:min(78%,460px);height:auto;aspect-ratio:1;fill:none;stroke:#cfe4ff;stroke-width:1;stroke-linecap:round;opacity:.35;stroke-dasharray:210;stroke-dashoffset:210}
.art-mark.is-current .art-links{animation:art-draw 1.4s .25s cubic-bezier(.2,0,0,1) forwards}
.art-mark.is-current img{animation:art-rise .9s cubic-bezier(0,0,0,1) both}
@keyframes art-draw{to{stroke-dashoffset:0}}
@keyframes art-rise{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
/* Material: the user's own wallpaper behind three panes of the same window glass. */
.art-glass .art-wall{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art-pane{position:absolute;border-radius:28px;background:#eaf3ff40;box-shadow:0 24px 60px #0004,inset 0 1px 0 #ffffffb0,inset 0 0 0 1px #ffffff40}
body.glass .art-pane{-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3)}
body:not(.glass) .art-pane{background:var(--frame)}
.art-pane.p1{width:34%;height:46%;left:14%;top:20%}
.art-pane.p2{width:40%;height:54%;left:36%;top:28%;background:#eaf3ff55}
.art-pane.p2 i{position:absolute;left:28px;right:28px;top:0;height:2px;border-radius:2px;background:var(--signal)}
.art-pane.p3{width:20%;height:26%;left:66%;top:12%}
.art-glass.is-current .art-pane{animation:art-rise .8s cubic-bezier(0,0,0,1) both}
.art-glass.is-current .p2{animation-delay:.08s}.art-glass.is-current .p3{animation-delay:.16s}
/* Reveal: real app tiles wired to the system reveal light; the pointer lights nearby edges and the tile beneath it. */
.art-reveal{--reveal-edge:#d6ebffd9;--reveal-light:#ffffff24;grid-template-columns:repeat(4,minmax(0,96px));grid-auto-rows:96px;gap:12px;place-content:center;place-items:stretch;background:radial-gradient(70% 60% at 50% 50%,#2a5bd733,transparent 70%)}
.art-reveal.is-current{pointer-events:auto}
.art-reveal>span{position:relative;display:grid;place-items:center;border-radius:16px;background:transparent;transition:background-color .15s}
.art-reveal>span .app-icon{width:40px;height:40px}
.art-reveal>span:hover{background-color:#ffffff12;background-image:radial-gradient(circle 80px at var(--rx,50%) var(--ry,50%),var(--reveal-light),transparent 72%)}
.art-reveal.revealing>span::after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:radial-gradient(circle 110px at var(--bx,-200px) var(--by,-200px),var(--reveal-edge),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}
.art-reveal.is-current>span{animation:art-rise .7s cubic-bezier(0,0,0,1) both}
.art-reveal.is-current>span:nth-child(n+5){animation-delay:.06s}
@media(max-width:640px){.art-reveal{grid-template-columns:repeat(4,minmax(0,64px));grid-auto-rows:64px;gap:8px}.art-reveal>span .app-icon{width:28px;height:28px}}
@media(forced-colors:active){.art-reveal>span::after{display:none}}
/* Motion: a drop and a menu join the bar through the same smooth union the shell uses. */
.art-flow svg{width:min(80%,560px);height:auto}
.art-flow .flow-menu,.art-flow .flow-drop{transform-box:fill-box;transform-origin:center}.art-flow .flow-menu{transform-origin:50% 100%}
.art-flow.is-current .flow-menu{animation:flow-menu 1.6s .2s cubic-bezier(.2,0,0,1) both}
.art-flow.is-current .flow-drop{animation:flow-drop 1.6s .35s cubic-bezier(.2,0,0,1) both}
@keyframes flow-menu{from{transform:scale(.4,.2)}to{transform:none}}
@keyframes flow-drop{from{transform:translate(0,0)}to{transform:translate(-44px,62px) scale(.7)}}
/* Focus: a window reduced to its essentials: tabs, one command row, the sheet. */
.art-focus{background:radial-gradient(90% 80% at 30% 20%,#2a5bd755,transparent 70%)}
.art-window{width:min(64%,460px);aspect-ratio:16/10;border-radius:22px;padding:10px;background:#d9e6f733;box-shadow:0 30px 80px #0006,inset 0 1px 0 #ffffff70;display:flex;flex-direction:column;gap:8px}
.art-tabs,.art-command{display:flex;gap:6px}
.art-tabs i{width:22%;height:14px;border-radius:7px 7px 2px 2px;background:#ffffff26}
.art-tabs i.on{background:#ffffffd0;box-shadow:inset 0 2px 0 #5aa9ff}
.art-command i{height:8px;border-radius:4px;background:#ffffff40;width:12%}.art-command i:first-child{width:40%}
.art-sheet{flex:1;border-radius:14px 14px 6px 6px;background:#f6f9fd;padding:14% 10% 0;display:flex;flex-direction:column;gap:9px}
.art-sheet i{height:7px;border-radius:4px;background:#c9d5e4}.art-sheet i:nth-child(1){width:46%;height:12px;background:#9fb2c9}.art-sheet i:nth-child(3){width:84%}.art-sheet i:nth-child(4){width:62%}
.art-focus.is-current .art-window{animation:art-rise .8s cubic-bezier(0,0,0,1) both}
/* Yours: three of the wallpapers fanned like prints. */
.art-yours img{position:absolute;width:min(40%,300px);aspect-ratio:16/10;object-fit:cover;border-radius:14px;box-shadow:0 24px 60px #0007;transition:transform .8s cubic-bezier(0,0,0,1)}
.art-yours .w0{transform:translateX(-62%) rotate(-8deg)}.art-yours .w1{z-index:1}.art-yours .w2{transform:translateX(62%) rotate(8deg)}
.art-yours:not(.is-current) img{transform:none}
@media(max-width:640px){.poster-title{font-size:28px;line-height:36px}.poster-body{font-size:14px;line-height:20px}.poster-copy{padding:0 12px}.poster-footer{padding:0 4px 0 12px}}
@media(forced-colors:active){.poster-stage{background:Canvas;border:1px solid CanvasText}.poster-pips button::before{background:ButtonText}.poster-pips button[aria-current]::before{background:Highlight}}
@media(prefers-reduced-motion:reduce){.poster-art,.art-yours img{transition:none}.poster-art *,.poster-copy{animation:none!important}.art-links{stroke-dashoffset:0}}

/* Notepad tabs share the Explorer tab anatomy; an unsaved tab carries a small dot before its close button. */
.note-dirty{flex:none;width:6px;height:6px;margin-left:6px;border-radius:3px;background:currentColor;opacity:.7}
.notes-tabstrip .explorer-tab-main{padding-left:12px}
/* One command row: classic menus on the left, formatting on the right. */
.editor>.note-bar{gap:8px;padding:4px 8px;min-height:40px;justify-content:space-between}
.note-menus,.note-tools{display:flex;align-items:center;gap:2px;min-width:0}
.note-menus button{padding:5px 10px}
.note-menus button[aria-expanded=true]{background:var(--selected)}
.note-tools{flex-wrap:wrap;justify-content:flex-end}
.note-tools .divider{margin:0 4px}
.note-format[aria-pressed=true]{background:var(--selected);color:var(--text)}
.note-format[aria-pressed=true] .fi{color:var(--accent)}
.note-drop{gap:2px;padding-right:4px}
.note-chevron{display:inline-flex}.note-chevron .fi{width:12px;height:12px;transform:rotate(90deg)}
.context-menu .menu-hint{margin-left:24px;font-size:12px;line-height:16px;color:var(--secondary);white-space:nowrap}
.note-pane{flex:1;min-height:0;display:flex;flex-direction:column}
.note-doc.no-wrap{white-space:pre;overflow-wrap:normal}
.note-doc>:first-child{margin-top:0}
.note-doc :is(h1,h2,h3){font-family:var(--display);font-weight:600;line-height:1.3;margin:.6em 0 .2em}
.note-doc h1{font-size:2em}.note-doc h2{font-size:1.43em}.note-doc h3{font-size:1.15em}
.note-doc ul,.note-doc ol{margin:2px 0;padding-left:28px}
.note-doc:focus-visible{outline:0}
@media(max-width:560px){.note-tools .divider{display:none}}

/* Explorer: one command row on the frame, one opaque sheet for the files. The place is named by the tab and the address, not again above the grid. */
.explorer>.explorer-command{flex-wrap:wrap;align-items:center;gap:8px;min-height:48px;padding:8px 12px 8px 16px;background:transparent;border:0}
.explorer-actions{display:flex;align-items:center;gap:4px;margin-left:auto}
.explorer .sidebar{width:196px;background:transparent;border:0;padding:8px 8px 12px 12px}
.explorer .sidebar button{height:36px;margin-bottom:2px;border-radius:4px}
.explorer .sidebar button.selected{background:var(--surface);color:var(--text);font-weight:600}
.explorer .files{background:var(--surface);border:1px solid var(--line);border-width:1px 0 0 1px;border-top-left-radius:20px;padding:12px 8px 8px}
.explorer .file-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:4px}
.explorer .file{border-radius:8px;padding:12px 8px 8px}
.explorer .file .app-icon{width:40px;height:40px;margin-bottom:8px}
.explorer .file-grid[data-view=large]{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.explorer .file-grid[data-view=large] .file .app-icon{width:80px;height:80px}
.explorer .file-grid[data-view=details]{display:block}
.explorer .file-grid[data-view=details] :is(.file,.file-head){display:grid;grid-template-columns:minmax(160px,1fr) 120px 120px 72px;align-items:center;gap:12px;min-height:32px;padding:4px 8px;text-align:left}
.explorer .file-grid[data-view=details] .file{border-radius:4px;margin-bottom:2px}
.explorer .file-grid[data-view=details] .file .app-icon{position:absolute;width:20px;height:20px;margin:0}
.explorer .file-grid[data-view=details] .file{position:relative}
.explorer .file-grid[data-view=details] .file-name{padding-left:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:20px}
.explorer .file-grid[data-view=details] .file>span{font-size:12px;line-height:16px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.explorer .file-head{position:sticky;top:-12px;z-index:1;background:var(--surface);box-shadow:inset 0 -1px 0 var(--line);font-size:12px;line-height:16px;color:var(--secondary);margin-bottom:4px}
.explorer .file-head span:first-child{padding-left:30px}
@media(max-width:700px){.explorer .file-grid[data-view=details] :is(.file,.file-head){grid-template-columns:minmax(120px,1fr) 96px}.explorer .file-grid[data-view=details] :is(.file,.file-head)>span:nth-last-child(-n+2){display:none}}

/* Settings content: a soft tinted sheet holding separate tiles (Fluent SettingsCard, as in Windows 11). Never a bright pure-white page. */
.synapse-settings{--settings-sheet:#eef1f5;--settings-tile:#f8f9fb;--settings-tile-hover:#f2f4f7;--settings-tile-line:#dfe3e9}
.dark .synapse-settings{--settings-sheet:#1f252d;--settings-tile:#29303a;--settings-tile-hover:#2f3742;--settings-tile-line:#343c47}
.synapse-settings .settings-page{background:var(--settings-sheet)}
.synapse-settings .settings-stage{max-width:1000px}
.synapse-settings .settings-page-heading{margin-bottom:8px}
.synapse-settings .settings-page h1{font:600 28px/36px var(--display)}
.synapse-settings .settings-page-symbol{width:auto;height:auto;background:transparent;border-radius:0;color:var(--text)}
.synapse-settings .settings-page-symbol .fi{width:28px;height:28px}
.synapse-settings .settings-page h2{font:600 14px/20px var(--font);margin:24px 0 8px;color:var(--text)}
.synapse-settings .settings-page-body>section:first-child>h2:first-child{margin-top:16px}
.synapse-settings .settings-row-group{display:flex;flex-direction:column;gap:4px;border:0;border-radius:0;background:transparent;margin:16px 0 8px;overflow:visible}
.synapse-settings section>h2+.settings-row-group{margin-top:0}
.synapse-settings .settings-page .setting-row{display:flex;align-items:center;gap:16px;min-height:56px;margin:0 0 4px;padding:12px 16px;border:1px solid var(--settings-tile-line);border-radius:6px;background:var(--settings-tile);box-shadow:none;transition:background-color .1s}
.synapse-settings .settings-row-group .setting-row{margin:0}
.synapse-settings .settings-row-group .setting-row:last-child{border-bottom:1px solid var(--settings-tile-line)}
.synapse-settings .settings-page .setting-row>div{flex:1;min-width:0}
.synapse-settings .settings-page .setting-row:hover{background:var(--settings-tile-hover)}
.synapse-settings .setting-row>.fi{width:20px;height:20px;color:var(--text)}
.synapse-settings .settings-categories button.selected{background:var(--settings-tile)!important}
.synapse-settings :is(.synapse-appearance,.wallpaper-library){color:var(--text)}
/* Glass sheet (design language for Settings and File Explorer): with transparency on, the sheet is a light tint over the window's own live glass.
   It must not carry its own backdrop-filter: the window is the backdrop root, so a nested filter only sees the window and turns the sheet opaque. */
body{--sheet-glass:color-mix(in srgb,#eef1f5 46%,transparent);--sheet-glass-strong:color-mix(in srgb,#eef1f5 86%,transparent);--sheet-glass-rim:inset 0 1px 0 #ffffff66,inset 1px 0 0 #ffffff2e}
body.dark{--sheet-glass:color-mix(in srgb,#1f252d 56%,transparent);--sheet-glass-strong:color-mix(in srgb,#1f252d 90%,transparent);--sheet-glass-rim:inset 0 1px 0 #ffffff1f,inset 1px 0 0 #ffffff0f}
body.glass :is(.synapse-settings .settings-page,.explorer .files,.pdf-body,.pdf-empty,.editor .note-doc,.overview){background:var(--sheet-glass);box-shadow:var(--sheet-glass-rim)}
body.glass :is(.pdf-viewport,.pdf-status){background:transparent}
body.glass :is(.explorer .file-head,.pdf-sidebar,.pdf-findbar){background:var(--sheet-glass-strong)}
body.glass .synapse-settings .settings-page :is(.setting-row,.home-card){background:color-mix(in srgb,var(--settings-tile) 88%,transparent)}
body.glass .synapse-settings .settings-page .setting-row:hover{background:color-mix(in srgb,var(--settings-tile-hover) 92%,transparent)}/* Home: the device first, then three working cards. Nothing here repeats the navigation. */
.home-hero{display:flex;align-items:center;gap:24px;margin:16px 0 24px}
.home-device{position:relative;flex:none;width:208px;aspect-ratio:16/10;border-radius:12px;overflow:hidden;border:1px solid var(--window-stroke);box-shadow:0 8px 24px #0b1a2e22}
.home-device>img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-mark{position:absolute;left:50%;top:50%;width:56px;height:56px;transform:translate(-50%,-50%);filter:drop-shadow(0 6px 16px #0006)}
.home-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.synapse-settings .home-id h2{margin:0;font:600 20px/28px var(--display)}
.home-id span{font-size:14px;line-height:20px;color:var(--secondary)}
.home-id .home-wall{font-size:12px;line-height:16px;margin-top:6px}
.home-id .home-wall b{font-weight:600;color:var(--text)}
.home-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;align-items:start}
.home-card{border:1px solid var(--settings-tile-line);border-radius:8px;background:var(--settings-tile);padding:16px 20px 20px;min-width:0}
.synapse-settings .home-card h2{font:600 14px/20px var(--font);margin:0 0 12px}
.home-personal{grid-row:span 2}
.home-personal .appearance-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:340px}
.home-personal .appearance-modes legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.home-walls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:16px}
.home-walls .wallpaper-thumb{aspect-ratio:1/1}
.home-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--settings-tile-line)}
.home-card-foot .appearance-switch{margin:0}
.home-meter{height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.home-meter span{display:block;height:100%;width:0;border-radius:2px;background:var(--accent);transition:width .4s cubic-bezier(0,0,0,1)}
.home-storage p{display:flex;flex-direction:column;gap:2px;margin:12px 0 16px;font-size:14px;line-height:20px}
.home-storage p span{font-size:12px;line-height:16px;color:var(--secondary)}
.home-storage strong{font-weight:600}
.home-storage button{display:inline-flex;align-items:center;gap:8px}
.home-language .language-control{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.home-language select{width:100%}
@media(max-width:760px){.home-grid{grid-template-columns:1fr}.home-personal{grid-row:auto}.home-walls{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.home-hero{flex-direction:column;align-items:flex-start}.home-device{width:100%;max-width:280px}}
@media(prefers-reduced-motion:reduce){.home-meter span{transition:none}}
@media(forced-colors:active){.explorer .sidebar button.selected{background:Highlight;color:HighlightText;forced-color-adjust:none}.explorer .files,.synapse-settings .settings-page{background:Canvas}}

/* Command buttons follow Fluent 2 Button: medium size (32px, 14/20 semibold), circular shape so they belong to the capsule family, flat fills from the brand and neutral ramps. No gradients, glows or press scaling. */
:is(.primary,.secondary,.poster-nav button,.sys-dialog .dialog-actions button){min-height:32px;min-width:96px;padding:5px 16px;border-radius:16px;font:600 14px/20px var(--font);transition:background-color .1s,border-color .1s,color .1s}
.primary{background:#0f6cbd!important;color:#fff!important;border:1px solid transparent!important;box-shadow:none}
.primary:hover{background:#115ea3!important}
.primary:active{background:#0c3b5e!important;color:#fff!important}
body.dark .primary{background:#115ea3!important;color:#fff!important}
body.dark .primary:hover{background:#0f6cbd!important}
body.dark .primary:active{background:#0c3b5e!important;color:#fff!important}
:is(.secondary,.poster-nav button:not(.primary),.sys-dialog .dialog-actions button:not(.primary)){background:color-mix(in srgb,var(--text) 5%,transparent);border:0;box-shadow:inset 0 1px 0 #ffffffa6,inset 0 0 0 1px color-mix(in srgb,var(--text) 10%,transparent)}
:is(.secondary,.poster-nav button:not(.primary),.sys-dialog .dialog-actions button:not(.primary)):hover{background:color-mix(in srgb,var(--text) 9%,transparent)}
:is(.secondary,.poster-nav button:not(.primary),.sys-dialog .dialog-actions button:not(.primary)):active{background:color-mix(in srgb,var(--text) 12%,transparent);color:var(--secondary)}
body.dark :is(.secondary,.poster-nav button:not(.primary),.sys-dialog .dialog-actions button:not(.primary)){box-shadow:inset 0 1px 0 #ffffff1f,inset 0 0 0 1px #ffffff14}
.poster-nav button[data-prev]:not(:hover,:active){background:transparent;box-shadow:none}
body.dark .poster-nav button[data-prev]:not(:hover,:active){box-shadow:none}
:is(.primary,.secondary,.poster-nav button,.sys-dialog button):focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* Dialogs: one solid pane over smoke. No footer band; the actions sit on the pane. The signal is inset like an active window's edge. */
.sys-dialog{width:min(420px,calc(100vw - 32px));padding:24px 24px 20px;border:0;border-radius:20px;background:var(--signal) 24px 0/calc(100% - 48px) 2px no-repeat,var(--surface);box-shadow:inset 0 1px 0 #ffffffb3,inset 0 0 0 1px var(--window-stroke),0 24px 64px #0b1a2e40,0 2px 8px #0b1a2e1f}
body.dark .sys-dialog{background:var(--signal) 24px 0/calc(100% - 48px) 2px no-repeat,#252a31;box-shadow:inset 0 1px 0 #ffffff1f,inset 0 0 0 1px #ffffff14,0 24px 64px #0009}
.sys-dialog h2{font:600 20px/28px var(--display);margin:4px 0 12px}
.sys-dialog p{color:var(--secondary)}
.sys-dialog label{font-size:12px;line-height:16px;color:var(--secondary);margin-bottom:6px}
.sys-dialog input{min-height:40px;padding:9px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--text) 12%,transparent);background:color-mix(in srgb,var(--text) 4%,var(--surface));transition:border-color .12s,box-shadow .12s}
.sys-dialog input:hover{border-color:color-mix(in srgb,var(--text) 22%,transparent)}
.sys-dialog input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--surface)}
.sys-dialog input[aria-invalid=true]{border-color:#c42b1c;box-shadow:0 0 0 1px #c42b1c}
body.dark .sys-dialog input[aria-invalid=true]{border-color:#ff99a4;box-shadow:0 0 0 1px #ff99a4}
body.dark .sys-dialog .input-error{color:#ff99a4}
.sys-dialog .input-error:empty{min-height:0;margin:0}
.sys-dialog .dialog-actions{margin:20px 0 0;padding:0;background:none;border:0;gap:8px}
.sys-dialog .dialog-actions button{flex:1 1 0;min-width:0}
@media(forced-colors:active){:is(.primary,.secondary,.poster-nav button,.sys-dialog .dialog-actions button){border:1px solid ButtonText;box-shadow:none}.sys-dialog{border:1px solid CanvasText;background:Canvas}.sys-dialog input:focus{outline:2px solid Highlight}}
@media(prefers-reduced-motion:reduce){:is(.primary,.secondary,.poster-nav button,.sys-dialog .dialog-actions button){transition:none}}
.sys-dialog.is-covered{opacity:0}
.sys-dialog.is-stacked::backdrop{background:transparent!important}

/* HALFMOON: a third-party music app. Layout mixes Apple Music's title-bar player with a Spotify-like three-pane body.
   Its own dusk-indigo frosted tints sit on the Synapse window glass (no nested backdrop-filter). Regions pick up the logo
   spectrum — amber library, violet main, cyan now-playing, moon-yellow player — so the window is not one flat black.
   Reveal light stays. Synapse supplies only the frame, caption buttons and the Quick Settings media card. */
.window.chrome-app{--hm-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 78 64'%3E%3Crect x='2' y='28.6' width='6' height='10' rx='3' fill='%23ff544b' fill-opacity='.22'/%3E%3Crect x='12' y='20' width='7' height='24' rx='3.5' fill='%23ffa219' fill-opacity='.22'/%3E%3Crect x='23' y='6' width='8' height='50' rx='4' fill='%237650fa' fill-opacity='.22'/%3E%3Crect x='35' y='24' width='6' height='18' rx='3' fill='%2300d1fa' fill-opacity='.22'/%3E%3Cpath d='M46 8c0-.7.6-1.2 1.2-1.1C62 8.2 72 20 72 32S62 55.8 47.2 57c-.6.1-1.2-.4-1.2-1.1z' fill='%23ffdc00' fill-opacity='.22'/%3E%3C/svg%3E");--hm-ink:#140c1c;--hm-text:#fff6ea;--hm-sub:#d2c4e0;--hm-moon:#ffdc00;--hm-moon-hover:#ffe74d;--hm-red:#ff544b;--hm-amber:#ffa219;--hm-violet:#7650fa;--hm-cyan:#00d1fa;--hm-hover:#ffffff18;--hm-line:#ffffff22;--hm-raised:#2a1840cc;--text:var(--hm-text);--secondary:var(--hm-sub);--hover:#ffffff1a;--focus:#ffdc00;--reveal-light:#ffdc0030;--reveal-edge:#00d1fa99;--scroll-thumb:#ffffff4d;--scroll-thumb-hover:#ffffff80;--scroll-thumb-active:#ffffffb0;--scroll-track:#ffffff10;color-scheme:dark;color:var(--hm-text)}
.window.chrome-app .titlebar{height:44px;padding:0 4px 0 10px;gap:8px;align-items:center}
.window.chrome-app .window-controls{align-self:center;height:auto;margin-left:0}
.window.chrome-app>.titlebar,.window.chrome-app>.content{background:#1a1028}
body.glass .window.chrome-app>.titlebar{background:linear-gradient(90deg,#ffdc0026,#7650fa18 40%,#00d1fa14)}
body.glass .window.chrome-app>.content{background:transparent}
.titlebar-app{flex:1;min-width:0;height:100%;display:flex;align-items:center}
.hm-tb-left{display:flex;align-items:center;gap:4px;flex:none}
.hm-tb-btn{width:32px;height:32px;min-height:32px;padding:0;display:grid;place-items:center;border-radius:50%;background:#ffa21922;color:var(--hm-text)}
.hm-tb-btn:hover{background:#ffa21944}
.hm-tb-btn:disabled{opacity:.35;background:transparent}
.hm-tb-btn svg,.hm-tb-btn .fi{width:16px;height:16px}
.hm-tb-logo{width:36px;height:36px;background:transparent}
.hm-tb-logo img{width:28px;height:28px;border-radius:8px}
.hm-tb-logo:hover{background:#ffffff18}
.hm-player{flex:none;display:grid;grid-template-columns:minmax(140px,1fr) minmax(220px,1.4fr) minmax(140px,1fr);align-items:center;gap:12px;height:72px;margin:0 8px 8px;padding:0 12px;border-radius:14px;background:linear-gradient(90deg,#ffdc0024,#7650fa22 55%,#00d1fa18);box-shadow:inset 0 0 0 1px #ffdc0033}
.hm-transport{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.hm-buttons{display:flex;align-items:center;gap:8px}
.hm-extra{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.hm-lcd{min-width:0;display:flex;align-items:center;gap:10px}
.hm-lcd-open{flex:1;min-width:0;display:none;align-items:center;gap:10px;height:48px;min-height:0;padding:0 8px 0 0;border:0;border-radius:8px;background:transparent;text-align:left;color:inherit;cursor:default}
.hm-lcd.has-track .hm-lcd-open{display:flex}
.hm-lcd-open:hover,.hm-lcd-open:active{background:transparent;color:inherit}
.hm-lcd-open.is-live{cursor:pointer}
.hm-lcd-open.is-live:hover{background:#ffffff14}
.hm-mark{width:46px;height:46px;flex:none}.hm-mark svg{display:block;width:100%;height:100%;overflow:visible}
.hm-moon-base{fill:#c5c8d0}.hm-moon-lit{fill:#ffdc00}
.hm-lcd-art{flex:none;width:40px;height:40px;border-radius:8px;overflow:hidden;background:#ffffff10}
.hm-lcd-mark{width:28px;height:28px;flex:none;margin:0 6px}
.hm-lcd.has-track .hm-lcd-mark{display:none}
.hm-lcd:not(.has-track) .hm-lcd-art{display:none}
.hm-lcd-text{flex:1;min-width:0;display:flex;flex-direction:column}
.hm-lcd-text b{font-weight:600;font-size:13px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-lcd-text span{font-size:12px;line-height:16px;color:var(--hm-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-transport .hm-progress{width:min(100%,520px)}
.hm{height:100%;display:flex;flex-direction:column;position:relative;background:#1a1028;color:var(--hm-text);container-type:inline-size;overflow:hidden}
body.glass .hm{background:transparent}
:where(.hm) button{min-height:0;color:inherit}
.hm .fi{width:20px;height:20px;color:inherit}
.hm :focus-visible,.titlebar-app :focus-visible{outline:2px solid var(--hm-moon);outline-offset:2px}
.hm-body{position:relative;flex:1;min-height:0;display:flex;gap:8px;padding:0 8px 8px}
.hm-panel{min-height:0;border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff18}
/* Side: amber frost */
.hm-side{flex:none;width:248px;display:flex;flex-direction:column;border-radius:14px;background:linear-gradient(180deg,#ffa21955,#3a1c08f2);--reveal-light:#ffa21933;--reveal-edge:#ffa219aa;box-shadow:inset 0 0 0 1px #ffa21966}
body.glass .hm-side{background:linear-gradient(180deg,#ffa2195c,#ffa21914 70%,#1a102866)}
.hm-search{position:relative;display:block;margin:12px 12px 8px}
.hm-search .fi{position:absolute;left:12px;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--hm-cyan);pointer-events:none}
.hm-search input{width:100%;height:36px;min-height:36px;padding:0 12px 0 36px;border-radius:18px;border:1px solid #00d1fa33;background:#00d1fa14;color:var(--hm-text);font-size:14px}
.hm-search input::placeholder{color:var(--hm-sub)}
.hm-search input:hover{border-color:#00d1fa66;background:#00d1fa22}
.hm-search input:focus{outline:0;border-color:var(--hm-cyan);background:#00d1fa28}
.hm-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px 8px}
.hm-nav button{display:flex;align-items:center;gap:12px;height:40px;padding:0 10px;border-radius:10px;text-align:left;color:var(--hm-sub);white-space:nowrap}
.hm-nav button:hover{color:var(--hm-text);background:var(--hm-hover)}
.hm-nav button[aria-current=page]{background:#ffffff14;color:var(--hm-text);font-weight:700}
.hm-nav button[data-go=home][aria-current=page]{color:var(--hm-moon)}
.hm-nav button[data-go=albums][aria-current=page]{color:#c4b4ff}
.hm-nav button[data-go=songs][aria-current=page]{color:var(--hm-cyan)}
.hm-nav button[data-go=liked][aria-current=page]{color:#ff8b84}
.hm-nav-icon{display:grid;place-items:center;width:20px;height:20px;flex:none}
.hm-side-title{margin:8px 16px 4px;font:700 12px/16px var(--font);letter-spacing:.08em;color:#ffa219;text-transform:uppercase}
.hm-lib-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:2px;padding:0 8px 8px}
.hm-lib-item{flex:none;display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 8px;border-radius:10px;text-align:left}
.hm-lib-item:hover{background:var(--hm-hover)}
.hm-lib-item[aria-current=page]{background:#ffffff16}
.hm-lib-text{min-width:0;display:flex;flex-direction:column;gap:2px}
.hm-lib-text b,.hm-lib-text small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-lib-text b{font-weight:600}
.hm-lib-text small{font-size:12px;line-height:16px;color:var(--hm-sub)}
.hm-lib-item.is-playing b{color:var(--hm-moon)}
.hm-lib-liked[aria-current=page] b{color:#ff8b84}
.hm[data-lib=closed] .hm-side{width:72px}
.hm[data-lib=closed] :is(.hm-search,.hm-side-title,.hm-nav-label,.hm-lib-text){display:none}
.hm[data-lib=closed] .hm-nav{padding:8px 8px 4px}
.hm[data-lib=closed] .hm-nav button{justify-content:center;padding:0}
.hm[data-lib=closed] .hm-lib-item{justify-content:center;padding:4px}
.hm[data-lib=closed] .hm-lib-item.is-playing .hm-art{box-shadow:0 0 0 2px var(--hm-moon)}
/* Main: violet frost + album wash */
.hm-main{flex:1;min-width:0;overflow:auto;background:var(--hm-mark) right -36px center / 260px no-repeat,linear-gradient(180deg,color-mix(in srgb,var(--c2,#7650fa) 52%,#3a2080) 0,color-mix(in srgb,var(--hm-violet) 40%,#1a1028) 280px,#1a1028);--reveal-light:#7650fa36;--reveal-edge:#c4b4ff99}
body.glass .hm-main{background:var(--hm-mark) right -36px center / 260px no-repeat,linear-gradient(180deg,color-mix(in srgb,var(--c2,#7650fa) 46%,transparent) 0,#7650fa2e 180px,#1a102866)}
.hm-view{padding:20px 28px 40px}
.hm-view.is-entering{animation:hm-in .22s cubic-bezier(0,0,0,1) both}
@keyframes hm-in{from{opacity:0;transform:translateY(6px)}}
.hm-art{position:relative;display:block;flex:none;overflow:hidden;aspect-ratio:1;border-radius:6px;background:#ffffff14}
.hm-art img{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none}
.hm-art.row{width:40px}.hm-art.sm{width:44px}.hm-art.np,.hm-art.lcd{width:40px}.hm-art.lib{width:44px}
.hm-art.tile{width:56px;border-radius:0}
.hm-art.card{width:100%;border-radius:8px;margin-bottom:10px;box-shadow:0 10px 28px #0008}
.hm-art.hero{width:clamp(128px,22cqi,220px);border-radius:10px;box-shadow:0 18px 48px #000a}
.hm-liked-art{display:grid;place-items:center;background:linear-gradient(135deg,var(--hm-red),var(--hm-violet) 55%,var(--hm-moon));color:#fff}
.hm-liked-art .fi{width:42%;height:42%}
.hm-title{margin:0 0 16px;font:800 clamp(28px,4.4cqi,44px)/1.1 var(--display);letter-spacing:-.03em}
.hm-view h2{margin:28px 0 12px;font:700 22px/28px var(--display);letter-spacing:-.01em}
.hm-quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.hm-tile{position:relative;border-radius:8px;overflow:hidden;background:#ffffff16;transition:background-color .12s}
.hm-tile:hover,.hm-tile:focus-within{background:#ffffff26}
.hm-tile-open{width:100%;height:56px;display:flex;align-items:center;gap:12px;padding:0 56px 0 0;text-align:left;font-weight:700;font-size:14px;line-height:18px}
.hm-tile-open span{min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hm-tile-play{position:absolute;right:10px;top:10px;width:36px!important;height:36px!important;opacity:0;transition:opacity .14s}
.hm-tile-play svg{width:16px!important;height:16px!important}
.hm-tile:hover .hm-tile-play,.hm-tile:focus-within .hm-tile-play{opacity:1}
.hm-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px;margin:0 -12px}
.hm-card{position:relative}
.hm-card-open{width:100%;display:flex;flex-direction:column;padding:12px 12px 14px;border-radius:10px;text-align:left}
.hm-card-open:hover,.hm-card:focus-within .hm-card-open{background:var(--hm-hover)}
.hm-card-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-card-sub{margin-top:2px;font-size:13px;line-height:18px;color:var(--hm-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-card-play{position:absolute;right:20px;bottom:72px;opacity:0;transform:translateY(8px);transition:opacity .16s,transform .2s cubic-bezier(0,0,0,1),background-color .12s}
.hm-card:hover .hm-card-play,.hm-card:focus-within .hm-card-play{opacity:1;transform:none}
.hm-head{display:flex;align-items:flex-end;gap:24px;margin:4px 0 8px}
.hm-head-text{min-width:0}
.hm-head h1{margin:0 0 8px;font:800 clamp(28px,5cqi,64px)/1.04 var(--display);letter-spacing:-.03em;overflow-wrap:break-word;text-wrap:balance}
.hm-byline{margin:0 0 6px;font-weight:700;font-size:16px;line-height:22px}
.hm-meta{margin:0;font-size:14px;line-height:20px;color:var(--hm-sub)}.hm-meta b{color:var(--hm-text);font-weight:700}
.hm-actions{display:flex;align-items:center;gap:10px;margin:16px 0}
.hm-pill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px;border-radius:18px;font-weight:700;background:#ffffff18}
.hm-pill:hover{background:#ffffff28}
.hm-pill svg,.hm-pill .fi{width:16px;height:16px}
.hm-pill-moon{background:var(--hm-moon);color:var(--hm-ink)!important}
.hm-pill-moon:hover{background:var(--hm-moon-hover)}
.hm-disc{width:48px;height:48px;min-width:0;padding:0;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--hm-moon);color:var(--hm-ink)!important;box-shadow:0 8px 18px #ffdc0040;transition:background-color .12s,transform .12s}
.hm-disc:hover{background:var(--hm-moon-hover);transform:scale(1.04)}
.hm-disc svg{width:20px;height:20px}
.hm-disc-sm{width:34px;height:34px;box-shadow:none}.hm-disc-sm svg{width:15px;height:15px}
.hm-icon{position:relative;width:32px;height:32px;padding:0;display:grid;place-items:center;border-radius:50%;color:var(--hm-sub)!important}
.hm-icon svg{width:16px;height:16px}
.hm-lyrics-btn[hidden]{display:none}
.hm-icon:hover{color:var(--hm-text)!important}
.hm-icon[aria-pressed=true]{color:var(--hm-moon)!important}
.hm-icon[aria-pressed=true]::after{content:'';position:absolute;left:50%;bottom:1px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.hm-repeat i{display:none;position:absolute;right:3px;top:3px;width:12px;height:12px;border-radius:6px;background:var(--hm-moon);color:var(--hm-ink);font:700 9px/12px var(--font);font-style:normal}
.hm-repeat[data-mode=one] i{display:block}
.hm-like{flex:none;width:32px;height:32px;padding:0;display:grid;place-items:center;border-radius:50%;color:var(--hm-sub)!important}
.hm-like:hover{color:var(--hm-text)!important}
.hm-like .fi{width:18px;height:18px}
.hm-like[aria-pressed=true]{color:var(--hm-red)!important}
.hm-row .hm-like{opacity:0;margin-right:4px}
.hm-row:hover .hm-like,.hm-row:focus-within .hm-like,.hm-like[aria-pressed=true],.hm-like-current{opacity:1}
/* Tracks */
.hm-cols{display:flex;align-items:center;gap:14px;height:36px;margin:0 -12px 8px;padding:0 50px 0 12px;border-bottom:1px solid var(--hm-line);font-size:13px;color:var(--hm-sub)}
.hm-cols>span:first-child{flex:none;width:24px;text-align:center}
.hm-cols>span:nth-child(2){flex:1;min-width:0}
.hm-cols:not(.no-album)>span:nth-child(3){flex:.7;min-width:0}
.hm-cols>span:last-child{flex:none;width:44px;display:flex;justify-content:flex-end}
.hm-cols .fi{width:16px;height:16px}
.hm-tracks{display:flex;flex-direction:column;margin:0 -12px}
.hm-row{position:relative;display:flex;align-items:center;border-radius:8px}
.hm-row:hover,.hm-row:focus-within{background:var(--hm-hover)}
.hm-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:14px;min-height:54px;padding:6px 8px 6px 12px;border-radius:8px;text-align:left}
.hm-row-lead{flex:1;min-width:0;display:flex;align-items:center;gap:12px}
.hm-idx{position:relative;flex:none;width:24px;text-align:center;font-size:14px;color:var(--hm-sub);font-variant-numeric:tabular-nums}
.hm-eq{display:none;position:absolute;inset:0;margin:auto;height:14px;align-items:flex-end;justify-content:center;gap:2px}
.hm-eq i{width:3px;height:45%;border-radius:2px;background:var(--hm-red)}
.hm-eq i:nth-child(2){background:var(--hm-amber);height:75%}.hm-eq i:nth-child(3){background:var(--hm-violet);height:100%}.hm-eq i:nth-child(4){background:var(--hm-cyan);height:60%}
.hm-row.is-current .hm-n{visibility:hidden}.hm-row.is-current .hm-eq{display:flex}
.hm.is-playing .hm-row.is-current .hm-eq i{transform-origin:center bottom;animation:hm-eq .9s ease-in-out infinite}
.hm.is-playing .hm-row.is-current .hm-eq i:nth-child(2){animation-delay:-.15s}
.hm.is-playing .hm-row.is-current .hm-eq i:nth-child(3){animation-delay:-.4s}
.hm.is-playing .hm-row.is-current .hm-eq i:nth-child(4){animation-delay:-.65s}
@keyframes hm-eq{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.hm-row-text{flex:1;min-width:0;display:flex;flex-direction:column}
.hm-row-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-row.is-current .hm-row-title{color:var(--hm-moon)}
.hm-row-sub,.hm-row-album{font-size:13px;line-height:18px;color:var(--hm-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-row-album{flex:.7;min-width:0}
.hm-row-time{flex:none;width:44px;text-align:right;font-size:14px;color:var(--hm-sub);font-variant-numeric:tabular-nums}
.hm-empty{margin:24px 0;color:var(--hm-sub)}
.hm-notice{position:absolute;left:50%;bottom:96px;z-index:5;max-width:calc(100% - 48px);padding:10px 18px;border-radius:12px;background:var(--hm-moon);color:var(--hm-ink);font-weight:700;box-shadow:0 12px 32px #000a;transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .16s,transform .2s cubic-bezier(0,0,0,1)}
.hm-notice:empty{display:none}
.hm-notice.is-shown{opacity:1;transform:translate(-50%,0)}
/* Now playing: cyan frost */
.hm-now{flex:none;width:300px;display:none;flex-direction:column;background:var(--hm-mark) right -12px bottom 24px / 160px no-repeat,linear-gradient(180deg,#00d1fa44,color-mix(in srgb,var(--c2,#00d1fa) 28%,#062028) 40%,#0c1c24);--reveal-light:#00d1fa30;--reveal-edge:#00d1fa99}
body.glass .hm-now{background:var(--hm-mark) right -12px bottom 24px / 160px no-repeat,linear-gradient(180deg,#1c5160,#102c36 36%,#0a1c24)}
.hm[data-now=open] .hm-now{display:flex}
.hm-now-head{flex:none;display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 8px 0 16px}
.hm-now-head h2{margin:0;font:700 16px/22px var(--font);color:var(--hm-cyan)}
.hm-now-body{flex:1;min-height:0;overflow:auto;padding:0 8px 12px}
.hm-stage{position:absolute;left:0;right:0;top:0;bottom:80px;z-index:6;display:none;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);background:#100814;overflow:hidden}
.hm[data-lyrics=open] .hm-stage{display:grid}
.hm-stage-bg{position:absolute;inset:-8%;width:116%;height:116%;object-fit:cover;filter:blur(46px) saturate(1.15);opacity:.42;pointer-events:none}
.hm-stage-veil{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 48% 70% at 24% 52%,#ffdc0014,transparent 68%),linear-gradient(100deg,#140c22c4 0%,#12081ad4 40%,#0c0614f2 100%)}
.hm-stage-close{position:absolute;z-index:2;top:14px;right:14px;background:#00000055}
.hm-stage-close:hover{background:#ffffff22;color:var(--hm-text)!important}
.hm-deck{position:relative;z-index:1;display:grid;place-items:center;min-width:0;min-height:0;container-type:size}
.hm-platter{position:relative;width:min(440px,92cqw,100cqh);aspect-ratio:1}
.hm-platter::before{content:'';position:absolute;left:2%;top:8%;width:82%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 42%,#4a3428,#16100c 72%);box-shadow:0 22px 48px #000a}
.hm-record{position:absolute;left:4%;top:10%;width:78%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle at 50% 50%,#1c1c1c 0 1px,#070707 1px 3px);box-shadow:inset 0 0 0 1px #ffffff24,inset 0 0 28px #000a;animation:hm-spin 4.8s linear infinite;animation-play-state:paused}
.hm.is-playing .hm-record{animation-play-state:running}
.hm-record img{width:78%;height:78%;border-radius:50%;object-fit:cover}
.hm-gloss{position:absolute;left:4%;top:10%;width:78%;aspect-ratio:1;border-radius:50%;pointer-events:none;background:linear-gradient(128deg,#ffffff2e,transparent 42% 62%,#ffffff14)}
.hm-spindle{position:absolute;left:43%;top:49%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);background:var(--hm-moon);box-shadow:0 0 0 3px #0c0c0c}
.hm-arm{position:absolute;right:3%;top:40%;width:20%;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--hm-moon) 0 4px,#efe6d8 4px,#8d8478);transform-origin:100% 50%;transform:rotate(48deg);transition:transform .5s cubic-bezier(0,0,0,1);box-shadow:0 1px 2px #0007}
.hm-arm::before{content:'';position:absolute;right:0;top:50%;width:16px;height:16px;border-radius:50%;transform:translate(50%,-50%);background:radial-gradient(circle at 38% 32%,#f6f0e6,#b7aea2 58%,#5e574e);box-shadow:0 2px 6px #0008}
.hm-arm::after{content:'';position:absolute;left:4px;top:50%;width:16px;height:8px;border-radius:1px 3px 3px 1px;transform:translateY(-50%);background:linear-gradient(#f3ece2,#8a8176)}
.hm.is-playing .hm-arm{transform:rotate(-32deg)}
@keyframes hm-spin{to{transform:rotate(360deg)}}
.hm-stage-lyrics{position:relative;z-index:1;display:flex;flex-direction:column;min-width:0;min-height:0;padding:28px 28px 8px 12px}
.hm-stage-title{flex:none;min-width:0;padding:0 36px 4px 20px}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('assets/halfmoon/fonts/source-sans-3-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('assets/halfmoon/fonts/source-sans-3-600.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.hm-stage-title h2{margin:0;font:600 18px/24px 'Source Sans 3',var(--font);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-stage-title p{margin:2px 0 0;color:var(--hm-sub);font-size:13px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-lyrics{position:relative;list-style:none;flex:1;min-height:0;margin:0;padding:28% 12px 40% 0;overflow:auto;mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent)}
.hm-lyrics li{color:#fff6eae8;font:400 16px/26px 'Source Sans 3',var(--font);transition:opacity .2s linear}
.hm-lyrics button{position:relative;width:100%;min-height:0;display:block;padding:3px 8px 3px 22px;border:0;border-radius:8px;background:transparent;text-align:left;color:inherit;font:inherit;line-height:inherit}
.hm-lyrics button:hover,.hm-lyrics button:active{background:transparent;color:#fff}
.hm-lyrics li.is-past{color:#fff6ead4}
.hm-lyrics li.is-current{color:#fffaf4;font-weight:600;font-style:normal;font-size:18px;line-height:28px}
.hm-lyrics li.is-current button::before{content:'';position:absolute;left:6px;top:50%;width:5px;height:10px;border-radius:0 10px 10px 0;transform:translateY(-50%);background:var(--hm-moon)}
.hm-lyric-back{position:absolute;left:50%;bottom:16px;z-index:2;transform:translateX(-50%);height:32px;min-height:32px;padding:0 16px;border:0;border-radius:16px;background:#fff6ea;color:#140c1c;font:600 13px/32px var(--font);white-space:nowrap}
.hm-lyric-back:hover,.hm-lyric-back:active{background:#fff;color:#140c1c}
.hm-lyric-back[hidden]{display:none}
.hm-queue{list-style:none;margin:0;padding:0}
.hm-queue button{width:100%;display:flex;align-items:center;gap:12px;min-height:0;padding:6px 8px;border:0;border-radius:8px;background:transparent;text-align:left;color:inherit}
.hm-queue button:hover{background:var(--hm-hover)}
.hm-queue button:active{background:var(--hm-hover);color:inherit}
.hm-queue button.is-current{cursor:default}
.hm-queue button.is-current .hm-row-title{color:var(--hm-moon)}
.hm-queue .hm-row-title{container-type:inline-size;text-overflow:clip}
.hm-queue .hm-row-title>span{display:inline-block}
.hm-queue button:hover .hm-row-title>span,.hm-queue button:focus-visible .hm-row-title>span{animation:hm-title 4.8s ease-in-out infinite alternate}
@keyframes hm-title{0%,18%{transform:translateX(0)}82%,100%{transform:translateX(min(0px,calc(100cqw - 100%)))}}
/* Transport in the title bar */
.hm-progress{display:flex;align-items:center;gap:8px;width:100%}
.hm-time{width:34px;font-size:11px;line-height:14px;color:var(--hm-sub);font-variant-numeric:tabular-nums}.hm-time:first-child{text-align:right}
.hm-range{-webkit-appearance:none;appearance:none;flex:1;min-width:0;height:16px;min-height:16px;margin:0;padding:0;border:0;background:transparent;cursor:pointer;--p:0%;--hm-fill:var(--hm-moon)}
.hm-range:hover,.hm-range:focus-visible{--hm-fill:var(--hm-cyan)}
.hm-range:disabled{cursor:default;opacity:.55}
.hm-range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--hm-fill) var(--p),#ffffff30 var(--p))}
.hm-range::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-4px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0006;opacity:0;transition:opacity .12s}
.hm-range:hover::-webkit-slider-thumb,.hm-range:focus-visible::-webkit-slider-thumb,.hm-range:active::-webkit-slider-thumb{opacity:1}
.hm-range::-moz-range-track{height:4px;border-radius:2px;background:#ffffff30}
.hm-range::-moz-range-progress{height:4px;border-radius:2px;background:var(--hm-fill)}
.hm-range::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:#fff}
.hm-volume{flex:0 1 88px}
/* Reveal: pointer-following edge and fill, same contract as the shell, in HALFMOON colours. */
:is(.hm-card-open,.hm-row-main,.hm-nav button,.hm-lib-item,.hm-tile-open,.hm-queue button,.hm-tb-btn):hover{background-image:radial-gradient(circle 90px at var(--rx,50%) var(--ry,50%),var(--reveal-light),transparent 72%)}
:is(.hm-shelf,.hm-tracks,.hm-quick,.hm-lib-list,.hm-nav).revealing>*::after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:radial-gradient(circle 110px at var(--bx,-200px) var(--by,-200px),var(--reveal-edge),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}
.hm-nav button,.hm-lib-item,.hm-card,.hm-tile,.hm-row{position:relative}
/* Quick Settings media card (Synapse integration, so it keeps Synapse's look). */
.quick-media{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:8px;border-radius:16px;background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--c2) 22%,transparent),transparent 70%),color-mix(in srgb,var(--text) 5%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 8%,transparent)}
.quick-media-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:4px 8px 4px 4px;border-radius:12px;text-align:left}
.quick-media-text{min-width:0;display:flex;flex-direction:column}
.quick-media-text b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-media-text small{font-size:12px;line-height:16px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-media-buttons{display:flex;align-items:center;gap:2px}
.quick-media-buttons button{width:36px;height:36px;min-height:36px;padding:0;display:grid;place-items:center;border-radius:50%}
.quick-media-buttons svg{width:18px;height:18px}
.quick-media-toggle{background:color-mix(in srgb,var(--text) 8%,transparent)!important}
@container (max-width:1100px){.hm-now{position:absolute;right:8px;top:auto;bottom:8px;z-index:4;width:min(248px,calc(100% - 16px));height:auto;max-height:min(232px,42%);border-radius:14px;box-shadow:0 16px 40px #000b}.hm-now-body{max-height:176px}.hm-opt{display:none}}
.hm[data-lyrics=open] .hm-now{position:absolute;right:12px;top:auto;bottom:8px;z-index:7;width:min(248px,calc(100% - 24px));height:auto;max-height:min(220px,40%);border-radius:14px;box-shadow:0 16px 36px #000b}
.hm[data-lyrics=open] .hm-now-head{height:40px;padding:0 4px 0 12px}
.hm[data-lyrics=open] .hm-now-head h2{font-size:14px;line-height:20px}
.hm[data-lyrics=open] .hm-now-body{max-height:168px;padding-bottom:8px}
@container (max-width:780px){.hm .hm-side{width:72px}.hm :is(.hm-search,.hm-side-title,.hm-nav-label,.hm-lib-text){display:none}.hm .hm-nav{padding:8px}.hm .hm-nav button{justify-content:center;padding:0}.hm .hm-lib-item{justify-content:center;padding:4px}.hm-lib-item.is-playing .hm-art{box-shadow:0 0 0 2px var(--hm-moon)}.hm-row-album,.hm-cols:not(.no-album)>span:nth-child(3){display:none}.hm-view{padding:14px 16px 32px}.hm-head{flex-direction:column;align-items:flex-start}}
@container (max-width:560px){.hm-quick{grid-template-columns:1fr 1fr}.hm-tile-play{display:none}.hm-shelf{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}}
@container (max-width:860px){.hm-stage-lyrics{padding:16px 12px 8px 4px}.hm-stage-title{padding:0 28px 4px 8px}.hm-lyrics li.is-current{font-size:17px;line-height:26px}}
@container (max-width:720px){.hm-player{grid-template-columns:minmax(0,1fr) auto;height:auto;padding:8px 10px;row-gap:2px}.hm-transport{grid-column:1/-1;grid-row:2}.hm-extra .hm-volume,.hm-opt,.hm-lcd-text span{display:none}.hm-mark{width:36px;height:36px}.hm-stage{bottom:120px}.hm-notice{bottom:128px}}
@media(prefers-reduced-motion:reduce){.hm-view.is-entering{animation:none}.hm-card-play,.hm-disc,.hm-notice,.hm-tile,.hm-tile-play,.hm-arm,.hm-lyrics li{transition:none}.hm-disc:hover{transform:none}.hm-record,.hm-record img{animation:none}.hm.is-playing .hm-arm{transform:rotate(-32deg)}}
@media(forced-colors:active){.hm-lyrics{mask-image:none}.hm-lyrics li{opacity:1!important}}
@media(forced-colors:active){.window.chrome-app>.titlebar,.window.chrome-app>.content,.hm,.hm-panel,.hm-main,.hm-now,.hm-side,.hm-lcd{background:Canvas;color:CanvasText;box-shadow:none}.hm-panel,.hm-side,.hm-lcd{border:1px solid CanvasText}.hm-disc,.hm-pill-moon,.quick-media-toggle{border:1px solid ButtonText;forced-color-adjust:none;background:ButtonFace;color:ButtonText!important}.hm-nav button[aria-current=page],.hm-lib-item[aria-current=page]{forced-color-adjust:none;background:Highlight;color:HighlightText!important}.hm-row.is-current .hm-row-title,.hm-lib-item.is-playing b{color:Highlight}.hm-notice{border:1px solid CanvasText;background:Canvas;color:CanvasText}.hm-stage,.hm-deck,.hm-stage-lyrics{background:Canvas;color:CanvasText}.hm-stage{border:1px solid CanvasText}.hm-stage-bg,.hm-stage-veil,.hm-gloss{display:none}.hm-arm,.hm-arm::before,.hm-arm::after{background:CanvasText;box-shadow:none}.hm-lyrics li.is-current button::before{background:CanvasText}.hm-record{background:Canvas;border:1px solid CanvasText;box-shadow:none}.hm-lyrics li,.hm-lyrics li.is-current,.hm-lyrics li.is-section{color:CanvasText;background:transparent}.hm-lyrics li.is-current{outline:1px solid Highlight}.hm-bar{fill:Highlight}.hm-moon-base{fill:GrayText}.hm-moon-lit{fill:Highlight}:is(.hm-shelf,.hm-tracks,.hm-quick,.hm-lib-list,.hm-nav).revealing>*::after{display:none}.hm-range::-webkit-slider-runnable-track{background:ButtonText}}
/* HALFMOON is dark-only: its window carries fixed dark material tokens, so the system light theme never lightens its glass,
   sheets, strokes or scrollbars. The glass renderer reads --glass-tint from the window element, so it follows these values. */
.window.chrome-app{--panel:#1a1028;--frame:#1a1028;--surface:#22163a;--layer:#1e1430;--line:#ffffff22;--stroke:#ffffff3d;--selected:#ffffff16;--pressed:#ffe74d;--accent:#ffdc00;--window-stroke:#ffffff1f;--shadow:0 16px 40px #0009,0 2px 8px #0006;--mica-tint:#1a1028d9;--acrylic-tint:#1e1430c2;--acrylic-luminosity:#0000004d;--rim:linear-gradient(180deg,#ffffff47,#ffffff1a 22%,#ffffff08 60%,#ffffff17);--sheen:linear-gradient(180deg,#ffffff0d,#ffffff00 42%);--liquid-tint:#1a1028b3;--liquid-edge:#d9c6ff59;--liquid-glint:.65;--window-glass-tint:#1a102899;--glass-tint-active:#1a1028b3;--glass-tint-inactive:#140c1cd9;--sheet-glass:color-mix(in srgb,#1e1430 56%,transparent);--sheet-glass-strong:color-mix(in srgb,#1e1430 90%,transparent);--sheet-glass-rim:inset 0 1px 0 #ffffff1f,inset 1px 0 0 #ffffff0f}
