/* Parnell Systems Knowledge Portal — Deep Ocean Tech Design System */
/* portal.css — imported by all pages */

@import url('https://api.fontshare.com/v2/css?f[]=satoshi@700,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&display=swap');

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

:root{
  --bg:#0a0c10;
  --bg2:#12151c;
  --bg3:#1a1e28;
  --text:#e8eaf0;
  --text2:#8b92a8;
  --text3:#4a5068;
  --border:rgba(255,255,255,0.06);
  --border2:rgba(255,255,255,0.1);
  --accent:#38bfa0;
  --accent-light:#5edcb8;
  --accent-glow:rgba(56,191,160,0.18);
  --font-display:'Satoshi',system-ui,sans-serif;
  --font-body:'Outfit',system-ui,sans-serif;
  --font:var(--font-body);
  --mono:'SF Mono','Fira Code','Cascadia Code',monospace;
  --radius:10px;
  --radius-lg:20px;

  --blue:#6199e6;   --blue-bg:rgba(97,153,230,0.12);   --blue-text:#6199e6;   --blue-border:rgba(97,153,230,0.25);
  --teal:#38bfa0;   --teal-bg:rgba(56,191,160,0.12);   --teal-text:#38bfa0;   --teal-border:rgba(56,191,160,0.25);
  --amber:#e8a44a;  --amber-bg:rgba(232,164,74,0.12);  --amber-text:#e8a44a;  --amber-border:rgba(232,164,74,0.25);
  --coral:#f07b6e;  --coral-bg:rgba(240,123,110,0.12);  --coral-text:#f07b6e;  --coral-border:rgba(240,123,110,0.25);
  --purple:#a78bfa; --purple-bg:rgba(167,139,250,0.12); --purple-text:#a78bfa; --purple-border:rgba(167,139,250,0.25);
  --green:#34d399;  --green-bg:rgba(52,211,153,0.12);  --green-text:#34d399;  --green-border:rgba(52,211,153,0.25);
  --navy:#6199e6;   --navy-bg:rgba(97,153,230,0.12);   --navy-text:#6199e6;   --navy-border:rgba(97,153,230,0.25);
}

body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:400;min-height:100vh;padding-bottom:80px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
code{font-family:var(--mono);font-size:0.9em;background:rgba(255,255,255,0.06);padding:2px 6px;border-radius:4px;border:1px solid rgba(255,255,255,0.08)}

/* ── MESH BACKGROUND ── */
.mesh-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.mesh-bg .blob{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform}
.mesh-bg .blob:nth-child(1){width:650px;height:650px;background:hsla(168,55%,32%,0.35);top:-12%;left:-8%;animation:drift1 20s ease-in-out infinite alternate}
.mesh-bg .blob:nth-child(2){width:500px;height:500px;background:hsla(335,45%,28%,0.25);top:5%;right:-12%;animation:drift2 24s ease-in-out infinite alternate}
.mesh-bg .blob:nth-child(3){width:580px;height:580px;background:hsla(215,55%,28%,0.28);bottom:-18%;left:25%;animation:drift3 28s ease-in-out infinite alternate}
.mesh-bg .blob:nth-child(4){width:400px;height:400px;background:hsla(40,50%,30%,0.15);bottom:10%;right:5%;animation:drift4 22s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate(90px,70px) scale(1.08)}}
@keyframes drift2{to{transform:translate(-70px,90px) scale(0.92)}}
@keyframes drift3{to{transform:translate(50px,-60px) scale(1.12)}}
@keyframes drift4{to{transform:translate(-40px,-50px) scale(1.06)}}

/* ── STAGGERED FADE-IN ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.card,.skill-card,.adr-card,.template-card,.wt-card,.feed,.plan-card{
  animation:fadeUp 0.45s cubic-bezier(0.22,1,0.36,1) both;
}
.card:nth-child(1),.skill-card:nth-child(1),.adr-card:nth-child(1),.template-card:nth-child(1),.wt-card:nth-child(1){animation-delay:0s}
.card:nth-child(2),.skill-card:nth-child(2),.adr-card:nth-child(2),.template-card:nth-child(2),.wt-card:nth-child(2){animation-delay:0.06s}
.card:nth-child(3),.skill-card:nth-child(3),.adr-card:nth-child(3),.template-card:nth-child(3),.wt-card:nth-child(3){animation-delay:0.12s}
.card:nth-child(4),.skill-card:nth-child(4),.adr-card:nth-child(4),.template-card:nth-child(4),.wt-card:nth-child(4){animation-delay:0.18s}
.card:nth-child(5),.skill-card:nth-child(5),.adr-card:nth-child(5),.template-card:nth-child(5),.wt-card:nth-child(5){animation-delay:0.24s}
.card:nth-child(6),.skill-card:nth-child(6),.adr-card:nth-child(6),.template-card:nth-child(6),.wt-card:nth-child(6){animation-delay:0.30s}
.card:nth-child(n+7),.skill-card:nth-child(n+7),.adr-card:nth-child(n+7),.template-card:nth-child(n+7),.wt-card:nth-child(n+7){animation-delay:0.36s}

/* ── LAYOUT ── */
.wrap{max-width:1120px;margin:0 auto;padding:0 48px;position:relative;z-index:1}
@media(max-width:680px){.wrap{padding:0 20px}}

