/* ENRYCH Design System 2.0 — P5.01–P5.05, P5.08–P5.15, P5.20 */
:root{
  /* P5.01 brand/material tokens */
  --en-black-1000:#030303;
  --en-black-950:#070707;
  --en-black-900:#0b0b0b;
  --en-black-850:#11110f;
  --en-ivory-50:#fffdf7;
  --en-ivory-100:#f7f2e8;
  --en-ivory-200:#e8dfcf;
  --en-gold-300:#f3dc92;
  --en-gold-400:#e2c66b;
  --en-gold-500:#cfa84b;
  --en-gold-600:#9b7628;
  --en-red-500:#e21b2d;
  --en-red-600:#b70f20;
  --en-green-500:#2fa66d;
  --en-amber-500:#d39a32;
  --en-blue-500:#2678df;
  --en-surface:#090909;
  --en-surface-raised:#10100f;
  --en-surface-soft:#151410;
  --en-text:#f8f4eb;
  --en-text-soft:#c4beb1;
  --en-text-muted:#928d84;
  --en-line:rgba(226,198,107,.20);
  --en-line-strong:rgba(226,198,107,.43);
  --en-focus:#f3dc92;
  --en-accent:var(--en-gold-400);
  --en-action:var(--en-red-500);

  /* P5.02 typography */
  --en-font-sans:Arial,"Helvetica Neue",Helvetica,system-ui,-apple-system,sans-serif;
  --en-font-display:Georgia,"Times New Roman",serif;
  --en-font-mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --en-type-xs:.6875rem;
  --en-type-sm:.8125rem;
  --en-type-md:1rem;
  --en-type-lg:1.1875rem;
  --en-type-xl:clamp(1.45rem,2vw,2rem);
  --en-type-2xl:clamp(2.1rem,4vw,4rem);
  --en-type-hero:clamp(3.25rem,8vw,7.75rem);
  --en-leading-tight:.94;
  --en-leading-copy:1.62;

  /* P5.03 layout */
  --en-space-1:.25rem;
  --en-space-2:.5rem;
  --en-space-3:.75rem;
  --en-space-4:1rem;
  --en-space-5:1.5rem;
  --en-space-6:2rem;
  --en-space-7:3rem;
  --en-space-8:4.5rem;
  --en-space-9:6.5rem;
  --en-gutter:clamp(18px,3vw,52px);
  --en-container:1280px;
  --en-container-wide:1480px;
  --en-reading:760px;

  /* P5.04 material geometry */
  --en-radius-xs:4px;
  --en-radius-sm:8px;
  --en-radius-md:12px;
  --en-radius-lg:18px;
  --en-shadow-1:0 12px 34px rgba(0,0,0,.22);
  --en-shadow-2:0 28px 80px rgba(0,0,0,.38);

  /* P5.05 motion */
  --en-ease-standard:cubic-bezier(.2,.75,.25,1);
  --en-ease-exit:cubic-bezier(.4,0,1,1);
  --en-duration-fast:140ms;
  --en-duration-base:220ms;
  --en-duration-slow:420ms;
}

html[data-en-theme="light"]{
  --en-surface:#f8f4eb;
  --en-surface-raised:#fffdf8;
  --en-surface-soft:#ede5d8;
  --en-text:#17140f;
  --en-text-soft:#50493e;
  --en-text-muted:#746c61;
  --en-line:rgba(96,72,24,.19);
  --en-line-strong:rgba(130,96,29,.42);
  --en-focus:#8d671b;
}

