/* CTF-ORION base: element defaults and behaviours shared by every page.
   Loaded before style.css. Colours come from the tokens in style.css (they resolve at runtime). */

/* reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h,68px) + 16px);scrollbar-gutter:stable}
body{margin:0;min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote,pre,fieldset{margin:0}
ul,ol{padding:0}
a{color:inherit;text-decoration:none}
b,strong{font-weight:600}
small{font-size:.88em}
img,svg,video,canvas{max-width:100%}
img{height:auto}
hr{border:0;border-top:1px solid var(--line);margin:24px 0}
table{border-collapse:collapse}
[hidden]{display:none!important}
h1,h2,h3,h4{text-wrap:balance}
p,li{text-wrap:pretty}

/* form controls */
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation}
a,summary,label[for]{touch-action:manipulation}
:disabled,[aria-disabled="true"]{cursor:not-allowed}
button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.55}
textarea{resize:vertical}
input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}
input[type="number"]{-moz-appearance:textfield}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 100px var(--bg) inset;caret-color:var(--ink);transition:background-color 9999s}
input,textarea,select{caret-color:var(--accent-text,currentColor)}
input[type="checkbox"],input[type="radio"],input[type="range"]{accent-color:var(--accent-text,#587000)}
summary{cursor:pointer}
dialog{color:inherit;overscroll-behavior:contain}

/* text selection and focus */
::selection{background:#CCFF00;color:#151A06}
:focus{outline:none}
:focus-visible{outline:3px solid var(--accent-text,#587000);outline-offset:3px;border-radius:4px}
code,kbd,samp,pre{font-family:var(--mono,ui-monospace,monospace)}
kbd{font-size:.8em;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;background:var(--surface)}
mark{background:color-mix(in srgb,#CCFF00 55%,transparent);color:inherit;border-radius:3px;padding:0 3px}

/* scrollbars: thin, rounded, themed */
html,*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted,#888) 55%,transparent) transparent}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-corner{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted,#888) 45%,transparent);border:3px solid transparent;background-clip:padding-box;border-radius:999px;min-height:48px}
html::-webkit-scrollbar{width:14px}
html::-webkit-scrollbar-track{background:var(--surface-2,transparent);border-left:1px solid var(--line)}
@media (hover:hover) and (pointer:fine){
  ::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--muted,#888) 80%,transparent);background-clip:padding-box}
  html::-webkit-scrollbar-thumb:hover{background:var(--accent-text,#587000);background-clip:padding-box}
}

/* motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* select: no native chrome; arrow sits 14px from the edge */
select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:2.6em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
select option{background:var(--surface,var(--bg));color:var(--ink)}