/* ── SITE HEADER ── */
.site-header{background:rgba(10,12,16,0.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,0.06);padding:0 48px;position:relative;z-index:10}
@media(max-width:680px){.site-header{padding:0 20px}}
.header-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:56px;gap:16px}
.header-brand{display:flex;align-items:center;gap:10px}
.header-logo{width:28px;height:28px;border-radius:7px;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#0a0c10;font-size:13px;font-weight:700;letter-spacing:-0.02em;flex-shrink:0;font-family:var(--font-display)}
.header-name{font-size:14px;font-weight:600;letter-spacing:-0.01em;color:var(--text);font-family:var(--font-display)}
.header-nav{display:flex;gap:0}
.header-nav a{font-size:13px;color:var(--text3);padding:8px 14px;border-radius:7px;transition:all 0.15s;font-weight:500}
.header-nav a:hover{color:var(--text);background:rgba(255,255,255,0.05)}
.header-nav a.active{color:var(--text);background:rgba(255,255,255,0.08)}
.header-right{display:flex;align-items:center;gap:10px}
.gh-btn{font-size:12px;font-weight:500;color:var(--text2);background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:5px 12px;display:flex;align-items:center;gap:5px;transition:all 0.15s}
.gh-btn:hover{color:var(--text);border-color:rgba(255,255,255,0.18)}

/* ── HERO ── */
.hero{background:transparent;padding:52px 48px 44px;position:relative;z-index:1}
@media(max-width:680px){.hero{padding:36px 20px 32px}}
.hero-inner{max-width:1120px;margin:0 auto}
.hero-eyebrow{font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-family:var(--font-body)}
.hero-title{font-size:40px;font-weight:900;letter-spacing:-0.03em;color:var(--text);line-height:1.05;margin-bottom:10px;font-family:var(--font-display)}
.hero-title em{font-style:normal;color:var(--accent)}
.hero-sub{font-size:15px;color:var(--text2);max-width:520px;line-height:1.65;margin-bottom:36px;font-weight:300}
.hero-stats{display:flex;gap:36px;flex-wrap:wrap}
.stat{display:flex;flex-direction:column;gap:3px}
.stat-n{font-size:30px;font-weight:700;letter-spacing:-0.03em;color:var(--text);line-height:1;font-family:var(--font-display)}
.stat-l{font-size:11px;font-weight:500;letter-spacing:0.07em;text-transform:uppercase;color:var(--text3)}

/* ── PAGE NAV ── */
.page-nav{background:rgba(10,12,16,0.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,0.06);position:sticky;top:0;z-index:10}
.page-nav-inner{max-width:1120px;margin:0 auto;padding:0 48px;display:flex;gap:0;overflow-x:auto}
@media(max-width:680px){.page-nav-inner{padding:0 20px}}
.page-nav a{font-size:13px;font-weight:500;color:var(--text3);padding:14px 18px;border-bottom:2px solid transparent;white-space:nowrap;transition:all 0.15s;display:block}
.page-nav a:hover{color:var(--text)}
.page-nav a.active{color:var(--accent);border-bottom-color:var(--accent)}

/* ── SECTION LABEL ── */
.section-label{font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text3);margin-bottom:18px;margin-top:44px}
.section-label:first-child{margin-top:0}

/* ── PORTAL GRID ── */
.portal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:900px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.portal-grid{grid-template-columns:1fr}}

