/*
Theme Name: Iron Gryphons Terminal
Theme URI: https://irongryphons.com/
Author: OpenAI
Author URI: https://openai.com/
Description: A Warhammer 40,000 inspired gothic terminal theme for WordPress with parchment panels, brass accents, cog motifs, and console-style interactions.
Version: 1.1.2
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: iron-gryphons-terminal
Tags: custom-background, custom-logo, custom-menu, featured-images, full-site-editing, one-column, two-columns, right-sidebar, threaded-comments, translation-ready
*/

:root {
  --igt-bg: #0c0b0f;
  --igt-bg-soft: #151219;
  --igt-panel: #17141c;
  --igt-panel-2: #201a15;
  --igt-card: #e1d2b2;
  --igt-card-2: #d2c29f;
  --igt-ink: #2a2217;
  --igt-text: #e7dcc1;
  --igt-text-muted: #c2b798;
  --igt-accent: #af8a3d;
  --igt-accent-2: #7a1111;
  --igt-line: rgba(175, 138, 61, 0.45);
  --igt-glow: rgba(175, 138, 61, 0.18);
  --igt-shadow: 0 18px 60px rgba(0,0,0,.45);
  --igt-radius: 14px;
  --igt-radius-sm: 8px;
  --igt-max: 1360px;
  --igt-grid-gap: 28px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--igt-text);
  background:
    radial-gradient(circle at top, rgba(175,138,61,.08), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.015), rgba(0,0,0,0) 20%),
    linear-gradient(180deg, #100f14, #08080a 55%, #050507 100%);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.6;
}

a { color: #e9c979; text-decoration: none; }
a:hover { color: #fff1b7; }

img { max-width: 100%; height: auto; }

button,
input,
select,
textarea {
  font: inherit;
}

.site-shell {
  position: relative;
  min-height: 100vh;
  overflow-x: clip;
}

.site-shell::before,
.site-shell::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.site-shell::before {
  background:
    repeating-linear-gradient(90deg, rgba(175,138,61,.03), rgba(175,138,61,.03) 1px, transparent 1px, transparent 96px),
    repeating-linear-gradient(180deg, rgba(175,138,61,.02), rgba(175,138,61,.02) 1px, transparent 1px, transparent 96px);
  opacity: .35;
}

.site-shell::after {
  background:
    radial-gradient(circle at 50% 10%, rgba(175,138,61,.1), transparent 26%),
    radial-gradient(circle at 10% 30%, rgba(122,17,17,.08), transparent 18%),
    radial-gradient(circle at 90% 50%, rgba(122,17,17,.06), transparent 14%);
}

.skip-link {
  position: absolute;
  left: -9999px;
}

.skip-link:focus {
  left: 18px;
  top: 18px;
  z-index: 9999;
  background: #fff;
  color: #000;
  padding: 8px 12px;
}

.site-header,
.site-main,
.site-footer {
  position: relative;
  z-index: 1;
}

.terminal-frame,
.wrap,
.site-main > .container,
.site-main > .content-area,
.site-main > .wp-site-blocks,
.alignwide,
.alignfull > .wp-block-group__inner-container {
  width: min(calc(100% - 36px), var(--igt-max));
  margin-inline: auto;
}

.site-header {
  padding: 26px 0 18px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 22px;
  border: 1px solid var(--igt-line);
  border-radius: var(--igt-radius);
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.16)),
    linear-gradient(135deg, rgba(175,138,61,.08), rgba(122,17,17,.06)),
    var(--igt-panel);
  box-shadow: var(--igt-shadow);
}

