/* Nylon desktop system: stable controls, readable content, contextual motion. */
:root {
  --ny-bg:#090f14; --ny-surface:#101b24; --ny-raised:#17252f;
  --ny-text:#edf1ef; --ny-muted:#a0b0ba; --ny-dim:#788d99;
  --ny-line:rgba(168,197,213,.16); --ny-line-strong:rgba(168,197,213,.3);
  --ny-accent:#c3dea0; --ny-cyan:#a2d5dd; --ny-danger:#edb1a8;
  --ny-fast:150ms; --ny-normal:230ms; --ny-slow:320ms; --ny-reveal:420ms;
  --ny-ease:cubic-bezier(.22,.8,.24,1); --ny-ease-in:cubic-bezier(.4,0,1,1);
  --ny-shadow:0 24px 72px #0006,0 2px 12px #0003;
  --control-surface:#111d26; --control-border:var(--ny-line-strong); --control-radius:12px;
}
body{background-color:var(--ny-bg);color:var(--ny-text);-webkit-font-smoothing:antialiased}
::selection{background:#a2d5dd45;color:#fff}
.ny-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
[hidden]{display:none!important}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--ny-cyan);outline-offset:4px}
/* Clear navigation material: one small 4px backdrop, two narrow optical rims.
   Pointer light only repaints the masked rim; text and hit areas stay fixed. */
