/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&family=Source+Serif+4:ital@0;1&display=swap");
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }

/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */
audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */
[hidden], template { display: none; }

/* Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background-color: transparent; }

/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }

/* Text-level semantics ========================================================================== */
/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }

/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */
b, strong { font-weight: bold; }

/** Address styling not present in Safari and Chrome. */
dfn { font-style: italic; }

/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }

/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }

/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }

/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9/10. */
img { border: 0; }

/** Correct overflow not hidden in IE 9/10/11. */
svg:not(:root) { overflow: hidden; }

/* Grouping content ========================================================================== */
/** Address margin not present in IE 8/9 and Safari. */
figure { margin: 1em 40px; }

/** Address differences between Firefox and other browsers. */
hr { box-sizing: content-box; height: 0; }

/** Contain overflow in all browsers. */
pre { overflow: auto; }

/** Address odd `em`-unit font size rendering in all browsers. */
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }

/* Forms ========================================================================== */
/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */
/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */
button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ }

/** Address `overflow` set to `hidden` in IE 8/9/10/11. */
button { overflow: visible; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
input { line-height: normal; }

/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width.  1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }

/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }

/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** Remove default vertical scrollbar in IE 8/9/10/11. */
textarea { overflow: auto; }

/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */
optgroup { font-weight: bold; }

/* Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

td, th { padding: 0; }

.highlight table td { padding: 5px; }

.highlight table pre { margin: 0; }

.highlight .cm { color: #999988; font-style: italic; }

.highlight .cp { color: #999999; font-weight: bold; }

.highlight .c1 { color: #999988; font-style: italic; }

.highlight .cs { color: #999999; font-weight: bold; font-style: italic; }

.highlight .c, .highlight .cd { color: #999988; font-style: italic; }

.highlight .err { color: #a61717; background-color: #e3d2d2; }

.highlight .gd { color: #000000; background-color: #ffdddd; }

.highlight .ge { color: #000000; font-style: italic; }

.highlight .gr { color: #aa0000; }

.highlight .gh { color: #999999; }

.highlight .gi { color: #000000; background-color: #ddffdd; }

.highlight .go { color: #888888; }

.highlight .gp { color: #555555; }

.highlight .gs { font-weight: bold; }

.highlight .gu { color: #aaaaaa; }

.highlight .gt { color: #aa0000; }

.highlight .kc { color: #000000; font-weight: bold; }

.highlight .kd { color: #000000; font-weight: bold; }

.highlight .kn { color: #000000; font-weight: bold; }

.highlight .kp { color: #000000; font-weight: bold; }

.highlight .kr { color: #000000; font-weight: bold; }

.highlight .kt { color: #445588; font-weight: bold; }

.highlight .k, .highlight .kv { color: #000000; font-weight: bold; }

.highlight .mf { color: #009999; }

.highlight .mh { color: #009999; }

.highlight .il { color: #009999; }

.highlight .mi { color: #009999; }

.highlight .mo { color: #009999; }

.highlight .m, .highlight .mb, .highlight .mx { color: #009999; }

.highlight .sb { color: #d14; }

.highlight .sc { color: #d14; }

.highlight .sd { color: #d14; }

.highlight .s2 { color: #d14; }

.highlight .se { color: #d14; }

.highlight .sh { color: #d14; }

.highlight .si { color: #d14; }

.highlight .sx { color: #d14; }

.highlight .sr { color: #009926; }

.highlight .s1 { color: #d14; }

.highlight .ss { color: #990073; }

.highlight .s { color: #d14; }

.highlight .na { color: #008080; }

.highlight .bp { color: #999999; }

.highlight .nb { color: #0086B3; }

.highlight .nc { color: #445588; font-weight: bold; }

.highlight .no { color: #008080; }

.highlight .nd { color: #3c5d5d; font-weight: bold; }

.highlight .ni { color: #800080; }

.highlight .ne { color: #990000; font-weight: bold; }

.highlight .nf { color: #990000; font-weight: bold; }

.highlight .nl { color: #990000; font-weight: bold; }

.highlight .nn { color: #555555; }

.highlight .nt { color: #000080; }

.highlight .vc { color: #008080; }

.highlight .vg { color: #008080; }

.highlight .vi { color: #008080; }

.highlight .nv { color: #008080; }

.highlight .ow { color: #000000; font-weight: bold; }

.highlight .o { color: #000000; font-weight: bold; }

.highlight .w { color: #bbbbbb; }

.highlight { background-color: #f8f8f8; }

* { box-sizing: border-box; }

body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; }

#skip-to-content { height: 1px; width: 1px; position: absolute; overflow: hidden; top: -10px; }
#skip-to-content:focus { position: fixed; top: 10px; left: 10px; height: auto; width: auto; background: #e19447; outline: thick solid #e19447; }

a { color: #1e6bb8; text-decoration: none; }
a:hover { text-decoration: underline; }

.btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
.btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); }
.btn + .btn { margin-left: 1rem; }
@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } }
@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; }
  .btn + .btn { margin-top: 1rem; margin-left: 0; } }

.page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); }
@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } }
@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } }

.project-name { margin-top: 0; margin-bottom: 0.1rem; }
@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } }
@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } }

.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; }
@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } }
@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } }

.main-content { word-wrap: break-word; }
.main-content :first-child { margin-top: 0; }
@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } }
@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } }
.main-content kbd { background-color: #fafbfc; border: 1px solid #c6cbd1; border-bottom-color: #959da5; border-radius: 3px; box-shadow: inset 0 -1px 0 #959da5; color: #444d56; display: inline-block; font-size: 11px; line-height: 10px; padding: 3px 5px; vertical-align: middle; }
.main-content img { max-width: 100%; }
.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; }
.main-content p { margin-bottom: 1em; }
.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; }
.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; }
.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; }
.main-content .highlight { margin-bottom: 1rem; }
.main-content .highlight pre { margin-bottom: 0; word-break: normal; }
.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; }
.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; }
.main-content ul, .main-content ol { margin-top: 0; }
.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; }
.main-content blockquote > :first-child { margin-top: 0; }
.main-content blockquote > :last-child { margin-bottom: 0; }
.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; }
.main-content table th { font-weight: bold; }
.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; }
.main-content dl { padding: 0; }
.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; }
.main-content dl dd { padding: 0; margin-bottom: 1rem; }
.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; }

.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; }
@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } }
@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } }

.site-footer-owner { display: block; font-weight: bold; }

.site-footer-credits { color: #819198; }

/* ========================================================================== Utilities ========================================================================== */
/* Accessibility ========================================================================== */
.skip-to-main { position: absolute; top: -40px; left: 0; background: #0b4f49; color: white; padding: 0.75rem 1rem; z-index: 100; text-decoration: none; font-weight: 700; }

.skip-to-main:focus { top: 0; }

/* View Transitions ========================================================================== */
::view-transition-old(root) { animation: fadeOut 200ms ease-in-out forwards; }

::view-transition-new(root) { animation: fadeIn 200ms ease-in-out forwards; }

@keyframes fadeOut { from { opacity: 1; }
  to { opacity: 0; } }
@keyframes fadeIn { from { opacity: 0; }
  to { opacity: 1; } }
/* List Spacing ========================================================================== */
.page-content li > ul + * { margin-top: 0 !important; }

body { font-family: 'Nunito', 'Segoe UI', system-ui, -apple-system, sans-serif; background: #f7f9fb; color: #1f2933; line-height: 1.7; }

p, li { font-size: 1.02rem; }

ul { margin-bottom: 1.2rem; }

blockquote { font-family: 'Source Serif 4', 'Georgia', serif; font-size: 1.05rem; border-left: 4px solid #0f766e; padding-left: 1rem; color: #0b4f49; background: rgba(15, 118, 110, 0.06); border-radius: 6px; }

.featured-quote { font-family: 'Source Serif 4', 'Georgia', serif; font-size: 1.5rem; border-left: 6px solid #f59e0b; padding: 1.5rem 1.5rem 1.5rem 2rem; color: #0b4f49; background: linear-gradient(135deg, rgba(245, 158, 11, 0.08), rgba(15, 118, 110, 0.08)); border-radius: 10px; position: relative; box-shadow: 0 8px 24px rgba(245, 158, 11, 0.12); margin: 1.5rem 0; }

.featured-quote p { margin: 0; font-weight: 600; line-height: 1.6; }

table { border-collapse: collapse; width: 100%; background: #ffffff; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04); }

table th, table td { border: 1px solid #e5e7eb; padding: 0.75rem; text-align: left; }

table th { background: rgba(15, 118, 110, 0.08); color: #0b4f49; }

code, pre { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; }

a { color: #0f766e; }

a:hover { color: #0b4f49; }

hr { border: none; border-top: 1px solid #e5e7eb; margin: 2rem 0; }

.page-header { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1.5rem; background: linear-gradient(135deg, #0f766e 0%, #0b4f49 100%); border-bottom: 3px solid #f59e0b; box-shadow: 0 4px 12px rgba(15, 118, 110, 0.15); position: sticky; top: 0; z-index: 100; gap: 2rem; }

.page-header .header-right { display: flex; align-items: center; gap: 1.5rem; flex-shrink: 0; min-width: 300px; }

.page-header .header-left { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }

.page-header .project-name { font-size: 1.25rem; font-weight: 700; color: white; letter-spacing: -0.01em; margin: 0; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }

.page-header .project-tagline { display: none; font-size: 0.875rem; font-weight: 400; color: rgba(255, 255, 255, 0.9); margin: 0; }

.main-content { max-width: 1400px; margin: 0 auto; padding: 2.5rem 1.5rem 3.5rem; }

.intro-grid { display: grid; grid-template-columns: 1.6fr 1.2fr; gap: 1.5rem; align-items: stretch; margin-bottom: 2rem; }

/* Mobile responsiveness for intro grid */
@media (max-width: 900px) { .intro-grid { grid-template-columns: 1fr; } }
/* Tablet and larger mobile devices */
@media (max-width: 768px) { .intro-grid { grid-template-columns: 1fr; gap: 1rem; } }
/* Small mobile devices */
@media (max-width: 480px) { .intro-grid { grid-template-columns: 1fr; gap: 0.75rem; } }
.site-footer { margin-top: 3rem; padding: 1.25rem 0; border-top: 1px solid #e5e7eb; display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; justify-content: space-between; font-weight: 600; color: #0b4f49; }

.site-footer .footer-links { display: flex; gap: 1rem; }

.layout-with-nav { display: block; position: relative; }

@media print { .page-header { position: static; background: #ffffff; border: none; box-shadow: none; margin-bottom: 1.5rem; }
  .header-right, .search-label, .speech-toggle-btn, .nav-toggle, .nav-backdrop, .nav-drawer, .update-badge, .search-results, .command-palette, .command-palette-backdrop, .keyboard-help, .keyboard-help-backdrop, .speech-controls { display: none !important; }
  .project-tagline { color: #666 !important; }
  .layout-with-nav { display: block; }
  .main-content { max-width: 100%; margin: 0; padding: 0; }
  .intro-grid { display: block; margin-bottom: 1.5rem; } }
/* Update Badge */
.update-badge { display: inline-flex; align-items: center; gap: 0.35rem; margin-top: 0; padding: 0.25rem 0.6rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; color: white; background: rgba(255, 255, 255, 0.18); border: 1px solid rgba(255, 255, 255, 0.35); border-radius: 999px; }

/* Theme Toggle Button */
.theme-toggle { position: relative; top: auto; right: auto; z-index: 50; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: rgba(255, 255, 255, 0.95); border: 1px solid rgba(15, 118, 110, 0.2); font-size: 1.1rem; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 150ms ease; opacity: 0.85; flex-shrink: 0; }
.theme-toggle:hover { opacity: 1; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); }

/* Speech Toggle Button */
.speech-toggle-btn { position: relative; top: auto; right: auto; z-index: 50; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: rgba(255, 255, 255, 0.95); border: 1px solid rgba(15, 118, 110, 0.2); font-size: 1.1rem; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 150ms ease; opacity: 0.85; flex-shrink: 0; display: none; }
.speech-toggle-btn:hover { opacity: 1; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); }

/* Search Input */
#search-input { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 6px; font-size: 0.875rem; background: rgba(255, 255, 255, 0.95); color: #1f2933; outline: none; transition: border-color 150ms ease, box-shadow 150ms ease; }
#search-input:focus { border-color: #0f766e; box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1); }
#search-input::placeholder { color: #9ca3af; }

/* Search Results Container */
.search-results { position: absolute; top: 60px; right: 1.5rem; width: 400px; max-height: 500px; overflow-y: auto; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 8px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); z-index: 99; }
.search-results.hidden { display: none; }

/* Search Result Item */
.search-result-item { padding: 0.75rem 1rem; border-bottom: 1px solid #f3f4f6; cursor: pointer; transition: background 100ms ease; width: 100%; text-align: left; background: transparent; border: none; font-family: inherit; }
.search-result-item:hover, .search-result-item.highlighted { background: #f9fafb; }
.search-result-item:last-child { border-bottom: none; }

/* Search Result Title */
.search-result-title { font-weight: 600; color: #0b4f49; font-size: 0.9rem; margin-bottom: 0.25rem; }

/* Search Result Snippet */
.search-result-snippet { font-size: 0.8rem; color: #1f2933; opacity: 0.7; line-height: 1.4; }

/* Search Label */
.search-label { display: none; }

/* Search Media Queries */
@media (max-width: 768px) { .page-header { flex-direction: column; align-items: stretch; gap: 0.75rem; }
  .page-header .header-right { min-width: auto; flex-wrap: wrap; }
  .search-results { right: 1rem; left: 1rem; width: auto; } }
/* At a Glance Hero */
.section-card { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 20px; box-shadow: 0 16px 36px rgba(15, 118, 110, 0.16); padding: 1.75rem 2rem; margin-bottom: 1.5rem; }

.section-card.hero { background: linear-gradient(135deg, rgba(15, 118, 110, 0.12), rgba(15, 118, 110, 0.02)); border: 1px solid rgba(15, 118, 110, 0.2); position: relative; overflow: hidden; }

.section-card.hero::after { content: ""; position: absolute; top: -120px; right: -120px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle at center, rgba(245, 158, 11, 0.2), transparent 60%); }

.hero-header { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }

.hero-title { flex: 1 1 100%; }

.hero-title h1 { margin: 0 0 0.4rem; font-size: 2rem; }

.hero-title p { margin: 0; color: #656d76; max-width: none; }

.glance-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }

.glance-card { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 16px; padding: 1rem 1.2rem; box-shadow: 0 8px 20px rgba(15, 118, 110, 0.08); }

.glance-card h3 { margin: 0 0 0.5rem; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; color: #656d76; }

.glance-card .metric { font-size: 1.4rem; font-weight: 700; color: #0b4f49; }

.glance-card .detail { margin: 0.35rem 0 0; color: #656d76; font-size: 0.95rem; }

.highlight-card { border: 1px solid rgba(245, 158, 11, 0.3); background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(245, 158, 11, 0.03)); }

.pill { display: inline-flex; align-items: center; gap: 0.35rem; background: rgba(15, 118, 110, 0.12); color: #0b4f49; padding: 0.25rem 0.6rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.5rem; }

@media (max-width: 720px) { .section-card { padding: 1.5rem; }
  .hero-title h1 { font-size: 1.6rem; } }
/* No Protocols Callout */
.no-protocols-callout { background: linear-gradient(135deg, rgba(239, 68, 68, 0.08), rgba(239, 68, 68, 0.04)); border: 1px solid rgba(239, 68, 68, 0.25); border-left: 4px solid #ef4444; border-radius: 10px; padding: 1rem 1.25rem; margin: 0 0 1.5rem; }
.no-protocols-callout h3 { margin: 0 0 0.5rem; font-size: 1rem; color: #991b1b; }
.no-protocols-callout p { margin: 0; font-size: 0.95rem; line-height: 1.5; color: #1f2933; }

/* Callout Link */
.callout-link { color: #991b1b; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(153, 27, 27, 0.3); transition: border-color 150ms ease; }
.callout-link:hover { border-bottom-color: rgba(153, 27, 27, 0.6); }

/* Command Palette Backdrop */
.command-palette-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0); opacity: 0; z-index: 199; pointer-events: none; transition: opacity 200ms ease; }
.command-palette-backdrop.active { background: rgba(0, 0, 0, 0.5); opacity: 1; pointer-events: auto; }

/* Command Palette */
.command-palette { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.95); width: 90%; max-width: 600px; max-height: 500px; background: #ffffff; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15); z-index: 200; opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease; }
.command-palette.active { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }

/* Command Palette Header */
.command-palette-header { padding: 1rem; border-bottom: 1px solid #e5e7eb; display: flex; align-items: center; gap: 1rem; }

/* Command Palette Input */
.command-palette-input { flex: 1; padding: 0.75rem 1rem; border: 2px solid #e5e7eb; border-radius: 8px; font-size: 1rem; font-family: inherit; outline: none; transition: border-color 150ms ease; }
.command-palette-input:focus { border-color: #0f766e; box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1); }

/* Command Palette Hint */
.command-palette-hint { font-size: 0.75rem; color: #9ca3af; white-space: nowrap; opacity: 0.7; }

/* Command Palette Results */
.command-palette-results { overflow-y: auto; max-height: 380px; }
.command-palette-results::-webkit-scrollbar { width: 6px; }
.command-palette-results::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }

/* Palette Result Item */
.palette-result-item { width: 100%; padding: 0.75rem 1rem; border: none; background: transparent; color: inherit; text-align: left; cursor: pointer; display: flex; align-items: center; gap: 0.75rem; transition: background 100ms ease; font-size: 0.95rem; font-family: inherit; border-bottom: 1px solid #f3f4f6; }
.palette-result-item:last-child { border-bottom: none; }
.palette-result-item:hover, .palette-result-item.highlighted { background: #f9fafb; }

/* Palette Result Emoji */
.palette-result-emoji { font-size: 1.1rem; flex-shrink: 0; width: 24px; }

/* Palette Result Title */
.palette-result-title { flex: 1; font-weight: 500; }
.palette-result-title mark { background: rgba(245, 158, 11, 0.3); font-weight: 600; padding: 0 2px; border-radius: 2px; }

/* Palette Result Type */
.palette-result-type { font-size: 0.75rem; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.02em; font-weight: 600; }

/* Palette No Results */
.palette-no-results { padding: 2rem 1rem; text-align: center; color: #9ca3af; font-size: 0.95rem; }

/* Keyboard Help Backdrop */
.keyboard-help-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0); opacity: 0; z-index: 299; pointer-events: none; transition: opacity 200ms ease; }
.keyboard-help-backdrop.active { background: rgba(0, 0, 0, 0.6); opacity: 1; pointer-events: auto; }

/* Keyboard Help Modal */
.keyboard-help { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.95); width: 90%; max-width: 500px; background: #ffffff; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15); z-index: 300; opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease; }
.keyboard-help.active { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.keyboard-help.active ~ .keyboard-help-backdrop { opacity: 1; pointer-events: auto; }

/* Keyboard Help Header */
.keyboard-help-header { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid #e5e7eb; }
.keyboard-help-header h2 { margin: 0; font-size: 1.5rem; color: #0b4f49; }

/* Keyboard Help Close Button */
.keyboard-help-close { border: none; background: transparent; font-size: 1.5rem; cursor: pointer; color: #6b7280; padding: 0.25rem; transition: color 150ms ease; }
.keyboard-help-close:hover { color: #0b4f49; }

/* Keyboard Help Content */
.keyboard-help-content { padding: 1.5rem; max-height: 400px; overflow-y: auto; }

/* Shortcuts Grid */
.shortcuts-grid { display: grid; gap: 1rem; }

/* Shortcut Item */
.shortcut-item { display: flex; align-items: flex-start; gap: 1rem; }

/* Shortcut Keys */
.shortcut-keys { font-family: 'Courier New', monospace; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 6px; padding: 0.5rem 0.75rem; font-size: 0.85rem; font-weight: 600; color: #0b4f49; white-space: nowrap; min-width: 120px; }

/* Shortcut Action */
.shortcut-action { flex: 1; padding-top: 0.5rem; color: #555; font-size: 0.95rem; }

/* Speech Controls */
.speech-controls { position: fixed; bottom: 0; left: 0; right: 0; background: #ffffff; border-top: 2px solid #f59e0b; box-shadow: 0 -4px 12px rgba(15, 118, 110, 0.1); z-index: 150; padding: 1rem; transform: translateY(100%); transition: transform 300ms ease; font-family: inherit; }
.speech-controls.active { transform: translateY(0); }
.speech-controls.hidden { display: none; }

/* Speech Controls Inner */
.speech-controls-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }

/* Speech Button */
.speech-btn { display: flex; align-items: center; gap: 0.5rem; padding: 0.65rem 1.1rem; border: 2px solid #0f766e; border-radius: 8px; background: rgba(15, 118, 110, 0.08); color: #0b4f49; font-weight: 600; font-size: 0.95rem; cursor: pointer; transition: all 150ms ease; font-family: inherit; }
.speech-btn:hover:not(:disabled) { background: rgba(15, 118, 110, 0.15); box-shadow: 0 4px 12px rgba(15, 118, 110, 0.2); }
.speech-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* Speech Icon */
.speech-icon { font-size: 1.2rem; }

/* Speech Text */
.speech-text { display: none; }

/* Speech Controls Group */
.speech-controls-group { display: flex; align-items: center; gap: 0.5rem; }
.speech-controls-group label { font-weight: 600; font-size: 0.9rem; color: #0b4f49; }
.speech-controls-group input[type="range"] { width: 100px; height: 6px; border-radius: 3px; background: #e5e7eb; outline: none; -webkit-appearance: none; appearance: none; }
.speech-controls-group input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; border-radius: 50%; background: #0f766e; cursor: pointer; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }
.speech-controls-group input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: #0f766e; cursor: pointer; border: none; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }
.speech-controls-group select { padding: 0.5rem 0.75rem; border: 1px solid #e5e7eb; border-radius: 6px; background: #ffffff; color: #0b4f49; font-family: inherit; font-size: 0.9rem; cursor: pointer; outline: none; }
.speech-controls-group select:focus { border-color: #0f766e; box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1); }

/* Speech Status */
.speech-status { margin-left: auto; font-size: 0.9rem; color: #6b7280; font-weight: 500; }

/* Speech Controls Media Queries */
@media (max-width: 768px) { .speech-controls-inner { gap: 0.75rem; }
  .speech-text { display: inline; }
  .speech-controls-group { flex: 1; min-width: 150px; }
  .speech-status { flex-basis: 100%; margin-left: 0; text-align: center; } }
/* TL;DR Card */
.tldr-card, .contact-card { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 1.25rem 1.5rem; box-shadow: 0 10px 24px rgba(15, 118, 110, 0.08); }
.tldr-card h2, .contact-card h2 { margin-top: 0; }
.tldr-card ul, .contact-card ul { margin-bottom: 0; }

.tldr-card { background: linear-gradient(135deg, rgba(15, 118, 110, 0.08), rgba(15, 118, 110, 0.03)); border-color: rgba(15, 118, 110, 0.25); }

/* Contact Card */
.contact-card { background: linear-gradient(135deg, rgba(245, 158, 11, 0.12), rgba(245, 158, 11, 0.04)); border-color: rgba(245, 158, 11, 0.3); }
.contact-card ul { list-style: none; padding-left: 0; margin-bottom: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 0.6rem; }

/* Card Media Queries */
@media (max-width: 768px) { .tldr-card, .contact-card { padding: 1rem 1.25rem; } }
@media (max-width: 480px) { .tldr-card, .contact-card { padding: 1rem; }
  .contact-card ul { gap: 0.4rem 0.5rem; } }
/* Contact Chip */
.contact-chip { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.4rem 0.75rem; border-radius: 999px; background: rgba(255, 255, 255, 0.7); border: 1px solid rgba(245, 158, 11, 0.35); font-size: 0.95rem; line-height: 1.3; box-shadow: 0 6px 14px rgba(245, 158, 11, 0.08); }

/* Contact Chip Media Queries */
@media (max-width: 480px) { .contact-chip { font-size: 0.85rem; padding: 0.35rem 0.6rem; }
  .chip-label { display: none; }
  .chip-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
/* Chip Label */
.chip-label { font-weight: 700; color: #0b4f49; }

/* Chip Text */
.chip-text { color: #1f2933; opacity: 0.85; }

/* Card Headers */
.tldr-card h2, .contact-card h2 { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(255, 255, 255, 0.6); padding: 0.35rem 0.75rem; border-radius: 999px; font-size: 1.05rem; }

/* Accordion Wrapper */
.accordions-wrapper { display: flex; flex-direction: column; gap: 1rem; }

/* Accordion */
.accordion { border: 1px solid #e5e7eb; border-radius: 12px; background: #ffffff; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04); overflow: hidden; transition: box-shadow 200ms ease, border-color 200ms ease; }
.accordion:hover { box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08); border-color: rgba(15, 118, 110, 0.3); }
.accordion[open] { box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08); }

/* Accordion Summary */
.accordion-summary { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1rem; padding: 1.5rem; cursor: pointer; user-select: none; transition: background-color 200ms ease; list-style: none; }
.accordion-summary::-webkit-details-marker { display: none; }
.accordion-summary:hover { background: rgba(15, 118, 110, 0.04); }
.accordion-summary h2 { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex: 1; margin: 0; color: #0b4f49; font-size: 1.5rem; font-weight: 700; letter-spacing: -0.015em; }

/* Reading Time Badge */
.reading-time { display: inline-flex; align-items: center; padding: 0.25rem 0.65rem; border-radius: 999px; background: rgba(15, 118, 110, 0.12); color: #0b4f49; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; flex-shrink: 0; }

/* Related Sections */
.related-sections { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; }
.related-sections h4 { margin: 0 0 0.75rem; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; color: #0b4f49; font-weight: 700; }
.related-sections ul { list-style: none; padding-left: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.related-sections li { margin: 0; }
.related-sections a { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.65rem; border-radius: 6px; background: rgba(15, 118, 110, 0.1); color: #0b4f49; font-size: 0.9rem; font-weight: 600; text-decoration: none; transition: background 150ms ease; }
.related-sections a:hover { background: rgba(15, 118, 110, 0.2); }

/* Accordion Icon */
.accordion-icon { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; color: #0b4f49; font-size: 0.85rem; flex-shrink: 0; transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1); }

.accordion[open] .accordion-icon { transform: rotate(180deg); }

/* Accordion Content */
.accordion-content { padding: 0 1.5rem 1.5rem; animation: slideDown 250ms cubic-bezier(0.4, 0, 0.2, 1); }
.accordion-content section { margin: 0; }
.accordion-content section h3 { margin-top: 0; margin-bottom: 1rem; }
.accordion-content section + section { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid #e5e7eb; }

/* Slide Down Animation */
@keyframes slideDown { from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); } }
/* Accordion Media Queries */
@media (max-width: 600px) { .accordion-summary { padding: 1rem; }
  .accordion-summary h2 { font-size: 1.25rem; }
  .accordion-content { padding: 0 1rem 1rem; }
  .accordion-icon { width: 20px; height: 20px; margin-left: 0.75rem; } }
/* Traits Grid */
.traits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 1rem 0 1.5rem; }

/* Trait Card */
.trait-card { padding: 1.25rem; border-radius: 10px; border: 1px solid #e5e7eb; background: #ffffff; transition: transform 150ms ease, box-shadow 150ms ease; }
.trait-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); }
.trait-card.good { border-left: 4px solid #10b981; background: rgba(16, 185, 129, 0.04); }
.trait-card.bad { border-left: 4px solid #f59e0b; background: rgba(245, 158, 11, 0.04); }
.trait-card h5 { margin: 0; color: #0b4f49; font-weight: 700; font-size: 1.05rem; }
.trait-card ul { margin: 0; padding-left: 1.25rem; }
.trait-card li { margin-bottom: 0.5rem; }
.trait-card li:last-child { margin-bottom: 0; }

/* Trait Header */
.trait-header { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }

/* Trait Icon */
.trait-icon { font-size: 1.75rem; flex-shrink: 0; }

/* Traits Grid Media Queries */
@media (max-width: 700px) { .traits-grid { grid-template-columns: 1fr; gap: 1rem; } }
/* Coming Soon Section */
.coming-soon { margin-top: 3rem; padding: 1.5rem; background: linear-gradient(135deg, rgba(15, 118, 110, 0.06), rgba(245, 158, 11, 0.04)); border: 1px solid rgba(15, 118, 110, 0.15); border-radius: 12px; }
.coming-soon h2 { color: #0b4f49; margin-top: 0; margin-bottom: 0.75rem; }
.coming-soon p { margin-top: 0; color: rgba(31, 41, 51, 0.8); }
.coming-soon ul { margin-bottom: 0; }

/* Two Column Interests Layout */
.two-column-interests { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin: 3.5rem 0 1.5rem; }

/* Interest Column */
.interest-column { display: flex; flex-direction: column; }
.interest-column h4 { margin-top: 0; margin-bottom: 1rem; color: #0b4f49; font-size: 1.1rem; font-weight: 700; letter-spacing: -0.01em; }
.interest-column ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.interest-column li { padding: 1rem; background: rgba(247, 249, 251, 0.6); border-left: 3px solid #0f766e; border-radius: 6px; transition: all 150ms ease; line-height: 1.6; }
.interest-column li:hover { background: #f7f9fb; border-left-color: #f59e0b; transform: translateX(4px); }
.interest-column strong { display: block; color: #0b4f49; font-weight: 700; margin-bottom: 0.4rem; }

/* Book Author */
.book-author { display: block; font-size: 0.9rem; color: rgba(11, 79, 73, 0.7); font-weight: 500; margin-top: 0.3rem; }

/* Book Context */
.book-context { display: block; font-size: 0.95rem; color: rgba(31, 41, 51, 0.8); margin-top: 0.4rem; font-style: italic; }

/* Interests Media Queries */
@media (max-width: 900px) { .two-column-interests { grid-template-columns: 1fr; gap: 1.5rem; } }
/* Header Intro */
.header-intro { margin-bottom: 1.5rem; padding: 0.75rem 1rem; }
.header-intro h3 { font-size: 1rem; font-weight: 600; color: #0b4f49; margin: 0 0 0.5rem; line-height: 1.2; }
.header-intro p { font-size: 0.95rem; color: #1f2933; margin: 0; line-height: 1.5; }

/* Issues List */
.issues-list { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; }

/* Issue Card */
.issue-card { border: 1px solid #d0d7de; border-radius: 8px; background: #ffffff; padding: 1rem; transition: border-color 200ms ease, box-shadow 200ms ease; }
.issue-card:hover { border-color: #0f766e; box-shadow: 0 4px 12px rgba(15, 118, 110, 0.1); }

/* Issue Header */
.issue-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.75rem; gap: 1rem; }

/* Issue Title */
.issue-title { display: flex; align-items: center; gap: 0.5rem; flex: 1; }
.issue-title strong { font-size: 1rem; color: #1f2933; }

/* Issue Number */
.issue-number { font-family: 'SFMono-Regular', Consolas, monospace; font-size: 0.85rem; color: #656d76; font-weight: 600; }

/* Issue Labels */
.issue-labels { display: flex; gap: 0.4rem; flex-wrap: wrap; }

/* Label */
.label { display: inline-block; padding: 0.25rem 0.5rem; border-radius: 12px; font-size: 0.75rem; font-weight: 600; line-height: 1; white-space: nowrap; }

/* Label Colors */
.label-critical { background: #da3633; color: white; }

.label-major { background: #fb8500; color: white; }

.label-minor { background: #0969da; color: white; }

.label-health { background: #e85d75; color: white; }

.label-communication { background: #8250df; color: white; }

.label-sensory { background: #1f883d; color: white; }

.label-open { background: #0969da; color: white; }

.label-wontfix { background: #6e7781; color: white; }

/* Issue Body */
.issue-body { color: #656d76; font-size: 0.9rem; line-height: 1.6; }
.issue-body p { margin: 0.5rem 0; }
.issue-body strong { color: #1f2933; }

/* View Transitions API */
::view-transition-old(root) { animation: fadeOut 200ms ease-in-out forwards; }

::view-transition-new(root) { animation: fadeIn 200ms ease-in-out forwards; }

@keyframes fadeOut { from { opacity: 1; }
  to { opacity: 0; } }
@keyframes fadeIn { from { opacity: 0; }
  to { opacity: 1; } }
.top-nav { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 1.5rem; padding: 0.75rem 0.5rem; background: rgba(247, 249, 251, 0.96); backdrop-filter: blur(6px); border: 1px solid #e5e7eb; border-radius: 10px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04); }

.top-nav a { padding: 0.4rem 0.75rem; border-radius: 999px; border: 1px solid transparent; background: #ffffff; color: #0b4f49; font-weight: 600; text-decoration: none; transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease; }

.top-nav a:hover { border-color: rgba(15, 118, 110, 0.4); box-shadow: 0 4px 12px rgba(15, 118, 110, 0.1); transform: translateY(-1px); }

.layout-with-nav { display: block; position: relative; }

.side-nav { display: grid; gap: 0; padding: 0.75rem 0.85rem; background: rgba(247, 249, 251, 0.98); backdrop-filter: blur(6px); border: 1px solid #e5e7eb; border-radius: 12px; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12); }

.nav-drawer { position: fixed; top: 0; left: -340px; width: 320px; height: 100vh; overflow-y: auto; z-index: 220; transition: left 220ms ease; padding-top: 0.75rem; }

body.nav-open .nav-drawer { left: 0; }

.nav-toggle { position: fixed; top: 6.5rem; left: 1.25rem; z-index: 230; padding: 0.55rem 0.95rem; border-radius: 999px; border: 1px solid rgba(15, 118, 110, 0.3); background: #ffffff; color: #0b4f49; font-weight: 700; box-shadow: 0 6px 18px rgba(15, 118, 110, 0.12); cursor: pointer; transition: border-color 120ms ease, box-shadow 120ms ease; }

.nav-toggle:hover { border-color: rgba(15, 118, 110, 0.5); box-shadow: 0 8px 22px rgba(15, 118, 110, 0.16); }

body.nav-open .nav-toggle { opacity: 0; pointer-events: none; }

.nav-backdrop { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.35); opacity: 0; visibility: hidden; transition: opacity 200ms ease, visibility 200ms ease; z-index: 210; }

body.nav-open .nav-backdrop { opacity: 1; visibility: visible; }

.nav-drawer-header { display: flex; align-items: center; justify-content: space-between; padding: 0 0.75rem 0.75rem; margin-bottom: 0.25rem; border-bottom: 1px solid #e5e7eb; }

.nav-drawer-title { font-weight: 800; color: #0b4f49; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.75rem; }

.nav-close { border: none; background: rgba(15, 118, 110, 0.1); color: #0b4f49; border-radius: 8px; padding: 0.3rem 0.5rem; cursor: pointer; font-weight: 700; transition: background 120ms ease; }

.nav-close:hover { background: rgba(15, 118, 110, 0.18); }

.side-nav .nav-title { font-weight: 700; color: #0b4f49; letter-spacing: -0.01em; margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 2px solid #0f766e; font-size: 0.9rem; line-height: 1.3; }
.side-nav .nav-title small { display: block; font-size: 0.75rem; font-weight: 500; color: #1f2933; margin-top: 0.2rem; opacity: 0.85; }

.nav-group { display: grid; gap: 0.25rem; padding: 0.5rem 0; margin: 0.5rem 0; }

.nav-group:first-of-type { padding-top: 0; margin-top: 0; }

.nav-group:not(:last-of-type) { border-bottom: 1px solid #e5e7eb; padding-bottom: 0.65rem; }

.nav-group-label { font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: #0b4f49; padding: 0.4rem 0.5rem; margin-bottom: 0.25rem; margin-top: 0.25rem; }

.nav-group a { padding: 0.4rem 0.5rem; border-radius: 6px; border: 1px solid transparent; background: #ffffff; color: #0b4f49; font-weight: 600; font-size: 0.85rem; text-decoration: none; transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease, background 120ms ease; }

.nav-group a:hover { border-color: rgba(15, 118, 110, 0.4); box-shadow: 0 3px 10px rgba(15, 118, 110, 0.12); transform: translateX(3px); background: rgba(15, 118, 110, 0.06); }

.nav-group a.active { border-color: rgba(15, 118, 110, 0.6); background: rgba(15, 118, 110, 0.12); box-shadow: 0 4px 12px rgba(15, 118, 110, 0.12); transform: translateX(4px); }

.nav-group-utilities .back-to-top { font-weight: 700; color: #0b4f49; }

@media (max-width: 960px) { .nav-toggle { top: 5.25rem; left: 1rem; } }
@media (max-width: 420px) { .nav-drawer { width: 100%; left: -100%; } }
/* Dark Mode Overrides */
/* CSS Custom Properties */
html.dark-mode { --bg-primary: #1f2937; --bg-secondary: #111827; --text-primary: #f3f4f6; --text-secondary: #d1d5db; --border-color: #374151; }

html:not(.dark-mode) { --bg-primary: #ffffff; --bg-secondary: #f7f9fb; --text-primary: #1f2933; --text-secondary: #555; --border-color: #e5e7eb; }

/* Base Dark Styles */
html.dark-mode { background: #111827; color: var(--text-primary); }

html.dark-mode body { background: #111827; color: var(--text-primary); }

/* Page Header */
html.dark-mode .page-header { background: linear-gradient(135deg, #0f4f4a 0%, #082f2b 100%); }

html.dark-mode .project-tagline { color: rgba(243, 244, 246, 0.85); }

/* Search Components */
html.dark-mode #search-input { background: rgba(31, 41, 55, 0.9); color: var(--text-primary); border-color: rgba(107, 114, 128, 0.3); }

html.dark-mode #search-input::placeholder { color: #9ca3af; }

html.dark-mode .search-results { background: #1f2937; border-color: #374151; }

html.dark-mode .search-result-title { color: #86efac; }

html.dark-mode .search-result-snippet { color: #d1d5db; }

html.dark-mode .search-result-item:hover, html.dark-mode .search-result-item.highlighted { background: #2d3748; }

/* Accordion */
html.dark-mode .accordion { background: #1f2937; border-color: #374151; }

html.dark-mode .accordion-summary { background: #1f2937; color: #f0fdf4; }

html.dark-mode .accordion-summary:hover { background: #2d3748; }

html.dark-mode .accordion-summary h2 { color: #86efac; }

html.dark-mode .accordion-content { color: #e5e7eb; }

html.dark-mode .accordion-content h3, html.dark-mode .accordion-content h4 { color: #a7f3d0; }

html.dark-mode .accordion-content strong { color: #86efac; }

/* Navigation */
html.dark-mode .side-nav, html.dark-mode .nav-toggle { background: #1f2937; border-color: #374151; color: var(--text-primary); }

html.dark-mode .nav-drawer { background: #1f2937; }

html.dark-mode .nav-group a { background: #2d3748; color: #86efac; border-color: rgba(134, 239, 172, 0.3); }

html.dark-mode .nav-group a:hover, html.dark-mode .nav-group a.active { background: #374151; border-color: rgba(134, 239, 172, 0.6); }

html.dark-mode .nav-group-label { color: #86efac; }

html.dark-mode .nav-drawer-header { border-bottom-color: #374151; }

html.dark-mode .nav-drawer-title { color: #86efac; }

html.dark-mode .nav-close { background: rgba(134, 239, 172, 0.1); color: #86efac; }

html.dark-mode .nav-close:hover { background: rgba(134, 239, 172, 0.2); }

/* Cards */
html.dark-mode .tldr-card, html.dark-mode .contact-card { background: #1f2937; border-color: #374151; }

html.dark-mode .tldr-card { background: linear-gradient(135deg, rgba(15, 118, 110, 0.15), rgba(15, 118, 110, 0.05)); }

html.dark-mode .contact-card { background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(245, 158, 11, 0.05)); }

html.dark-mode .contact-chip { background: #374151; border-color: rgba(245, 158, 11, 0.5); color: #fbbf24; }

html.dark-mode .chip-label { color: #fbbf24; font-weight: 700; }

html.dark-mode .chip-text { color: #f3f4f6; opacity: 1; }

/* At a Glance Hero */
html.dark-mode .section-card { background: #1f2937; border-color: #374151; box-shadow: 0 16px 36px rgba(134, 239, 172, 0.12); }

html.dark-mode .section-card.hero { background: linear-gradient(135deg, rgba(134, 239, 172, 0.18), rgba(134, 239, 172, 0.04)); border-color: rgba(134, 239, 172, 0.35); }

html.dark-mode .section-card.hero::after { background: radial-gradient(circle at center, rgba(251, 191, 36, 0.25), transparent 60%); }

html.dark-mode .hero-title h1 { color: #f3f4f6; }

html.dark-mode .hero-title p { color: #d1d5db; }

html.dark-mode .glance-card { background: #2d3748; border-color: #374151; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35); }

html.dark-mode .glance-card h3 { color: #6b7280; }

html.dark-mode .glance-card .metric { color: #86efac; }

html.dark-mode .glance-card .detail { color: #d1d5db; }

html.dark-mode .highlight-card { border-color: rgba(251, 191, 36, 0.35); background: linear-gradient(135deg, rgba(251, 191, 36, 0.22), rgba(251, 191, 36, 0.05)); }

html.dark-mode .pill { background: rgba(134, 239, 172, 0.18); color: #86efac; border: 1px solid rgba(134, 239, 172, 0.3); }

/* Links */
html.dark-mode a { color: #4ade80; }

html.dark-mode a:hover { color: #86efac; }

/* Theme Toggle */
html.dark-mode .theme-toggle { opacity: 1; }

html.dark-mode .theme-toggle { background: #2d3748; border-color: rgba(134, 239, 172, 0.3); }

/* Speech Toggle */
html.dark-mode .speech-toggle-btn { background: #2d3748; border-color: rgba(134, 239, 172, 0.3); }

/* No Protocols Callout */
html.dark-mode .no-protocols-callout { background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(239, 68, 68, 0.1)); border: 1px solid rgba(239, 68, 68, 0.4); border-left: 4px solid #ff6b6b; }

html.dark-mode .no-protocols-callout h3 { color: #fca5a5; }

html.dark-mode .no-protocols-callout p { color: #f3f4f6; }

html.dark-mode .callout-link { color: #fca5a5; border-bottom-color: rgba(252, 165, 165, 0.3); }

html.dark-mode .callout-link:hover { border-bottom-color: rgba(252, 165, 165, 0.6); }

/* Command Palette */
html.dark-mode .command-palette { background: #1f2937; color: #e5e7eb; }

html.dark-mode .command-palette-header { border-bottom-color: #374151; }

html.dark-mode .command-palette-input { background: #111827; border-color: #374151; color: #e5e7eb; }

html.dark-mode .command-palette-input:focus { border-color: #86efac; box-shadow: 0 0 0 3px rgba(134, 239, 172, 0.1); }

html.dark-mode .palette-result-item:hover, html.dark-mode .palette-result-item.highlighted { background: #2d3748; }

html.dark-mode .palette-result-title mark { background: rgba(245, 158, 11, 0.4); color: #fbbf24; }

html.dark-mode .palette-result-type { color: #6b7280; }

/* Keyboard Shortcuts Help */
html.dark-mode .keyboard-help { background: #1f2937; color: #e5e7eb; }

html.dark-mode .keyboard-help-header { border-bottom-color: #374151; }

html.dark-mode .keyboard-help-header h2 { color: #86efac; }

html.dark-mode .keyboard-help-close { color: #9ca3af; }

html.dark-mode .keyboard-help-close:hover { color: #86efac; }

html.dark-mode .shortcut-keys { background: #111827; border-color: #374151; color: #86efac; }

html.dark-mode .shortcut-action { color: #d1d5db; }

/* Speech Controls */
html.dark-mode .speech-controls { background: #1f2937; border-top-color: #f59e0b; color: #e5e7eb; }

html.dark-mode .speech-btn { border-color: #86efac; background: rgba(134, 239, 172, 0.08); color: #86efac; }

html.dark-mode .speech-btn:hover:not(:disabled) { background: rgba(134, 239, 172, 0.15); box-shadow: 0 4px 12px rgba(134, 239, 172, 0.2); }

html.dark-mode .speech-controls-group label { color: #86efac; }

html.dark-mode .speech-controls-group input[type="range"] { background: #374151; }

html.dark-mode .speech-controls-group input[type="range"]::-webkit-slider-thumb { background: #86efac; }

html.dark-mode .speech-controls-group input[type="range"]::-moz-range-thumb { background: #86efac; }

html.dark-mode .speech-controls-group select { border-color: #374151; background: #111827; color: #86efac; }

html.dark-mode .speech-controls-group select:focus { border-color: #86efac; box-shadow: 0 0 0 3px rgba(134, 239, 172, 0.1); }

html.dark-mode .speech-status { color: #9ca3af; }

/* Reading Time Badges */
html.dark-mode .reading-time { background: rgba(134, 239, 172, 0.15); color: #86efac; }

/* Related Sections */
html.dark-mode .related-sections { border-top-color: #374151; }

html.dark-mode .related-sections h4 { color: #86efac; }

html.dark-mode .related-sections a { background: rgba(134, 239, 172, 0.15); color: #86efac; }

html.dark-mode .related-sections a:hover { background: rgba(134, 239, 172, 0.25); }

/* Trait Cards */
html.dark-mode .trait-card { background: #2d3748; border-color: #374151; color: #e5e7eb; }

html.dark-mode .trait-card.good { background: rgba(16, 185, 129, 0.15); border-color: #10b981; border-left: 4px solid #10b981; }

html.dark-mode .trait-card.bad { background: rgba(245, 158, 11, 0.15); border-color: #fbbf24; border-left: 4px solid #fbbf24; }

html.dark-mode .trait-card h5 { color: #a7f3d0; }

html.dark-mode .trait-card ul { color: #e5e7eb; }