.branding {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.brand-mark {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: 1px solid var(--igt-line);
  background:
    radial-gradient(circle at 50% 35%, rgba(255,230,160,.2), rgba(175,138,61,.08) 35%, transparent 36%),
    linear-gradient(180deg, #221d17, #100e13);
  display: grid;
  place-items: center;
  color: var(--igt-accent);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: .08em;
  box-shadow: inset 0 0 24px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.02);
}

.site-title {
  margin: 0;
  font-size: clamp(1.4rem, 2vw, 2rem);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.site-title a { color: #f3e5bf; }
.site-description {
  margin: 4px 0 0;
  color: var(--igt-text-muted);
  font-size: .92rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.header-meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}

.purity-chip {
  padding: 10px 14px;
  border: 1px solid var(--igt-line);
  border-radius: 999px;
  color: var(--igt-text-muted);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(255,255,255,.02);
}

.main-nav {
  margin-top: 14px;
  border: 1px solid var(--igt-line);
  border-radius: var(--igt-radius);
  background: rgba(17,14,20,.9);
  box-shadow: var(--igt-shadow);
}

.main-nav .menu,
.main-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.main-nav > div > ul,
.main-nav > ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.main-nav li {
  position: relative;
}

.main-nav a {
  display: block;
  padding: 14px 18px;
  color: var(--igt-text);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .88rem;
  border-right: 1px solid rgba(175,138,61,.14);
}

.main-nav a:hover,
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a {
  background: linear-gradient(180deg, rgba(175,138,61,.18), rgba(175,138,61,.06));
  color: #fff4ce;
}

.hero-terminal {
  margin: 28px auto 24px;
  padding: clamp(26px, 5vw, 56px);
  border: 1px solid var(--igt-line);
  border-radius: calc(var(--igt-radius) + 4px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.14)),
    radial-gradient(circle at top right, rgba(175,138,61,.1), transparent 28%),
    linear-gradient(135deg, rgba(122,17,17,.16), rgba(12,11,15,0) 35%),
    var(--igt-panel);
  box-shadow: var(--igt-shadow);
}

.hero-terminal .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  color: var(--igt-text-muted);
  letter-spacing: .18em;
  font-size: .76rem;
  text-transform: uppercase;
}

.hero-terminal .eyebrow::before,
.hero-terminal .eyebrow::after {
  content: "";
  display: inline-block;
  width: 34px;
  height: 1px;
  background: var(--igt-line);
}

.hero-terminal h1,
.page-title,
.entry-title {
  margin: 0 0 14px;
  line-height: 1.1;
  font-size: clamp(2rem, 5vw, 4rem);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #f5e9c8;
}

.hero-terminal p,
.entry-content,
.entry-summary {
  color: var(--igt-text);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 24px;
}

.button,
.wp-block-button__link,
input[type="submit"],
button,
.igt-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 10px;
  border: 1px solid rgba(175,138,61,.45);
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.12)),
    linear-gradient(180deg, #3b2b17, #23180f);
  color: #f5e4ba;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .85rem;
  font-weight: 700;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 24px rgba(0,0,0,.25);
  cursor: pointer;
}

.button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button:hover,
.igt-button:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.igt-button.alt,
.is-style-outline .wp-block-button__link {
  background: linear-gradient(180deg, rgba(175,138,61,.1), rgba(0,0,0,.08));
}

.content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: var(--igt-grid-gap);
  align-items: start;
}

.site-main {
  padding-bottom: 56px;
}

.content-card,
.widget,
.comment-body,
.post-card,
.archive-card,
.page-section,
.terminal-panel {
  padding: 24px;
  border-radius: var(--igt-radius);
  border: 1px solid var(--igt-line);
  background:
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.12)),
    var(--igt-panel);
  box-shadow: var(--igt-shadow);
}

.content-card.parchment,
.terminal-dossier,
.ig-service-record,
.ig-dossier-card,
.ig-hall-card {
  background:
    radial-gradient(circle at top, rgba(255,255,255,.18), rgba(255,255,255,0) 30%),
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(0,0,0,.04)),
    linear-gradient(180deg, var(--igt-card), var(--igt-card-2));
  color: var(--igt-ink);
  border-color: rgba(93,69,27,.45);
}

.content-card.parchment h1,
.content-card.parchment h2,
.content-card.parchment h3,
.terminal-dossier h1,
.terminal-dossier h2,
.terminal-dossier h3,
.ig-service-record h1,
.ig-service-record h2,
.ig-service-record h3,
.ig-dossier-card h1,
.ig-dossier-card h2,
.ig-dossier-card h3,
.ig-hall-card h1,
.ig-hall-card h2,
.ig-hall-card h3 {
  color: #2f2415;
}

.entry-meta,
.post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
  font-size: .82rem;
  color: var(--igt-text-muted);
  text-transform: uppercase;
  letter-spacing: .1em;
}

.entry-content h2,
.entry-content h3,
.entry-content h4,
.widget-title,
.section-title {
  letter-spacing: .08em;
  text-transform: uppercase;
}

.entry-content h2,
.widget-title,
.section-title {
  margin-top: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(175,138,61,.22);
}