/* ── GLASSMORPHISM CARD BASE ── */
.card,.skill-card,.adr-card,.template-card,.wt-card,.feed{
  position:relative;
  background:rgba(255,255,255,0.035);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:transform 0.45s cubic-bezier(0.22,1,0.36,1),border-color 0.45s cubic-bezier(0.22,1,0.36,1),box-shadow 0.45s cubic-bezier(0.22,1,0.36,1);
}
/* Top light catch */
.card::before,.skill-card::before,.adr-card::before,.template-card::before,.wt-card::before,.feed::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.08),transparent);
  z-index:2;pointer-events:none;
}
/* Cursor glow */
.card::after,.skill-card::after,.adr-card::after,.template-card::after,.wt-card::after,.feed::after{
  content:'';position:absolute;top:0;left:0;width:350px;height:350px;
  background:radial-gradient(circle at center,var(--accent-glow),transparent 70%);
  transform:translate(calc(var(--mouse-x,0px) - 175px),calc(var(--mouse-y,0px) - 175px));
  opacity:0;transition:opacity 0.35s;pointer-events:none;z-index:0;
}
.card:hover::after,.skill-card:hover::after,.adr-card:hover::after,.template-card:hover::after,.wt-card:hover::after,.feed:hover::after{
  opacity:1;
}

/* ── CARDS ── */
.card:hover,.skill-card:hover,.wt-card:hover{transform:translateY(-3px) scale(1.008);border-color:rgba(255,255,255,0.14);box-shadow:0 24px 64px rgba(0,0,0,0.35)}
.card-accent{height:3px;position:relative;z-index:1}
.card-inner{padding:20px 22px 22px;display:flex;flex-direction:column;gap:14px;position:relative;z-index:1}
.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.card-title{font-size:15px;font-weight:700;letter-spacing:-0.01em;color:var(--text);font-family:var(--font-display)}
.card-count{font-size:11px;font-weight:500;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:2px 9px;color:var(--text3);white-space:nowrap;flex-shrink:0}
.card-desc{font-size:13px;color:var(--text2);line-height:1.6}
.card-tags{display:flex;flex-wrap:wrap;gap:5px}
.tag{font-size:11px;font-family:var(--mono);padding:3px 8px;border-radius:5px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.04);color:var(--text2)}
.card-footer{padding-top:14px;border-top:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:space-between}
.card-link{font-size:12px;font-weight:600;color:var(--accent)}
.card-arrow{font-size:14px;color:var(--text3)}

/* ── SKILL CARDS ── */
.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
@media(max-width:580px){.skills-grid{grid-template-columns:1fr}}
.skill-card.hidden{display:none}
.skill-band{padding:20px 22px 16px;border-bottom:1px solid rgba(255,255,255,0.06);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative;z-index:1}
.skill-icon{font-size:26px;line-height:1;flex-shrink:0}
.skill-name{font-size:15px;font-weight:700;letter-spacing:-0.01em;line-height:1.2;font-family:var(--font-display);color:var(--text)}
.skill-slug{font-family:var(--mono);font-size:11px;opacity:0.55;margin-top:3px}
.cat-badge{font-size:10px;font-weight:600;padding:3px 9px;border-radius:20px;border:1px solid;font-family:var(--mono);white-space:nowrap;flex-shrink:0;margin-top:2px}
.skill-body{padding:16px 22px 20px;display:flex;flex-direction:column;gap:14px;position:relative;z-index:1}
.skill-desc{font-size:13px;color:var(--text2);line-height:1.6}
.triggers-label{font-size:10px;font-weight:600;letter-spacing:0.07em;text-transform:uppercase;color:var(--text3);margin-bottom:7px}
.triggers{display:flex;flex-wrap:wrap;gap:5px}
.trigger{font-size:11px;font-family:var(--mono);padding:3px 9px;border-radius:5px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.04);color:var(--text2)}
.checks{display:flex;flex-direction:column;gap:4px}
.check-item{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--text2);line-height:1.5}
.check-dot{width:5px;height:5px;border-radius:50%;background:var(--text3);flex-shrink:0;margin-top:5px}

/* ── ACTIVITY FEED ── */
.feed-header{padding:14px 20px;border-bottom:1px solid rgba(255,255,255,0.06);font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}
.feed-link{font-size:12px;font-weight:500;color:var(--accent)}
.feed-row{padding:12px 20px;border-bottom:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;gap:12px;position:relative;z-index:1}
.feed-row:last-child{border-bottom:none}
.feed-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.feed-text{font-size:13px;color:var(--text);flex:1;line-height:1.4}
.feed-meta{font-size:11px;color:var(--text3);font-family:var(--mono);white-space:nowrap}