.site-header{top:12px;min-height:64px;padding:9px 12px 9px 20px;margin-top:14px;border-radius:20px}
:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface){
  --ny-glass-fill:rgba(8,21,30,.16);
  --ny-glass-edge:rgba(218,240,248,.24);
  isolation:isolate;
  background:var(--ny-glass-fill);
  border-color:var(--ny-glass-edge);
  backdrop-filter:blur(4px) saturate(135%);
  -webkit-backdrop-filter:blur(4px) saturate(135%);
  box-shadow:0 8px 26px #0002,inset 0 1px 0 #effbff1f,inset 0 -1px 0 #0310194d;
  transition:background-color 320ms var(--ny-ease),border-color 320ms var(--ny-ease),box-shadow 320ms var(--ny-ease);
}
:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before,:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask-composite:exclude;
}
:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before{
  inset:1px;padding:2px;border-radius:inherit;
  background:linear-gradient(127deg,#8edcee2b 0%,transparent 20%,transparent 61%,#f6edcc1f 84%,transparent),linear-gradient(180deg,#f2fcff12,transparent 28%,transparent 74%,#9ed8e926);
}
:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{
  inset:-1px;padding:1px;
  background:radial-gradient(160px 105px at var(--ny-glass-x,50%) var(--ny-glass-y,0px),rgb(238 252 255 / var(--ny-glass-light,0)),rgb(192 231 242 / calc(var(--ny-glass-light,0)*.25)) 43%,transparent 75%),linear-gradient(128deg,#edfaff66 0%,#e1f9ff18 17%,#a4dce414 39%,#eaf6ff36 72%,#fbf4df3d 89%,#b0d7e412);
}
:is(.site-header,.desktop-header.ny-glass-header)[data-scrolled]{--ny-glass-fill:rgba(8,21,30,.28);--ny-glass-edge:rgba(218,240,248,.28);box-shadow:0 9px 26px #0003,inset 0 1px 0 #effbff24,inset 0 -1px 0 #0310194d}
.ny-glass-dock{color:#ecf3f4;text-shadow:0 1px 3px #031019bf}
.site-header .brand,.site-header .nav-links,.desktop-header.ny-glass-header{color:#edf3f4;text-shadow:0 1px 2px #031019cc,0 1px 7px #03101980}
.site-header .nav-links>a:not(.nav-action),.site-header .site-nav-more>summary{color:#e1ebee;font-weight:500}
.site-header .nav-action{text-shadow:none}
@supports not (mask-composite:exclude){:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before,:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{display:none}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface){background:#111f29}
  :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before,:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{display:none}
}
@media(prefers-reduced-transparency:reduce){
  :root:not([data-glass="clear"]) :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface){background:#111f29;backdrop-filter:none;-webkit-backdrop-filter:none}
  :root:not([data-glass="clear"]) :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before,:root:not([data-glass="clear"]) :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{display:none}
}
:root[data-glass="solid"] :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface){background:#111f29;backdrop-filter:none;-webkit-backdrop-filter:none}
:root[data-glass="solid"] :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before,:root[data-glass="solid"] :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{display:none}
@media(prefers-contrast:more){
  :root :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface){background:#111f29!important;border-color:#d0e5ed;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;text-shadow:none}
  :root :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before,:root :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{display:none!important}
}
@media(forced-colors:active){
  :root :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface){background:Canvas!important;border-color:CanvasText;box-shadow:none;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;text-shadow:none}
  :root :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::before,:root :is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface)::after{display:none!important}
  .site-header .brand,.site-header .nav-links{text-shadow:none}
}
.site-header .brand-word svg{width:73px;height:auto}.site-header .brand-site-name{font-size:15px;font-weight:650}.site-header .brand-divider{height:22px}
.site-header .nav-links>a,.site-header .site-nav-more>summary{min-height:40px;font-size:13px;padding:9px 12px;border-radius:10px}
.site-header .nav-links>a[data-active]{background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff09;color:var(--ny-text)}
.site-header .nav-links>.nav-action{background:#e8eeea;color:#162b35;font-weight:650;margin-left:7px}
.site-header .site-nav-menu{background:rgba(21,34,44,.98);border-color:var(--ny-line-strong);box-shadow:var(--ny-shadow);border-radius:17px;padding:16px;animation-duration:var(--ny-normal)}
.site-header .nav-glass-choice{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:36px;margin:0 0 12px;padding:8px 11px;border:1px solid #bddde51a;border-radius:9px;background:#08131b55;color:var(--ny-muted);font:500 12px/1.5 var(--sans);text-align:left;cursor:pointer;transition:background-color var(--ny-fast),border-color var(--ny-fast),color var(--ny-fast)}
.site-header .nav-glass-choice::after{content:"✓";opacity:0;color:var(--ny-accent);font-size:13px}
.site-header .nav-glass-choice[aria-pressed="true"]{border-color:#bddde536;background:#a2d5dd0c;color:var(--ny-text)}
.site-header .nav-glass-choice[aria-pressed="true"]::after{opacity:1}
.site-header .nav-glass-choice:hover{background:#a2d5dd17;border-color:var(--ny-line-strong);color:var(--ny-text)}
.site-header .nav-glass-choice:focus-visible{outline:2px solid var(--ny-cyan);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.site-header .nav-glass-choice{transition:none}}
.ny-command-trigger{display:inline-flex;align-items:center;gap:8px;min-height:38px;margin:0 3px 0 9px;padding:7px 10px;border:1px solid var(--ny-line);border-radius:10px;color:var(--ny-muted);background:#ffffff04;font:12px var(--sans);cursor:pointer;white-space:nowrap}
.ny-command-trigger svg,.ny-command-form>svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;flex:none}
.ny-command-trigger:hover{background:#ffffff09;color:var(--ny-text);border-color:var(--ny-line-strong)}
:is(.ny-command-trigger,.nav-action,.primary-button,.blog-button,.guide-button,.project-button,.catalog-submit){transition:color var(--ny-fast),background-color var(--ny-fast),border-color var(--ny-fast),box-shadow var(--ny-normal),transform var(--ny-fast) var(--ny-ease)}
:is(.ny-command-trigger,.nav-action,.primary-button,.blog-button,.guide-button,.project-button,.catalog-submit):active{transform:translateY(1px) scale(.985)}
kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:2px 5px;border:1px solid var(--ny-line);border-radius:4px;color:var(--ny-muted);font:10px/1.35 var(--mono);background:#ffffff04}
/* A modal task switcher, with native dialog focus containment and Escape. */
.ny-command{position:fixed;inset:14vh auto auto 50%;margin:0;transform:translateX(-50%);width:min(620px,calc(100vw - 32px));max-height:76vh;padding:0;color:var(--ny-text);border:1px solid var(--ny-line-strong);border-radius:22px;background:#14212bf7;backdrop-filter:blur(28px);box-shadow:var(--ny-shadow);overflow:auto;overscroll-behavior:contain}
.ny-command::backdrop{background:#030b125c;backdrop-filter:blur(5px)}
.ny-command-top{display:flex;align-items:center;justify-content:space-between;padding:20px 23px 12px}
.ny-command-top h2{margin:0;font:600 16px/1.4 var(--sans)}
.ny-command-top button{padding:4px 7px;border:1px solid var(--ny-line);border-radius:6px;background:transparent;color:var(--ny-muted);font:11px var(--mono);cursor:pointer}
.ny-command-form{display:flex;align-items:center;gap:12px;padding:0 22px 19px;border-bottom:1px solid var(--ny-line)}
.ny-command-form>svg{width:21px;height:21px;color:var(--ny-cyan)}
.ny-command-form input{min-width:0;flex:1;padding:10px 0;border:0;outline:0;background:transparent;color:var(--ny-text);font:16px var(--sans)}
.ny-command-form input::placeholder{color:var(--ny-dim)}
.ny-command-form button{border:0;border-radius:9px;padding:10px 12px;color:#17291b;background:var(--ny-accent);font:600 12px var(--sans);cursor:pointer}
.ny-command-form button span{margin-left:9px;opacity:.6}
.ny-command-label{margin:17px 25px 7px;color:var(--ny-dim);font-size:11px}
.ny-command-routes{padding:0 12px 12px;display:grid;grid-template-columns:1fr 1fr;gap:3px}
.ny-command-routes a{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 12px;border-radius:12px;text-decoration:none;transition:background var(--ny-fast)}
.ny-command-routes a>span:first-child{min-width:0}.ny-command-routes strong{display:block;font-size:14px;font-weight:550}.ny-command-routes small{display:block;margin-top:4px;color:var(--ny-muted);font-size:11px;line-height:1.6}
.ny-command-routes a>span:last-child{color:var(--ny-dim);font-size:13px}.ny-command-routes a:hover,.ny-command-routes a:focus-visible{background:#a2d5dd12;outline-offset:-2px}
.ny-command-empty{padding:8px 24px 22px;color:var(--ny-muted);font-size:13px}
.ny-command-objects{margin:0 12px 12px;padding-top:12px;border-top:1px solid var(--ny-line)}
.ny-command-objects>h3{margin:0 12px;color:var(--ny-muted);font:600 12px/1.5 var(--sans)}
.ny-command-objects>[data-command-object-status]{margin:3px 12px 8px;color:var(--ny-muted);font-size:12px}
.ny-command-object-results{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.ny-command-object-results a{display:block;min-width:0;padding:12px;border-radius:12px;color:var(--ny-text);text-decoration:none}
.ny-command-object-results a:is(:hover,:focus-visible){background:#a2d5dd12;outline-offset:-2px}
.ny-command-object-results strong{display:-webkit-box;font-size:14px;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.ny-command-object-results small{display:-webkit-box;margin-top:4px;color:var(--ny-muted);font-size:11px;line-height:1.55;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.ny-command-help{display:flex;justify-content:space-between;gap:18px;padding:12px 22px;border-top:1px solid var(--ny-line);color:var(--ny-dim);font-size:11px}.ny-command-help kbd{margin-right:3px}
.ny-command[open]{animation:ny-command-enter var(--ny-slow) var(--ny-ease) both}.ny-command[open]::backdrop{animation:ny-overlay-enter var(--ny-normal) ease both}
.ny-command[data-closing]{animation:ny-command-leave 160ms var(--ny-ease-in) both}.ny-command[data-closing]::backdrop{animation:ny-overlay-leave 160ms ease both}
@keyframes ny-command-enter{from{opacity:0;transform:translate(-50%,12px) scale(.97)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes ny-command-leave{to{opacity:0;transform:translate(-50%,8px) scale(.985)}}
@keyframes ny-overlay-enter{from{opacity:0}to{opacity:1}}@keyframes ny-overlay-leave{to{opacity:0}}
/* Native selects stay the form source. These opt-in popovers are progressive. */
.ny-select{position:relative;display:block;width:100%;min-width:0}
main .ny-select>select.ny-select-native{position:absolute!important;inset:0 auto auto 0!important;width:1px!important;min-width:0!important;height:1px!important;min-height:0!important;opacity:0;pointer-events:none;padding:0!important;border:0!important}
main .ny-select>.ny-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-width:0;min-height:44px;padding:11px 13px;border:1px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-surface);color:var(--ny-text);text-align:left;font:400 14px/1.5 var(--sans);cursor:pointer;box-shadow:none;transition:background var(--ny-fast),border-color var(--ny-fast),box-shadow var(--ny-normal)}
.ny-select-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ny-select-trigger>svg{width:13px;height:13px;fill:none;stroke:var(--ny-muted);stroke-width:1.6;flex:none;transition:transform var(--ny-normal) var(--ny-ease)}
.ny-select-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}
.ny-select-error{display:block;margin-top:6px;color:var(--ny-danger);font:12px/1.5 var(--sans)}
.ny-select-trigger[aria-invalid=true]{border-color:var(--ny-danger)!important}
main .ny-select>.ny-select-trigger:hover{background:var(--ny-raised);border-color:var(--ny-line-strong)}
main .ny-select>.ny-select-trigger[aria-expanded=true]{border-color:var(--ny-cyan);box-shadow:0 0 0 3px #a2d5dd12}
main .ny-select>.ny-select-trigger:disabled{cursor:not-allowed;opacity:.5}
.ny-picker{position:fixed;inset:auto;margin:0;padding:6px;min-width:180px;border:1px solid var(--ny-line-strong);border-radius:14px;background:#17252ffb;color:var(--ny-text);box-shadow:var(--ny-shadow);overflow:hidden;max-width:calc(100vw - 24px)}
.ny-picker:popover-open{display:flex;flex-direction:column;animation:ny-picker-enter var(--ny-normal) var(--ny-ease) both}
.ny-picker-filter{padding:6px 5px 9px;border-bottom:1px solid var(--ny-line);margin-bottom:4px}
.ny-picker-filter input{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid var(--ny-line);border-radius:8px;background:#0c1720;color:var(--ny-text);font:13px var(--sans)}
.ny-picker-options{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#617e8e #17252f;max-height:280px;padding:2px}
.ny-picker-options button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:39px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--ny-text);font:13px/1.5 var(--sans);text-align:left;cursor:pointer;overflow-wrap:anywhere}
.ny-picker-options button span{flex-shrink:0;color:var(--ny-accent)}
.ny-picker-options button:hover,.ny-picker-options button:focus-visible{background:#a2d5dd14;outline-offset:-2px}
.ny-picker-options button[aria-pressed=true]{background:#c3dea014;color:#dbecc6}
.ny-picker-options button:disabled{opacity:.4;cursor:not-allowed}
.ny-picker-options .ny-picker-group{padding:10px 10px 4px;color:var(--ny-dim);font-size:11px}
.ny-picker-empty{padding:16px 10px;margin:0;color:var(--ny-muted);font-size:13px}
@keyframes ny-picker-enter{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}
/* Feedback is quicker than reading; no control waits for these animations. */
.motion-enter,.motion-visible{animation-duration:var(--ny-reveal);animation-timing-function:var(--ny-ease)}
:is(.motion-enter,.motion-visible).motion-title{animation-duration:760ms}
:is(.motion-enter,.motion-visible).motion-soft{animation-duration:700ms}
.motion-delay-1{--reading-delay:45ms}.motion-delay-2{--reading-delay:90ms}.motion-delay-3{--reading-delay:135ms}.motion-delay-4{--reading-delay:180ms}
@supports (interpolate-size:allow-keywords){
  details[data-ny-disclosure]::details-content{interpolate-size:allow-keywords;overflow:clip;block-size:0;opacity:0;transition:block-size var(--ny-slow) var(--ny-ease),content-visibility var(--ny-slow) allow-discrete,opacity var(--ny-normal)}
  details[data-ny-disclosure][open]::details-content{block-size:auto;opacity:1}
}
@media(min-width:1150px){.site-header{width:min(1460px,calc(100% - 64px))}.site-header .nav-links{gap:2px}}
@media(max-width:1300px){.ny-command-trigger>span,.ny-command-trigger kbd{display:none}.ny-command-trigger{padding:9px;margin-left:3px}}
@media(max-width:700px){.site-header{top:8px}.site-header .brand-site-name{font-size:14px}.ny-command{top:8vh;max-height:84vh}.ny-command-form{gap:8px;padding-inline:16px}.ny-command-form input{font-size:16px}.ny-command-form button{font-size:16px;padding:10px}.ny-command-form button span{display:none}.ny-command-routes,.ny-command-object-results{grid-template-columns:1fr}.ny-command-help{font-size:10px}.ny-command-help>span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){:is(.site-header,.desktop-header.ny-glass-header,.ny-glass-dock,.ny-glass-surface){transition:none!important}.ny-command,.ny-command::backdrop,.ny-picker:popover-open{animation:none!important}details[data-ny-disclosure]::details-content{transition:none!important}:is(.ny-command-trigger,.nav-action,.primary-button,.blog-button,.guide-button,.project-button,.catalog-submit,.ny-select-trigger,.ny-select-trigger>svg){transition:none!important;transform:none!important}}
@media print{.ny-command,.ny-picker,.ny-command-trigger{display:none!important}.ny-select-trigger{display:none!important}main .ny-select>select.ny-select-native{position:static!important;width:auto!important;height:auto!important;opacity:1}}