.en-ds-v2, .en-ds-v2 button, .en-ds-v2 input, .en-ds-v2 select, .en-ds-v2 textarea{font-family:var(--en-font-sans)}
.en-container{width:min(calc(100% - (var(--en-gutter) * 2)),var(--en-container));margin-inline:auto}
.en-container--wide{max-width:var(--en-container-wide)}
.en-reading{max-width:var(--en-reading)}
.en-kicker{margin:0 0 var(--en-space-3);color:var(--en-accent);font-size:var(--en-type-xs);font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.en-display{margin:0;font-family:var(--en-font-display);font-size:var(--en-type-hero);font-weight:400;line-height:var(--en-leading-tight);letter-spacing:-.045em}
.en-title{margin:0;font-family:var(--en-font-display);font-size:var(--en-type-2xl);font-weight:400;line-height:1;letter-spacing:-.035em}
.en-copy{color:var(--en-text-soft);font-size:var(--en-type-md);line-height:var(--en-leading-copy)}
.en-rule{height:1px;border:0;background:var(--en-line)}

/* P5.08 button/CTA system: rectangular, restrained, no decorative pill default. */
.en-btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:.72rem 1.05rem;border:1px solid transparent;border-radius:var(--en-radius-sm);font-size:.75rem;font-weight:850;line-height:1;letter-spacing:.075em;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:transform var(--en-duration-fast) var(--en-ease-standard),background var(--en-duration-base) var(--en-ease-standard),border-color var(--en-duration-base) var(--en-ease-standard),color var(--en-duration-base) var(--en-ease-standard)}
.en-btn:hover{transform:translateY(-1px)}
.en-btn:active{transform:none}
.en-btn:focus-visible{outline:2px solid var(--en-focus);outline-offset:3px}
.en-btn--primary{background:var(--en-action);border-color:var(--en-action);color:#fff}
.en-btn--primary:hover{background:var(--en-red-600);border-color:var(--en-red-600);color:#fff}
.en-btn--gold{background:var(--en-gold-400);border-color:var(--en-gold-400);color:#171109}
.en-btn--outline{background:transparent;border-color:var(--en-line-strong);color:var(--en-text)}
.en-btn--quiet{background:transparent;border-color:transparent;color:var(--en-text-soft)}
.en-btn[disabled],.en-btn[aria-disabled="true"]{opacity:.45;pointer-events:none}

/* P5.09 forms */
.en-field{display:grid;gap:.5rem}
.en-field label,.en-label{color:var(--en-text);font-size:.75rem;font-weight:800;letter-spacing:.035em}
.en-input,.en-select,.en-textarea,.en-ds-v2 input[type="text"].en-control,.en-ds-v2 input[type="email"].en-control,.en-ds-v2 input[type="password"].en-control{width:100%;min-height:48px;padding:.75rem .9rem;border:1px solid var(--en-line);border-radius:var(--en-radius-sm);background:var(--en-surface-raised);color:var(--en-text);font-size:.95rem;box-shadow:none;transition:border-color var(--en-duration-fast),background var(--en-duration-fast)}
.en-textarea{min-height:132px;resize:vertical}
.en-input:focus,.en-select:focus,.en-textarea:focus,.en-control:focus{outline:2px solid var(--en-focus);outline-offset:1px;border-color:transparent}
.en-field__help{margin:0;color:var(--en-text-muted);font-size:.75rem;line-height:1.45}
.en-field__error{margin:0;color:#ff6b76;font-size:.75rem;font-weight:700}
.en-input[aria-invalid="true"],.en-select[aria-invalid="true"],.en-textarea[aria-invalid="true"],.en-control[aria-invalid="true"]{border-color:#d9414f}

/* P5.10 stats/progress/tracker */
.en-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:1px solid var(--en-line);border-left:1px solid var(--en-line)}
.en-stat{min-height:112px;padding:1rem;border-right:1px solid var(--en-line);border-bottom:1px solid var(--en-line);background:var(--en-surface)}
.en-stat__value{display:block;color:var(--en-text);font-family:var(--en-font-display);font-size:clamp(1.65rem,3vw,2.6rem);font-weight:400;line-height:1}
.en-stat__label{display:block;margin-top:.55rem;color:var(--en-text-muted);font-size:.69rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.en-progress{height:7px;overflow:hidden;border:1px solid var(--en-line);background:var(--en-surface-soft)}
.en-progress>span{display:block;height:100%;width:var(--en-progress,0%);max-width:100%;background:var(--en-accent)}
.en-tracker{position:relative;display:grid;gap:0;border-left:1px solid var(--en-line);margin-left:.45rem}
.en-tracker__item{position:relative;padding:0 0 1.5rem 1.45rem}
.en-tracker__item::before{content:"";position:absolute;left:-5px;top:.3rem;width:9px;height:9px;border:2px solid var(--en-accent);background:var(--en-surface)}
.en-tracker__item[aria-current="step"]::before{background:var(--en-accent)}

/* P5.11 data/table */
.en-data{width:100%;overflow:auto;border:1px solid var(--en-line);background:var(--en-surface)}
.en-table{width:100%;border-collapse:collapse;min-width:660px;color:var(--en-text);font-size:.82rem}
.en-table th,.en-table td{padding:.85rem 1rem;border-bottom:1px solid var(--en-line);text-align:left;vertical-align:middle}
.en-table th{color:var(--en-text-muted);font-size:.65rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;background:var(--en-surface-raised)}
.en-table tbody tr:last-child td{border-bottom:0}
.en-table tbody tr:hover td{background:rgba(226,198,107,.035)}

/* P5.12 modal/toast/alert */
.en-modal[hidden]{display:none!important}
.en-modal{position:fixed;z-index:100050;inset:0;display:grid;place-items:center;padding:var(--en-gutter);background:rgba(0,0,0,.72)}
.en-modal__panel{width:min(620px,100%);max-height:min(82vh,780px);overflow:auto;padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--en-line-strong);border-radius:var(--en-radius-md);background:var(--en-surface-raised);box-shadow:var(--en-shadow-2)}
.en-toast-region{position:fixed;z-index:100060;right:1rem;bottom:1rem;display:grid;gap:.55rem;width:min(380px,calc(100vw - 2rem));pointer-events:none}
.en-toast{padding:.9rem 1rem;border:1px solid var(--en-line-strong);border-radius:var(--en-radius-sm);background:var(--en-surface-raised);color:var(--en-text);box-shadow:var(--en-shadow-1);pointer-events:auto}
.en-alert{display:grid;grid-template-columns:auto 1fr;gap:.75rem;padding:.9rem 1rem;border-left:3px solid var(--en-accent);background:var(--en-surface-raised);color:var(--en-text)}
.en-alert--danger{border-left-color:#d9414f}.en-alert--success{border-left-color:var(--en-green-500)}.en-alert--warning{border-left-color:var(--en-amber-500)}

/* P5.13 loading/skeleton/empty/error */
.en-skeleton{position:relative;overflow:hidden;min-height:1rem;background:var(--en-surface-soft)}
.en-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:en-skeleton 1.4s linear infinite}
@keyframes en-skeleton{to{transform:translateX(100%)}}
.en-state{max-width:680px;padding:clamp(1.5rem,4vw,3rem);border-top:1px solid var(--en-line);border-bottom:1px solid var(--en-line);text-align:left}
.en-state__code{color:var(--en-accent);font-family:var(--en-font-mono);font-size:.72rem}
.en-state h2{margin:.6rem 0;font-family:var(--en-font-display);font-size:clamp(1.8rem,4vw,3.4rem);font-weight:400}
.en-state p{margin:0;color:var(--en-text-soft);line-height:1.6}

/* P5.14 navigation/page transition primitives */
.en-page{transition:opacity var(--en-duration-base) var(--en-ease-standard)}
html.en-nav-leaving .en-page{opacity:.55}
html.en-nav-leaving::after{content:"";position:fixed;z-index:1000000;inset:0;pointer-events:none;background:#050505;opacity:.18}

/* P5.15 reusable media/video frame */
.en-media{position:relative;overflow:hidden;border:1px solid var(--en-line);border-radius:var(--en-radius-sm);background:#020202}
.en-media--16x9{aspect-ratio:16/9}.en-media--4x5{aspect-ratio:4/5}.en-media--square{aspect-ratio:1}
.en-media img,.en-media video,.en-media iframe{display:block;width:100%;height:100%;object-fit:cover;border:0}
.en-media__caption{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;color:var(--en-text-muted);font-size:.72rem}

/* P5.20 hard anti-slop constraints for new Design System markup. */
.en-ds-v2 [class^="en-"][class*="card"]{border-radius:var(--en-radius-md)}
.en-ds-v2 .en-pill{border-radius:999px} /* pills require an explicit semantic class */
.en-ds-v2 .en-gradient-text{color:inherit;background:none!important;-webkit-text-fill-color:currentColor!important}

@media (max-width:720px){
  :root{--en-gutter:18px;--en-space-8:3.4rem;--en-space-9:4.6rem}
  .en-display{font-size:clamp(3rem,17vw,5.8rem)}
  .en-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (prefers-reduced-motion:reduce){
  :root{--en-duration-fast:1ms;--en-duration-base:1ms;--en-duration-slow:1ms}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
  .en-skeleton::after{display:none}
}
