:root{--ink:#101828;--muted:#667085;--line:#e4e7ec;--bg:#fff;--soft:#f8fafc;--accent:#155eef;--accent2:#0b4fcf;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.7}a{color:inherit;text-decoration:none}.wrap{width:min(calc(100% - 40px),var(--max));margin:auto}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:20}.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:850;font-size:21px;letter-spacing:-.04em}.navlinks{display:flex;gap:24px;align-items:center}.navlinks a{font-size:14px;color:#344054}.navlinks a:hover{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:8px;border:1px solid var(--line);font-weight:750;font-size:14px;background:#fff;cursor:pointer}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:var(--accent2)}.hero{padding:125px 0 105px;border-bottom:1px solid var(--line)}.hero .lead{max-width:760px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:850;color:var(--accent)}h1{font-size:clamp(44px,7vw,78px);line-height:1.01;letter-spacing:-.06em;margin:14px 0 24px;max-width:930px}h2{font-size:clamp(31px,4vw,48px);line-height:1.1;letter-spacing:-.045em;margin:0 0 18px}h3{font-size:21px;line-height:1.25;margin:8px 0}.lead{font-size:19px;color:#475467;max-width:800px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.section{padding:92px 0;border-bottom:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:36px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{border:1px solid var(--line);border-radius:16px;padding:24px;background:#fff;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(16,24,40,.07)}.muted{color:var(--muted)}.project-image{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;background:var(--soft);margin-bottom:17px}.split{display:grid;grid-template-columns:1fr 1.5fr;gap:65px}.profile-pic{width:190px;height:190px;border-radius:50%;object-fit:cover;background:var(--soft);border:1px solid var(--line)}.profile-placeholder{display:grid;place-items:center;width:190px;height:190px;border-radius:50%;background:var(--soft);border:1px solid var(--line);color:#98a2b3;text-align:center;padding:25px;font-size:13px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.tag{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;color:#475467}.text-link{font-weight:750;color:var(--accent)}.socials{display:flex;gap:9px;flex-wrap:wrap}.social{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);padding:9px 12px;border-radius:9px;font-weight:700;background:#fff}.social svg{width:19px;height:19px;display:block}.footer{margin-top:0;padding:58px 0 25px;background:#fbfcfe;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.4fr .7fr 1.4fr;gap:50px}.footer-grid h4{margin:0 0 12px;font-size:14px}.footer-grid>div:nth-child(2){display:flex;flex-direction:column;gap:7px}.footer-copy{max-width:380px;color:var(--muted);font-size:14px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:40px;padding-top:20px;color:var(--muted);font-size:13px}.page{padding:85px 0;min-height:65vh}.detail{max-width:900px}.detail h1{font-size:clamp(40px,6vw,64px)}.detail p{font-size:17px}.work-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}.work-cover{width:100%;border-radius:16px;background:var(--soft);border:1px solid var(--line)}.service-list,.experience-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.list-item{border-top:1px solid var(--line);padding:22px 0}.contact-box{padding:35px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}.admin-shell{min-height:100vh;background:var(--soft);padding:40px 0}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}.form label{display:block;font-size:13px;font-weight:700;margin:14px 0 7px}.form input,.form textarea,.form select{width:100%;padding:11px 12px;border:1px solid #d0d5dd;border-radius:8px;font:inherit}.form textarea{min-height:120px;resize:vertical}.notice{padding:12px;border-radius:8px;background:#eff8ff;color:#175cd3;margin-bottom:14px}.danger{color:#b42318}.topline{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.admin-project{display:grid;grid-template-columns:100px 1fr auto;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.admin-thumb{width:100px;height:65px;object-fit:cover;border-radius:8px;background:var(--soft)}
html.dark{
  --ink:#f2f4f7;
  --muted:#98a2b3;
  --line:#344054;
  --bg:#101828;
  --soft:#1d2939;
  --accent:#84adff;
  --accent2:#a8c7ff;
}

html.dark .site-header{
  background:rgba(16,24,40,.97);
}

html.dark .navlinks a{
  color:#d0d5dd;
}

html.dark .btn{
  background:#1d2939;
  color:#f2f4f7;
  border-color:#344054;
}

html.dark .btn.primary{
  background:#84adff;
  color:#101828;
  border-color:#84adff;
}

html.dark .lead{
  color:#d0d5dd;
}

html.dark .card,
html.dark .social,
html.dark .form{
  background:#1d2939;
  border-color:#344054;
}

html.dark .footer{
  background:#0b1220;
  border-color:#344054;
}

html.dark .contact-box{
  background:#1d2939;
  border-color:#344054;
}

html.dark .form input,
html.dark .form textarea,
html.dark .form select{
  background:#101828;
  color:#f2f4f7;
  border-color:#475467;
}

html.dark .tag{
  color:#d0d5dd;
  border-color:#475467;
}

.nav-actions{display:flex;align-items:center;gap:10px}.theme-toggle{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.theme-toggle:hover{background:var(--soft);transform:translateY(-1px)}.theme-toggle svg{width:20px;height:20px;display:block}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html.dark .theme-toggle{background:#1d2939;color:#f2f4f7;border-color:#344054}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.skill-option{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s}.skill-option:hover{background:var(--soft)}.skill-option input{width:16px;height:16px;accent-color:var(--accent);flex:none}html.dark .skill-option{background:#101828;border-color:#344054}html.dark .skill-option:hover{background:#1d2939}

.phone-field{display:flex;align-items:stretch;width:100%}
.phone-code{display:flex;align-items:center;padding:0 13px;border:1px solid var(--line);border-right:0;border-radius:9px 0 0 9px;background:var(--soft);color:var(--ink);font-weight:600;white-space:nowrap}
.phone-field input{flex:1;min-width:0;border-radius:0 9px 9px 0!important}
html.dark .phone-code{background:#1d2939;border-color:#344054;color:#f2f4f7}
.country-picker{position:relative}
.country-trigger{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;font:inherit;text-align:left;cursor:pointer}
.country-trigger:hover{border-color:var(--accent)}
.country-selected{display:flex;align-items:center;gap:10px;min-width:0}
.country-selected-flag{width:24px;height:18px;object-fit:cover;border-radius:2px;flex:none}
.country-chevron{font-size:18px;line-height:1;opacity:.65;transition:transform .2s}
.country-picker.open .country-chevron{transform:rotate(180deg)}
.country-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);box-shadow:0 12px 30px rgba(0,0,0,.12)}
.country-picker.open .country-menu{display:block}
.country-search{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;outline:none;margin-bottom:8px}
.country-search:focus{border-color:var(--accent)}
.country-options{max-height:280px;overflow-y:auto}
.country-option{width:100%;display:flex;align-items:center;gap:10px;padding:10px 11px;border:0;border-radius:7px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.country-option:hover{background:var(--soft)}
.country-option img{width:24px;height:18px;object-fit:cover;border-radius:2px;flex:none}
.country-empty{padding:14px 11px;color:var(--muted);font-size:14px}
html.dark .country-trigger,html.dark .country-search,html.dark .country-menu{background:#101828;border-color:#344054}
html.dark .country-option:hover{background:#1d2939}
@media(max-width:800px){.skills-grid{grid-template-columns:1fr}}
@media(max-width:800px){.navlinks{display:none}.grid,.admin-grid,.split,.work-hero,.service-list,.experience-list,.footer-grid{grid-template-columns:1fr}.hero{padding:78px 0}.section{padding:65px 0}.wrap{width:min(calc(100% - 28px),var(--max))}.section-head{display:block}.footer-bottom{display:block}.footer-bottom span{display:block;margin:4px 0}.profile-pic,.profile-placeholder{width:150px;height:150px}.socials{gap:7px}}

/* =========================================
   Codex Inc — Crystal Glass Skeleton Loader
   Responsive phones, tablets and desktops
   ========================================= */

html.page-loading body {
  overflow: hidden;
}

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: clamp(16px, 3vw, 36px);
  background:
    radial-gradient(ellipse at 8% 4%, rgba(22,198,201,.24), transparent 38%),
    radial-gradient(ellipse at 94% 12%, rgba(50,121,246,.19), transparent 36%),
    linear-gradient(135deg,#f3ffff 0%,#edf6ff 55%,#f9fdff 100%);
  color: #123b55;
  opacity: 1;
  visibility: visible;
  transition: opacity .3s ease, visibility .3s ease;
  overscroll-behavior: contain;
}

.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.cx-loader-top {
  width: min(1100px,100%);
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 15px;
  border: 1px solid rgba(22,174,190,.36);
  border-radius: 16px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 8px 28px rgba(25,145,175,.10);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.cx-loader-mark {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  border-radius: 11px;
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  background: linear-gradient(135deg,#16c6c9,#3279f6);
  box-shadow: 0 4px 14px rgba(22,174,190,.26);
}

.cx-loader-brand {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .13em;
}

.cx-loader-brand strong {
  color: #168fbd;
}

.cx-loader-status {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #285d78;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
}

.cx-loader-status i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #16c6c9;
  box-shadow: 0 0 0 5px rgba(22,198,201,.13);
  animation: cx-loader-pulse 1.2s ease-in-out infinite;
}

.cx-loader-progress {
  width: min(1100px,100%);
  height: 5px;
  margin: 12px 0 20px;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(22,174,190,.14);
}

.cx-loader-progress span {
  display: block;
  width: 36%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,#16c6c9,#3279f6,#16c6c9);
  box-shadow: 0 0 14px rgba(22,198,201,.45);
  animation: cx-loader-progress 1.4s ease-in-out infinite;
}

.cx-loader-layout {
  width: min(1100px,100%);
  display: flex;
  flex-direction: column;
  gap: clamp(18px,3vw,30px);
  margin: 0 auto;
}

.cx-sk-hero,
.cx-sk-content,
.cx-sk-form,
.cx-sk-card {
  min-width: 0;
  border: 1px solid rgba(22,174,190,.28);
  border-radius: clamp(16px,2vw,24px);
  background: linear-gradient(135deg,rgba(255,255,255,.88),rgba(222,249,251,.78),rgba(231,240,255,.82));
  box-shadow: 0 14px 40px rgba(31,120,155,.09);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.cx-sk-hero,
.cx-sk-content,
.cx-sk-form {
  padding: clamp(20px,4vw,44px);
}

.cx-sk-profile {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(0,1.3fr);
  align-items: center;
  gap: clamp(20px,4vw,46px);
  padding: clamp(20px,4vw,44px);
  border: 1px solid rgba(22,174,190,.28);
  border-radius: 24px;
  background: linear-gradient(135deg,rgba(255,255,255,.88),rgba(222,249,251,.78),rgba(231,240,255,.82));
  box-shadow: 0 14px 40px rgba(31,120,155,.09);
}

.cx-sk-profile-copy {
  min-width: 0;
}

.cx-skeleton {
  position: relative;
  display: block;
  width: var(--sk-width,100%);
  max-width: 100%;
  height: 13px;
  margin: 13px 0;
  overflow: hidden;
  border-radius: 7px;
  background: linear-gradient(100deg,rgba(111,194,204,.19),rgba(111,194,204,.32),rgba(93,150,225,.19));
}

.cx-skeleton::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(100deg,transparent 10%,rgba(255,255,255,.92) 48%,transparent 85%);
  transform: translateX(-100%);
  animation: cx-loader-shimmer 1.25s ease-in-out infinite;
}

.cx-sk-eyebrow {
  height: 10px;
  margin-bottom: 20px;
  border-radius: 99px;
}

.cx-sk-title {
  height: clamp(20px,3.4vw,34px);
  margin: 12px 0 16px;
  border-radius: 9px;
}

.cx-sk-title-small {
  height: clamp(17px,2.5vw,25px);
}

.cx-sk-button {
  width: 145px;
  height: 44px;
  margin: 0;
  border-radius: 12px;
  background: linear-gradient(110deg,rgba(22,198,201,.24),rgba(50,121,246,.20));
  border: 1px solid rgba(22,174,190,.27);
}

.cx-sk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.cx-sk-button-secondary {
  background: linear-gradient(110deg,rgba(255,255,255,.9),rgba(205,231,255,.75));
}

.cx-sk-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(12px,2vw,22px);
}

.cx-sk-grid-compact {
  margin-top: 24px;
  grid-template-columns: repeat(2,minmax(0,1fr));
}

.cx-sk-card {
  padding: clamp(14px,2vw,22px);
}

.cx-sk-card .cx-sk-title {
  height: 19px;
}

.cx-sk-image {
  aspect-ratio: 16 / 9;
  height: auto;
  margin: 0 0 20px;
  border-radius: 14px;
}

.cx-sk-avatar {
  width: min(100%,240px);
  aspect-ratio: 1;
  height: auto;
  justify-self: center;
  border-radius: 50%;
  border: 5px solid rgba(255,255,255,.85);
  box-shadow: 0 0 0 1px rgba(22,174,190,.35),0 10px 28px rgba(22,174,190,.12);
}

.cx-sk-form {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 6px 22px;
}

.cx-sk-form > .cx-sk-title,
.cx-sk-form > .cx-sk-input,
.cx-sk-form > .cx-sk-button {
  grid-column: 1 / -1;
}

.cx-sk-field {
  min-width: 0;
}

.cx-sk-label {
  height: 10px;
  margin-bottom: 9px;
}

.cx-sk-input {
  height: 47px;
  margin: 0 0 14px;
  border: 1px solid rgba(22,174,190,.25);
  border-radius: 12px;
  background: rgba(255,255,255,.72);
}

.cx-sk-textarea {
  height: 112px;
}

.cx-loader-footer {
  width: min(1100px,100%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 24px 0 8px;
  color: #285d78;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
}

.cx-loader-spinner {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 2px solid rgba(22,174,190,.22);
  border-top-color: #16aebd;
  border-right-color: #3279f6;
  border-radius: 50%;
  animation: cx-loader-spin .8s linear infinite;
}

@keyframes cx-loader-shimmer {
  to { transform: translateX(110%); }
}

@keyframes cx-loader-progress {
  0% { transform: translateX(-115%); }
  100% { transform: translateX(310%); }
}

@keyframes cx-loader-spin {
  to { transform: rotate(360deg); }
}

@keyframes cx-loader-pulse {
  50% { opacity: .45; transform: scale(.82); }
}

.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .5s ease, transform .5s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--reveal-delay,0ms);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.reveal-group {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s ease, transform .55s cubic-bezier(.22,1,.36,1);
}

.reveal-group.is-visible {
  opacity: 1;
  transform: none;
}

@media(max-width:760px) {
  .page-loader { padding: 12px; }
  .cx-loader-top { min-height: 48px; padding: 8px 11px; }
  .cx-loader-brand { font-size: 12px; letter-spacing: .09em; }
  .cx-loader-progress { margin: 10px 0 14px; }
  .cx-sk-profile { grid-template-columns: 1fr; gap: 14px; }
  .cx-sk-avatar { width: 124px; }
  .cx-sk-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cx-sk-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .cx-sk-hero,.cx-sk-content,.cx-sk-form { padding: 18px; }
  .cx-sk-form { grid-template-columns: 1fr; }
  .cx-sk-form > * { grid-column: 1 / -1; }
  .cx-sk-actions { gap: 8px; }
  .cx-sk-button { width: 125px; height: 42px; }
}

@media(max-width:420px) {
  .cx-loader-status { font-size: 9px; letter-spacing: .08em; gap: 6px; }
  .cx-loader-mark { width: 30px; height: 30px; flex-basis: 30px; }
  .cx-sk-grid,.cx-sk-grid-compact { grid-template-columns: 1fr; }
  .cx-sk-card:last-child:nth-child(odd) { grid-column: auto; }
  .cx-sk-hero,.cx-sk-content,.cx-sk-form,.cx-sk-profile { padding: 16px; border-radius: 16px; }
  .cx-sk-button { width: 100%; max-width: 100%; }
  .cx-sk-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

html.dark .page-loader {
  color: #eafcff;
  background:
    radial-gradient(ellipse at 8% 4%,rgba(22,198,201,.20),transparent 38%),
    radial-gradient(ellipse at 94% 12%,rgba(50,121,246,.22),transparent 36%),
    linear-gradient(135deg,#0b1726,#10243a 58%,#101828);
}

html.dark .cx-loader-top,
html.dark .cx-sk-hero,
html.dark .cx-sk-content,
html.dark .cx-sk-form,
html.dark .cx-sk-card,
html.dark .cx-sk-profile {
  background: linear-gradient(135deg,rgba(15,44,58,.96),rgba(22,39,68,.95),rgba(18,35,53,.96));
  border-color: rgba(76,205,211,.32);
}

html.dark .cx-loader-brand strong { color: #63e4e1; }
html.dark .cx-loader-status,
html.dark .cx-loader-footer { color: #c5e9f5; }

html.dark .cx-skeleton {
  background: linear-gradient(100deg,rgba(76,205,211,.14),rgba(76,205,211,.28),rgba(80,137,230,.22));
}

html.dark .cx-skeleton::after {
  background: linear-gradient(100deg,transparent 10%,rgba(160,231,238,.24) 48%,transparent 85%);
}

@media(prefers-reduced-motion:reduce) {
  .page-loader,
  .cx-skeleton::after,
  .cx-loader-progress span,
  .cx-loader-spinner,
  .cx-loader-status i,
  .reveal,
  .reveal-group {
    animation: none !important;
    transition: none !important;
  }

  .reveal,
  .reveal-group {
    opacity: 1;
    transform: none;
  }

  .cx-skeleton::after { display: none; }
}

/* =========================================
   Updates — Editorial News Platform
   ========================================= */

.updates-page{
  background:#f7f7f5;
  color:#111;
}

.updates-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(247,247,245,.94);
  border-bottom:1px solid #deded9;
  backdrop-filter:blur(14px);
}

.updates-header-inner{
  width:min(1240px,calc(100% - 40px));
  min-height:72px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}

.updates-brand{
  color:#111;
  font-size:1.15rem;
  font-weight:800;
  letter-spacing:-.04em;
  text-decoration:none;
}

.updates-nav{
  display:flex;
  align-items:center;
  gap:26px;
}

.updates-nav a{
  color:#555;
  font-size:.88rem;
  text-decoration:none;
  transition:color .2s ease;
}

.updates-nav a:hover,
.updates-nav a.active{
  color:#111;
}

.updates-main{
  width:min(1240px,calc(100% - 40px));
  margin:auto;
}

.updates-intro{
  padding:86px 0 55px;
  border-bottom:1px solid #d8d8d2;
}

.updates-kicker{
  margin:0 0 18px;
  color:#777;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.16em;
}

.updates-intro h1{
  max-width:900px;
  margin:0;
  font-size:clamp(3.2rem,8vw,7rem);
  line-height:.88;
  letter-spacing:-.075em;
  font-weight:850;
}

.updates-intro-text{
  max-width:620px;
  margin:28px 0 0;
  color:#666;
  font-size:1.08rem;
  line-height:1.7;
}

.updates-feed{
  padding:55px 0 100px;
}

.updates-featured{
  margin-bottom:80px;
}

.update-card{
  min-width:0;
}

.update-card-link{
  display:block;
  color:inherit;
  text-decoration:none;
}

.update-card-media{
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#e5e5df;
}

.update-card-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}

.update-card-link:hover .update-card-media img{
  transform:scale(1.025);
}

.update-card-placeholder{
  width:100%;
  height:100%;
  background:
    linear-gradient(
      135deg,
      #e8e8e2 0%,
      #dcdcd6 100%
    );
}

.update-card-body{
  padding:23px 0 0;
}

.update-card-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:13px;
  color:#777;
  font-size:.73rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.update-category{
  color:#111;
}

.update-card h2{
  max-width:1000px;
  margin:0;
  font-size:clamp(1.7rem,3.5vw,3.2rem);
  line-height:1.02;
  letter-spacing:-.055em;
}

.update-card p{
  max-width:720px;
  margin:16px 0 0;
  color:#666;
  font-size:1rem;
  line-height:1.65;
}

.update-card-byline{
  margin-top:18px;
  color:#444;
  font-size:.78rem;
  font-weight:700;
}

.updates-latest{
  border-top:1px solid #d8d8d2;
  padding-top:38px;
}

.updates-section-heading{
  margin-bottom:34px;
}

.updates-section-heading > span{
  display:block;
  margin-bottom:8px;
  color:#777;
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.updates-section-heading h2{
  margin:0;
  font-size:clamp(1.8rem,3vw,2.8rem);
  letter-spacing:-.055em;
}

.updates-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:58px 34px;
}

.updates-grid .update-card h2{
  font-size:clamp(1.45rem,2.5vw,2.15rem);
}

.updates-empty{
  min-height:360px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-top:1px solid #d8d8d2;
  border-bottom:1px solid #d8d8d2;
}

.updates-empty-label{
  margin:0 0 12px!important;
  color:#777!important;
  font-size:.7rem!important;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.updates-empty h2{
  max-width:700px;
  margin:0;
  font-size:clamp(2rem,4vw,3.6rem);
  line-height:1;
  letter-spacing:-.06em;
}

.updates-empty > p:last-child{
  max-width:540px;
  margin:18px 0 0;
  color:#666;
  line-height:1.7;
}

.updates-loading{
  padding:80px 0;
  color:#777;
  font-size:.9rem;
}

.updates-footer{
  width:min(1240px,calc(100% - 40px));
  margin:auto;
  padding:30px 0 45px;
  border-top:1px solid #d8d8d2;
  color:#777;
  font-size:.75rem;
}

@media(max-width:760px){

  .updates-header-inner{
    width:min(100% - 28px,1240px);
    min-height:64px;
  }

  .updates-nav{
    gap:14px;
  }

  .updates-nav a{
    font-size:.76rem;
  }


  .updates-nav a:nth-child(3){
    display:none;
  }

  .updates-main{
    width:min(100% - 28px,1240px);
  }

  .updates-intro{
    padding:60px 0 38px;
  }

  .updates-intro h1{
    font-size:clamp(3rem,17vw,5rem);
  }

  .updates-feed{
    padding:38px 0 70px;
  }

  .updates-grid{
    grid-template-columns:1fr;
    gap:48px;
  }

  .updates-featured{
    margin-bottom:58px;
  }
}


/* =========================================
   Updates — Article / Reading Experience
   ========================================= */

.update-article-page{
  background:#f7f7f5;
  color:#111;
}

.update-article-main{
  width:min(1080px,calc(100% - 40px));
  margin:auto;
  padding:70px 0 100px;
}

.article-header{
  max-width:900px;
  margin:0 auto;
  text-align:center;
}

.article-category{
  margin-bottom:20px;
  color:#777;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.article-header h1{
  margin:0;
  font-size:clamp(3rem,7vw,6.5rem);
  line-height:.91;
  letter-spacing:-.075em;
  font-weight:850;
}

.article-excerpt{
  max-width:720px;
  margin:28px auto 0;
  color:#666;
  font-size:1.15rem;
  line-height:1.65;
}

.article-meta{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  margin-top:28px;
  color:#777;
  font-size:.76rem;
  font-weight:650;
}

.article-meta-separator{
  color:#aaa;
}

.article-cover{
  width:100%;
  margin:65px auto 70px;
  aspect-ratio:16/8;
  overflow:hidden;
  background:#e5e5df;
}

.article-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.article-content{
  max-width:720px;
  margin:auto;
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.18rem;
  line-height:1.9;
  color:#222;
}

.article-content p{
  margin:0 0 1.65em;
}

.article-comments{
  max-width:720px;
  margin:100px auto 0;
  padding-top:45px;
  border-top:1px solid #d8d8d2;
}

.comments-heading > span{
  display:block;
  margin-bottom:9px;
  color:#777;
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.comments-heading h2{
  margin:0;
  font-size:clamp(2rem,4vw,3rem);
  letter-spacing:-.06em;
}

.comments-list{
  margin-top:38px;
}

.comments-empty{
  padding:28px 0;
  color:#777;
  border-bottom:1px solid #dddcd6;
  font-size:.9rem;
}

.comment{
  padding:25px 0;
  border-bottom:1px solid #dddcd6;
}

.comment-author{
  font-size:.9rem;
  font-weight:800;
}

.comment-date{
  margin-top:4px;
  color:#888;
  font-size:.72rem;
}

.comment p{
  margin:12px 0 0;
  color:#444;
  font-size:.95rem;
  line-height:1.7;
  white-space:pre-wrap;
}

.comment-form{
  margin-top:55px;
}

.comment-form-heading h3{
  margin:0;
  font-size:1.35rem;
  letter-spacing:-.035em;
}

.comment-form-heading p{
  margin:8px 0 25px;
  color:#777;
  font-size:.82rem;
}

.comment-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.comment-form label{
  display:block;
  margin-bottom:18px;
}

.comment-form label > span{
  display:block;
  margin-bottom:8px;
  color:#444;
  font-size:.76rem;
  font-weight:750;
}

.comment-form input,
.comment-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #d3d2cc;
  border-radius:0;
  background:#fff;
  color:#111;
  padding:13px 14px;
  font:inherit;
  outline:none;
  transition:border-color .2s ease,box-shadow .2s ease;
}

.comment-form input:focus,
.comment-form textarea:focus{
  border-color:#111;
  box-shadow:0 0 0 2px rgba(17,17,17,.06);
}

.comment-form textarea{
  min-height:150px;
  resize:vertical;
}

.comment-form button{
  border:0;
  background:#111;
  color:#fff;
  padding:14px 22px;
  font-size:.82rem;
  font-weight:750;
  cursor:pointer;
  transition:opacity .2s ease,transform .2s ease;
}

.comment-form button:hover{
  opacity:.86;
}

.comment-form button:active{
  transform:translateY(1px);
}

.comment-form button:disabled{
  opacity:.5;
  cursor:not-allowed;
}

.comment-message{
  min-height:22px;
  margin:15px 0 0;
  color:#666;
  font-size:.82rem;
  line-height:1.5;
}

.article-state{
  min-height:55vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#777;
}

.article-state h1{
  margin:10px 0 0;
  color:#111;
  font-size:clamp(2.5rem,6vw,5rem);
  line-height:.95;
  letter-spacing:-.07em;
}

.article-state p{
  max-width:520px;
  line-height:1.6;
}

.article-state a{
  margin-top:18px;
  color:#111;
  font-weight:750;
}

@media(max-width:760px){

  .update-article-main{
    width:min(100% - 28px,1080px);
    padding:48px 0 70px;
  }

  .article-header h1{
    font-size:clamp(2.7rem,14vw,4.8rem);
  }

  .article-excerpt{
    font-size:1rem;
  }

  .article-cover{
    margin:45px auto 48px;
    aspect-ratio:4/3;
  }

  .article-content{
    font-size:1.08rem;
    line-height:1.8;
  }

  .article-comments{
    margin-top:70px;
  }

  .comment-fields{
    grid-template-columns:1fr;
    gap:0;
  }
}


/* =========================================================
   Updates — Reactions & Comments
   ========================================================= */

.update-article-page [hidden] {
  display: none !important;
}

.article-reactions {
  margin: 56px 0 72px;
  padding: 22px 0;
  border-top: 1px solid var(--line, #e5e7eb);
  border-bottom: 1px solid var(--line, #e5e7eb);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.reaction-copy {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.reaction-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .55;
}

.reaction-copy strong {
  font-size: 15px;
  font-weight: 600;
}

.reaction-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.reaction-button {
  appearance: none;
  border: 1px solid var(--line, #e5e7eb);
  background: transparent;
  color: inherit;
  min-width: 92px;
  min-height: 42px;
  padding: 8px 13px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease,
    opacity .2s ease;
}

.reaction-button svg {
  width: 17px;
  height: 17px;
  fill: currentColor;
  flex: 0 0 auto;
}

.reaction-button strong {
  font-size: 12px;
  font-weight: 700;
  opacity: .65;
}

.reaction-button:hover {
  transform: translateY(-1px);
  background: rgba(127, 127, 127, .07);
}

.reaction-button.is-active {
  background: rgba(127, 127, 127, .12);
  border-color: currentColor;
}

.reaction-button:disabled {
  cursor: wait;
  opacity: .55;
  transform: none;
}

/* Comments */

.article-comments {
  margin-top: 0;
  padding-top: 8px;
}

.comments-heading {
  margin-bottom: 30px;
}

.comments-heading > span {
  display: block;
  margin-bottom: 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .55;
}

.comments-heading h2 {
  margin: 0;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.05;
  letter-spacing: -.035em;
}

.comments-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 42px;
}

.comment {
  position: relative;
  padding: 20px 22px;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 14px;
  background: rgba(127, 127, 127, .035);
}

.comment-author {
  font-size: 14px;
  font-weight: 700;
  padding-right: 120px;
}

.comment-date {
  position: absolute;
  top: 21px;
  right: 22px;
  font-size: 11px;
  opacity: .5;
}

.comment p {
  margin: 12px 0 0;
  max-width: 720px;
  font-size: 14px;
  line-height: 1.7;
  white-space: pre-wrap;
}

.comments-empty {
  padding: 28px 24px;
  border: 1px dashed var(--line, #d9dce1);
  border-radius: 14px;
  font-size: 14px;
  line-height: 1.6;
  opacity: .7;
}

.comment-form {
  margin-top: 20px;
  padding: 28px;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 16px;
  background: rgba(127, 127, 127, .035);
}

.comment-form-heading {
  margin-bottom: 24px;
}

.comment-form-heading h3 {
  margin: 0 0 6px;
  font-size: 20px;
  letter-spacing: -.02em;
}

.comment-form-heading p {
  margin: 0;
  font-size: 13px;
  opacity: .58;
}

.comment-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.comment-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.comment-form label > span {
  font-size: 12px;
  font-weight: 650;
}

.comment-form input,
.comment-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--line, #dfe2e7);
  border-radius: 10px;
  background: transparent;
  color: inherit;
  padding: 12px 13px;
  font: inherit;
  font-size: 14px;
  outline: none;
  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}

.comment-form textarea {
  resize: vertical;
  min-height: 130px;
  line-height: 1.6;
}

.comment-form input:focus,
.comment-form textarea:focus {
  border-color: currentColor;
  box-shadow: 0 0 0 3px rgba(127, 127, 127, .1);
}

#comment-submit {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 12px 19px;
  background: #111827;
  color: #ffffff;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .2s ease, transform .2s ease;
}

html.dark #comment-submit {
  background: #ffffff;
  color: #111827;
}

#comment-submit:hover {
  opacity: .82;
  transform: translateY(-1px);
}

#comment-submit:disabled {
  opacity: .5;
  cursor: wait;
  transform: none;
}

.comment-message {
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.5;
  opacity: .7;
}

.update-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.update-read-more {
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  opacity: .72;
  transition: opacity .2s ease, transform .2s ease;
}

.update-card-link:hover .update-read-more {
  opacity: 1;
  transform: translateX(2px);
}

@media (max-width: 640px) {
  .article-reactions {
    align-items: flex-start;
    flex-direction: column;
    margin-top: 42px;
    margin-bottom: 52px;
  }

  .reaction-actions {
    width: 100%;
  }

  .reaction-button {
    flex: 1;
  }

  .comment-fields {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .comment-form {
    padding: 21px;
  }

  .comment {
    padding: 18px;
  }

  .comment-date {
    position: static;
    margin-top: 4px;
  }

  .comment-author {
    padding-right: 0;
  }

  .comment p {
    margin-top: 14px;
  }
}

/* Codex Inc Chat Assistant */
#codex-chat{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:99999;
  font-family:inherit;
}

.codex-chat-launcher{
  position:relative;
  width:54px;
  height:54px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:17px;
  background:var(--accent,#111);
  color:#fff;
  cursor:pointer;
  box-shadow:0 12px 32px rgba(0,0,0,.20);
  transition:width .25s ease,transform .2s ease,box-shadow .2s ease;
}

.codex-chat-launcher span{
  display:none;
  white-space:nowrap;
  font-size:13px;
  font-weight:600;
}

.codex-chat-launcher:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(0,0,0,.26);
}

.codex-chat-launcher.is-open{
  transform:none;
}

.codex-chat-launcher svg{
  width:22px;
  height:22px;
  flex:0 0 22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

#codex-chat-panel[hidden]{
  display:none!important;
}

.codex-chat-panel{
  position:absolute;
  right:0;
  bottom:68px;
  width:390px;
  height:600px;
  max-width:calc(100vw - 32px);
  max-height:calc(100vh - 105px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--border,#e5e7eb);
  border-radius:24px;
  background:var(--surface,#fff);
  color:var(--text,#111);
  box-shadow:0 30px 90px rgba(0,0,0,.25);
  transform-origin:bottom right;
  animation:codex-chat-open .22s ease-out;
}

@keyframes codex-chat-open{
  from{
    opacity:0;
    transform:translateY(10px) scale(.97);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.codex-chat-header{
  min-height:76px;
  padding:15px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid var(--border,#e5e7eb);
  background:var(--surface,#fff);
}

.codex-chat-brand{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}

.codex-chat-avatar{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--accent,#111);
  color:#fff;
  font-size:16px;
  font-weight:700;
}

.codex-chat-header strong{
  display:block;
  font-size:14px;
  line-height:1.35;
}

.codex-chat-header span{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:3px;
  font-size:11px;
  opacity:.58;
}

.codex-chat-header span i{
  width:6px;
  height:6px;
  display:inline-block;
  border-radius:50%;
  background:#35a853;
}

.codex-chat-close{
  width:36px;
  height:36px;
  padding:0;
  flex:0 0 36px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:inherit;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease;
}

.codex-chat-close:hover{
  background:rgba(127,127,127,.09);
  border-color:var(--border,#e5e7eb);
}

.codex-chat-close svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
}

.codex-chat-messages{
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding:20px 17px;
  scroll-behavior:smooth;
  background:var(--surface,#fff);
}

.codex-chat-message{
  display:flex;
  margin:0 0 14px;
}

.codex-chat-message-user{
  justify-content:flex-end;
}

.codex-chat-message-assistant{
  justify-content:flex-start;
}

.codex-chat-bubble{
  max-width:84%;
  padding:11px 14px;
  border-radius:16px;
  font-size:13px;
  line-height:1.6;
  overflow-wrap:anywhere;
}

.codex-chat-message-assistant .codex-chat-bubble{
  background:rgba(127,127,127,.085);
  border-bottom-left-radius:5px;
}

.codex-chat-message-user .codex-chat-bubble{
  background:var(--accent,#111);
  color:#fff;
  border-bottom-right-radius:5px;
}

.codex-chat-bubble p{
  margin:0 0 8px;
}

.codex-chat-bubble p:last-child{
  margin-bottom:0;
}

.codex-chat-bubble ul{
  margin:7px 0 5px;
  padding-left:19px;
}

.codex-chat-bubble li{
  margin:4px 0;
}

.codex-chat-bubble strong{
  font-weight:700;
}

.codex-chat-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  margin:10px 0 4px;
  padding:11px 16px;
  border:1px solid rgba(37,99,235,.35);
  border-radius:12px;
  background:#2563eb;
  color:#fff;
  font:inherit;
  font-weight:600;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 5px 14px rgba(37,99,235,.18);
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}

.codex-chat-nav:hover{
  background:#1d4ed8;
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(37,99,235,.25);
}

.codex-chat-nav:active{
  transform:translateY(0);
}

.codex-chat-nav:focus-visible{
  outline:3px solid rgba(37,99,235,.28);
  outline-offset:2px;
}


.codex-chat-nav:hover{
  background:rgba(127,127,127,.09);
  transform:translateY(-1px);
}

.codex-chat-external{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}

.codex-chat-bubble code{
  padding:2px 5px;
  border-radius:5px;
  background:rgba(127,127,127,.12);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.92em;
}

.codex-chat-form{
  display:flex;
  align-items:flex-end;
  gap:8px;
  padding:11px 12px;
  border-top:1px solid var(--border,#e5e7eb);
  background:var(--surface,#fff);
}

.codex-chat-input{
  flex:1;
  min-width:0;
  min-height:43px;
  max-height:120px;
  resize:none;
  padding:11px 12px;
  border:1px solid var(--border,#e5e7eb);
  border-radius:13px;
  outline:none;
  background:transparent;
  color:inherit;
  font:inherit;
  font-size:13px;
  line-height:1.4;
  transition:border-color .18s ease,box-shadow .18s ease;
}

.codex-chat-input:focus{
  border-color:var(--accent,#111);
  box-shadow:0 0 0 3px rgba(127,127,127,.10);
}

.codex-chat-send{
  width:43px;
  height:43px;
  flex:0 0 43px;
  border:0;
  border-radius:13px;
  background:var(--accent,#111);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:transform .18s ease,opacity .18s ease;
}

.codex-chat-send:hover{
  transform:translateY(-1px);
  opacity:.9;
}

.codex-chat-send svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.codex-chat-footer{
  padding:0 14px 9px;
  display:flex;
  justify-content:center;
  gap:6px;
  font-size:9px;
  opacity:.38;
}

.codex-chat-footer span+span::before{
  content:"•";
  margin-right:6px;
}

.codex-chat-typing{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:48px;
}

.codex-chat-typing span{
  width:5px;
  height:5px;
  border-radius:50%;
  background:currentColor;
  opacity:.45;
  animation:codex-chat-bounce 1.2s infinite ease-in-out;
}

.codex-chat-typing span:nth-child(2){
  animation-delay:.15s;
}

.codex-chat-typing span:nth-child(3){
  animation-delay:.3s;
}

@keyframes codex-chat-bounce{
  0%,60%,100%{transform:translateY(0);opacity:.35}
  30%{transform:translateY(-3px);opacity:.9}
}

@media (min-width:601px){
  .codex-chat-launcher:hover{
    width:170px;
  }

  .codex-chat-launcher:hover span{
    display:block;
  }
}

@media (max-width:600px){
  #codex-chat{
    right:16px;
    bottom:16px;
  }

  .codex-chat-launcher{
    width:54px;
    height:54px;
    border-radius:16px;
  }

  .codex-chat-launcher span{
    display:none;
  }

  .codex-chat-panel{
    position:fixed;
    right:16px;
    bottom:82px;
    width:calc(100vw - 32px);
    height:min(620px,calc(100vh - 98px));
    max-height:calc(100vh - 98px);
    border-radius:21px;
  }
}

@media (prefers-reduced-motion:reduce){
  .codex-chat-launcher,
  .codex-chat-panel,
  .codex-chat-typing span{
    animation:none;
    transition:none;
  }
}

/* Homepage image carousel */
.home-gallery-section{
  padding:10px 0 70px;
  overflow:hidden;
}

.home-gallery{
  width:100%;
  position:relative;
}

.home-gallery-viewport{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:24px;
  touch-action:pan-y;
}

.home-gallery-track{
  display:flex;
  gap:18px;
  width:max-content;
  transition:transform 500ms ease;
  will-change:transform;
}

.home-gallery-card{
  flex:0 0 clamp(280px,31vw,420px);
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius:20px;
  background:var(--surface,#f3f4f6);
  box-shadow:0 14px 35px rgba(0,0,0,.10);
}

.home-gallery-card img,
.home-gallery-single img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  user-select:none;
  -webkit-user-drag:none;
}

.home-gallery-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(15,23,42,.72);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:transform .2s ease,background .2s ease;
}

.home-gallery-arrow:hover{
  transform:translateY(-50%) scale(1.06);
  background:rgba(15,23,42,.9);
}

.home-gallery-arrow:active{
  transform:translateY(-50%) scale(.96);
}

.home-gallery-arrow svg{
  width:22px;
  height:22px;
}

.home-gallery-prev{
  left:16px;
}

.home-gallery-next{
  right:16px;
}

.home-gallery-single{
  width:100%;
  max-height:620px;
  aspect-ratio:16/7;
  overflow:hidden;
  border-radius:24px;
  box-shadow:0 14px 35px rgba(0,0,0,.10);
}

@media (max-width:700px){
  .home-gallery-section{
    padding:0 0 50px;
  }

  .home-gallery-track{
    gap:12px;
  }

  .home-gallery-card{
    flex-basis:82vw;
    border-radius:17px;
  }

  .home-gallery-arrow{
    width:40px;
    height:40px;
  }

  .home-gallery-prev{
    left:10px;
  }

  .home-gallery-next{
    right:10px;
  }

  .home-gallery-single{
    aspect-ratio:4/3;
    border-radius:18px;
  }
}

@media (prefers-reduced-motion:reduce){
  .home-gallery-track{
    transition:none!important;
  }

  .home-gallery-arrow{
    transition:none;
  }
}

.password-field{
  position:relative;
}

.password-field input{
  padding-right:46px;
}

.password-toggle{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border:0;
  background:transparent;
  color:#667085;
  cursor:pointer;
  display:grid;
  place-items:center;
  border-radius:6px;
}

.password-toggle:hover{
  background:#f2f4f7;
}

.password-toggle svg{
  width:19px;
  height:19px;
  display:block;
}

.password-strength{
  margin-top:9px;
  font-size:12px;
  font-weight:700;
}

.password-requirements{
  margin:10px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:5px;
  font-size:12px;
  color:#667085;
}

.password-requirements li{
  display:flex;
  align-items:center;
  gap:7px;
}

.password-requirements li::before{
  content:'○';
  font-size:13px;
}

.password-requirements li.valid{
  color:#067647;
}

.password-requirements li.valid::before{
  content:'✓';
}

html.dark .password-toggle{
  color:#98a2b3;
}

html.dark .password-toggle:hover{
  background:#344054;
}

html.dark .password-requirements{
  color:#98a2b3;
}

html.dark .password-requirements li.valid{
  color:#6ce9a6;
}

/* =========================================================
   CODEX INC — CRYSTAL GLASS + AQUA GRADIENT DESIGN SYSTEM
   Sitewide visual layer — existing functionality preserved
   ========================================================= */

:root {
  --crystal-aqua: #16c6c9;
  --crystal-blue: #3279f6;
  --crystal-teal: #08aeb4;
  --crystal-glass: rgba(255, 255, 255, 0.76);
  --crystal-border: rgba(75, 190, 208, 0.25);
  --crystal-shadow: 0 16px 45px rgba(37, 133, 165, 0.11);
  --crystal-radius: 22px;
}

html {
  scroll-behavior: smooth;
}

body {
  background:
    radial-gradient(ellipse at 8% 5%, rgba(107, 229, 226, 0.16), transparent 34%),
    radial-gradient(ellipse at 92% 20%, rgba(95, 168, 255, 0.13), transparent 32%),
    var(--bg);
}

.site-header {
  background: rgba(255, 255, 255, 0.78);
  border-bottom: 1px solid var(--crystal-border);
  backdrop-filter: blur(22px) saturate(155%);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
  box-shadow: 0 5px 24px rgba(35, 117, 145, 0.045);
}

.brand {
  letter-spacing: -0.035em;
}

.navlinks a {
  transition: color 180ms ease, background 180ms ease;
  border-radius: 12px;
}

.navlinks a:hover {
  background: rgba(36, 190, 199, 0.09);
}

.hero {
  position: relative;
  isolation: isolate;
}

.hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(68vw, 540px);
  height: min(68vw, 540px);
  top: -100px;
  right: -90px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(68, 218, 217, 0.16),
    rgba(83, 165, 255, 0.07) 48%,
    transparent 72%
  );
  pointer-events: none;
}

.card,
.contact-box,
.notice,
.social {
  border: 1px solid var(--crystal-border);
  border-radius: var(--crystal-radius);
  box-shadow: var(--crystal-shadow);
  transition: border-color 200ms ease, box-shadow 200ms ease,
              transform 200ms ease;
}

.card:hover {
  border-color: rgba(22, 198, 201, 0.42);
  box-shadow: 0 20px 48px rgba(37, 133, 165, 0.15);
}

.btn {
  border-radius: 13px;
  transition: transform 180ms ease, box-shadow 180ms ease,
              filter 180ms ease;
}

.btn:hover {
  filter: saturate(1.08);
  box-shadow: 0 8px 22px rgba(50, 121, 246, 0.2);
}

.btn:active {
  transform: translateY(1px);
}

.form input,
.form textarea,
.form select {
  border-radius: 13px;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.form input:focus,
.form textarea:focus,
.form select:focus {
  outline: none;
  border-color: var(--crystal-aqua);
  box-shadow: 0 0 0 4px rgba(22, 198, 201, 0.13);
}

.footer {
  border-top-color: var(--crystal-border);
}

::selection {
  color: #073b49;
  background: rgba(76, 220, 216, 0.32);
}

/* Dark mode: preserve the existing theme, with aqua glass accents. */
html.dark body {
  background:
    radial-gradient(ellipse at 8% 5%, rgba(22, 198, 201, 0.105), transparent 34%),
    radial-gradient(ellipse at 92% 20%, rgba(50, 121, 246, 0.11), transparent 32%),
    var(--bg);
}

html.dark .site-header {
  background: rgba(16, 24, 40, 0.82);
  border-bottom-color: rgba(76, 205, 211, 0.19);
}

html.dark .card,
html.dark .contact-box,
html.dark .notice,
html.dark .social {
  border-color: rgba(76, 205, 211, 0.2);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.13);
}

html.dark .card:hover {
  border-color: rgba(76, 205, 211, 0.42);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.2);
}

html.dark .navlinks a:hover {
  background: rgba(76, 205, 211, 0.1);
}

html.dark .form input:focus,
html.dark .form textarea:focus,
html.dark .form select:focus {
  border-color: #4bd5d4;
  box-shadow: 0 0 0 4px rgba(75, 213, 212, 0.13);
}

/* Respect reduced-motion accessibility preferences. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .card,
  .btn,
  .navlinks a,
  .form input,
  .form textarea,
  .form select {
    transition: none;
  }
}


/* =========================================================
   CODEX INC — RESPONSIVE LAYOUT SYSTEM
   Phones · Tablets · Laptops · Desktop displays
   ========================================================= */

html {
  width: 100%;
  min-width: 0;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

img,
video {
  height: auto;
}

.wrap {
  width: min(100% - 40px, var(--max, 1160px));
  margin-inline: auto;
}

main,
section,
header,
footer,
.page,
.wrap,
.nav,
.grid,
.split,
.work-hero {
  min-width: 0;
}

.grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 24px);
}

.service-list,
.experience-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 24px);
}

.card,
.contact-box,
.notice,
.social,
.form,
.detail {
  min-width: 0;
  max-width: 100%;
}

.card,
.contact-box,
.notice,
.social {
  overflow-wrap: anywhere;
}

.form input,
.form textarea,
.form select,
button,
.btn {
  max-width: 100%;
}

.form input,
.form textarea,
.form select {
  min-width: 0;
  box-sizing: border-box;
}

.form textarea {
  resize: vertical;
}

.work-cover,
.profile-pic,
.profile-placeholder {
  max-width: 100%;
}

.work-cover,
.profile-pic {
  object-fit: cover;
}

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

pre,
code {
  max-width: 100%;
  overflow-wrap: anywhere;
}

pre {
  overflow-x: auto;
}

@media (min-width: 1440px) {
  :root {
    --max: 1240px;
  }

  .wrap {
    width: min(100% - 64px, var(--max));
  }

  .hero h1 {
    max-width: 980px;
    font-size: clamp(3rem, 4.5vw, 5rem);
    line-height: 1.08;
  }
}

@media (max-width: 1100px) {
  .wrap {
    width: min(100% - 36px, var(--max, 1160px));
  }

  .nav {
    flex-wrap: wrap;
    gap: 14px;
  }

  .navlinks {
    flex-wrap: wrap;
    gap: 8px 14px;
  }

  .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .wrap {
    width: calc(100% - 32px);
  }

  .nav {
    align-items: flex-start;
    gap: 12px;
  }

  .brand {
    flex: 1 1 auto;
    min-width: 0;
  }

  .nav-actions {
    flex: 0 0 auto;
    gap: 8px;
  }

  .navlinks {
    order: 3;
    flex: 1 0 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
  }

  .navlinks a {
    padding: 7px 9px;
    font-size: 0.9rem;
  }

  .hero {
    padding-block: clamp(48px, 10vw, 76px);
  }

  .hero h1,
  h1 {
    font-size: clamp(2rem, 7vw, 3.1rem);
    line-height: 1.13;
    overflow-wrap: anywhere;
  }

  h2 {
    font-size: clamp(1.5rem, 5vw, 2.2rem);
    line-height: 1.2;
  }

  .lead {
    font-size: clamp(1rem, 2.5vw, 1.12rem);
    line-height: 1.7;
  }

  .grid,
  .service-list,
  .experience-list,
  .split {
    grid-template-columns: minmax(0, 1fr);
  }

  .work-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .card,
  .contact-box,
  .social {
    padding: clamp(16px, 4vw, 24px);
    border-radius: 19px;
  }

  .actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .actions .btn {
    max-width: 100%;
  }

  .form input,
  .form textarea,
  .form select {
    width: 100%;
    font-size: 16px;
  }

  .section {
    padding-block: clamp(32px, 7vw, 56px);
  }

  .footer {
    padding-inline: 16px;
  }
}

@media (max-width: 480px) {
  .wrap {
    width: calc(100% - 24px);
  }

  .nav {
    gap: 10px;
  }

  .brand {
    font-size: 1.1rem;
  }

  .nav-actions {
    gap: 6px;
  }

  .theme-toggle {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
  }

  .nav-actions > .btn {
    padding: 10px 12px;
    font-size: 0.84rem;
    white-space: normal;
    text-align: center;
  }

  .navlinks {
    gap: 4px;
  }

  .navlinks a {
    padding: 7px 8px;
    font-size: 0.84rem;
  }

  .hero h1,
  h1 {
    font-size: clamp(1.85rem, 8vw, 2.5rem);
  }

  .grid,
  .service-list,
  .experience-list,
  .skills-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .actions {
    align-items: stretch;
    flex-direction: column;
  }

  .actions .btn {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }

  .btn {
    min-height: 42px;
    justify-content: center;
  }

  .card,
  .contact-box,
  .social {
    padding: 16px;
    border-radius: 17px;
  }

  .form input,
  .form textarea,
  .form select {
    padding: 12px;
  }
}

@media (max-width: 360px) {
  .wrap {
    width: calc(100% - 20px);
  }

  .nav-actions > .btn {
    padding: 9px 10px;
    font-size: 0.78rem;
  }

  .navlinks a {
    padding: 6px;
    font-size: 0.8rem;
  }

  .hero h1,
  h1 {
    font-size: 1.8rem;
  }
}

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



/* CODEX MOBILE NAVIGATION FIX */
.mobile-menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  padding: 10px;
  border: 1px solid var(--crystal-border, var(--line));
  border-radius: 12px;
  background: var(--crystal-glass, var(--bg));
  color: var(--ink);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
}
.mobile-menu-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform .18s ease, opacity .18s ease;
}
.mobile-menu-toggle:focus-visible {
  outline: 3px solid var(--crystal-aqua, #16c6c9);
  outline-offset: 3px;
}
@media (max-width: 760px) {
  .nav {
    position: relative;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding-block: 12px;
  }
  .mobile-menu-toggle {
    display: inline-flex;
  }
  .navlinks {
    display: none !important;
    order: 4;
    flex: 1 0 100%;
    width: 100%;
    padding: 10px;
    margin: 0;
    border: 1px solid var(--crystal-border, var(--line));
    border-radius: 16px;
    background: var(--crystal-glass, var(--bg));
    box-shadow: var(--crystal-shadow, 0 12px 30px rgba(0,0,0,.08));
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }
  .nav.nav-menu-open .navlinks {
    display: flex !important;
  }
  .navlinks a {
    display: block;
    width: 100%;
    padding: 11px 12px;
    border-radius: 10px;
    color: var(--ink);
  }
  .nav-actions {
    margin-left: auto;
    flex-wrap: nowrap;
  }
  .nav.nav-menu-open .mobile-menu-toggle span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .nav.nav-menu-open .mobile-menu-toggle span:nth-child(2) {
    opacity: 0;
  }
  .nav.nav-menu-open .mobile-menu-toggle span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }
}
@media (max-width: 360px) {
  .nav-actions > .btn {
    max-width: 112px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-menu-toggle span {
    transition: none;
  }
}

/* CODEX INC — AQUA GLASS AND NAVIGATION CORRECTIONS */
:root {
  --crystal-aqua: #16c6c9;
  --crystal-blue: #3279f6;
  --crystal-glass: rgba(225, 250, 252, 0.88);
  --crystal-border: rgba(22, 174, 190, 0.42);
  --crystal-shadow: 0 16px 42px rgba(27, 135, 160, 0.14);
}

body {
  background:
    radial-gradient(ellipse at 7% 4%, rgba(22, 198, 201, 0.23), transparent 35%),
    radial-gradient(ellipse at 94% 17%, rgba(50, 121, 246, 0.17), transparent 34%),
    var(--bg);
}

.card,
.contact-box,
.notice,
.social,
.form,
.country-menu,
.navlinks {
  background-image: linear-gradient(
    135deg,
    rgba(86, 224, 222, 0.13),
    rgba(75, 155, 255, 0.08) 52%,
    rgba(255, 255, 255, 0.32)
  );
  border-color: var(--crystal-border);
}

.site-header {
  background: rgba(229, 250, 252, 0.9);
  border-bottom-color: rgba(22, 174, 190, 0.35);
}

.navlinks a {
  color: #173b50;
  font-weight: 600;
  text-shadow: none;
}

.navlinks a:hover,
.navlinks a:focus-visible {
  color: #075e70;
  background: rgba(22, 198, 201, 0.18);
}

.mobile-menu-toggle {
  color: #173b50;
  background: linear-gradient(135deg, #e5fbfc, #dceeff);
  border-color: rgba(22, 174, 190, 0.5);
}

html.dark body {
  background:
    radial-gradient(ellipse at 7% 4%, rgba(22, 198, 201, 0.17), transparent 35%),
    radial-gradient(ellipse at 94% 17%, rgba(50, 121, 246, 0.15), transparent 34%),
    var(--bg);
}

html.dark .site-header {
  background: rgba(13, 25, 42, 0.96);
  border-bottom-color: rgba(76, 205, 211, 0.32);
}

html.dark .navlinks a,
html.dark .navlinks a:visited {
  color: #f2fbff;
  opacity: 1;
  text-shadow: none;
}

html.dark .navlinks a:hover,
html.dark .navlinks a:focus-visible {
  color: #8ff5f0;
  background: rgba(76, 205, 211, 0.16);
}

html.dark .mobile-menu-toggle {
  color: #f2fbff;
  background: linear-gradient(135deg, #17334a, #172a48);
  border-color: rgba(76, 205, 211, 0.45);
}

html.dark .card,
html.dark .contact-box,
html.dark .notice,
html.dark .social,
html.dark .form,
html.dark .country-menu,
html.dark .navlinks {
  background-image: linear-gradient(
    135deg,
    rgba(22, 198, 201, 0.13),
    rgba(50, 121, 246, 0.11) 52%,
    rgba(29, 41, 57, 0.96)
  );
  border-color: rgba(76, 205, 211, 0.34);
}

html.dark .navlinks a,
html.dark .navlinks a:hover {
  filter: none;
  -webkit-filter: none;
}

/* Keep the mobile menu closed until its button is activated. */
@media (max-width: 760px) {
  .navlinks {
    display: none !important;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    flex: 1 0 100%;
    order: 4;
    margin: 0;
    padding: 10px;
    border: 1px solid var(--crystal-border);
    border-radius: 16px;
  }

  .nav.nav-menu-open .navlinks {
    display: flex !important;
  }

  .navlinks a {
    display: block;
    width: 100%;
    padding: 11px 12px;
    line-height: 1.5;
  }
}
