/* NCAT: page-local surfaces, shared Novacoast proportions and typography. */
.ncat-page{--ncat-accent:#EFA64D;--ncat-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
.ncat-page .hero,.ncat-page #scope{--ink:#EEECE6;--slate:#B0B7BB;--paper:#1E2328;--paper-2:#171B1F;--card:#23292E;--rule:#3A4248;--rule-soft:#333B41;--signal:#EFA64D;--btn-bg:#EFA64D;--btn-ink:#191C20;--btn-hover:#FFBA68;background:var(--paper);color:var(--ink)}
.ncat-page .hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 92% 35%,#51402C44,transparent 55%),linear-gradient(115deg,#15191D,#20262B);padding-bottom:clamp(3.5rem,7vw,6rem)}
.ncat-page .hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("paper-grain.svg") repeat;opacity:.2;mix-blend-mode:soft-light}
.ncat-page .hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(125deg,transparent 0,transparent 78px,#B7AA8D12 79px,transparent 80px),repeating-linear-gradient(35deg,transparent 0,transparent 158px,#B7AA8D08 159px,transparent 160px);mask-image:linear-gradient(to right,transparent 25%,#000);-webkit-mask-image:linear-gradient(to right,transparent 25%,#000)}
.ncat-page .hero .hero-grid{display:block}
.ncat-page .hero .hero-grid>div{max-width:59rem}
.ncat-page .hero h1{max-width:20ch;font-size:clamp(2.6rem,5.6vw,4.6rem);line-height:1.06;margin-bottom:1.6rem;text-wrap:balance}
.ncat-page .hero .lede{max-width:49rem;font-size:clamp(1.05rem,1.5vw,1.16rem);line-height:1.65}
.ncat-page .hero .acts{margin-top:2rem}
.ncat-page .hero .b1{background:var(--ncat-accent);color:#191C20}
.ncat-page .hero .b1:hover{background:#FFBA68}
.ncat-page .hero .b2{background:#171B1F88}
.ncat-signature{display:flex;align-items:center;gap:1rem;margin-bottom:1.7rem}
.ncat-signature>span:first-child{font:600 1.7rem/1 var(--ncat-mono);letter-spacing:-.06em;color:var(--ncat-accent)}
.ncat-signature>span:last-child{font-size:.72rem;max-width:9ch;line-height:1.3;color:var(--slate);border-left:1px solid var(--rule);padding-left:1rem;box-sizing:content-box}
.ncat-cursor{animation:ncat-blink .85s step-end 3}
.ncat-page #scope{background:#191E22}
.ncat-page #scope .lbl{color:var(--ncat-accent)}
.ncat-terminal{font-family:var(--ncat-mono);font-size:.875rem;line-height:1.6;font-variant-ligatures:none;background:#000;border:1px solid #454545;border-radius:10px;overflow:hidden;box-shadow:0 24px 60px #0005,0 2px 8px #0004}
.ncat-terminal :is(h3,h4,p,li,button,input,a){font-family:var(--ncat-mono);letter-spacing:0}
.ncat-terminal-bar{display:grid;grid-template-columns:5rem minmax(0,1fr) 5rem;align-items:center;gap:.75rem;min-height:40px;padding:.55rem 1rem;border-bottom:1px solid #414141;color:#D5D5D5;font:.72rem/1.5 var(--ncat-mono);background:linear-gradient(#333,#292929);box-shadow:inset 0 1px #ffffff0c}
.ncat-window-controls{display:flex;gap:8px;align-items:center}
.ncat-window-controls i{width:12px;height:12px;border-radius:50%;background:#FF5F57;box-shadow:inset 0 0 0 1px #0002}
.ncat-window-controls i:nth-child(2){background:#FEBC2E}
.ncat-window-controls i:nth-child(3){background:#28C840}
.ncat-window-title{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ncat-terminal-path{color:#A6AFB5}
.ncat-entries{padding:.25rem 1.1rem}
.ncat-entry{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 1ch;gap:1ch;padding:.65rem .5rem;border-bottom:1px solid transparent;scroll-margin-top:7rem;transition:background .18s ease,box-shadow .18s ease}
.ncat-entry:last-child{border-bottom:0}
.ncat-entry-body{display:grid;grid-template-columns:23ch minmax(0,1fr);column-gap:2ch;align-items:baseline}
.ncat-category{font:.8125rem/1.6 var(--ncat-mono);color:var(--ncat-accent);border:0;background:none;cursor:pointer;text-align:left;min-height:32px;padding:.25rem .3rem;margin:-.25rem 0 .15rem -.3rem;border-radius:2px}
.ncat-category>span{margin-right:.5rem}
.ncat-category:disabled{cursor:default;opacity:1}
.ncat-entry h3{font-size:.875rem;font-weight:500;line-height:1.6;margin:0;color:#EEECE6}
.ncat-entry p{grid-column:2;max-width:68ch;color:#B3BDC3;font-size:.875rem;line-height:1.65}
.ncat-entry-cursor{font:1rem/2 var(--ncat-mono);color:var(--ncat-accent);opacity:0;align-self:center}
.ncat-terminal.is-interactive .ncat-entry{cursor:pointer}
.ncat-terminal.is-interactive .ncat-entry:hover,.ncat-entry:focus-within{background:#ffffff0a}
.ncat-terminal .ncat-entry.is-selected{background:#EFA64D1C;box-shadow:inset 3px 0 var(--ncat-accent)}
.ncat-entry.is-selected h3{color:var(--ncat-accent)}
.ncat-entry.is-selected .ncat-entry-cursor{opacity:1}
.ncat-terminal .ncat-entry.is-selected .ncat-category:focus-visible{outline:none}
.ncat-entry.is-scanning .ncat-entry-cursor{animation:ncat-scan .5s ease both}
.ncat-command{border-top:1px solid #303030;padding:.8rem 1.1rem;background:#000}
.ncat-command[hidden]{display:none}
.ncat-command-line{display:flex;align-items:center;gap:.8rem;font:.9rem/1.5 var(--ncat-mono)}
.ncat-command label{color:var(--ncat-accent);white-space:nowrap}
.ncat-command input{font:inherit;color:#EEECE6;caret-color:var(--ncat-accent);border:0;background:transparent;min-width:0;flex:1;padding:.65rem .3rem;border-radius:0}
.ncat-command input::placeholder{color:#8F9CA5}
.ncat-command button{width:44px;height:44px;border:1px solid #59616A;border-radius:2px;color:var(--ncat-accent);background:transparent;font:1.25rem var(--ncat-mono);cursor:pointer}
.ncat-command button:hover{background:#EFA64D14;border-color:var(--ncat-accent)}
.ncat-command-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:.5rem;color:#A6B1B8;font:.69rem/1.6 var(--ncat-mono)}
.ncat-command-footer p{max-width:none}
#ncat-command-status{color:var(--ncat-accent);text-align:right}
.ncat-terminal :focus-visible{outline:2px solid var(--ncat-accent);outline-offset:3px}
.ncat-terminal:focus{outline:none}
.ncat-output{padding:.25rem 1rem 1rem 2ch;border-left:1px solid #806038;border-bottom:0;background:#000;animation:ncat-output-in .18s ease-out}
.ncat-output[hidden]{display:none}
.ncat-output-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.35rem}
.ncat-output-header h4{font:.8rem/1.5 var(--ncat-mono);color:var(--ncat-accent)}
.ncat-output-header h4::before{content:":: ";color:#A6B1B8}
.ncat-output-header button{min-width:44px;height:44px;border:0;border-radius:0;color:#A6B1B8;background:transparent;font-size:.8125rem;cursor:pointer}
.ncat-output-header button:hover{background:#ffffff0a}
.ncat-test-detail{grid-column:1;color:#B3BDC3;font-size:.875rem;line-height:1.7}
.ncat-test-detail[hidden]{display:none}
.ncat-test-detail ul{padding-left:3ch;max-width:83ch;list-style-type:"-  "}
.ncat-test-detail li{padding:.15rem 0}
.ncat-output-cta{display:inline-block;color:var(--ncat-accent);font:.8rem/1.5 var(--ncat-mono);padding:.65rem .6rem;margin:.35rem 0 0 -.6rem;text-underline-offset:5px}
.ncat-output-cta::before{content:"$ "}
.ncat-terminal .ncat-output-cta:focus-visible{outline:none;background:#EFA64D1C;box-shadow:inset 3px 0 var(--ncat-accent);text-decoration:underline}
@keyframes ncat-output-in{from{opacity:.4;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:800px){.ncat-entry-body{grid-template-columns:minmax(0,1fr)}.ncat-entry p{grid-column:1}.ncat-entry h3,.ncat-entry p{padding-left:2ch}.ncat-output{padding:.25rem 1rem 1rem 2ch}}
@keyframes ncat-blink{50%{opacity:0}}
@keyframes ncat-scan{0%,100%{opacity:0}35%,75%{opacity:1}}
@media(max-width:600px){
 .ncat-terminal-bar{padding:.55rem .8rem;font-size:.65rem;grid-template-columns:4rem minmax(0,1fr) 4rem}
 .ncat-terminal-path{display:none}
 .ncat-entries{padding:.3rem .7rem}
 .ncat-entry{grid-template-columns:minmax(0,1fr) 1ch;gap:.5rem;padding:.75rem .3rem}
 .ncat-category{min-height:44px;margin-bottom:.1rem}
 .ncat-entry h3{font-size:.875rem}
 .ncat-entry p{font-size:.875rem}
 .ncat-command{padding:.75rem 1rem}
 .ncat-command-line{gap:.5rem}
 .ncat-command input{font-size:16px}
 .ncat-command-footer{flex-direction:column;gap:.4rem}
 #ncat-command-status{text-align:left;min-height:1.6em}
}
@media(prefers-reduced-motion:reduce){
 .ncat-cursor,.ncat-entry.is-scanning .ncat-entry-cursor{animation:none}
 .ncat-entry{transition:none}
 .ncat-output{animation:none}
}