/* ── ADR CARDS ── */
.adr-grid{display:flex;flex-direction:column;gap:12px}
.adr-card{padding:18px 22px;display:flex;align-items:flex-start;gap:16px}
.adr-card:hover{border-color:rgba(255,255,255,0.14);box-shadow:0 24px 64px rgba(0,0,0,0.35);transform:translateY(-2px)}
.adr-num{font-family:var(--mono);font-size:12px;color:var(--text3);white-space:nowrap;min-width:48px;padding-top:2px;position:relative;z-index:1}
.adr-body{flex:1;position:relative;z-index:1}
.adr-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px;font-family:var(--font-display)}
.adr-desc{font-size:13px;color:var(--text2);line-height:1.55}
.adr-meta{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.adr-status{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;font-family:var(--mono)}
.status-accepted{background:var(--teal-bg);color:var(--teal-text);border:1px solid var(--teal-border)}
.status-proposed{background:var(--amber-bg);color:var(--amber-text);border:1px solid var(--amber-border)}
.status-deprecated{background:rgba(255,255,255,0.05);color:var(--text3);border:1px solid rgba(255,255,255,0.08)}

/* ── FILTER BAR ── */
.filter-bar{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:28px}
.filter-label{font-size:12px;color:var(--text3);margin-right:4px}
.filter-btn{font-size:11px;font-weight:600;padding:5px 13px;border-radius:20px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--text2);cursor:pointer;font-family:var(--font);transition:all 0.15s}
.filter-btn:hover{border-color:rgba(255,255,255,0.2);color:var(--text)}
.filter-btn.active{background:var(--text);color:var(--bg);border-color:var(--text)}

/* ── TEMPLATE CARDS ── */
.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.template-card{padding:20px 22px;display:flex;flex-direction:column;gap:12px}
.template-card:hover{border-color:rgba(255,255,255,0.14);box-shadow:0 24px 64px rgba(0,0,0,0.35);transform:translateY(-2px)}
.template-type{font-size:10px;font-weight:600;font-family:var(--mono);letter-spacing:0.06em;text-transform:uppercase}
.template-name{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-0.01em;font-family:var(--font-display)}
.template-desc{font-size:13px;color:var(--text2);line-height:1.6;flex:1}
.template-path{font-family:var(--mono);font-size:11px;color:var(--text3);background:rgba(255,255,255,0.04);padding:6px 10px;border-radius:5px;border:1px solid rgba(255,255,255,0.06)}
.copy-btn{font-size:11px;font-weight:600;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);padding:0;transition:opacity 0.15s}
.copy-btn:hover{opacity:0.7}

/* ── CHANGELOG ── */
.changelog-list{display:flex;flex-direction:column;gap:0}
.cl-group{margin-bottom:36px}
.cl-date{font-size:12px;font-weight:600;font-family:var(--mono);color:var(--text3);letter-spacing:0.05em;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,0.06)}
.cl-item{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,0.04)}
.cl-item:last-child{border-bottom:none}
.cl-badge{font-size:10px;font-weight:700;font-family:var(--mono);padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;margin-top:1px}
.cl-feat{background:var(--teal-bg);color:var(--teal-text)}
.cl-fix{background:var(--coral-bg);color:var(--coral-text)}
.cl-chore{background:rgba(255,255,255,0.05);color:var(--text3)}
.cl-docs{background:var(--blue-bg);color:var(--blue-text)}
.cl-text{font-size:13px;color:var(--text);line-height:1.5}
.cl-hash{font-size:11px;font-family:var(--mono);color:var(--text3);margin-left:auto;white-space:nowrap;padding-left:12px}

/* ── WALKTHROUGH CARDS ── */
.wt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.wt-card{display:flex;flex-direction:column}
.wt-thumb{min-height:140px;background:rgba(255,255,255,0.03);border-bottom:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;font-size:32px;color:var(--text3);overflow:hidden;position:relative;z-index:1}
.wt-body{padding:16px 18px 20px;flex:1;display:flex;flex-direction:column;gap:10px;position:relative;z-index:1}
.wt-title{font-size:14px;font-weight:700;color:var(--text);letter-spacing:-0.01em;line-height:1.3;font-family:var(--font-display)}
.wt-desc{font-size:12px;color:var(--text2);line-height:1.55;flex:1}
.wt-tags{display:flex;gap:5px;flex-wrap:wrap}
.wt-footer{padding:10px 18px 14px;border-top:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}
.wt-link{font-size:12px;font-weight:600;color:var(--accent)}

/* ── FOOTER ── */
.site-footer{max-width:1120px;margin:60px auto 0;padding:24px 48px 0;border-top:1px solid rgba(255,255,255,0.06);font-size:12px;color:var(--text3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;position:relative;z-index:1}
@media(max-width:680px){.site-footer{padding:24px 20px 0}}
