:root{
  --bg:#071219; --bg2:#0b1d27; --panel:#102934; --panel2:#143743; --line:#28505d;
  --text:#eef6f8; --muted:#9fb3bb; --accent:#ffd23f; --cyan:#61c0d4; --green:#54d59b;
  --red:#ff716a; --violet:#a58cf5; --ink:#10191d; --shadow:0 28px 70px rgba(0,0,0,.38);
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif;overflow:hidden}
button{font:inherit}
button:focus-visible{outline:4px solid #fff;outline-offset:3px}
.presentation-root{position:fixed;inset:0;background:
 radial-gradient(circle at 14% 16%,rgba(97,192,212,.12),transparent 28%),
 radial-gradient(circle at 84% 22%,rgba(255,210,63,.08),transparent 24%),
 linear-gradient(145deg,#071219,#0a1921 58%,#071219);touch-action:manipulation;user-select:none}
.presentation-root:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px}
.top-progress{position:absolute;z-index:50;left:0;right:0;top:0;height:7px;background:#0f2731}
.top-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--accent));transition:width .35s ease;border-radius:0 5px 5px 0}
.top-ribbon{position:absolute;z-index:45;top:24px;left:clamp(28px,3vw,62px);right:clamp(28px,3vw,62px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;font-size:clamp(15px,.9vw,21px);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.top-ribbon>span{font-weight:900;color:var(--accent)}.top-ribbon>b{text-align:center;color:var(--text);font-weight:700}.top-ribbon>small{font-size:inherit;color:var(--cyan)}
.slides-stage{position:absolute;inset:0}
.slide{position:absolute;inset:0;display:none;padding:clamp(72px,6vw,120px) clamp(40px,5vw,100px) clamp(112px,8vw,150px);overflow:hidden}
.slide.active{display:block;animation:slideIn .45s cubic-bezier(.2,.72,.2,1)}
@keyframes slideIn{from{opacity:0;transform:translateY(18px) scale(.995)}to{opacity:1;transform:none}}
.slide-inner{height:100%;max-width:1760px;margin:0 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}
.slide-head{display:flex;gap:24px;align-items:flex-end;border-bottom:2px solid rgba(255,255,255,.09);padding-bottom:18px;margin-bottom:26px;flex:none}
.slide-head>span{font-size:clamp(24px,1.5vw,34px);font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}.slide-head h2{margin:0;font-size:clamp(38px,3.05vw,70px);line-height:1.02;letter-spacing:-.028em;font-weight:900}
.eyebrow{font-size:clamp(16px,1.05vw,24px);font-weight:900;letter-spacing:.12em;color:var(--accent);text-transform:uppercase}
.lead{font-size:clamp(24px,1.65vw,38px);line-height:1.3;color:#cce0e6;max-width:34ch}

/* cover */
.cover-grid{display:grid;grid-template-columns:1.4fr .7fr;gap:6vw;align-items:center}
.cover-copy h1{font-size:clamp(58px,5.8vw,126px);line-height:.92;letter-spacing:-.045em;margin:24px 0 28px;font-weight:950}.cover-copy h1 em{font-style:normal;color:var(--cyan)}
.cover-meta{display:grid;grid-template-columns:1.25fr 1fr .55fr;gap:16px;margin-top:34px}.cover-meta>div{background:rgba(16,41,52,.78);border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:18px;padding:18px 22px;min-height:130px}.cover-meta span{display:block;color:var(--muted);font-size:clamp(14px,.8vw,19px);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.cover-meta b{font-size:clamp(17px,1.0vw,23px);line-height:1.45}
.cover-mark{display:flex;flex-direction:column;align-items:center;gap:24px}.seal-ring{width:min(28vw,390px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff 0 63%,#f2f6f7 64% 67%,rgba(255,210,63,.95) 68% 72%,transparent 73%);filter:drop-shadow(0 22px 30px rgba(0,0,0,.3))}.seal-ring img{width:78%;height:78%;object-fit:contain}.oms-emblem{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:clamp(13px,.7vw,18px);letter-spacing:.11em;font-weight:800}.oms-emblem svg{width:62px;height:62px;fill:none;stroke:var(--cyan);stroke-width:4}

/* common content */
.argument-box{margin-top:24px;display:grid;grid-template-columns:max-content 1fr;gap:24px;align-items:center;background:linear-gradient(90deg,rgba(255,210,63,.14),rgba(255,210,63,.03));border-left:8px solid var(--accent);padding:20px 26px;border-radius:0 20px 20px 0;font-size:clamp(20px,1.2vw,28px)}.argument-box strong{color:var(--accent);font-size:1.1em}.argument-box p{margin:0;line-height:1.38}
.problem-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:14px;align-items:center}.flow-card{background:rgba(16,41,52,.82);border:2px solid var(--line);border-radius:22px;padding:28px 18px;text-align:center;min-height:210px;display:flex;flex-direction:column;justify-content:center;align-items:center}.flow-card b{font-size:clamp(22px,1.35vw,31px);margin:8px 0}.flow-card small{font-size:clamp(16px,.95vw,22px);color:var(--muted)}.flow-icon{font-size:clamp(38px,3vw,64px);color:var(--accent)}.flow-arrow{font-size:clamp(34px,2.5vw,54px);color:var(--cyan)}
.three-reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.three-reasons article{border:1px solid var(--line);border-radius:24px;background:rgba(16,41,52,.84);padding:30px;min-height:270px}.three-reasons article>span{font-size:clamp(34px,2vw,48px);font-weight:950;color:var(--accent)}.three-reasons h3{font-size:clamp(27px,1.7vw,39px);margin:10px 0}.three-reasons p{font-size:clamp(20px,1.15vw,27px);line-height:1.42;color:#cce0e6;margin:0}.formula-banner{margin:28px auto 0;display:flex;align-items:center;justify-content:center;gap:22px;font-size:clamp(28px,2.1vw,48px);font-weight:900;background:#0a171d;border:1px solid var(--line);border-radius:22px;padding:18px 28px}.formula-banner span:first-child{color:var(--green)}.formula-banner b{color:var(--accent)}
.objective-hero{display:grid;grid-template-columns:140px 1fr;gap:28px;align-items:center;background:rgba(16,41,52,.8);border-radius:22px;padding:24px 30px;border:1px solid var(--line)}.objective-hero svg{width:120px;fill:none;stroke:var(--accent);stroke-width:5}.objective-hero p{font-size:clamp(23px,1.4vw,32px);line-height:1.4;margin:0}.objective-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.objective-grid span{padding:17px 20px;border-radius:15px;background:#0d222c;border:1px solid #264d59;font-size:clamp(17px,1vw,23px);font-weight:700}
.supply-chain{display:grid;grid-template-columns:repeat(9,auto);align-items:center;justify-content:center;gap:12px}.supply-chain>div{border:1px solid var(--line);border-radius:18px;padding:26px 22px;min-width:190px;text-align:center;background:#0d222c}.supply-chain>div b{display:block;font-size:clamp(22px,1.25vw,29px)}.supply-chain>div small{display:block;color:var(--muted);font-size:clamp(15px,.85vw,20px);margin-top:6px}.supply-chain i{font-style:normal;color:var(--cyan);font-size:34px}.supply-chain .oms-focus{border-color:var(--accent);background:linear-gradient(145deg,rgba(255,210,63,.2),#102934);transform:scale(1.08)}.two-panel{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:34px}.two-panel article{background:rgba(16,41,52,.72);padding:24px 28px;border-radius:20px;border:1px solid var(--line)}.two-panel h3{font-size:clamp(25px,1.4vw,34px);margin:0 0 8px;color:var(--cyan)}.two-panel p{font-size:clamp(19px,1.1vw,26px);line-height:1.42;margin:0;color:#cce0e6}
.concept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.concept-grid article{display:grid;grid-template-columns:82px 1fr;grid-template-rows:auto 1fr;gap:4px 18px;background:#0d222c;border:1px solid var(--line);border-radius:22px;padding:24px}.concept-symbol{grid-row:1/3;width:74px;height:74px;border-radius:20px;display:grid;place-items:center;background:#0a171d;border:2px solid var(--cyan);font-size:clamp(24px,1.4vw,34px);font-weight:950;color:var(--accent)}.concept-grid h3{margin:0;font-size:clamp(23px,1.3vw,30px)}.concept-grid p{margin:4px 0 0;color:var(--muted);font-size:clamp(17px,.95vw,22px);line-height:1.35}
.scope-board{display:grid;grid-template-columns:1fr 1fr;gap:26px}.scope{padding:28px 32px;border-radius:24px;background:#0d222c;border:2px solid var(--line)}.scope.yes{border-color:rgba(84,213,155,.55)}.scope.no{border-color:rgba(255,113,106,.45)}.scope h3{font-size:clamp(27px,1.6vw,36px);margin:0 0 14px}.scope.yes h3{color:var(--green)}.scope.no h3{color:var(--red)}.scope ul{font-size:clamp(20px,1.15vw,27px);line-height:1.58;margin:0;padding-left:1.25em}.scope li::marker{color:var(--accent)}.scope-note{text-align:center;font-size:clamp(20px,1.15vw,27px);color:#cce0e6;margin:24px 0 0}
.io-layout{display:grid;grid-template-columns:1fr .55fr 1.2fr;gap:30px;align-items:center}.actors-stack{display:flex;flex-direction:column;gap:16px}.actors-stack>div{display:grid;grid-template-columns:64px 1fr;gap:5px 14px;background:#0d222c;border:1px solid var(--line);border-radius:18px;padding:18px}.actors-stack>div>span{grid-row:1/3;font-size:40px;display:grid;place-items:center}.actors-stack b{font-size:clamp(21px,1.2vw,28px)}.actors-stack small{color:var(--muted);font-size:clamp(15px,.85vw,20px)}.io-core{aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(97,192,212,.35),#0f2b35 58%);border:5px solid var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.io-core b{font-size:clamp(42px,3vw,72px)}.io-core span{font-size:clamp(15px,.8vw,19px);color:var(--muted);max-width:12ch}.io-data{display:grid;gap:18px}.io-data>div{padding:24px;border-left:6px solid var(--cyan);background:#0d222c;border-radius:0 18px 18px 0}.io-data b{display:block;color:var(--accent);font-size:clamp(22px,1.25vw,29px);margin-bottom:6px}.io-data span{font-size:clamp(19px,1.05vw,25px);line-height:1.4}
.requirements-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.requirements-grid>div{border-radius:20px;background:#0d222c;border:1px solid var(--line);padding:24px}.requirements-grid b{display:block;color:var(--accent);font-size:clamp(23px,1.4vw,32px);margin-bottom:10px}.requirements-grid span{font-size:clamp(18px,1.05vw,25px);line-height:1.4;color:#d2e1e5}
.invariant-center{display:grid;place-items:center;position:relative;min-height:580px}.invariant-ring{width:420px;height:420px;border-radius:50%;border:6px solid var(--accent);background:radial-gradient(circle,rgba(255,210,63,.13),rgba(16,41,52,.86));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;box-shadow:0 0 0 22px rgba(255,210,63,.04)}.invariant-ring span{font-size:clamp(26px,1.6vw,36px);font-weight:800}.invariant-ring b{font-size:clamp(30px,2vw,44px);color:var(--green);max-width:10ch}.invariant-spokes{position:absolute;inset:0}.invariant-spokes span{position:absolute;background:#0d222c;border:1px solid var(--line);border-radius:999px;padding:14px 22px;font-size:clamp(16px,.95vw,22px);font-weight:800;white-space:nowrap}.invariant-spokes span:nth-child(1){left:7%;top:18%}.invariant-spokes span:nth-child(2){right:7%;top:18%}.invariant-spokes span:nth-child(3){left:3%;top:49%}.invariant-spokes span:nth-child(4){right:3%;top:49%}.invariant-spokes span:nth-child(5){left:13%;bottom:12%}.invariant-spokes span:nth-child(6){right:13%;bottom:12%}
.data-structures{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.ds-card{position:relative;background:#0d222c;border:1px solid var(--line);border-radius:20px;padding:74px 20px 24px;min-height:300px;text-align:center}.ds-card>span{position:absolute;left:50%;top:24px;transform:translateX(-50%);min-width:58px;height:58px;padding:0 12px;border-radius:16px;background:var(--accent);color:#10202a;display:grid;place-items:center;font-weight:950;font-size:22px}.ds-card b{display:block;font-size:clamp(22px,1.25vw,29px);margin-bottom:12px}.ds-card p{font-size:clamp(17px,.95vw,22px);color:var(--muted);line-height:1.4;margin:0}
.image-explain-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:38px;align-items:center;min-height:0}.image-explain-grid img{max-width:100%;max-height:67vh;object-fit:contain;border-radius:18px;background:#fff;padding:10px}.image-argument{display:flex;flex-direction:column;gap:18px}.image-argument h3{font-size:clamp(30px,2vw,44px);margin:0;color:var(--cyan)}.image-argument p{font-size:clamp(22px,1.25vw,29px);line-height:1.45;background:#0d222c;border:1px solid var(--line);border-radius:16px;padding:20px;margin:0}
.algo-map{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.algo-map>div{background:#0d222c;border:1px solid var(--line);border-radius:20px;padding:22px;display:grid;grid-template-columns:55px 1fr;gap:2px 14px;align-items:center}.algo-map span{grid-row:1/3;width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:#0a171d;border:2px solid var(--cyan);color:var(--accent);font-size:23px;font-weight:950}.algo-map b{font-size:clamp(19px,1.1vw,26px)}.algo-map small{color:var(--muted);font-size:clamp(15px,.8vw,19px)}.algo-map .hero{border:2px solid var(--accent);background:linear-gradient(135deg,rgba(255,210,63,.15),#0d222c)}
.algo-slide{max-width:1820px}

/* interactive demos */
.demo-shell{height:100%;display:flex;flex-direction:column;justify-content:center;gap:18px}.demo-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;border-bottom:2px solid rgba(255,255,255,.08);padding-bottom:16px}.demo-kicker{font-size:clamp(14px,.85vw,20px);color:var(--accent);font-weight:950;letter-spacing:.1em}.demo-head h3{font-size:clamp(38px,3vw,66px);line-height:1;margin:8px 0 0}.complexity-pill{border:2px solid var(--cyan);border-radius:999px;padding:10px 18px;font-size:clamp(20px,1.2vw,28px);font-weight:900;color:var(--cyan);white-space:nowrap}.touch-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.touch-label{font-size:clamp(18px,1vw,24px);color:var(--muted)}.touch-chip,.touch-primary,.touch-ghost{min-height:58px;padding:12px 22px;border-radius:16px;border:2px solid var(--line);font-size:clamp(17px,1vw,24px);font-weight:900;cursor:pointer;color:var(--text);background:#0d222c;transition:.18s transform,.18s background,.18s border-color;touch-action:manipulation}.touch-chip:active,.touch-primary:active,.touch-ghost:active{transform:scale(.97)}.touch-chip.selected{border-color:var(--accent);background:rgba(255,210,63,.16);color:var(--accent)}.touch-primary{background:var(--accent);border-color:var(--accent);color:#10202a}.touch-primary.reserve{background:var(--green);border-color:var(--green)}.touch-primary:disabled{opacity:.3;cursor:not-allowed}.touch-ghost{background:transparent;color:var(--cyan)}.demo-explain{display:grid;grid-template-columns:70px 1fr;gap:18px;align-items:center;background:#0b2029;border:1px solid var(--line);border-left:7px solid var(--cyan);border-radius:0 18px 18px 0;padding:16px 20px;min-height:100px}.demo-explain.danger{border-left-color:var(--red)}.logic-symbol{font-size:46px;font-weight:950;color:var(--accent);text-align:center}.demo-explain strong{font-size:clamp(20px,1.2vw,28px);color:#fff}.demo-explain p{font-size:clamp(17px,.98vw,23px);line-height:1.36;color:#c6d9df;margin:4px 0 0}
.binary-track{display:grid;grid-template-columns:repeat(12,1fr);gap:8px}.sku-box{position:relative;min-width:0;background:#0d222c;border:2px solid var(--line);border-radius:14px;padding:10px 6px;text-align:center;transition:.35s opacity,.35s transform,.35s border-color,.35s background}.sku-box svg{width:38px;height:38px;fill:none;stroke:var(--cyan);stroke-width:3;margin:auto}.sku-box strong{display:block;font-size:clamp(17px,.95vw,22px)}.sku-box small{display:block;color:var(--muted);font-size:clamp(12px,.68vw,16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sku-box.current{border-color:var(--accent);background:rgba(255,210,63,.16);transform:translateY(-8px)}.sku-box.discarded{opacity:.18;transform:scale(.92)}.sku-box.found{border-color:var(--green);background:rgba(84,213,155,.18);transform:translateY(-8px) scale(1.05)}.mid-flag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--accent);color:#10202a;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:950}
.normalize-stage{display:flex;gap:14px;justify-content:center;align-items:center;min-height:210px}.product-token{min-width:210px;background:#0d222c;border:2px solid var(--line);border-radius:22px;padding:16px;text-align:center;animation:tokenIn .4s ease}.product-token svg{width:64px;height:64px;fill:none;stroke:var(--cyan);stroke-width:3}.product-token span{display:block;color:var(--muted);font-size:15px}.product-token strong{display:block;font-size:clamp(20px,1.15vw,27px);margin-top:5px}.product-token.merged{border-color:var(--green);background:rgba(84,213,155,.12)}@keyframes tokenIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.transform-arrow{text-align:center;color:var(--accent);font-weight:950;letter-spacing:.11em;font-size:15px}.transform-arrow:before,.transform-arrow:after{content:"";display:inline-block;width:90px;height:2px;background:var(--line);vertical-align:middle;margin:0 14px}
.reservation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stock-card{background:#0d222c;border:2px solid var(--line);border-radius:20px;padding:18px;transition:.25s border-color,.25s background}.stock-card.stock-missing{border-color:var(--red);background:rgba(255,113,106,.09)}.stock-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.stock-title strong{font-size:clamp(22px,1.25vw,30px)}.stock-title span{color:var(--muted);font-size:15px}.stock-meter{height:42px;background:#071219;border-radius:12px;position:relative;overflow:hidden;margin:14px 0}.stock-meter .physical{position:absolute;inset:0;background:rgba(97,192,212,.22)}.stock-meter .reserved{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--accent),#f0a92e);transition:width .45s ease}.stock-numbers{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:clamp(14px,.78vw,18px)}.stock-numbers b{display:block;color:#fff;font-size:1.35em}.request-badge{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;font-size:clamp(17px,.95vw,22px);color:var(--cyan)}.atomic-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center}.pass{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;gap:0 12px;align-items:center;border:2px solid var(--line);background:#0d222c;border-radius:18px;padding:14px 18px}.pass>span{grid-row:1/3;font-size:38px;color:var(--muted)}.pass b{font-size:clamp(20px,1.1vw,26px)}.pass small{color:var(--muted);font-size:15px}.pass.on{border-color:var(--green);background:rgba(84,213,155,.10)}.pass.on>span{color:var(--green)}.atomic-link{font-size:40px;color:var(--accent)}
.orders-pipeline{display:flex;gap:12px;align-items:center;justify-content:center}.order-mini{width:160px;min-height:150px;border:2px solid var(--line);background:#0d222c;border-radius:18px;text-align:center;padding:12px;transition:.3s opacity,.3s transform,.3s border-color}.order-mini svg{width:46px;fill:none;stroke:var(--cyan);stroke-width:3}.order-mini strong{display:block;font-size:22px}.order-mini span{display:block;color:var(--muted);font-size:12px;margin:4px 0}.order-mini small{color:#c9dce1}.order-mini.confirmed{border-color:rgba(84,213,155,.6)}.order-mini.faded{opacity:.12;transform:scale(.92)}.filter-gate{width:115px;height:115px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--line);color:var(--muted)}.filter-gate span{font-size:40px;font-weight:950}.filter-gate small{text-align:center}.filter-gate.active{border-color:var(--accent);color:var(--accent);animation:pulseGate 1.3s ease infinite}@keyframes pulseGate{50%{box-shadow:0 0 0 10px rgba(255,210,63,.05)}}.queue-strip{display:flex;gap:14px;justify-content:center;align-items:center}.queue-strip span{background:var(--green);color:#0e2118;font-weight:950;padding:12px 24px;border-radius:14px}.queue-strip span+span:before{content:"→";color:var(--accent);margin-right:14px}
.merge-visual{min-height:260px;display:flex;align-items:center;justify-content:center}.merge-row-wrap{width:100%}.merge-label{display:block;text-align:center;color:var(--muted);font-weight:800;margin-bottom:10px}.merge-row{display:flex;gap:12px;justify-content:center}.split-grid{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:26px}.singleton-grid{display:flex;gap:12px;justify-content:center}.order-node{min-width:125px;background:#0d222c;border:2px solid var(--line);border-radius:18px;padding:14px;text-align:center;animation:nodePop .35s ease}.order-node b{display:block;font-size:24px}.order-node span{display:block;color:var(--accent);font-size:20px}.order-node small{display:block;color:var(--muted);font-size:14px}@keyframes nodePop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.stable-note{opacity:.2;text-align:center;display:flex;gap:12px;align-items:center;justify-content:center;font-size:16px;transition:.3s opacity}.stable-note.show{opacity:1}.stable-note .tie{background:rgba(165,140,245,.2);border:1px solid var(--violet);padding:6px 10px;border-radius:10px}.stable-note b{color:var(--green)}
.linear-lane{display:flex;gap:14px;justify-content:center;align-items:center;min-height:250px}.linear-order{position:relative;width:160px;height:145px;border-radius:20px;border:2px solid var(--line);background:#0d222c;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.25s opacity,.25s transform,.25s border-color}.linear-order>span{position:absolute;left:10px;top:8px;color:var(--muted);font-size:13px}.linear-order b{font-size:28px}.linear-order i{position:absolute;top:-48px;font-size:42px;color:var(--accent);font-style:normal}.linear-order.visited{opacity:.28}.linear-order.current{border-color:var(--accent);transform:translateY(8px)}.linear-order.found{border-color:var(--green);background:rgba(84,213,155,.12);transform:scale(1.08)}
.state-board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;position:relative}.state-node{min-height:105px;border-radius:18px;border:2px solid var(--line);background:#0d222c;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer}.state-node b{font-size:clamp(16px,.9vw,21px)}.state-symbol{font-size:30px;color:var(--muted)}.state-node.allowed{border-color:var(--cyan);background:rgba(97,192,212,.08)}.state-node.allowed .state-symbol{color:var(--cyan)}.state-node.current{border-color:var(--accent);background:rgba(255,210,63,.14);box-shadow:0 0 0 5px rgba(255,210,63,.05)}.state-node.current .state-symbol{color:var(--accent)}.state-path{grid-column:1/-1;text-align:center;color:var(--muted);font-size:14px;letter-spacing:.02em}.history-strip{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-height:34px}.history-strip span{padding:6px 12px;background:#071219;border:1px solid var(--line);border-radius:999px;font-size:13px}.history-strip span+span:before{content:"→";color:var(--cyan);margin-right:8px}

/* after demos */
.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.case{position:relative;background:#0d222c;border:2px solid var(--line);border-radius:24px;padding:30px}.case>span{position:absolute;right:24px;top:18px;font-size:48px;font-weight:950;opacity:.15}.case h3{font-size:clamp(30px,1.8vw,40px);margin:0 0 12px}.case p{font-size:clamp(24px,1.4vw,32px);margin:0 0 18px}.case b{display:block;font-size:clamp(23px,1.3vw,30px);margin-bottom:10px}.case small{font-size:clamp(17px,1vw,23px);color:var(--muted)}.case.good{border-color:var(--green)}.case.good h3{color:var(--green)}.case.bad{border-color:var(--red)}.case.bad h3{color:var(--red)}.timeline-case{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:30px;font-size:clamp(17px,1vw,23px);font-weight:850}.timeline-case span{padding:12px 16px;background:#0d222c;border-radius:12px;border:1px solid var(--line)}.timeline-case i{font-style:normal;color:var(--accent);font-size:28px}
.efficiency-table,.schedule-table{display:grid;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#0d222c}.efficiency-table{grid-template-columns:1.5fr .7fr .8fr}.schedule-table{grid-template-columns:1.5fr .55fr .55fr 1.4fr}.efficiency-table>div,.schedule-table>div{display:contents}.efficiency-table span,.efficiency-table b,.schedule-table span,.schedule-table b{padding:16px 20px;border-bottom:1px solid var(--line);font-size:clamp(17px,1vw,23px)}.efficiency-table .thead span,.schedule-table .thead span{background:#143743;color:var(--accent);font-weight:950;text-transform:uppercase;letter-spacing:.06em}.efficiency-table b,.schedule-table b{color:#fff}.eff-note{font-size:clamp(19px,1.1vw,26px);margin:22px 0 0;color:#cce0e6;text-align:center}
.implementation-split{display:grid;grid-template-columns:1fr 1fr;gap:26px}.implementation-split article{border:2px solid var(--line);background:#0d222c;border-radius:24px;padding:28px}.implementation-split article.dotnet{border-color:var(--violet)}.impl-badge{display:inline-block;border-radius:999px;padding:6px 12px;background:#071219;color:var(--accent);font-size:14px;font-weight:950;letter-spacing:.08em}.implementation-split h3{font-size:clamp(34px,2vw,46px);margin:14px 0 8px}.implementation-split p{font-size:clamp(19px,1.1vw,26px);line-height:1.42;color:#cce0e6}.tool-row{display:flex;flex-wrap:wrap;gap:8px}.tool-row span{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#071219;color:var(--cyan);font-weight:800}.clarify{text-align:center;margin:22px 0 0;font-size:clamp(18px,1vw,24px);color:var(--muted)}
.tests-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tests-grid>div{background:#0d222c;border:1px solid var(--line);border-radius:16px;padding:18px;min-height:115px}.tests-grid b{display:block;color:var(--accent);font-size:20px;margin-bottom:6px}.tests-grid span{font-size:clamp(16px,.9vw,21px);line-height:1.35}.acceptance{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px}.acceptance span{border:1px solid rgba(84,213,155,.5);background:rgba(84,213,155,.08);color:var(--green);font-size:clamp(15px,.85vw,20px);padding:9px 14px;border-radius:999px;font-weight:800}
.gantt-wrap{height:68vh;display:grid;place-items:center}.gantt-wrap img{max-width:100%;max-height:100%;object-fit:contain;border-radius:18px;background:#fff;padding:8px}.gantt-note{text-align:center;font-size:clamp(18px,1vw,24px);color:#cce0e6;margin:8px 0 0}
.budget-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;align-items:center}.budget-bars{display:flex;flex-direction:column;gap:17px}.budget-bars>div{display:grid;grid-template-columns:200px 1fr 120px;gap:14px;align-items:center;font-size:clamp(20px,1.12vw,26px)}.budget-bars i{height:30px;background:#0d222c;border-radius:999px;overflow:hidden;position:relative}.budget-bars i:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w);background:linear-gradient(90deg,var(--cyan),var(--accent));border-radius:999px}.budget-bars b{text-align:right}.budget-total{border:2px solid var(--accent);background:rgba(255,210,63,.08);border-radius:24px;padding:28px;display:flex;flex-direction:column;gap:6px}.budget-total span{color:var(--muted);font-size:clamp(20px,1.05vw,25px);margin-top:8px}.budget-total b{font-size:clamp(34px,2.4vw,54px);color:var(--accent)}.budget-total small{color:#c6d9df;font-size:clamp(17px,.92vw,21px);line-height:1.35}.budget-total em{margin-top:18px;font-style:normal;font-size:clamp(20px,1.2vw,28px);font-weight:900;color:var(--green)}
.references-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.references-list article{position:relative;background:#0d222c;border:1px solid var(--line);border-radius:22px;padding:62px 24px 24px}.references-list article>span{position:absolute;top:18px;left:24px;background:var(--accent);color:#10202a;padding:6px 12px;border-radius:999px;font-weight:950}.references-list h3{font-size:clamp(25px,1.38vw,32px);margin:0 0 12px}.references-list p{font-size:clamp(19px,1.06vw,25px);line-height:1.4;color:#c9dce1}.references-list code{display:block;margin-top:16px;color:var(--cyan);font-size:clamp(13px,.75vw,17px);overflow-wrap:anywhere}
.diagram-tabs{display:flex;gap:12px;justify-content:center;margin-bottom:16px}.diagram-tabs button{min-height:54px;border:2px solid var(--line);background:#0d222c;color:var(--text);border-radius:14px;padding:10px 22px;font-weight:900;cursor:pointer}.diagram-tabs button.active{border-color:var(--accent);background:rgba(255,210,63,.15);color:var(--accent)}.diagram-viewer{height:66vh;display:grid;place-items:center}.diagram-viewer img{max-width:100%;max-height:100%;object-fit:contain;border-radius:18px;background:#fff;padding:8px;animation:diagramIn .3s ease}@keyframes diagramIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}
.closing{text-align:center;align-items:center}.closing h2{font-size:clamp(52px,4.7vw,100px);line-height:1.02;margin:22px 0 28px;max-width:18ch}.closing h2 em{font-style:normal;color:var(--cyan)}.closing-chain{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.closing-chain span{background:#0d222c;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:clamp(16px,.9vw,21px);font-weight:900}.closing-chain i{font-style:normal;color:var(--accent)}.closing-proof{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:24px 0}.closing-proof b{padding:10px 15px;border-radius:999px;background:rgba(84,213,155,.09);border:1px solid rgba(84,213,155,.5);color:var(--green);font-size:clamp(15px,.85vw,20px)}.closing p{font-size:clamp(22px,1.3vw,30px);max-width:42ch;line-height:1.45;color:#cce0e6;margin:0 auto}.thanks{margin-top:28px;font-size:clamp(28px,1.9vw,42px);font-weight:950;color:var(--accent)}

/* Controls: only Previous / counter / Fullscreen / Next */
.presentation-controls{position:absolute;z-index:70;right:clamp(24px,2vw,42px);bottom:clamp(18px,1.6vw,32px);display:flex;align-items:center;gap:10px;background:rgba(9,24,31,.94);border:1px solid var(--line);backdrop-filter:blur(12px);padding:8px;border-radius:20px;box-shadow:var(--shadow)}.presentation-controls button{min-height:62px;border-radius:14px;border:0;background:#143743;color:var(--text);padding:10px 20px;font-size:clamp(16px,.92vw,22px);font-weight:900;cursor:pointer;display:flex;align-items:center;gap:10px;touch-action:manipulation}.presentation-controls button:disabled{opacity:.3;cursor:not-allowed}.presentation-controls button>span{font-size:30px;line-height:.7}.presentation-controls button.fullscreen{background:transparent;border:1px solid var(--line);color:var(--cyan)}.presentation-controls button.fullscreen svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2}.slide-counter{min-width:82px;text-align:center}.slide-counter b{font-size:23px;color:var(--accent)}.slide-counter span{color:var(--muted);margin-left:4px}

@media(max-width:1200px){
 .top-ribbon small{display:none}.cover-grid{grid-template-columns:1fr .48fr}.cover-meta{grid-template-columns:1fr 1fr}.cover-meta>div:last-child{grid-column:1/-1;min-height:auto}.problem-flow{grid-template-columns:1fr 1fr;gap:12px}.flow-arrow{display:none}.concept-grid{grid-template-columns:repeat(2,1fr)}.data-structures{grid-template-columns:repeat(3,1fr)}.algo-map{grid-template-columns:repeat(2,1fr)}.tests-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-height:800px){.slide{padding-top:68px;padding-bottom:96px}.slide-head{margin-bottom:16px;padding-bottom:12px}.demo-shell{gap:10px}.demo-explain{min-height:82px}.touch-chip,.touch-primary,.touch-ghost{min-height:50px;padding:8px 16px}.binary-track{gap:5px}.sku-box{padding:6px 3px}.reservation-grid{gap:10px}.stock-card{padding:12px}.stock-meter{height:30px}.state-node{min-height:80px}.gantt-wrap,.diagram-viewer{height:62vh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* =========================================================
   Revisión para exposición táctil: formal, sobria y legible
   ========================================================= */
:root{
  --bg:#11161a;
  --bg2:#151c21;
  --panel:#192228;
  --panel2:#202b32;
  --line:#3a4850;
  --text:#f4f1e9;
  --muted:#b8c0c3;
  --accent:#d7b45a;
  --cyan:#91abb6;
  --green:#83b59a;
  --red:#c77a74;
  --violet:#9a91ad;
  --ink:#11161a;
  --shadow:none;
}
html,body{background:var(--bg);font-family:"Segoe UI",Arial,sans-serif}
.presentation-root{background:#11161a;touch-action:pan-y;user-select:none}
.presentation-root:before,.top-progress,.top-ribbon{display:none!important}
.slide{padding:clamp(34px,3.6vw,70px) clamp(42px,4.8vw,96px) clamp(74px,5vw,100px)}
.slide.active{animation:slideIn .24s ease-out}
@keyframes slideIn{from{opacity:.25}to{opacity:1}}
.slide-head{border:0;padding:0;margin:0 0 22px;align-items:center;gap:18px}
.slide-head>span{font-size:clamp(20px,1.1vw,27px);color:var(--accent);min-width:44px}
.slide-head h2{font-size:clamp(42px,3.1vw,68px);letter-spacing:-.018em;line-height:1.04}
.eyebrow{font-size:clamp(18px,1vw,23px);color:var(--accent);letter-spacing:.08em}
.lead{font-size:clamp(26px,1.6vw,36px);color:#d7dddf}

/* Menos decoración, más contenido */
.cover-copy h1{font-size:clamp(60px,5.4vw,112px);line-height:.94}
.cover-copy h1 em{color:#d7b45a}
.cover-meta>div,.flow-card,.three-reasons article,.two-panel article,.concept-grid article,.scope,.actors-stack>div,.io-data>div,.ds-card,.case,.implementation-split article,.tests-grid>div,.references-list article{background:#192228;border-color:#39464e;border-radius:12px;box-shadow:none}
.cover-meta>div{border-top:3px solid var(--accent)}
.seal-ring{background:#f2efe7;border:4px solid #8d7a46;filter:none}
.oms-emblem svg{stroke:#91abb6}
.argument-box{background:#171d21;border-left:5px solid var(--accent);border-radius:0 8px 8px 0;padding:18px 22px}
.formula-banner,.touch-chip,.touch-primary,.touch-ghost,.demo-shell,.stock-card,.state-node,.algo-map>div,.efficiency-table,.schedule-table,.budget-bars i,.budget-total,.diagram-tabs button{border-radius:10px}
.flow-card{min-height:188px;padding:22px 16px}
.flow-icon{width:58px;height:58px;display:grid;place-items:center;color:var(--accent)}
.flow-icon svg,.actor-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.flow-arrow{color:#8faab4}
.three-reasons p,.two-panel p,.scope-note,.eff-note,.implementation-split p,.closing p{color:#d5dbdd}
.supply-chain .oms-focus{background:#22282b;border-color:var(--accent);transform:none}
.io-core{background:#20282d;border:3px solid var(--accent)}
.actor-icon{grid-row:1/3;width:52px;height:52px;display:grid;place-items:center;color:var(--accent)}
.actors-stack>div>span{font-size:inherit}

/* Más conceptos, con tamaño útil para pantalla grande */
.concept-grid.concept-rich{grid-template-columns:repeat(3,1fr);gap:14px}
.concept-grid.concept-rich article{grid-template-columns:62px 1fr;padding:17px 18px;min-height:122px}
.concept-grid.concept-rich .concept-symbol{width:56px;height:56px;border-radius:10px;border:1px solid #758892;background:#11161a;font-size:clamp(17px,1vw,23px);color:var(--accent)}
.concept-grid.concept-rich h3{font-size:clamp(21px,1.16vw,27px)}
.concept-grid.concept-rich p{font-size:clamp(16px,.92vw,21px);color:#bbc6ca}

/* Pseudocódigo interactivo */
.pseudo-and-flow{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);gap:24px;align-items:stretch;min-height:0;flex:1}
.pseudo-demo{display:flex;flex-direction:column;gap:14px;min-width:0;border:1px solid var(--line);background:#171e22;padding:18px;border-radius:12px}
.pseudo-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.pseudo-kicker{display:block;color:var(--accent);font-size:13px;font-weight:900;letter-spacing:.08em}
.pseudo-toolbar h3{margin:5px 0 0;font-size:clamp(24px,1.45vw,32px)}
.pseudo-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pseudo-actions button{min-height:48px;border:1px solid var(--line);background:#202a30;color:var(--text);padding:8px 14px;border-radius:8px;font-weight:800;cursor:pointer;touch-action:manipulation}
.pseudo-actions button:disabled{opacity:.45}
.pseudo-actions .pseudo-play{background:#d7b45a;color:#17191b;border-color:#d7b45a}
.pseudo-stage{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(270px,.78fr);gap:18px;align-items:stretch;min-height:0;flex:1}
.pseudo-code{display:flex;flex-direction:column;gap:8px;justify-content:center;min-width:0}
.pseudo-block{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border:1px solid #303d44;background:#11161a;border-radius:8px;opacity:.55;transition:opacity .22s,border-color .22s,background .22s,transform .22s}
.pseudo-block code{font-family:"Cascadia Code",Consolas,monospace;font-size:clamp(15px,.88vw,19px);white-space:normal;line-height:1.3;color:#d9e0e2}
.pseudo-block.active{opacity:1;border-color:var(--accent);background:#20242a;transform:translateX(5px)}
.pseudo-block.done{opacity:.78;border-color:#4c6259}
.pseudo-num{width:28px;height:28px;display:grid;place-items:center;border:1px solid #53626a;border-radius:50%;font-weight:900;color:var(--muted);font-size:13px}
.pseudo-block.active .pseudo-num{background:var(--accent);color:#17191b;border-color:var(--accent)}
.pseudo-cloud{position:relative;align-self:center;background:#f0ede5;color:#182026;border-radius:26px;padding:24px 26px 26px;box-shadow:none;border:2px solid #c8c2b4;animation:cloudIn .28s ease-out}
.pseudo-cloud:before{content:"";position:absolute;left:-18px;top:42%;width:34px;height:28px;background:#f0ede5;border-left:2px solid #c8c2b4;border-bottom:2px solid #c8c2b4;transform:rotate(45deg)}
@keyframes cloudIn{from{opacity:.2;transform:translateY(8px)}to{opacity:1;transform:none}}
.cloud-index{font-size:12px;font-weight:900;letter-spacing:.08em;color:#6e6554}
.pseudo-cloud h4{font-size:clamp(24px,1.35vw,31px);margin:7px 0 10px}
.pseudo-cloud p{font-size:clamp(17px,.96vw,22px);line-height:1.42;margin:0}
.cloud-effect{margin-top:14px;border-top:1px solid #bdb5a7;padding-top:12px;font-size:clamp(16px,.9vw,20px);line-height:1.36}
.cloud-effect b{color:#6b5420}
.pseudo-timeline{display:flex;gap:7px}
.pseudo-timeline span{height:5px;flex:1;background:#2c373d;border-radius:8px}
.pseudo-timeline span.on{background:var(--accent)}
.pseudo-timeline span.past{background:#64796e}
.flow-thumb{margin:0;border:1px solid var(--line);background:#171e22;padding:12px;border-radius:12px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.flow-thumb img{display:block;width:100%;max-height:58vh;object-fit:contain;background:#fff;cursor:zoom-in;border-radius:6px}
.flow-thumb figcaption{font-size:clamp(14px,.78vw,18px);text-align:center;color:var(--muted);margin-top:8px}

/* Imágenes ampliables */
img[data-zoomable="true"]{cursor:zoom-in}
.oms-image-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(7,10,12,.94);display:flex;align-items:center;justify-content:center;padding:22px;cursor:zoom-out}
.oms-image-lightbox img{max-width:96vw;max-height:94vh;width:auto;height:auto;object-fit:contain;background:#fff;padding:8px;border-radius:6px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.oms-image-lightbox[hidden]{display:none}

/* Presupuesto revisado */
.budget-caption{margin-bottom:16px;padding:14px 16px;border-left:4px solid var(--accent);background:#171e22}
.budget-caption b{display:block;font-size:clamp(18px,1vw,23px);color:var(--accent);margin-bottom:4px}
.budget-caption span{font-size:clamp(15px,.85vw,20px);color:#c0c9cc}
.budget-bars i:after{background:#91abb6}
.budget-total{background:#171e22;border:1px solid #5f5537}
.budget-total b{color:var(--accent)}
.budget-total em{color:#9fc3ad}

/* Controles mínimos: solo tres símbolos */
.presentation-controls.compact{right:18px;bottom:16px;gap:4px;background:rgba(18,24,28,.88);border:1px solid #3c474d;padding:4px;border-radius:12px;box-shadow:none}
.presentation-controls.compact button{width:46px;height:46px;min-height:46px;padding:0;border:0;border-radius:8px;background:transparent;color:#e8e5dc;display:grid;place-items:center}
.presentation-controls.compact button:hover{background:#263139}
.presentation-controls.compact button:disabled{opacity:.22}
.presentation-controls.compact button.fullscreen{border:0;color:var(--accent);background:transparent}
.presentation-controls.compact svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.slide-counter{display:none!important}

/* Diagramas e imágenes: sin adornos innecesarios */
.gantt-wrap img,.diagram-viewer img{border-radius:6px;padding:5px}
.diagram-tabs button{background:#171e22;border-color:#3b484f}
.diagram-tabs button.active{background:#272820;border-color:var(--accent);color:var(--accent)}

@media(max-width:1200px){
  .concept-grid.concept-rich{grid-template-columns:repeat(2,1fr)}
  .pseudo-and-flow{grid-template-columns:1fr}
  .flow-thumb{display:none}
  .pseudo-stage{grid-template-columns:1fr .8fr}
}
@media(max-height:800px){
  .slide{padding-top:26px;padding-bottom:66px}
  .slide-head{margin-bottom:12px}
  .pseudo-demo{padding:12px;gap:9px}
  .pseudo-block{padding:7px 9px}
  .pseudo-cloud{padding:17px 20px}
}

.slides-stage img{cursor:zoom-in}
.prepost-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.prepost-strip span{background:#171e22;border:1px solid var(--line);padding:12px 16px;border-radius:8px;font-size:clamp(16px,.9vw,21px);line-height:1.35;color:#ccd4d6}
.prepost-strip b{color:var(--accent)}
.algo-map.algo-detailed>div{position:relative;min-height:168px;padding:18px 18px 38px;background:#192228;border-color:#3b484f;border-radius:10px}
.algo-map.algo-detailed>div.hero{background:#23251f;border-color:var(--accent)}
.algo-map.algo-detailed>div>span{font-size:22px;color:var(--accent)}
.algo-map.algo-detailed>div>b{font-size:clamp(20px,1.15vw,27px)}
.algo-map.algo-detailed>div>small{font-size:clamp(14px,.8vw,18px);line-height:1.4;color:#b8c2c5}
.algo-map.algo-detailed>div>em{position:absolute;right:14px;bottom:12px;font-family:Consolas,monospace;font-style:normal;font-weight:900;color:#d7b45a;font-size:clamp(14px,.82vw,18px)}

/* =========================================================
   V3 · PRESENTACIÓN FINAL 22 DIAPOSITIVAS · TÁCTIL FORMAL
   ========================================================= */
:root{
  --bg:#11161a;
  --panel:#1a2329;
  --panel2:#202b31;
  --line:#46535a;
  --text:#f2f1ed;
  --muted:#bcc5c8;
  --accent:#d6b45a;
  --cyan:#9db7c1;
  --green:#9dc1a8;
  --red:#c98780;
}
.presentation-root{background:#11161a;touch-action:pan-y;user-select:none}
.presentation-root:before{display:none!important}
.slide{padding:clamp(30px,3vw,58px) clamp(42px,5vw,100px) clamp(72px,5vw,96px);overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
.slide::-webkit-scrollbar{display:none}
.slide-inner{height:auto;min-height:100%;max-width:1780px;justify-content:center}
.section-title{margin:0 0 26px;font-size:clamp(48px,3.45vw,78px);line-height:1.04;letter-spacing:-.025em;font-weight:850;color:#f5f3ed}
.exposition-paragraph{font-size:clamp(25px,1.48vw,34px);line-height:1.44;color:#d7dcdd;margin:18px 0}
.exposition-copy{font-size:clamp(24px,1.38vw,32px);line-height:1.46;color:#d9ddde}
.two-copy{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:26px}.two-copy p{margin:0}
.argument-box{font-size:clamp(22px,1.25vw,29px)}
.formula-banner{font-size:clamp(30px,2vw,46px);margin-top:26px}
.compact-flow .flow-card{min-height:155px;padding:18px}.compact-flow .flow-card b{font-size:clamp(24px,1.35vw,31px)}.compact-flow .flow-card small{font-size:clamp(17px,.95vw,22px)}
.objective-statement{font-size:clamp(31px,1.95vw,44px);line-height:1.42;background:#192228;border:1px solid var(--line);border-left:6px solid var(--accent);padding:25px 30px;margin-bottom:22px}
.deliverables-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.deliverables-grid article{background:#192228;border:1px solid var(--line);padding:20px 22px;min-height:135px}.deliverables-grid b{display:block;color:var(--accent);font-size:clamp(25px,1.35vw,31px);margin-bottom:7px}.deliverables-grid span{font-size:clamp(20px,1.12vw,26px);line-height:1.38;color:#d5dadc}
.slim-chain{margin-bottom:12px}.slim-chain>div{min-width:170px;padding:20px 16px}.slim-chain>div b{font-size:clamp(20px,1.2vw,27px)}.slim-chain>div small{font-size:clamp(15px,.85vw,19px)}
.rail-label,.snap-hint{font-size:clamp(13px,.76vw,17px);letter-spacing:.1em;font-weight:900;color:var(--accent);margin:10px 0 8px}
.touch-rail,.algorithm-rail{display:flex;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-color:#707a7f #171d20;padding:5px 4px 16px;touch-action:pan-x;-webkit-overflow-scrolling:touch}
.touch-rail article{flex:0 0 min(33vw,430px);scroll-snap-align:start;background:#192228;border:1px solid var(--line);padding:22px;min-height:180px}.touch-rail article>span{display:grid;place-items:center;width:52px;height:52px;border:1px solid #7d8c93;color:var(--accent);font-weight:900;font-size:22px;margin-bottom:12px}.touch-rail b{display:block;font-size:clamp(23px,1.25vw,29px);margin-bottom:7px}.touch-rail p{font-size:clamp(18px,1vw,22px);line-height:1.4;color:#cfd6d8;margin:0}
.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.analysis-grid article{background:#192228;border:1px solid var(--line);padding:24px 26px}.analysis-grid h3,.req-list h3,.implementation-note h3{margin:0 0 10px;color:var(--accent);font-size:clamp(28px,1.55vw,36px)}.analysis-grid p,.req-list p,.implementation-note p{font-size:clamp(22px,1.24vw,29px);line-height:1.45;color:#d4dadb;margin:0}
.requirements-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.req-list{background:#192228;border:1px solid var(--line);padding:26px 28px}.req-list p+p{margin-top:18px}.math-rule{text-align:center;padding:16px;background:#11161a;border:1px solid #555f63;color:#f2f1ed!important;font-size:clamp(24px,1.35vw,31px)!important}
.compact-ds{grid-template-columns:repeat(5,1fr);gap:12px}.compact-ds .ds-card{min-height:190px;padding:20px 16px}.compact-ds .ds-card>span{font-size:clamp(28px,1.7vw,40px)}.compact-ds .ds-card b{font-size:clamp(23px,1.22vw,29px)}.compact-ds .ds-card p{font-size:clamp(18px,1vw,23px)}
.state-sequence{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin:24px 0 12px}.state-sequence span{padding:12px 15px;border:1px solid #69767b;background:#1b252a;font-weight:850;font-size:clamp(16px,.92vw,21px)}.state-sequence i{font-style:normal;color:var(--accent);font-size:25px}
.algorithm-rail article{flex:0 0 min(31vw,420px);scroll-snap-align:center;background:#192228;border:1px solid var(--line);padding:24px;min-height:200px;position:relative}.algorithm-rail article.hero{border:2px solid var(--accent)}.algorithm-rail article>span{display:block;color:#aeb8bc;font-size:14px;letter-spacing:.08em;font-weight:900}.algorithm-rail article>b{display:block;font-size:clamp(29px,1.65vw,39px);margin:8px 0;color:#f4f2ed}.algorithm-rail article p{font-size:clamp(20px,1.12vw,26px);line-height:1.4;color:#d3d9db;margin:0}.algorithm-rail article em{position:absolute;right:18px;bottom:16px;font-style:normal;color:var(--accent);font-family:Consolas,monospace;font-size:20px;font-weight:900}.algorithm-rail .named>span{color:var(--accent)}

/* Zona algoritmo: se desplaza entre demostración y código sin cambiar de diapositiva */
.algorithm-touch-zone{justify-content:flex-start;gap:12px;min-height:100%}
.plain-demo-head{border:0;padding:0;margin:0}.plain-demo-head h3{font-size:clamp(50px,3.45vw,76px);margin:4px 0 6px}.plain-demo-head p{font-size:clamp(22px,1.22vw,29px);color:#cdd4d6;margin:0;line-height:1.35}
.algorithm-snap{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;touch-action:pan-x;-webkit-overflow-scrolling:touch;scrollbar-color:#707a7f #171d20;gap:18px;min-height:0;flex:1;padding-bottom:10px}
.algo-pane{flex:0 0 100%;min-width:100%;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;gap:14px;min-height:0}
.code-pane{background:#151b1f;border:1px solid var(--line);padding:24px 28px;justify-content:flex-start}
.code-pane-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap}.code-pane-head span{font-size:14px;letter-spacing:.08em;font-weight:900;color:var(--accent)}.code-pane-head b{font-size:clamp(26px,1.45vw,34px)}
.algorithm-code{margin:4px 0 0;background:#0d1114;border:1px solid #46535a;border-left:5px solid var(--accent);padding:20px 22px;overflow:auto;max-height:52vh;white-space:pre;font-family:"Cascadia Code",Consolas,monospace;font-size:clamp(18px,1.03vw,23px);line-height:1.46;color:#e9eeee;user-select:text;touch-action:pan-x pan-y}
.algorithm-code code{font:inherit;color:inherit}
.code-note{font-size:clamp(18px,1vw,23px);line-height:1.4;color:#cbd3d5;margin:0}.code-note code{color:var(--accent);font-family:Consolas,monospace}
.demo-explain{font-size:inherit}.demo-explain strong{font-size:clamp(23px,1.3vw,30px)}.demo-explain p{font-size:clamp(19px,1.05vw,24px)}
.touch-chip,.touch-primary,.touch-ghost{font-size:clamp(18px,1vw,23px);min-height:54px;padding:10px 18px}

/* Pseudocódigo */
.pseudo-toolbar h3{font-size:clamp(27px,1.5vw,34px)}.pseudo-block code{font-size:clamp(17px,.98vw,21px)}.pseudo-cloud p{font-size:clamp(18px,1.04vw,23px)}

/* Eficiencia e implementación */
.eff-impl-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}.implementation-note{background:#192228;border:1px solid var(--line);padding:24px 28px}.implementation-note h3+ p{margin-bottom:20px}.dotnet-note{padding:14px 16px;border-left:4px solid var(--accent);background:#11161a;margin-top:18px!important}
.efficiency-table>div{font-size:clamp(17px,.98vw,22px)}
.large-tests{grid-template-columns:repeat(3,1fr);gap:14px}.large-tests>div{min-height:150px;padding:20px}.large-tests b{font-size:clamp(24px,1.32vw,31px)}.large-tests span{font-size:clamp(19px,1.07vw,25px);line-height:1.38}
.acceptance{font-size:clamp(16px,.9vw,20px)}
.switch-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.switch-tabs button{border:1px solid var(--line);background:#192228;color:#e7e8e5;padding:12px 20px;min-height:50px;font-weight:850;font-size:clamp(17px,.95vw,21px);cursor:pointer}.switch-tabs button.active{background:#2b2a22;color:var(--accent);border-color:var(--accent)}
.roomy-table>div{font-size:clamp(16px,.92vw,21px);padding-top:9px;padding-bottom:9px}
.multi-tabs{justify-content:center}
.compact-refs{grid-template-columns:repeat(3,1fr);display:grid;gap:16px}.compact-refs article{min-height:300px}.compact-refs h3{font-size:clamp(23px,1.25vw,29px)}.compact-refs p{font-size:clamp(17px,.95vw,21px)}

/* Final */
.final-slide{text-align:center;align-items:center;justify-content:center}.final-seal{width:min(15vw,210px);height:min(15vw,210px);display:grid;place-items:center;background:#f0eee8;border:4px solid #8d7a46;border-radius:50%;margin-bottom:18px}.final-seal img{width:78%;height:78%;object-fit:contain;cursor:default}.final-slide h2{font-size:clamp(68px,6vw,130px);line-height:.98;margin:16px 0 12px;letter-spacing:-.04em}.final-slide>p{font-size:clamp(30px,2vw,46px);color:#d7dcdd;margin:0 0 28px}.demo-link{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 22px;align-items:center;text-decoration:none;background:#e8e3d5;color:#161a1d;border:3px solid #b59b57;padding:18px 28px;text-align:left;min-width:min(650px,80vw);transition:transform .15s}.demo-link:active{transform:scale(.98)}.demo-link span{font-size:14px;letter-spacing:.09em;font-weight:900;color:#6f633e}.demo-link b{font-size:clamp(30px,2vw,46px)}.demo-link svg{grid-column:2;grid-row:1/3;width:44px;height:44px;fill:none;stroke:#161a1d;stroke-width:2}.final-note{margin-top:18px;color:#aeb8bc;font-size:clamp(16px,.9vw,20px)}


/* V6 · escala adaptable para diapositivas con menos contenido */
.spacious-content .section-title{font-size:clamp(54px,3.8vw,84px);margin-bottom:30px}
.spacious-content .objective-statement{font-size:clamp(34px,2.15vw,49px)}
.spacious-content .deliverables-grid b{font-size:clamp(27px,1.5vw,34px)}
.spacious-content .deliverables-grid span{font-size:clamp(22px,1.23vw,28px)}
.spacious-content .req-list h3{font-size:clamp(31px,1.7vw,39px)}
.spacious-content .req-list p{font-size:clamp(24px,1.35vw,31px)}
.spacious-content .large-tests b{font-size:clamp(26px,1.45vw,34px)}
.spacious-content .large-tests span{font-size:clamp(21px,1.18vw,27px)}
.spacious-content .budget-bars>div{font-size:clamp(22px,1.24vw,29px)}
.spacious-content .budget-total b{font-size:clamp(40px,2.65vw,60px)}

/* Único control permanente */
.fullscreen-only{position:fixed;right:14px;bottom:14px;z-index:80;width:42px;height:42px;border:1px solid #59656a;background:rgba(20,26,30,.8);color:#d6b45a;display:grid;place-items:center;cursor:pointer;border-radius:7px;backdrop-filter:blur(6px)}.fullscreen-only svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* Portada final más académica */
.cover-grid{grid-template-columns:1.45fr .55fr}.cover-copy h1{font-size:clamp(64px,5.3vw,112px)}.cover-caption{font-size:clamp(18px,1vw,23px);letter-spacing:.08em;color:#d7d5cf;text-transform:uppercase}

@media(max-width:1200px){
  .two-copy,.requirements-columns,.analysis-grid,.eff-impl-grid{grid-template-columns:1fr}
  .deliverables-grid,.large-tests{grid-template-columns:repeat(2,1fr)}
  .compact-ds{grid-template-columns:repeat(3,1fr)}
  .touch-rail article,.algorithm-rail article{flex-basis:70vw}
  .compact-refs{grid-template-columns:1fr}
}
@media(max-height:820px){
  .section-title{font-size:clamp(42px,2.9vw,64px);margin-bottom:14px}
  .exposition-paragraph,.exposition-copy{font-size:clamp(20px,1.15vw,26px)}
  .slide{padding-top:22px;padding-bottom:58px}
  .plain-demo-head h3{font-size:clamp(42px,2.95vw,64px)}
  .algorithm-code{max-height:45vh}
  .touch-rail article,.algorithm-rail article{min-height:150px}
}

/* ================= V4 · exposición más limpia e interactiva ================= */
.text-only-ds .ds-card{display:flex;flex-direction:column;justify-content:center;gap:8px}
.text-only-ds .ds-card>span{display:none!important}
.text-only-ds .ds-card b{font-size:clamp(22px,1.18vw,28px);color:var(--accent)}
.text-only-ds .ds-card p{font-size:clamp(17px,.95vw,21px);line-height:1.42;margin:0;color:#d6dbdc}

/* Resultado textual de cada demostración: sin símbolos decorativos */
.demo-result{background:#192228;border:1px solid #59656a;border-left:5px solid var(--accent);padding:16px 20px;min-height:94px}
.demo-result strong{display:block;font-size:clamp(22px,1.22vw,29px);color:#f3f1eb;margin-bottom:5px}
.demo-result p{font-size:clamp(18px,1vw,23px);line-height:1.4;color:#d5dbdc;margin:0}
.demo-result.danger{border-left-color:var(--red);background:#241c1c}

/* Pseudocódigo de referencia: contenido académico, no tutorial paso a paso */
.pseudo-reference{display:flex;flex-direction:column;gap:15px;min-width:0}
.pseudo-reference-head h3{font-size:clamp(27px,1.55vw,36px);line-height:1.15;margin:5px 0 8px;color:#f3f1ed}
.pseudo-reference-head p{font-size:clamp(18px,1vw,23px);line-height:1.42;color:#cdd4d6;margin:0}
.pseudo-static{margin:0;background:#11171b;border:1px solid #566168;border-left:5px solid var(--accent);padding:18px 20px;overflow:auto;white-space:pre-wrap;font-family:"Cascadia Code",Consolas,monospace;font-size:clamp(16px,.9vw,20px);line-height:1.5;color:#edf0ef;user-select:text}
.pseudo-static code{font:inherit;color:inherit}
.pseudo-guarantees{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pseudo-guarantees article{background:#192228;border:1px solid #48555b;padding:13px 15px;min-height:104px}
.pseudo-guarantees b{display:block;color:var(--accent);font-size:clamp(17px,.92vw,21px);margin-bottom:5px}
.pseudo-guarantees p{font-size:clamp(15px,.82vw,19px);line-height:1.36;color:#d2d8d9;margin:0}
.flow-decisions{margin-top:12px;text-align:left;background:#171f24;border:1px solid #505c61;padding:14px 16px}
.flow-decisions>b{display:block;color:var(--accent);font-size:clamp(18px,1vw,23px);margin-bottom:7px}
.flow-decisions p{font-size:clamp(15px,.82vw,19px);line-height:1.35;color:#d7dcdd;margin:5px 0}
.flow-decisions strong{color:#f1efe9}

/* Botón Ver código / panel de código desplegable */
.code-toggle-wrap{display:flex;justify-content:flex-start;margin-top:3px}
.code-toggle,.code-hide{min-height:50px;border:1px solid #786b49;background:#d6b45a;color:#15191b;padding:10px 20px;font-size:clamp(17px,.94vw,21px);font-weight:900;cursor:pointer;touch-action:manipulation}
.code-toggle:active,.code-hide:active{transform:translateY(1px)}
.code-drawer{margin-top:10px;background:#151b1f;border:1px solid #566168;padding:20px 22px;scroll-margin-top:24px;animation:codeOpen .25s ease both}
@keyframes codeOpen{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.code-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.code-drawer-head span{display:block;color:var(--accent);font-size:13px;letter-spacing:.09em;font-weight:900;margin-bottom:4px}
.code-drawer-head h4{font-size:clamp(25px,1.38vw,32px);margin:0;color:#f2f1ed}
.code-hide{background:transparent;color:#e6d196;border-color:#766b50;white-space:nowrap}
.code-drawer .algorithm-code{max-height:48vh;margin:0;background:#0e1316}
.code-drawer .code-note{margin:12px 0 0}

/* Carrusel táctil del ciclo de vida del pedido */
.journey-widget{margin-top:18px;min-width:0}
.journey-label{font-size:clamp(15px,.82vw,19px);color:#c5ccce;margin:0 0 9px}
.journey-rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x;padding:3px 3px 13px;scrollbar-width:thin;scrollbar-color:#7d6d43 #20272b}
.journey-card{flex:0 0 min(29vw,390px);scroll-snap-align:center;text-align:left;background:#192228;color:#f0efeb;border:1px solid #58646a;padding:18px 20px;min-height:142px;cursor:pointer;touch-action:manipulation}
.journey-card small{display:block;color:#aeb8bc;font-size:13px;letter-spacing:.07em;text-transform:uppercase;margin-bottom:8px}
.journey-card b{display:block;font-size:clamp(23px,1.25vw,29px);margin-bottom:6px}
.journey-card span{font-size:clamp(16px,.88vw,20px);line-height:1.35;color:#cfd5d6}
.journey-card.selected{border:2px solid var(--accent);background:#24251f}
.journey-detail{display:grid;grid-template-columns:1.2fr 1fr 1.35fr;border:1px solid #59656a;background:#151c20;margin-top:9px}
.journey-detail>div{padding:13px 16px;border-right:1px solid #465159;min-width:0}
.journey-detail>div:last-child{border-right:0}
.journey-detail span{display:block;color:#9eaaae;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;margin-bottom:4px}
.journey-detail b{display:block;font-size:clamp(16px,.9vw,20px);line-height:1.35;color:#ecebe7;font-weight:700}

/* El filtro deja de usar una letra aislada como símbolo visual */
.filter-gate{width:190px;height:105px;border-radius:10px;padding:10px;text-align:center}
.filter-gate b{font-size:17px;line-height:1.15}
.filter-gate small{font-size:12px;margin-top:5px}

/* Etiquetas de interacción más discretas */
.rail-label{letter-spacing:.055em;color:#c9b775;font-size:clamp(13px,.74vw,16px)}
.transform-label{text-align:center;color:#c8b875;font-size:clamp(15px,.82vw,19px);font-weight:850;letter-spacing:.05em;text-transform:uppercase;margin:4px 0}
.current-label{display:block;margin-top:6px;color:var(--accent);font-size:12px;text-transform:uppercase;letter-spacing:.06em}

/* El estado se entiende por texto y resaltado, sin iconos decorativos */
.state-node{gap:2px}.state-node b{font-size:clamp(16px,.9vw,21px)}

/* El carrusel de conceptos usa palabras, no letras sueltas */
.touch-rail article>span{display:inline-flex;width:auto;height:auto;min-height:0;padding:4px 8px;border:1px solid #647177;font-size:12px;letter-spacing:.06em;margin-bottom:11px;color:#c8b875}

@media(max-width:1200px){
  .pseudo-guarantees{grid-template-columns:1fr}
  .journey-card{flex-basis:62vw}
  .journey-detail{grid-template-columns:1fr}
  .journey-detail>div{border-right:0;border-bottom:1px solid #465159}
  .journey-detail>div:last-child{border-bottom:0}
}
@media(max-height:820px){
  .pseudo-static{font-size:15px;line-height:1.38;padding:12px 15px}
  .pseudo-guarantees article{min-height:82px;padding:10px 12px}
  .journey-card{min-height:116px;padding:13px 15px}
  .journey-detail>div{padding:9px 12px}
  .code-drawer .algorithm-code{max-height:42vh}
}
.pseudo-reference{background:#171e22;border:1px solid var(--line);padding:18px 20px}

/* ================= V5 · integración OMS y anexos completos ================= */
.integration-intro{max-width:1500px;margin-bottom:18px}
.integration-selector{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;border-bottom:1px solid #465158;padding-bottom:12px}
.integration-selector button{min-height:50px;padding:10px 18px;border:1px solid #59656a;background:#171d20;color:#e7e8e5;font-weight:850;font-size:clamp(16px,.9vw,20px);cursor:pointer;border-radius:5px}
.integration-selector button.active{background:#e1c36d;color:#181b1d;border-color:#e1c36d}
.integration-workbench{display:grid;grid-template-columns:.72fr 1.28fr;gap:20px;min-height:390px}
.integration-core-card,.integration-detail-panel{border:1px solid #4c585e;background:#182025;padding:24px 28px}
.integration-core-card{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.integration-core-card>span{font-size:clamp(13px,.75vw,17px);letter-spacing:.1em;color:#c6b978;font-weight:900}
.integration-core-card>b{font-size:clamp(58px,4vw,86px);line-height:1;margin:12px 0;color:#f4f1e8}
.integration-core-card>p{font-size:clamp(21px,1.18vw,28px);line-height:1.42;color:#d3d9da;margin:0;max-width:30ch}
.oms-process-line{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:22px}
.oms-process-line span{border:1px solid #667177;padding:6px 9px;font-size:clamp(13px,.72vw,17px);color:#d6d9d8;background:#12181b}
.integration-detail-panel{display:flex;flex-direction:column;justify-content:center;min-width:0}
.integration-kicker{font-size:clamp(13px,.76vw,17px);letter-spacing:.09em;color:#cdb76b;font-weight:950;margin-bottom:8px}
.integration-detail-panel h3{font-size:clamp(34px,2vw,47px);line-height:1.12;margin:0 0 16px;color:#f1efe9}
.integration-detail-panel p{font-size:clamp(21px,1.18vw,28px);line-height:1.45;color:#d7dcdd;margin:0 0 13px}
.integration-rule{border-left:4px solid #c7b367;padding-left:14px;color:#eef0ed!important}
.integration-formula{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;background:#11171a;border:1px solid #525d62;margin:2px 0 14px;font-size:clamp(24px,1.45vw,34px)}
.integration-formula span{color:#bea85c}.integration-formula b{color:#f0eee7}
.integration-conclusion{margin-top:16px;border-top:1px solid #566168;padding-top:14px;font-size:clamp(18px,1vw,23px);line-height:1.42;color:#d9dedf}
.integration-conclusion b{color:#d8c275}

/* Herramientas como explicación continua, sin tarjetas resaltadas */
.tools-plain{background:transparent!important;border:0!important;padding:4px 10px 4px 24px!important;border-left:1px solid #505a5f!important}
.tools-plain h3{color:#f1efe9!important;font-size:clamp(27px,1.5vw,34px)!important;margin-bottom:14px!important}
.tools-plain p{margin:0 0 14px!important;color:#d5dbdc!important;font-size:clamp(21px,1.18vw,27px)!important;line-height:1.48!important}
.tools-plain b{color:#f2f0e9}

/* Anexos: imagen + explicación de uso */
.annex-tabs{justify-content:flex-start;gap:7px}
.annex-tabs button{padding:10px 16px;min-height:46px;font-size:clamp(15px,.84vw,19px)}
.annex-rich{display:grid;grid-template-columns:1.08fr .92fr;gap:20px;align-items:stretch;min-height:0;flex:1}
.annex-image{height:auto!important;min-height:0;background:#13191c;border:1px solid #4d585d;padding:10px;display:grid;place-items:center}
.annex-image img{max-height:58vh;max-width:100%;object-fit:contain;background:#fff;border-radius:3px;padding:4px}
.annex-copy{background:#192126;border:1px solid #4d585d;padding:22px 25px;display:flex;flex-direction:column;justify-content:center}
.annex-copy>span{font-size:clamp(13px,.75vw,17px);letter-spacing:.08em;color:#cbb76f;font-weight:900;margin-bottom:8px}
.annex-copy h3{font-size:clamp(31px,1.78vw,42px);line-height:1.15;margin:0 0 16px;color:#f2f0e9}
.annex-copy p{font-size:clamp(20px,1.12vw,26px);line-height:1.43;color:#d5dbdc;margin:0 0 11px}
.annex-key{border-top:1px solid #566168;padding-top:12px;margin-top:4px!important;color:#ecece7!important}
.specs-annex{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.spec-group{background:#192126;border:1px solid #4d585d;padding:22px 24px;min-height:360px}
.spec-group h3{font-size:clamp(27px,1.5vw,35px);margin:0 0 18px;color:#e7d28b}
.spec-group p{font-size:clamp(17px,.94vw,21px);line-height:1.42;color:#d4d9da;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #39444a}
.spec-group p:last-child{border-bottom:0}

@media(max-width:1200px){
  .integration-workbench,.annex-rich{grid-template-columns:1fr}
  .specs-annex{grid-template-columns:1fr 1fr}
  .integration-core-card{min-height:210px}
  .annex-image img{max-height:40vh}
}
@media(max-height:820px){
  .integration-workbench{min-height:320px;gap:12px}
  .integration-core-card,.integration-detail-panel{padding:16px 20px}
  .integration-detail-panel h3{font-size:clamp(25px,1.5vw,34px);margin-bottom:9px}
  .integration-detail-panel p{font-size:clamp(16px,.92vw,21px);margin-bottom:8px}
  .oms-process-line{margin-top:12px}
  .annex-copy{padding:14px 18px}
  .annex-copy h3{font-size:clamp(23px,1.35vw,31px);margin-bottom:10px}
  .annex-copy p{font-size:clamp(15px,.86vw,19px);margin-bottom:7px}
  .annex-image img{max-height:49vh}
  .spec-group{min-height:290px;padding:16px 18px}
  .spec-group p{font-size:clamp(14px,.8vw,18px);margin-bottom:8px;padding-bottom:7px}
}
.spec-subtabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px;border-bottom:1px solid #465158;padding-bottom:10px}
.spec-subtabs button{min-height:44px;padding:9px 14px;border:1px solid #59656a;background:#171d20;color:#e7e8e5;font-weight:850;font-size:clamp(14px,.8vw,18px);cursor:pointer;border-radius:4px}
.spec-subtabs button.active{background:#e1c36d;color:#181b1d;border-color:#e1c36d}
.usecase-spec{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;background:#151b1f;border:1px solid #4d585d;padding:20px 22px}
.usecase-spec h3{grid-column:1/-1;margin:0 0 4px;color:#e8d48c;font-size:clamp(28px,1.55vw,36px)}
.usecase-spec>div{background:#1b2429;border:1px solid #465158;padding:14px 16px;min-height:105px}
.usecase-spec>div:nth-of-type(3){grid-column:1/-1}
.usecase-spec b{display:block;color:#f1efe9;font-size:clamp(17px,.94vw,21px);margin-bottom:5px}
.usecase-spec p{font-size:clamp(16px,.88vw,20px);line-height:1.4;color:#d4d9da;margin:0}
@media(max-width:1200px){.usecase-spec{grid-template-columns:1fr}.usecase-spec>div:nth-of-type(3){grid-column:auto}}
@media(max-height:820px){.usecase-spec{gap:8px;padding:12px 14px}.usecase-spec>div{min-height:78px;padding:10px 12px}.usecase-spec p{font-size:clamp(14px,.78vw,18px)}}

/* ================= V7 · portada refinada + esquinas suaves ================= */
:root{
  --radius-soft:16px;
  --radius-panel:20px;
  --radius-large:24px;
}

/* Portada: misma información, composición más formal y equilibrada */
.cover-copy{
  position:relative;
  padding-left:28px;
  border-left:4px solid rgba(216,194,117,.82);
}
.cover-type{
  display:inline-block;
  margin-top:18px;
  color:#d7c47e;
  font-size:clamp(17px,.96vw,22px);
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cover-copy h1{
  margin-top:16px;
  text-wrap:balance;
}
.cover-copy .lead{
  position:relative;
  max-width:30ch;
  margin-bottom:0;
  color:#d8e0e1;
}
.cover-copy .lead::after{
  content:"";
  display:block;
  width:min(520px,78%);
  height:1px;
  margin-top:22px;
  background:linear-gradient(90deg,rgba(216,194,117,.9),rgba(216,194,117,0));
}
.cover-meta{
  gap:14px;
  margin-top:28px;
}
.cover-meta>div{
  border-radius:var(--radius-panel)!important;
  border-top-width:3px;
  background:rgba(24,32,37,.86)!important;
  padding:20px 24px;
}
.cover-meta>div:hover{border-color:#59666c}
.seal-ring{
  background:#f5f3ec;
  border:4px solid #b9a35f;
  box-shadow:0 0 0 8px rgba(245,243,236,.08),0 18px 44px rgba(0,0,0,.28);
  filter:none;
}
.cover-caption{
  padding:8px 16px;
  border-top:1px solid #665f4c;
  border-bottom:1px solid #665f4c;
}

/* Esquinas suaves y coherentes en paneles de contenido */
.deliverables-grid article,
.analysis-grid article,
.req-list,
.ds-card,
.algorithm-rail article,
.integration-core-card,
.integration-detail-panel,
.implementation-note,
.flow-decisions,
.pseudo-reference,
.pseudo-static,
.pseudo-guarantees article,
.demo-result,
.code-drawer,
.algorithm-code,
.journey-card,
.journey-detail,
.large-tests>div,
.annex-image,
.annex-copy,
.references-list article,
.usecase-spec,
.usecase-spec>div,
.problem-flow .flow-card,
.scope,
.two-panel article,
.concept-grid article,
.actors-stack>div,
.io-data>div,
.requirements-grid>div,
.objective-statement,
.formula-banner,
.budget-total,
.efficiency-table,
.schedule-table{
  border-radius:var(--radius-soft)!important;
}

/* Paneles principales ligeramente más redondeados */
.integration-core-card,
.integration-detail-panel,
.annex-image,
.annex-copy,
.budget-total,
.cover-meta>div{
  border-radius:var(--radius-panel)!important;
}

/* Botones táctiles: redondeo discreto, no estilo “pastilla” */
.integration-selector button,
.switch-tabs button,
.annex-tabs button,
.code-toggle,
.code-hide,
.touch-primary,
.touch-ghost,
.touch-chip,
.fullscreen-only{
  border-radius:12px!important;
}

/* Imágenes ampliables conservan aspecto formal */
.flow-thumb img,
.gantt-wrap img,
.diagram-viewer img,
.annex-image img,
.oms-image-lightbox img{
  border-radius:12px!important;
}

@media(max-width:1200px){
  .cover-copy{padding-left:20px}
}

/* Componentes de las demostraciones: mismo lenguaje de esquinas */
.demo-shell,
.stock-card,
.state-node,
.sku-box,
.product-token,
.order-mini,
.order-node,
.linear-order,
.pass,
.filter-gate,
.queue-strip span,
.stable-note .tie{
  border-radius:var(--radius-soft)!important;
}

.stock-meter{border-radius:14px!important}

/* ================= V8 · claridad técnica, cadena completa y métricas ================= */
.demo-metrics{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:8px 0 14px;
  color:#cfd6d7;
  font-size:clamp(15px,.86vw,19px);
}
.demo-metrics span{
  border:1px solid #4b565c;
  background:#151c20;
  padding:8px 12px;
  border-radius:12px;
}
.demo-metrics b{color:#e4c86c;font-size:1.06em}

.chain-overview{
  display:grid;
  grid-template-columns:1.05fr 92px .78fr 92px 1.05fr 92px 1.18fr 92px 1fr;
  align-items:center;
  gap:8px;
  margin:4px 0 14px;
  position:relative;
  padding-bottom:58px;
}
.chain-node,.chain-supply{
  border:1px solid #566269;
  background:#171f23;
  color:#eef0ed;
  min-height:86px;
  padding:12px 14px;
  border-radius:16px;
  text-align:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  cursor:pointer;
  transition:border-color .18s,background .18s,transform .18s;
}
.chain-node b,.chain-supply b{font-size:clamp(17px,1vw,22px);line-height:1.08}
.chain-node small,.chain-supply small{font-size:clamp(12px,.72vw,16px);line-height:1.22;color:#b7c1c4}
.chain-node.active,.chain-supply.active{border-color:#d7bc64;background:#28251c;box-shadow:inset 0 0 0 1px #d7bc64}
.chain-node:active,.chain-supply:active{transform:scale(.985)}
.chain-node.oms-node{background:#ece7d9;color:#151a1d;border:2px solid #b99d4f;cursor:default}
.chain-node.oms-node b{font-size:clamp(28px,1.7vw,40px)}
.chain-node.oms-node small{color:#4c4b45}
.chain-link{height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#b7c0c2;font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.chain-link i{display:block;width:100%;height:2px;background:#69757a;position:relative}
.chain-link i::after{content:"";position:absolute;right:-1px;top:50%;width:9px;height:9px;border-top:2px solid #69757a;border-right:2px solid #69757a;transform:translateY(-50%) rotate(45deg)}
.chain-link.bidirectional i::before{content:"";position:absolute;left:-1px;top:50%;width:9px;height:9px;border-bottom:2px solid #69757a;border-left:2px solid #69757a;transform:translateY(-50%) rotate(45deg)}
.chain-supply{position:absolute;right:calc(36%);bottom:0;min-height:50px;min-width:260px;padding:8px 14px}
.chain-supply::before{content:"";position:absolute;top:-34px;left:50%;height:34px;border-left:2px dashed #6f7a7f}
.chain-supply::after{content:"";position:absolute;top:-36px;left:calc(50% - 5px);width:8px;height:8px;border-top:2px solid #6f7a7f;border-left:2px solid #6f7a7f;transform:rotate(45deg)}
.compact-integration{min-height:300px;grid-template-columns:.62fr 1.38fr;gap:16px}
.compact-integration .integration-core-card,.compact-integration .integration-detail-panel{padding:18px 22px}
.compact-integration .integration-core-card>b{font-size:clamp(46px,3vw,66px)}
.compact-integration .integration-core-card>p{font-size:clamp(17px,1vw,23px)}
.compact-integration .integration-detail-panel h3{font-size:clamp(28px,1.65vw,38px);margin-bottom:10px}
.compact-integration .integration-detail-panel p{font-size:clamp(17px,1vw,23px);margin-bottom:8px}

.tools-plain p{padding-bottom:9px;border-bottom:1px solid #384349}
.tools-plain p:last-child{border-bottom:0}

.final-actions{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap}
.final-qr{background:#f5f3ec;border:2px solid #aa9555;border-radius:18px;padding:10px 12px 9px;display:flex;flex-direction:column;align-items:center;gap:6px}
.final-qr img{width:150px;height:150px;object-fit:contain;cursor:default;border-radius:6px}
.final-qr span{font-size:13px;font-weight:800;color:#38362f;max-width:160px;line-height:1.15}

@media(max-width:1400px){
  .chain-overview{grid-template-columns:1fr 56px .72fr 56px 1fr 56px 1.08fr 56px .9fr;gap:5px}
  .chain-node,.chain-supply{min-height:74px;padding:10px 9px}
  .chain-supply{right:35%;min-width:230px}
}
@media(max-width:1100px){
  .chain-overview{grid-template-columns:repeat(2,1fr);padding-bottom:0}
  .chain-link{display:none}
  .chain-node.oms-node{grid-column:1/-1;grid-row:1}
  .chain-supply{position:static;min-width:0}
  .chain-supply::before,.chain-supply::after{display:none}
  .compact-integration{grid-template-columns:1fr}
}
@media(max-height:820px){
  .chain-overview{margin-bottom:8px;padding-bottom:48px}
  .chain-node,.chain-supply{min-height:65px;padding:8px 9px}
  .chain-node b,.chain-supply b{font-size:clamp(14px,.82vw,18px)}
  .chain-node small,.chain-supply small{font-size:11px}
  .compact-integration{min-height:260px}
  .compact-integration .integration-core-card{display:none}
  .compact-integration .integration-detail-panel{padding:12px 16px}
  .compact-integration .integration-detail-panel h3{font-size:clamp(23px,1.35vw,30px)}
  .compact-integration .integration-detail-panel p{font-size:clamp(15px,.86vw,19px)}
  .final-qr img{width:120px;height:120px}
}

/* ================= V9 · mapa de módulos ordenado + panel central ================= */
.supply-map{
  display:grid;
  grid-template-columns:minmax(210px,1fr) 82px minmax(230px,.95fr) 82px minmax(230px,1fr);
  grid-template-rows:auto 52px auto 52px auto;
  align-items:center;
  gap:8px 10px;
  width:min(1420px,100%);
  margin:4px auto 18px;
  padding:8px 12px;
}
.supply-module{
  min-height:86px;
  border:1px solid #566269;
  background:#171f23;
  color:#eef0ed;
  padding:13px 16px;
  border-radius:18px;
  text-align:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.supply-module b{font-size:clamp(19px,1.06vw,24px);line-height:1.08}
.supply-module small{font-size:clamp(13px,.75vw,17px);line-height:1.2;color:#bcc5c7}
.supply-module>span{font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:900;color:#756a49}
.supply-module.active{
  border-color:#d8c275;
  background:#29261d;
  box-shadow:0 0 0 2px rgba(216,194,117,.15) inset;
  transform:translateY(-2px);
}
.supply-module.oms-main{
  background:#eee9db;
  color:#171b1e;
  border:2px solid #b7a05a;
  min-height:104px;
}
.supply-module.oms-main b{font-size:clamp(34px,2.05vw,48px)}
.supply-module.oms-main small{color:#4f504b}
.supply-module.oms-main.active{background:#f5f0e3;box-shadow:0 0 0 4px rgba(183,160,90,.18)}
.supply-module.sales{grid-column:1;grid-row:3}
.supply-module.oms-main{grid-column:3;grid-row:3}
.supply-module.inventory{grid-column:5;grid-row:3}
.supply-module.supply{grid-column:5;grid-row:1}
.supply-module.warehouse{grid-column:3;grid-row:5}
.supply-module.transport{grid-column:5;grid-row:5}
.map-link{display:flex;align-items:center;justify-content:center;color:#aeb9bc;font-size:11px;letter-spacing:.07em;text-transform:uppercase;font-weight:850;position:relative;min-width:0;min-height:0}
.map-link span{background:#11161a;padding:0 7px;z-index:2;white-space:nowrap}
.map-link i{position:absolute;background:#667278}
.map-link.horizontal i{left:0;right:0;height:2px;top:50%;transform:translateY(-50%)}
.map-link.horizontal i::after{content:"";position:absolute;right:0;top:50%;width:9px;height:9px;border-top:2px solid #667278;border-right:2px solid #667278;transform:translateY(-50%) rotate(45deg)}
.map-link.horizontal.bidirectional i::before{content:"";position:absolute;left:0;top:50%;width:9px;height:9px;border-left:2px solid #667278;border-bottom:2px solid #667278;transform:translateY(-50%) rotate(45deg)}
.map-link.vertical{flex-direction:column}
.map-link.vertical i{top:0;bottom:0;width:2px;left:50%;transform:translateX(-50%)}
.map-link.vertical i::after{content:"";position:absolute;bottom:0;left:50%;width:9px;height:9px;border-right:2px solid #667278;border-bottom:2px solid #667278;transform:translate(-50%,0) rotate(45deg)}
.sales-link{grid-column:2;grid-row:3}
.inventory-link{grid-column:4;grid-row:3}
.supply-link{grid-column:5;grid-row:2}
.warehouse-link{grid-column:3;grid-row:4}
.transport-link{grid-column:4;grid-row:5}

.integration-focus{
  width:min(1180px,92%);
  margin:0 auto;
  background:#182126;
  border:1px solid #566269;
  border-radius:22px;
  padding:22px 30px 24px;
  text-align:center;
  animation:moduleFocusIn .24s ease both;
}
@keyframes moduleFocusIn{from{opacity:0;transform:translateY(8px) scale(.992)}to{opacity:1;transform:none}}
.integration-focus .integration-kicker{display:block;margin-bottom:8px}
.integration-focus h3{font-size:clamp(29px,1.72vw,40px);line-height:1.14;margin:0 auto 18px;max-width:32ch;color:#f1efe9}
.integration-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:left}
.integration-facts p{margin:0;background:#12191d;border:1px solid #465158;border-radius:15px;padding:14px 16px;min-height:96px;display:flex;flex-direction:column;gap:5px}
.integration-facts b{color:#e2ca78;font-size:clamp(16px,.9vw,20px)}
.integration-facts span{color:#d6dcdd;font-size:clamp(16px,.9vw,20px);line-height:1.34}

/* El código queda limpio: sin notas o guías debajo. */
.code-drawer .code-note,.code-note{display:none!important}

@media(max-width:1180px){
  .supply-map{grid-template-columns:1fr 54px 1fr 54px 1fr;gap:6px}
  .supply-module{min-height:74px;padding:10px 9px}
  .supply-module.oms-main{min-height:88px}
  .integration-facts{grid-template-columns:1fr}
  .integration-facts p{min-height:0}
}
@media(max-width:820px){
  .supply-map{display:flex;flex-wrap:wrap;justify-content:center;padding:0}
  .supply-module{flex:1 1 46%;min-width:0}
  .supply-module.oms-main{order:-1;flex-basis:100%}
  .map-link{display:none}
  .integration-focus{width:100%;padding:18px}
}
@media(max-height:820px) and (min-width:1000px){
  .integration-intro{font-size:clamp(17px,.95vw,21px);margin:6px 0 8px}
  .supply-map{grid-template-rows:auto 34px auto 34px auto;margin-bottom:8px}
  .supply-module{min-height:64px;padding:8px 10px}
  .supply-module.oms-main{min-height:74px}
  .supply-module b{font-size:clamp(15px,.82vw,18px)}
  .supply-module small{font-size:11px}
  .integration-focus{padding:14px 20px 16px}
  .integration-focus h3{font-size:clamp(23px,1.35vw,30px);margin-bottom:10px}
  .integration-facts p{min-height:74px;padding:10px 12px}
  .integration-facts b,.integration-facts span{font-size:clamp(14px,.78vw,17px)}
}


/* ================= V10 · limpieza visual solicitada ================= */
/* Favicon del proyecto: el escudo se usa en la pestaña del navegador. */

/* El mapa de la cadena muestra solo flechas, sin textos superpuestos. */
.map-link span{display:none!important}

/* Las cajas explicativas dentro de los simuladores se retiran para dejar el área limpia. */
.demo-result,
.flow-decisions{display:none!important}

/* Las cabeceras de cada simulador asumen el papel de concepto superior. */
.demo-head.plain-demo-head{border-bottom:0;padding-bottom:4px;margin-bottom:4px}
.demo-head.plain-demo-head h3{margin:6px 0 4px}
.demo-head.plain-demo-head p{margin:8px 0 0;color:#d8ddde;font-size:clamp(20px,1.08vw,25px);line-height:1.35;max-width:58ch}

/* Quitar acentos laterales amarillos que recargan la vista. */
.algorithm-code,
.pseudo-static,
.objective-statement,
.argument-box,
.budget-caption,
.dotnet-note,
.io-data>div{border-left:none!important}

.algorithm-code,
.pseudo-static{border-radius:16px!important}

/* El bloque de código y el pseudocódigo quedan más limpios. */
.code-drawer{border-radius:18px}
.code-drawer-head{margin-bottom:10px}
.flow-thumb{display:flex;flex-direction:column;justify-content:flex-start}
.flow-thumb figcaption{margin-top:10px;color:#cfd8da;font-size:clamp(16px,.88vw,20px)}

/* Algo más de aire cuando desaparecen las cajas inferiores. */
.demo-shell{gap:16px}
.demo-metrics{margin-top:-4px}

/* En la vista de cadena de suministro, el panel activo queda claramente centrado. */
.integration-focus{box-shadow:0 16px 36px rgba(0,0,0,.22)}

/* El botón de código queda más elegante. */
.code-toggle,.code-hide{border-radius:14px}


/* ================= V11 · controles mínimos para pantalla táctil gigante ================= */
.nav-mini{
  position:fixed;
  right:10px;
  bottom:10px;
  z-index:85;
  display:flex;
  align-items:center;
  gap:5px;
  background:rgba(12,18,22,.72);
  border:1px solid rgba(92,104,110,.72);
  backdrop-filter:blur(6px);
  border-radius:10px;
  padding:4px;
}
.nav-mini-btn{
  width:34px;
  height:34px;
  min-height:34px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#ece7d6;
  display:grid;
  place-items:center;
  cursor:pointer;
  touch-action:manipulation;
}
.nav-mini-btn:hover{background:#253037}
.nav-mini-btn:disabled{opacity:.22;cursor:default}
.nav-mini-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.nav-mini-btn.fullscreen{color:#d9bd6f}
.fullscreen-only{display:none!important}
@media(max-height:760px){
  .nav-mini{right:8px;bottom:8px;padding:3px;gap:4px}
  .nav-mini-btn{width:30px;height:30px;min-height:30px}
  .nav-mini-btn svg{width:14px;height:14px}
}