.sidebar .widget + .widget {
  margin-top: 22px;
}

.widget ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.widget li + li {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(175,138,61,.15);
}

input[type="text"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="password"],
textarea,
select {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  color: #f0e6cd;
  background: rgba(9,8,11,.9);
  border: 1px solid rgba(175,138,61,.4);
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02), 0 0 0 1px transparent;
}

textarea { min-height: 150px; }

label {
  display: block;
  margin-bottom: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .82rem;
}

table {
  width: 100%;
  border-collapse: collapse;
}

table th,
table td {
  padding: 12px;
  border: 1px solid rgba(175,138,61,.18);
}

table th {
  text-align: left;
  background: rgba(175,138,61,.12);
}

.site-footer {
  padding: 24px 0 42px;
}

.footer-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border: 1px solid var(--igt-line);
  border-radius: var(--igt-radius);
  background: rgba(13,11,16,.92);
  box-shadow: var(--igt-shadow);
}

.footer-panel p {
  margin: 0;
  color: var(--igt-text-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .78rem;
}

/* Plugin styling bridge */
.ig-console,
.iron-gryphons-record-system,
.ig-hall-wrap,
.ig-hall-controls,
.ig-dossier,
.ig-service-record,
.ig-panel,
.ig-card,
.ig-hall-card,
.ig-dossier-card,
.ig-record-preview {
  width: min(100%, var(--igt-max)) !important;
  margin-inline: auto !important;
}

.ig-console,
.iron-gryphons-record-system,
.ig-hall-wrap {
  color: var(--igt-text) !important;
}

.ig-panel,
.ig-card,
.ig-console-panel,
.ig-hall-card,
.ig-dossier-card {
  border-radius: var(--igt-radius) !important;
  border: 1px solid var(--igt-line) !important;
  box-shadow: var(--igt-shadow) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.14)),
    var(--igt-panel) !important;
}

.ig-service-record,
.ig-record-preview,
.ig-dossier-card .ig-dossier-body,
.ig-hall-card .ig-dossier-body,
.ig-tan,
.ig-parchment {
  background:
    radial-gradient(circle at top, rgba(255,255,255,.15), rgba(255,255,255,0) 28%),
    linear-gradient(180deg, var(--igt-card), var(--igt-card-2)) !important;
  color: var(--igt-ink) !important;
  border-color: rgba(93,69,27,.45) !important;
}

.ig-record-buttons,
.ig-stats-grid,
.ig-rack-grid,
.ig-action-buttons,
.ig-two-col-row,
.ig-dossier-racks,
.ig-hall-controls-row {
  display: grid !important;
  gap: 20px !important;
  align-items: start !important;
}

.ig-record-buttons,
.ig-stats-grid,
.ig-rack-grid,
.ig-two-col-row,
.ig-dossier-racks,
.ig-hall-controls-row {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.ig-action-buttons { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }

.ig-record-buttons > *,
.ig-stats-grid > *,
.ig-rack-grid > *,
.ig-two-col-row > *,
.ig-dossier-racks > *,
.ig-hall-controls-row > *,
.ig-action-buttons > * {
  margin: 0 !important;
  align-self: start !important;
}

.ig-record-buttons .ig-btn,
.ig-record-buttons button,
.ig-action-buttons .ig-btn,
.ig-action-buttons button,
.ig-hall-controls button {
  width: 100% !important;
  min-height: 54px !important;
}

.ig-award-tile,
.ig-medal-tile,
.ig-ribbon-tile {
  border: 1px solid rgba(175,138,61,.28) !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12)), #17131a !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.015);
}

.ig-award-tile:hover,
.ig-medal-tile:hover,
.ig-ribbon-tile:hover {
  box-shadow: 0 0 0 1px rgba(175,138,61,.28), 0 10px 26px rgba(0,0,0,.25);
}

.ig-tooltip,
.ig-award-tile[data-description]:hover::after,
.ig-award-tile:focus-within::after {
  background: rgba(13,11,16,.96) !important;
  color: var(--igt-text) !important;
  border: 1px solid rgba(175,138,61,.45) !important;
  border-radius: 10px !important;
  box-shadow: var(--igt-shadow);
}

@media (max-width: 1100px) {
  .content-grid { grid-template-columns: 1fr; }
  .ig-action-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 900px) {
  .topbar,
  .footer-panel { flex-direction: column; align-items: flex-start; }
  .main-nav > div > ul,
  .main-nav > ul { flex-direction: column; }
  .ig-record-buttons,
  .ig-stats-grid,
  .ig-rack-grid,
  .ig-two-col-row,
  .ig-dossier-racks,
  .ig-hall-controls-row,
  .ig-action-buttons { grid-template-columns: 1fr !important; }
}


/* Front page centering and Storm Wrought command terminal */
.storm-wrought-home {
  display: grid;
  gap: 30px;
  padding-bottom: 24px;
}

.hero-terminal--centered {
  width: min(100%, 1180px);
  margin-inline: auto;
  text-align: center;
  position: relative;
}

.storm-wrought-terminal {
  padding-top: clamp(34px, 6vw, 64px);
  padding-bottom: clamp(34px, 6vw, 60px);
}

.storm-wrought-terminal::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(175,138,61,.16);
  border-radius: calc(var(--igt-radius) + 2px);
  pointer-events: none;
}

.terminal-window-bar {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 18px;
}

.terminal-window-bar span {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: linear-gradient(180deg, #d6bf84, #7a5a1b);
  box-shadow: 0 0 0 1px rgba(255,255,255,.06), inset 0 1px 0 rgba(255,255,255,.2);
}

.terminal-kicker {
  margin-bottom: 16px;
  color: var(--igt-text-muted);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .75rem;
}

.hero-terminal--centered .eyebrow,
.hero-actions--centered {
  justify-content: center;
}

.hero-lead {
  width: min(100%, 820px);
  margin: 0 auto;
  color: var(--igt-text);
}

.terminal-readouts {
  width: min(100%, 980px);
  margin: 28px auto 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.terminal-readout {
  padding: 18px 20px;
  border: 1px solid rgba(175,138,61,.22);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.14)), rgba(9,8,11,.55);
  text-align: left;
}

.terminal-readout .label {
  display: block;
  margin-bottom: 6px;
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--igt-text-muted);
}

.terminal-readout strong {
  display: block;
  color: #f5e9c8;
  letter-spacing: .04em;
}

.storm-wrought-grid {
  width: min(100%, var(--igt-max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}

.storm-panel {
  min-height: 100%;
}

.storm-wrought-docket {
  width: min(100%, 1120px);
  margin: 0 auto;
}

.storm-wrought-docket-card .entry-title {
  font-size: clamp(1.6rem, 3vw, 2.6rem);
}

.home .content-grid {
  grid-template-columns: 1fr;
}

.home .sidebar {
  display: none;
}

@media (max-width: 980px) {
  .terminal-readouts,
  .storm-wrought-grid {
    grid-template-columns: 1fr;
  }

  .hero-terminal--centered,
  .storm-wrought-docket {
    width: 100%;
  }
}


/* Center Record System and Hall of Heroes pages like the front page */
.content-grid.console-grid {
  grid-template-columns: minmax(0, 1fr) !important;
  max-width: 100%;
}

.console-grid > .console-column {
  width: min(100%, 1260px);
  margin-inline: auto;
}

.console-page.content-card {
  padding: 18px;
}

.console-page .entry-header {
  text-align: center;
  margin-bottom: 16px;
}

.console-page .entry-content {
  width: 100%;
}

.console-page .ig-console,
.console-page .iron-gryphons-record-system,
.console-page .ig-hall-wrap,
.console-page .ig-hall-controls,
.console-page .ig-dossier,
.console-page .ig-service-record,
.console-page .ig-record-preview,
.console-page .ig-dossier-card,
.console-page .ig-hall-card,
.console-page .ig-panel,
.console-page .ig-card {
  width: min(100%, 1200px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.console-page .ig-panel,
.console-page .ig-card,
.console-page .ig-hall-card,
.console-page .ig-dossier-card,
.console-page .ig-service-record,
.console-page .ig-record-preview {
  margin-top: 0 !important;
}

.console-page .ig-record-buttons,
.console-page .ig-stats-grid,
.console-page .ig-rack-grid,
.console-page .ig-two-col-row,
.console-page .ig-dossier-racks,
.console-page .ig-hall-controls-row {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.console-page .ig-action-buttons {
  width: 100% !important;
}

@media (max-width: 900px) {
  .console-page.content-card {
    padding: 14px;
  }
}
