:root{--color-bg:#100a05;--color-bg-2:#1a120a;--color-bg-3:#241b10;--color-fg:#f4e9d2;--color-fg-dim:#a59880;--color-fg-faint:#5c5043;--phase-0:#b9a890;--phase-1:#e8c882;--phase-2:#ed7e2f;--phase-3:#a25530;--success:#d4c44a;--danger:#e85040;--border:#3a2c1c;--border-strong:#5c4530;--font-mono:"JetBrains Mono", "Cascadia Code", "Menlo", "Consolas", monospace;--font-sans:"Inter", system-ui, sans-serif;--font-arabic:"IBM Plex Sans Arabic", "Cairo", "Tajawal", system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--t-fast:.1s ease;--t:.16s cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;padding:0;line-height:1.5}[dir=rtl] body{font-family:var(--font-arabic)}body:before{content:"";pointer-events:none;z-index:0;background-image:repeating-linear-gradient(#0000 0 2px,#ffd2a004 3px);position:fixed;inset:0}a{color:var(--phase-1);transition:color var(--t-fast);text-decoration:none}a:hover{color:var(--color-fg)}::selection{background:var(--phase-1);color:var(--color-bg)}#app{z-index:2;flex-direction:column;min-height:100vh;display:flex;position:relative}.bg-decor{pointer-events:none;z-index:1;color:var(--color-fg-faint);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.bg-decor pre{white-space:pre;letter-spacing:.02em;margin:0;font-weight:400;line-height:1.4;position:absolute}.bg-cat{top:96px;opacity:.32;width:110px;height:auto;image-rendering:pixelated;image-rendering:crisp-edges;inset-inline-end:32px}.bg-memory-tl{top:96px;opacity:.1;font-size:11px;inset-inline-start:24px;-webkit-mask-image:linear-gradient(90deg,#000 0% 30%,#0000 100%);mask-image:linear-gradient(90deg,#000 0% 30%,#0000 100%)}.bg-memory-br{bottom:64px;opacity:.1;text-align:end;font-size:11px;inset-inline-end:24px;-webkit-mask-image:linear-gradient(270deg,#000 0% 30%,#0000 100%);mask-image:linear-gradient(270deg,#000 0% 30%,#0000 100%)}@media (max-width:1300px){.bg-cat{opacity:.18;width:80px}.bg-memory-tl,.bg-memory-br{opacity:.05}}@media (max-width:1080px){.bg-decor{display:none}}.site-header{background:var(--color-bg-2);border-bottom:2px solid var(--phase-1);z-index:10;position:sticky;top:0}.header-inner{max-width:1100px;padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.brand{align-items:center;gap:var(--space-3);color:var(--color-fg);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;font-size:.95rem;font-weight:700;display:flex}.brand:hover{color:var(--color-fg)}.brand-cat{color:var(--phase-1);border:2px solid var(--phase-1);letter-spacing:.12em;background:0 0;align-items:center;padding:3px 9px;font-size:.72em;font-weight:700;display:inline-flex}.brand-text{color:var(--color-fg)}.lang-toggle{background:var(--color-bg);color:var(--color-fg);border:2px solid var(--border);cursor:pointer;font-family:var(--font-mono);letter-spacing:.05em;transition:var(--t-fast);padding:5px 14px;font-size:.82rem;font-weight:600}.lang-toggle:hover{border-color:var(--phase-1);color:var(--phase-1)}.lang-toggle:active{transform:translate(1px,1px)}#view{width:100%;max-width:1100px;padding:var(--space-5) var(--space-4) var(--space-6);flex:1;margin:0 auto}.status-bar{background:var(--color-bg-2);border-top:2px solid var(--border);font-family:var(--font-mono);color:var(--color-fg-dim);z-index:9;font-size:.78rem;position:sticky;bottom:0}.status-bar-inner{gap:var(--space-4);max-width:1100px;padding:var(--space-2) var(--space-4);text-transform:uppercase;letter-spacing:.08em;margin:0 auto;display:flex}.status-slot{align-items:center;gap:6px;display:flex}.status-slot-label{color:var(--color-fg-faint)}.status-slot-value{color:var(--color-fg);font-weight:600}.status-slot.score .status-slot-value{color:var(--phase-1)}.status-slot.solved .status-slot-value{color:var(--success)}.status-spacer{flex:1}.status-cursor{color:var(--phase-1);animation:1s steps(2,end) infinite blink}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.hero{border:2px solid var(--phase-1);background:var(--color-bg-2);padding:var(--space-5) var(--space-4);margin-bottom:var(--space-6);position:relative}.hero:before{content:"┌─ welcome, intruder ──────";top:-10px;background:var(--color-bg);font-family:var(--font-mono);color:var(--phase-1);letter-spacing:.05em;padding:0 8px;font-size:.75rem;position:absolute;inset-inline-start:var(--space-3)}.hero-grid{gap:var(--space-2);text-align:center;grid-template-columns:1fr;display:grid}.hero-pre{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--color-fg-dim);font-size:.78rem}.hero h1{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;color:var(--phase-1);margin:0;font-size:2.4rem;font-weight:700;line-height:1.05}[dir=rtl] .hero h1{letter-spacing:0}.hero-sub{color:var(--color-fg-dim);margin:var(--space-2) auto 0;max-width:540px;font-size:.95rem;font-family:var(--font-sans)}[dir=rtl] .hero-sub{font-family:var(--font-arabic)}.phase{margin-bottom:var(--space-6)}.phase-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.phase-num{font-family:var(--font-mono);letter-spacing:.12em;color:var(--phase-color);background:var(--color-bg);border:2px solid var(--phase-color);text-transform:uppercase;justify-content:center;align-items:center;padding:4px 12px;font-size:.85rem;font-weight:700;display:inline-flex}.phase-text{flex:1}.phase-text h2{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--color-fg);margin:0;font-size:1.05rem;font-weight:700}.phase-sub{color:var(--color-fg-dim);font-size:.82rem;font-family:var(--font-sans);letter-spacing:0;text-transform:none;margin:2px 0 0}[dir=rtl] .phase-sub{font-family:var(--font-arabic)}.phase-rule{background:var(--phase-color);flex-shrink:0;width:80px;height:2px}.phase[data-phase="1"]{--phase-color:var(--phase-1)}.phase[data-phase="2"]{--phase-color:var(--phase-2)}.phase[data-phase="3"]{--phase-color:var(--phase-3)}.level-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.level-card{--card-color:var(--phase-1);min-height:130px;padding:var(--space-3);background:var(--color-bg-2);border:2px solid var(--border);color:var(--color-fg);font-family:var(--font-mono);transition:transform var(--t), border-color var(--t), box-shadow var(--t);flex-direction:column;justify-content:space-between;text-decoration:none;display:flex;position:relative}.level-card[data-phase="1"]{--card-color:var(--phase-1)}.level-card[data-phase="2"]{--card-color:var(--phase-2)}.level-card[data-phase="3"]{--card-color:var(--phase-3)}.level-card:hover{color:var(--color-fg)}.level-card.unlocked:hover{border-color:var(--card-color);box-shadow:6px 6px 0 var(--card-color);transform:translate(-3px,-3px)}.level-card.unlocked:hover .level-num,.level-card.unlocked:hover .level-title{color:var(--card-color)}.level-card.locked{opacity:.4;cursor:not-allowed;pointer-events:none}.level-card.solved{border-color:var(--success)}.level-card.solved .level-num{color:var(--success)}.level-card.solved:hover{box-shadow:6px 6px 0 var(--success)}.level-card.boss{border-width:2px;border-color:var(--card-color);min-height:140px}.level-card.boss .level-num{color:var(--card-color)}.level-card.mega{border-width:3px;border-color:var(--phase-3);background:var(--color-bg-3);grid-column:span 2;min-height:160px}.level-card.mega .level-num{color:var(--phase-3);font-size:2rem}.level-card.mega .level-title{font-size:1.3rem}.level-card-header{justify-content:space-between;align-items:flex-start;display:flex}.level-num{font-family:var(--font-mono);color:var(--color-fg-dim);letter-spacing:.03em;transition:color var(--t);font-size:1.4rem;font-weight:700}.level-title{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;margin-top:var(--space-3);transition:color var(--t);font-size:1rem;font-weight:600}.level-card-footer{margin-top:var(--space-2);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-fg-faint);justify-content:space-between;align-items:center;font-size:.7rem;display:flex}.level-badge{color:var(--card-color);font-weight:700}.level-card.solved .level-badge{color:var(--success)}.level-points{color:var(--color-fg-faint)}.level-status{font-family:var(--font-mono);color:var(--color-fg-faint);font-size:1rem;font-weight:700}.level-status.solved-marker{color:var(--success)}.level-status.lock-marker{color:var(--color-fg-faint);opacity:.5}.level-page{gap:var(--space-4);flex-direction:column;display:flex}.level-header{gap:var(--space-3);border-bottom:2px solid var(--border);padding-bottom:var(--space-3);flex-direction:column;display:flex}.back-link{font-family:var(--font-mono);color:var(--color-fg-dim);text-transform:uppercase;letter-spacing:.06em;align-self:flex-start;font-size:.82rem}.back-link:hover{color:var(--phase-1)}.level-title-row{align-items:baseline;gap:var(--space-3);display:flex}.level-tag{font-family:var(--font-mono);color:var(--phase-1);border:2px solid var(--phase-1);background:var(--color-bg);letter-spacing:.04em;padding:4px 12px;font-size:1rem;font-weight:700}.level-title-row h1{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;color:var(--color-fg);margin:0;font-size:1.6rem;font-weight:700}.todo-panel{padding:var(--space-5);background:var(--color-bg-2);border:2px dashed var(--border-strong);font-family:var(--font-mono);position:relative}.todo-panel:before{content:"┌─ todo ──";top:-10px;background:var(--color-bg);color:var(--color-fg-faint);letter-spacing:.06em;padding:0 8px;font-size:.72rem;position:absolute;inset-inline-start:var(--space-3)}.todo-title{margin:0 0 var(--space-2);color:var(--color-fg);font-size:.9rem}.todo-meta{color:var(--color-fg-faint);margin:0;font-size:.8rem}.todo-meta code{color:var(--phase-1)}.level-message{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-fg-dim);border:2px dashed var(--border);font-family:var(--font-mono)}.level-message p{margin:0 0 var(--space-3)}[dir=rtl] code,[dir=rtl] .mono,[dir=rtl] .level-num,[dir=rtl] .level-tag,[dir=rtl] .back-link,[dir=rtl] .brand-cat,[dir=rtl] .status-bar{direction:ltr;unicode-bidi:isolate}.share-modal{z-index:60;-webkit-backdrop-filter:blur(8px);opacity:0;padding:var(--space-4);background:#0a0806f0;justify-content:center;align-items:center;transition:opacity .24s;display:flex;position:fixed;inset:0;overflow-y:auto}.share-modal.open{opacity:1}.share-modal-inner{align-items:center;gap:var(--space-4);width:100%;max-width:700px;padding:var(--space-4);flex-direction:column;display:flex}.share-modal-title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--phase-2);padding:var(--space-2) var(--space-4);border:2px solid var(--phase-2);font-size:1.2rem;font-weight:700}.share-card-host{width:100%;max-width:480px;padding:var(--space-3);background:var(--color-bg-2);border:2px solid var(--border);justify-content:center;display:flex}.share-card-canvas{image-rendering:auto;max-width:100%;height:auto;display:block;box-shadow:0 8px 32px #00000080}.share-card-loading,.share-card-error{padding:var(--space-5);text-align:center;font-family:var(--font-mono);color:var(--color-fg-dim)}.share-card-error{color:var(--danger)}.share-buttons{gap:var(--space-2);flex-wrap:wrap;justify-content:center;width:100%;max-width:480px;display:flex}.share-btn{background:var(--color-bg);border:2px solid var(--border);color:var(--color-fg);font-family:var(--font-mono);letter-spacing:.08em;cursor:pointer;text-transform:uppercase;transition:var(--t-fast);padding:9px 14px;font-size:.78rem;font-weight:700}.share-btn:hover{border-color:var(--phase-2);color:var(--phase-2)}.share-btn:active{transform:translate(1px,1px)}.share-btn-png{border-color:var(--phase-2);color:var(--phase-2)}.share-btn-png:hover{background:var(--phase-2);color:var(--color-bg)}.share-btn-copy{border-color:var(--success);color:var(--success)}.share-btn-copy:hover{background:var(--success);color:var(--color-bg)}.share-btn-native{border-color:var(--phase-1);color:var(--phase-1)}.share-btn-native:hover{background:var(--phase-1);color:var(--color-bg)}.share-btn-linkedin{color:#5b8bd4;border-color:#0a66c2}.share-btn-linkedin:hover{color:var(--color-fg);background:#0a66c2}.share-btn-twitter{border-color:var(--color-fg-dim);color:var(--color-fg)}.share-btn-twitter:hover{background:var(--color-fg);color:var(--color-bg)}.share-feedback{font-family:var(--font-mono);min-height:1.2em;color:var(--color-fg-dim);text-align:center;font-size:.85rem}.share-feedback[data-kind=success]{color:var(--success)}.share-feedback[data-kind=fail]{color:var(--danger)}.share-feedback[data-kind=info]{color:var(--phase-2)}.share-continue-btn{background:var(--color-bg);border:2px solid var(--phase-2);color:var(--phase-2);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:var(--t-fast);margin-top:var(--space-2);padding:10px 24px;font-size:.95rem;font-weight:700}.share-continue-btn:hover{background:var(--phase-2);color:var(--color-bg)}@media (max-width:600px){.share-card-host{max-width:100%}.share-btn{padding:8px 10px;font-size:.72rem}}.cert-page{gap:var(--space-4);flex-direction:column;display:flex}.cert-name-section{padding:var(--space-5) var(--space-4) var(--space-4);background:var(--color-bg-2);border:2px solid var(--phase-2);font-family:var(--font-mono);position:relative}.cert-name-section .panel-label{color:var(--phase-2)}.cert-name-blurb{margin:0 0 var(--space-3);font-family:var(--font-sans);color:var(--color-fg-dim);font-size:.95rem}[dir=rtl] .cert-name-blurb{font-family:var(--font-arabic)}.cert-name-form{gap:var(--space-2);flex-wrap:wrap;display:flex}.cert-name-input{background:var(--color-bg);border:2px solid var(--border);min-width:200px;color:var(--color-fg);font-family:var(--font-mono);transition:border-color var(--t-fast);flex:280px;padding:10px 14px;font-size:1rem}.cert-name-input:focus{border-color:var(--phase-2);outline:none}.cert-name-submit{background:var(--color-bg);border:2px solid var(--phase-2);color:var(--phase-2);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:var(--t-fast);padding:10px 22px;font-size:.88rem;font-weight:700}.cert-name-submit:hover{background:var(--phase-2);color:var(--color-bg)}.cert-name-submit:active{transform:translate(1px,1px)}.cert-canvas-host{padding:var(--space-3);background:var(--color-bg-2);border:2px solid var(--border);justify-content:center;display:flex;overflow-x:auto}.cert-canvas{image-rendering:auto;max-width:100%;height:auto;display:block;box-shadow:0 8px 32px #00000080}.cert-loading,.cert-error{padding:var(--space-5);text-align:center;font-family:var(--font-mono);color:var(--color-fg-dim)}.cert-error{color:var(--danger)}.cert-meta{gap:var(--space-5);padding:var(--space-3);background:var(--color-bg-2);border:2px dashed var(--border);font-family:var(--font-mono);flex-wrap:wrap;font-size:.9rem;display:flex}[dir=rtl] .cert-meta{text-align:start;direction:ltr}.cert-meta-row{gap:var(--space-2);display:flex}.cert-meta-label{color:var(--color-fg-faint);letter-spacing:.06em;text-transform:uppercase}.cert-meta-value{color:var(--phase-2);font-weight:700}.cert-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.cert-btn{background:var(--color-bg);border:2px solid var(--border);color:var(--color-fg);font-family:var(--font-mono);letter-spacing:.08em;cursor:pointer;text-transform:uppercase;transition:var(--t-fast);padding:10px 20px;font-size:.88rem;font-weight:700}.cert-btn:hover:not(:disabled){border-color:var(--phase-2);color:var(--phase-2)}.cert-btn:active:not(:disabled){transform:translate(1px,1px)}.cert-btn:disabled{opacity:.4;cursor:not-allowed}.cert-btn-png{border-color:var(--phase-2);color:var(--phase-2)}.cert-btn-png:hover:not(:disabled){background:var(--phase-2);color:var(--color-bg)}.cert-btn-pdf{border-color:var(--success);color:var(--success)}.cert-btn-pdf:hover:not(:disabled){background:var(--success);color:var(--color-bg)}.cert-btn-rename{border-color:var(--color-fg-faint);color:var(--color-fg-dim);margin-inline-start:auto;padding:8px 14px;font-size:.78rem}.cert-btn-rename:hover:not(:disabled){border-color:var(--color-fg-dim);color:var(--color-fg);background:0 0}.level-download{padding:var(--space-4);background:var(--color-bg-2);border:2px solid var(--phase-2);font-family:var(--font-mono);position:relative}.level-download .panel-label{color:var(--phase-2)}.dl-body{gap:var(--space-3);flex-direction:column;display:flex}.dl-link{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:2px solid var(--phase-2);color:var(--phase-2);font-family:var(--font-mono);letter-spacing:.02em;transition:transform var(--t), background var(--t), color var(--t), box-shadow var(--t);align-self:flex-start;font-size:.95rem;font-weight:700;text-decoration:none;display:inline-flex}.dl-link:hover{color:var(--color-bg);background:var(--phase-2);box-shadow:6px 6px 0 var(--phase-2);transform:translate(-3px,-3px)}.dl-icon{font-size:1.2em}.dl-size{color:var(--color-fg-faint);font-size:.85em;font-weight:400}.dl-note{font-family:var(--font-sans);color:var(--color-fg-dim);margin:0;font-size:.88rem;line-height:1.5}[dir=rtl] .dl-note{font-family:var(--font-arabic)}.level-flag-input{padding:var(--space-4);background:var(--color-bg-2);border:2px solid var(--success);font-family:var(--font-mono);position:relative}.level-flag-input .panel-label{color:var(--success)}.flag-form{gap:var(--space-2);flex-wrap:wrap;display:flex}.flag-input{background:var(--color-bg);border:2px solid var(--border);min-width:200px;color:var(--color-fg);font-family:var(--font-mono);transition:border-color var(--t-fast);flex:280px;padding:10px 14px;font-size:.95rem}[dir=rtl] .flag-input{text-align:start;direction:ltr}.flag-input::placeholder{color:var(--color-fg-faint)}.flag-input:focus{border-color:var(--success);outline:none}.flag-input:disabled{opacity:.75;cursor:not-allowed;border-color:var(--success);color:var(--success)}.flag-submit{background:var(--color-bg);border:2px solid var(--success);color:var(--success);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:var(--t-fast);padding:10px 22px;font-size:.85rem;font-weight:700}.flag-submit:hover:not(:disabled){background:var(--success);color:var(--color-bg)}.flag-submit:active:not(:disabled){transform:translate(1px,1px)}.flag-submit:disabled{opacity:.45;cursor:not-allowed}.flag-feedback{margin-top:var(--space-2);font-family:var(--font-mono);letter-spacing:.02em;min-height:1.2em;font-size:.85rem}.flag-feedback[data-kind=success]{color:var(--success)}.flag-feedback[data-kind=fail]{color:var(--danger)}[dir=rtl] .flag-feedback{text-align:start;direction:ltr}.sim-level .level-header{border-bottom:2px solid var(--border);padding-bottom:var(--space-3)}.sim-level .level-title-row{align-items:center}.level-solved-mark{font-family:var(--font-mono);color:var(--success);margin-inline-start:var(--space-2);font-size:.85rem;font-weight:700}.level-boss-mark{font-family:var(--font-mono);color:var(--phase-3);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--phase-3);margin-inline-start:var(--space-2);padding:3px 8px;font-size:.72rem;font-weight:700}.level-brief,.level-source,.level-objective{padding:var(--space-4) var(--space-4) var(--space-3);background:var(--color-bg-2);border:2px solid var(--border);font-family:var(--font-mono);position:relative}.level-source{border-color:var(--phase-3)}.level-source .panel-label{color:var(--phase-3)}.c-source{font-family:var(--font-mono);color:var(--color-fg);white-space:pre;letter-spacing:0;background:0 0;margin:0;padding:0;font-size:.88rem;line-height:1.55;overflow-x:auto}[dir=rtl] .c-source{text-align:start;direction:ltr}.c-source code{font-family:inherit}.c-keyword{color:var(--phase-1);font-weight:600}.c-string{color:var(--success)}.c-number{color:var(--phase-2)}.c-comment{color:var(--color-fg-faint);font-style:italic}.panel-label{top:-10px;background:var(--color-bg);color:var(--color-fg-faint);letter-spacing:.14em;padding:0 8px;font-size:.72rem;font-weight:700;position:absolute;inset-inline-start:var(--space-3)}.level-objective .panel-label{color:var(--phase-2)}.level-objective{border-color:var(--phase-2)}.panel-body{font-family:var(--font-sans);color:var(--color-fg);margin:0;font-size:.95rem;line-height:1.6}[dir=rtl] .panel-body{font-family:var(--font-arabic)}.objective-body{font-family:var(--font-mono);color:var(--phase-2);font-weight:600}[dir=rtl] .objective-body{font-family:var(--font-arabic)}.level-actions{gap:var(--space-3);margin-top:var(--space-3);display:flex}.level-action-btn{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-fg-dim);background:var(--color-bg-2);border:2px solid var(--border);transition:var(--t-fast);padding:10px 20px;font-size:.88rem;font-weight:700;display:inline-block}.level-action-btn:hover{border-color:var(--phase-1);color:var(--phase-1)}.level-action-btn.primary{color:var(--success);border-color:var(--success)}.level-action-btn.primary:hover{background:var(--success);color:var(--color-bg)}.sim-stage{gap:var(--space-3);font-family:var(--font-mono);flex-direction:column;display:flex}.sim-board{background:var(--color-bg-2);border:2px solid var(--border);padding:var(--space-4);position:relative}.sim-frame-label{top:-10px;background:var(--color-bg);color:var(--phase-1);letter-spacing:.06em;gap:var(--space-3);padding:0 8px;font-size:.74rem;display:flex;position:absolute;inset-inline-start:var(--space-3)}.frame-label-base{color:var(--color-fg-faint)}.sim-regions{gap:var(--space-2);flex-direction:column;display:flex}.sim-region{border:2px solid var(--border);padding:var(--space-2) var(--space-3) var(--space-3);background:var(--color-bg);transition:border-color var(--t), box-shadow var(--t);position:relative}.sim-region.hidden{display:none}.sim-region.kind-buffer{border-color:var(--phase-1)}.sim-region.kind-local{border-color:var(--phase-2)}.sim-region.kind-saved_rbp{border-color:var(--color-border-strong)}.sim-region.kind-saved_rip{border-color:var(--phase-3)}.region-label{color:var(--color-fg-dim);margin-bottom:var(--space-2);letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:.78rem;display:flex}.region-name{font-weight:700}.kind-buffer .region-name{color:var(--phase-1)}.kind-local .region-name{color:var(--phase-2)}.kind-saved_rip .region-name{color:var(--phase-3)}.region-addr{color:var(--color-fg-faint);font-size:.74rem}.region-bytes{flex-wrap:wrap;gap:4px;display:flex}.byte{background:var(--color-bg-2);border:1px solid var(--color-border);min-width:30px;color:var(--color-fg-dim);font-family:var(--font-mono);letter-spacing:.02em;transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast), transform var(--t-fast);justify-content:center;align-items:center;padding:6px 4px;font-size:.85rem;font-weight:600;display:inline-flex}.byte[data-state=initial]{color:var(--color-fg-faint)}.byte[data-state=modified]{background:var(--phase-1);color:var(--color-bg);border-color:var(--phase-1)}.byte[data-state=spilled]{background:var(--danger);color:var(--color-bg);border-color:var(--danger)}.byte.fx-flash{animation:.24s ease-out byteFlash}@keyframes byteFlash{0%{filter:brightness(1.5);transform:scale(1.4)}to{filter:brightness();transform:scale(1)}}.sim-region.fx-pulse{animation:.42s ease-out regionPulse}@keyframes regionPulse{0%{box-shadow:0 0 0 0 var(--phase-1)}60%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.sim-region.fx-shake{animation:.32s cubic-bezier(.36,.07,.19,.97) both shake}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.sim-panel{gap:var(--space-2);flex-direction:column;display:flex}.sim-controls{gap:var(--space-2);padding:var(--space-3);background:var(--color-bg-2);border:2px solid var(--border);flex-wrap:wrap;display:flex}.sim-input{background:var(--color-bg);border:2px solid var(--border);min-width:200px;color:var(--color-fg);font-family:var(--font-mono);transition:border-color var(--t-fast);flex:280px;padding:8px 12px;font-size:.92rem}[dir=rtl] .sim-input{text-align:start;direction:ltr}.sim-input::placeholder{color:var(--color-fg-faint)}.sim-input:focus{border-color:var(--phase-1);outline:none}.sim-mode{background:var(--color-bg);color:var(--phase-1);border:2px solid var(--phase-1);font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;padding:6px 10px;font-size:.85rem;font-weight:700}.sim-mode:disabled{opacity:.4;cursor:not-allowed}.sim-btn{background:var(--color-bg);border:2px solid var(--border);color:var(--color-fg);font-family:var(--font-mono);letter-spacing:.08em;cursor:pointer;transition:var(--t-fast);text-transform:uppercase;padding:8px 16px;font-size:.85rem;font-weight:700}.sim-btn:hover{border-color:var(--phase-1);color:var(--phase-1)}.sim-btn:active{transform:translate(1px,1px)}.sim-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.sim-run{border-color:var(--phase-2);color:var(--phase-2)}.sim-run:hover:not(:disabled){background:var(--phase-2);color:var(--color-bg)}.sim-step{border-color:var(--phase-1);color:var(--phase-1)}.sim-step:hover:not(:disabled){background:var(--phase-1);color:var(--color-bg)}.sim-helper{border-color:var(--success);color:var(--success)}.sim-helper:hover:not(:disabled){background:var(--success);color:var(--color-bg)}.sim-preview{font-family:var(--font-mono);color:var(--color-fg-faint);min-height:22px;padding:0 var(--space-1);font-size:.82rem}[dir=rtl] .sim-preview{text-align:start;direction:ltr}.sim-status{font-family:var(--font-mono);padding:var(--space-3);background:var(--color-bg-2);border:2px dashed var(--border);min-height:48px;color:var(--color-fg-dim);letter-spacing:.01em;font-size:.88rem}.sim-status[data-kind=info]{color:var(--color-fg-dim)}.sim-status[data-kind=warn]{border-color:var(--phase-2);color:var(--phase-2)}.sim-status[data-kind=fail]{border-color:var(--danger);color:var(--danger)}.sim-status[data-kind=success]{border-color:var(--success);color:var(--success)}[dir=rtl] .sim-status{text-align:start;direction:ltr}.companion{bottom:56px;z-index:8;align-items:flex-end;gap:var(--space-2);pointer-events:none;display:flex;position:fixed;inset-inline-end:24px}.companion-sprite{width:132px;height:auto;image-rendering:pixelated;image-rendering:crisp-edges;pointer-events:auto;filter:drop-shadow(0 6px 14px #00000073);flex-shrink:0;animation:2.4s ease-in-out infinite companionBob}@keyframes companionBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.companion-bubble{min-width:200px;max-width:360px;padding:var(--space-3) var(--space-4) var(--space-4) var(--space-3);background:var(--color-bg-2);border:2px solid var(--phase-2);pointer-events:auto;cursor:pointer;margin-bottom:24px;animation:.22s cubic-bezier(.2,.7,.2,1) bubbleRise;position:relative;box-shadow:0 8px 24px #0006}.companion-bubble[hidden]{display:none}@keyframes bubbleRise{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.companion-bubble:after{content:"";bottom:28px;border-style:solid;border-width:8px 0 8px 12px;border-color:transparent transparent transparent var(--phase-2);width:0;height:0;position:absolute;inset-inline-end:-12px}[dir=rtl] .companion-bubble:after{border-width:8px 12px 8px 0;border-color:transparent var(--phase-2) transparent transparent;inset-inline:-12px auto}.companion-bubble:before{content:"┌─ cookie ─";top:-10px;background:var(--color-bg);font-family:var(--font-mono);color:var(--phase-2);letter-spacing:.06em;padding:0 8px;font-size:.7rem;position:absolute;inset-inline-start:var(--space-3)}.companion-text{font-family:var(--font-sans);color:var(--color-fg);white-space:pre-wrap;min-height:2.2em;font-size:.92rem;line-height:1.5}[dir=rtl] .companion-text{font-family:var(--font-arabic)}.companion-next{bottom:6px;color:var(--phase-2);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:1rem;font-weight:700;animation:1.4s ease-in-out infinite nextPulse;position:absolute;inset-inline-end:var(--space-3)}@keyframes nextPulse{0%,to{opacity:.45}50%{opacity:1}}@media (max-width:1100px){.companion-sprite{width:100px}.companion-bubble{min-width:160px;max-width:280px}}@media (max-width:820px){.companion{display:none}}.dialogue{align-items:flex-end;gap:var(--space-3);margin:var(--space-3) 0;cursor:pointer;animation:.32s cubic-bezier(.2,.7,.2,1) both dialogueRise;display:flex}@keyframes dialogueRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dialogue-sprite{width:96px;height:auto;image-rendering:pixelated;image-rendering:crisp-edges;flex-shrink:0;animation:2.4s ease-in-out infinite dialogueBob}@keyframes dialogueBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.dialogue-box{padding:var(--space-3) var(--space-4) var(--space-3) var(--space-3);background:var(--color-bg-2);border:2px solid var(--phase-2);font-family:var(--font-mono);flex:1;min-height:80px;position:relative}.dialogue-box:before{content:"┌─ cookie ─";top:-10px;background:var(--color-bg);color:var(--phase-2);letter-spacing:.06em;padding:0 8px;font-size:.72rem;position:absolute;inset-inline-start:var(--space-3)}.dialogue-text{font-family:var(--font-sans);color:var(--color-fg);white-space:pre-wrap;min-height:2.4em;font-size:.96rem;line-height:1.55}[dir=rtl] .dialogue-text{font-family:var(--font-arabic)}.dialogue-next{bottom:var(--space-2);color:var(--phase-2);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1rem;font-weight:700;animation:1.4s ease-in-out infinite nextPulse;position:absolute;inset-inline-end:var(--space-3)}.level-hints{padding:var(--space-4) var(--space-4) var(--space-3);background:var(--color-bg-2);border:2px solid var(--border);font-family:var(--font-mono);position:relative}.hints-list{gap:var(--space-2);flex-direction:column;display:flex}.hint-item{padding:var(--space-2) var(--space-3);background:var(--color-bg);border:2px solid var(--border);transition:border-color var(--t), opacity var(--t)}.hint-item.locked{opacity:.45}.hint-item.revealed{border-color:var(--phase-1)}.hint-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.hint-tier{letter-spacing:.12em;color:var(--color-fg-dim);text-transform:uppercase;font-size:.78rem;font-weight:700}.hint-item.revealed .hint-tier{color:var(--phase-1)}.hint-cost{letter-spacing:.08em;color:var(--color-fg-faint);font-size:.74rem}.hint-item.revealed .hint-cost{color:var(--phase-1)}.hint-reveal{border:1px dashed var(--border-strong);width:100%;color:var(--color-fg-dim);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:var(--t-fast);background:0 0;padding:8px 12px;font-size:.82rem;font-weight:700}.hint-reveal:hover{border-color:var(--phase-1);color:var(--phase-1);background:var(--color-bg-2)}.hint-body{font-family:var(--font-sans);color:var(--color-fg);margin:0;font-size:.92rem;line-height:1.55}[dir=rtl] .hint-body{font-family:var(--font-arabic)}.hint-locked{font-family:var(--font-sans);color:var(--color-fg-faint);font-size:.85rem;font-style:italic}[dir=rtl] .hint-locked{font-family:var(--font-arabic)}.cutscene{z-index:50;-webkit-backdrop-filter:blur(6px);opacity:0;background:#0a0806f0;justify-content:center;align-items:center;transition:opacity .28s;display:flex;position:fixed;inset:0}.cutscene.open{opacity:1}.cutscene-inner{width:92%;max-width:720px;padding:var(--space-5) var(--space-4);align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.cutscene-title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--phase-2);border:2px solid var(--phase-2);padding:var(--space-2) var(--space-4);font-size:1.6rem;font-weight:700;animation:.52s cubic-bezier(.2,.7,.2,1) both cutsceneTitleIn}@keyframes cutsceneTitleIn{0%{opacity:0;transform:translateY(-12px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.cutscene-stage{justify-content:center;width:100%;animation:.72s .2s both cutsceneStageIn;display:flex}@keyframes cutsceneStageIn{0%{opacity:0}to{opacity:1}}.cutscene-dialogue-host{width:100%}.cutscene-dialogue-host .dialogue{margin:0}.cutscene-dialogue-host .dialogue-sprite{width:128px}.cutscene-continue{background:var(--color-bg);border:2px solid var(--phase-2);color:var(--phase-2);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:var(--t-fast);padding:10px 24px;font-size:.95rem;font-weight:700;animation:.3s both cutsceneContinueIn}@keyframes cutsceneContinueIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.cutscene-continue:hover{background:var(--phase-2);color:var(--color-bg)}.solved-panel{margin-top:var(--space-3);padding:var(--space-4);background:var(--color-bg-2);border:2px solid var(--success);text-align:center;font-family:var(--font-mono);animation:.42s cubic-bezier(.2,.7,.2,1) both solvedRise}@keyframes solvedRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.solved-title{letter-spacing:.24em;color:var(--success);margin-bottom:var(--space-3);font-size:.78rem;font-weight:700}.solved-flag{font-family:var(--font-mono);color:var(--success);background:var(--color-bg);border:2px dashed var(--success);margin-bottom:var(--space-3);letter-spacing:.02em;-webkit-user-select:all;user-select:all;padding:8px 18px;font-size:1.15rem;font-weight:700;display:inline-block}.solved-message{color:var(--color-fg-dim);max-width:540px;font-size:.92rem;font-family:var(--font-sans);margin:0 auto}[dir=rtl] .solved-message{font-family:var(--font-arabic)}.setup-checklist{counter-reset:setup-step;margin:var(--space-3) 0 0;gap:var(--space-1);background:var(--color-bg);border:2px solid var(--border);padding:0;padding:var(--space-3);direction:ltr;flex-direction:column;list-style:none;display:flex}[dir=rtl] .setup-checklist{text-align:start}.setup-checklist>li{counter-increment:setup-step;align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;font-family:var(--font-mono);flex-wrap:wrap;font-size:.88rem;line-height:1.5;display:flex}.setup-checklist>li:before{content:counter(setup-step) ".";width:24px;color:var(--phase-2);flex:none;font-weight:700}.setup-checklist .cmd{font-family:var(--font-mono);color:var(--color-fg);white-space:pre-wrap;word-break:break-all;background:0 0;border:0;padding:0;font-size:1em}.setup-checklist .cmd-comment{font-family:var(--font-mono);color:var(--color-fg-faint);flex-shrink:0;font-size:.85em;font-style:italic}.setup-checklist .cmd-comment:before{content:"// ";font-style:normal}.level-overflow-diagram{background:var(--color-bg-2);border:2px solid var(--border);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.level-overflow-diagram .panel-label{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-fg-faint);font-size:.75rem}.ovf-input-hint{font-family:var(--font-mono);color:var(--color-fg-dim);letter-spacing:.02em;font-size:.85rem}[dir=rtl] .ovf-input-hint{text-align:start;direction:ltr}.ovf-strip{padding:var(--space-2) 0;direction:ltr;align-items:stretch;gap:0;display:flex;overflow-x:auto}.ovf-region{gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.ovf-region-cells{background:var(--color-bg-3);border:2px solid var(--border);gap:1px;padding:2px;display:flex}.ovf-region.is-target .ovf-region-cells{border-color:var(--phase-2);background:#ed7e2f0f}.ovf-cell{width:30px;height:32px;font-family:var(--font-mono);color:var(--color-fg-faint);background:var(--color-bg-2);justify-content:center;align-items:center;font-size:.7rem;display:flex}.ovf-cell.target{background:var(--phase-2);color:var(--color-bg);font-weight:700}.ovf-cell.ovf-ellipsis{width:20px;color:var(--color-fg-dim);background:0 0}.ovf-region-name{font-family:var(--font-mono);color:var(--color-fg);letter-spacing:.02em;align-items:center;gap:var(--space-2);font-size:.8rem;display:flex}.ovf-region.is-target .ovf-region-name{color:var(--phase-2)}.ovf-region-size{color:var(--color-fg-faint);border:1px dashed var(--border);padding:1px 4px;font-size:.65rem}.ovf-region.is-target .ovf-region-size{color:var(--phase-2);border-color:var(--phase-2)}.ovf-divider{border-inline-start:2px dashed var(--border-strong);width:0;margin:0 var(--space-2);align-self:stretch;height:auto}.ovf-spill-marker{align-items:center;gap:var(--space-2);font-family:var(--font-mono);color:var(--phase-2);padding-block:var(--space-1);padding-inline-start:3ch;font-size:.85rem;display:flex}.ovf-spill-arrow{font-size:1.2rem;line-height:1}.ovf-note{font-family:var(--font-sans);color:var(--color-fg);padding-top:var(--space-2);border-top:1px dashed var(--border);margin:0;font-size:.95rem;line-height:1.6}[dir=rtl] .ovf-note{font-family:var(--font-arabic)}.ovf-note code{font-family:var(--font-mono);background:var(--color-bg-3);color:var(--phase-1);border:1px solid var(--border);padding:1px 5px;font-size:.9em}.level-rip-diagram{background:var(--color-bg-2);border:2px solid var(--border);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.level-rip-diagram .panel-label{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-fg-faint);font-size:.75rem}.rip-intro,.rip-epilogue{font-family:var(--font-sans);color:var(--color-fg);margin:0;font-size:.95rem;line-height:1.6}[dir=rtl] .rip-intro,[dir=rtl] .rip-epilogue{font-family:var(--font-arabic)}.rip-intro code,.rip-epilogue code{font-family:var(--font-mono);background:var(--color-bg-3);color:var(--phase-1);border:1px solid var(--border);padding:1px 5px;font-size:.9em}.rip-row{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-3);border:2px solid var(--border);direction:ltr;grid-template-columns:auto 1fr auto 1fr;display:grid}.rip-row-hijacked{border-color:var(--phase-2);background:#ed7e2f0d}.rip-tag{font-family:var(--font-mono);letter-spacing:.15em;padding:var(--space-1) var(--space-2);border:1px solid var(--border);writing-mode:vertical-lr;text-orientation:mixed;text-align:center;color:var(--color-fg-dim);background:var(--color-bg-2);font-size:.7rem;font-weight:700}.rip-tag-hijacked{color:var(--phase-2);border-color:var(--phase-2)}.rip-cause{gap:var(--space-1);flex-direction:column;display:flex}.rip-cause-label{font-family:var(--font-mono);color:var(--color-fg-faint);letter-spacing:.05em;font-size:.75rem}.rip-bytes{flex-wrap:wrap;gap:2px;display:flex}.rip-byte{min-width:30px;height:30px;font-family:var(--font-mono);letter-spacing:.04em;background:var(--color-bg);color:var(--color-fg);border:1px solid var(--border);padding:0 var(--space-1);justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:inline-flex}.rip-byte.user{background:var(--phase-2);color:var(--color-bg);border-color:var(--phase-2)}.rip-cause-note{font-family:var(--font-sans);color:var(--color-fg-faint);font-size:.78rem;font-style:italic}[dir=rtl] .rip-cause-note{font-family:var(--font-arabic)}.rip-arrow{font-family:var(--font-mono);color:var(--color-fg-dim);text-align:center;letter-spacing:-.1em;font-size:1.4rem}.rip-row-hijacked .rip-arrow{color:var(--phase-2)}.rip-effect{gap:var(--space-1);flex-direction:column;display:flex}.rip-addr{font-family:var(--font-mono);color:var(--color-fg);letter-spacing:.04em;font-size:1.1rem;font-weight:700}.rip-effect-hijacked .rip-addr{color:var(--phase-2)}.rip-effect-note{font-family:var(--font-sans);color:var(--color-fg-dim);font-size:.85rem;line-height:1.4}[dir=rtl] .rip-effect-note{font-family:var(--font-arabic)}@media (max-width:720px){.rip-row{gap:var(--space-2);grid-template-columns:1fr}.rip-tag{writing-mode:horizontal-tb;align-self:start}.rip-arrow{width:40px;transform:rotate(90deg)}}.sim-byteset{gap:var(--space-2);background:var(--color-bg-2);border:2px solid var(--border);padding:var(--space-3) var(--space-4);flex-direction:column;flex:100%;min-width:0;display:flex}.sim-byteset-expr{align-items:center;gap:var(--space-2);font-family:var(--font-mono);color:var(--color-fg);flex-wrap:wrap;font-size:1.5rem;display:flex}[dir=rtl] .sim-byteset-expr{direction:ltr}.sim-byteset-text{color:var(--color-fg-dim);letter-spacing:.02em}.sim-byteset-field{text-align:center;width:60px;font-family:var(--font-mono);letter-spacing:.08em;background:var(--color-bg-3);color:var(--phase-1);border:2px dashed var(--border-strong);padding:var(--space-1) var(--space-2);text-transform:uppercase;caret-color:var(--phase-1);transition:var(--t-fast);font-size:1.4rem}.sim-byteset-field:focus{border-style:solid;border-color:var(--phase-1);background:var(--color-bg);outline:none}.sim-byteset-field::placeholder{color:var(--color-fg-faint);opacity:.6}.sim-byteset-labels{gap:var(--space-4);font-family:var(--font-mono);letter-spacing:.1em;color:var(--color-fg-faint);flex-wrap:wrap;padding-inline-start:38px;font-size:.7rem;display:flex}[dir=rtl] .sim-byteset-labels{direction:ltr}.sim-byteset-label-offset{min-width:92px}.sim-byteset-result{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);font-family:var(--font-mono);color:var(--color-fg-dim);background:var(--color-bg);border-inline-start:3px solid var(--border);text-align:start;direction:ltr;min-height:1.8em;font-size:.95rem}.sim-byteset-result .result-ok{color:var(--success)}.sim-byteset-result .result-wait{color:var(--color-fg-faint);font-style:italic}.sim-byteset-result .result-err{color:var(--danger)}.phase-primer .phase-num{color:var(--phase-0)}.primer-card{--card-color:var(--phase-0);background:linear-gradient(180deg, var(--color-bg-2), var(--color-bg));border-style:dashed}.primer-card .level-num{letter-spacing:.04em;font-size:1.4rem}.primer-card.solved{border-style:solid}.primer-card .level-badge{border:1px dashed var(--border-strong);color:var(--color-fg-dim);background:0 0}.primer-card .level-points{color:var(--color-fg-faint);font-style:italic}.primer-page{gap:var(--space-5);padding:var(--space-3) 0;flex-direction:column;display:flex}.primer-header{align-items:start;gap:var(--space-4);border-bottom:2px dashed var(--border-strong);padding-bottom:var(--space-4);grid-template-columns:auto 1fr auto;display:grid}.primer-back{font-family:var(--font-mono);color:var(--color-fg-dim);padding:var(--space-1) var(--space-3);border:2px solid var(--border);background:var(--color-bg-2);transition:var(--t-fast);font-size:.85rem;text-decoration:none}.primer-back:before{content:"← "}[dir=rtl] .primer-back:before{content:""}[dir=rtl] .primer-back:after{content:" →"}.primer-back:hover{color:var(--phase-0);border-color:var(--phase-0);box-shadow:4px 4px 0 var(--color-bg);transform:translate(-2px,-2px)}.primer-header-title h1{margin:var(--space-1) 0 var(--space-2);font-family:var(--font-mono);color:var(--phase-0);font-size:2rem}[dir=rtl] .primer-header-title h1{font-family:var(--font-arabic)}.primer-tag{letter-spacing:.15em;color:var(--color-fg-faint);font-size:.75rem;font-weight:600;display:inline-block}.primer-sub{color:var(--color-fg-dim);margin:0;font-size:.95rem}.primer-optional{letter-spacing:.15em;color:var(--color-fg-faint);padding:var(--space-1) var(--space-2);border:1px dashed var(--border-strong);align-self:start;font-size:.7rem}.primer-brief{background:var(--color-bg-2);border:2px solid var(--border);padding:var(--space-4)}.primer-brief .panel-label{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-fg-faint);margin-bottom:var(--space-2);font-size:.75rem}.primer-brief .panel-body{font-family:var(--font-sans);color:var(--color-fg);font-size:1rem;line-height:1.65}[dir=rtl] .primer-brief .panel-body{font-family:var(--font-arabic)}.primer-stage{display:block}.primer-widget{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (min-width:900px){.primer-widget{grid-template-columns:1fr 1fr}}.primer-panel{background:var(--color-bg-2);border:2px solid var(--border);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.primer-panel-label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--phase-0);font-size:.75rem}.primer-hint{color:var(--color-fg-dim);font-size:.85rem;font-family:var(--font-sans);margin:0}[dir=rtl] .primer-hint{font-family:var(--font-arabic)}.byte-explorer-grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (min-width:600px){.byte-explorer-grid{grid-template-columns:1.1fr 1fr}}.byte-readout{gap:var(--space-2);flex-direction:column;display:flex}.byte-readout-row{align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-bg-3);border:1px solid var(--border);grid-template-columns:70px 1fr;display:grid}.byte-readout-key{font-family:var(--font-mono);letter-spacing:.1em;color:var(--color-fg-faint);font-size:.75rem}.byte-readout-val{font-family:var(--font-mono);color:var(--color-fg);font-size:1.2rem}.byte-readout-val.mono{letter-spacing:.05em}.byte-readout-val.ascii-glyph{color:var(--success);font-size:1.6rem}.byte-readout-val.ascii-glyph.non-printable{color:var(--color-fg-faint);font-size:1.1rem;font-style:italic}.byte-slider{gap:var(--space-3);flex-direction:column;display:flex}.byte-slider input[type=range]{width:100%;accent-color:var(--phase-0)}.byte-slider-anchors{gap:var(--space-1);flex-wrap:wrap;display:flex}.byte-anchor{font-family:var(--font-mono);background:var(--color-bg-3);color:var(--color-fg-dim);border:1px solid var(--border);padding:var(--space-1) var(--space-2);cursor:pointer;transition:var(--t-fast);font-size:.8rem}.byte-anchor:hover{color:var(--phase-0);border-color:var(--phase-0)}.string-scope-input{font-family:var(--font-mono);background:var(--color-bg-3);color:var(--color-fg);border:2px solid var(--border);padding:var(--space-2) var(--space-3);width:100%;font-size:1rem}.string-scope-input:focus{border-color:var(--phase-0);outline:none}.string-scope-output{gap:var(--space-1);min-height:80px;padding:var(--space-2);background:var(--color-bg-3);border:1px dashed var(--border);flex-wrap:wrap;display:flex}.string-scope-empty{color:var(--color-fg-faint);align-self:center;margin:auto;font-size:.85rem;font-style:italic}.byte-cell{min-width:42px;padding:var(--space-1) var(--space-2);background:var(--color-bg-2);border:1px solid var(--border);flex-direction:column;align-items:center;gap:2px;display:flex}.byte-cell.np{opacity:.55}.byte-cell-glyph{font-family:var(--font-mono);color:var(--success);font-size:1rem}.byte-cell.np .byte-cell-glyph{color:var(--color-fg-faint)}.byte-cell-hex{font-family:var(--font-mono);color:var(--phase-0);letter-spacing:.05em;font-size:.85rem}.byte-cell-dec{font-family:var(--font-mono);color:var(--color-fg-faint);font-size:.7rem}.ascii-panel{grid-column:1/-1}.ascii-table{direction:ltr;overflow-x:auto}.ascii-row{grid-template-columns:48px repeat(16,1fr);gap:2px;min-width:720px;display:grid}.ascii-row+.ascii-row{margin-top:2px}.ascii-th{font-family:var(--font-mono);letter-spacing:.05em;color:var(--color-fg-faint);background:var(--color-bg-3);padding:var(--space-1);border-bottom:1px dashed var(--border);justify-content:center;align-items:center;font-size:.7rem;display:flex}.ascii-th-row{border-bottom:0;border-right:1px dashed var(--border);color:var(--phase-0)}.ascii-th-corner{color:var(--color-fg-faint);border-right:1px dashed var(--border);font-size:.6rem}.ascii-cell{padding:var(--space-1) 2px;background:var(--color-bg-2);border:1px solid var(--border);cursor:pointer;transition:var(--t-fast);min-height:56px;font-family:var(--font-mono);flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}.ascii-cell:hover{border-color:var(--phase-0);background:var(--color-bg-3)}.ascii-cell.active{border-color:var(--success);background:var(--color-bg-3);box-shadow:inset 0 0 0 1px var(--success)}.ascii-cell.active .ascii-cell-glyph{color:var(--success)}.ascii-cell-hex{color:var(--color-fg-faint);letter-spacing:.05em;font-size:.65rem}.ascii-cell-glyph{color:var(--color-fg);font-size:1.05rem;font-weight:600;line-height:1}.ascii-cell-dec{color:var(--color-fg-faint);font-size:.6rem}.ascii-cell.ctrl .ascii-cell-glyph{color:var(--color-fg-dim);letter-spacing:.02em;font-size:.7rem;font-weight:500}.ascii-cell.space .ascii-cell-glyph{color:var(--color-fg-dim);font-size:.8rem}.ascii-cell.extended{opacity:.5}.endian-input-row{align-items:center;gap:var(--space-2);background:var(--color-bg-3);border:2px solid var(--border);padding:var(--space-2) var(--space-3);display:flex}.endian-input-row:focus-within{border-color:var(--phase-0)}.endian-input-prefix{font-family:var(--font-mono);color:var(--color-fg-faint);font-size:1.1rem}.endian-input{font-family:var(--font-mono);letter-spacing:.08em;color:var(--color-fg);text-transform:uppercase;background:0 0;border:0;outline:0;width:100%;font-size:1.2rem}.endian-toggle{border:2px solid var(--border);gap:0;display:flex;overflow:hidden}.endian-toggle-btn{font-family:var(--font-mono);letter-spacing:.05em;background:var(--color-bg-3);color:var(--color-fg-dim);padding:var(--space-2);cursor:pointer;transition:var(--t-fast);border:0;flex:1;font-size:.8rem}.endian-toggle-btn+.endian-toggle-btn{border-inline-start:2px solid var(--border)}.endian-toggle-btn.active{background:var(--phase-0);color:var(--color-bg);font-weight:600}.endian-toggle-btn:not(.active):hover{color:var(--phase-0)}.endian-memory-panel{gap:var(--space-4)}.endian-memory{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.endian-mem-cell{align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);background:var(--color-bg-3);border:2px solid var(--border);transition:var(--t);flex-direction:column;display:flex;position:relative}.endian-mem-cell.cell-msb{border-color:var(--phase-2)}.endian-mem-cell.cell-lsb{border-color:var(--success)}.endian-mem-cell.cell-invalid{opacity:.4}.endian-mem-addr{font-family:var(--font-mono);color:var(--color-fg-faint);letter-spacing:.05em;font-size:.7rem}.endian-mem-byte{font-family:var(--font-mono);color:var(--color-fg);letter-spacing:.05em;font-size:1.8rem;font-weight:600}.endian-mem-tag{font-family:var(--font-mono);letter-spacing:.1em;color:var(--color-fg-faint);min-height:.85em;font-size:.65rem}.endian-mem-cell.cell-msb .endian-mem-tag{color:var(--phase-2)}.endian-mem-cell.cell-lsb .endian-mem-tag{color:var(--success)}.endian-payload{align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--border);display:flex}.endian-payload-label{font-family:var(--font-sans);color:var(--color-fg-dim);font-size:.8rem}[dir=rtl] .endian-payload-label{font-family:var(--font-arabic)}.endian-payload-bytes{font-family:var(--font-mono);color:var(--success);background:var(--color-bg-3);padding:var(--space-1) var(--space-2);border:1px solid var(--border);direction:ltr;font-size:1rem}.primer-check{background:var(--color-bg-2);border:2px solid var(--border);padding:var(--space-4)}.primer-check .panel-label{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-fg-faint);margin-bottom:var(--space-3);font-size:.75rem}.primer-check-q{margin:0 0 var(--space-3);font-family:var(--font-sans);color:var(--color-fg);font-size:1.05rem}[dir=rtl] .primer-check-q{font-family:var(--font-arabic)}.primer-check-choices{gap:var(--space-2);flex-direction:column;display:flex}.primer-check-choice{font-family:var(--font-mono);text-align:start;background:var(--color-bg-3);color:var(--color-fg);border:2px solid var(--border);padding:var(--space-3);cursor:pointer;transition:var(--t-fast);font-size:.9rem}.primer-check-choice:hover:not(:disabled){border-color:var(--phase-0);box-shadow:4px 4px 0 var(--color-bg);transform:translate(-2px,-2px)}.primer-check-choice:disabled{cursor:default}.primer-check-choice.correct{border-color:var(--success);color:var(--success)}.primer-check-choice.correct:before{content:"[ ✓ ] ";color:var(--success)}.primer-check-choice.wrong{border-color:var(--danger);color:var(--danger)}.primer-check-choice.wrong:before{content:"[ ✗ ] ";color:var(--danger)}.primer-check-feedback{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);font-family:var(--font-sans);border-inline-start:3px solid var(--border);font-size:.9rem}[dir=rtl] .primer-check-feedback{font-family:var(--font-arabic)}.primer-check-feedback.ok{border-color:var(--success);color:var(--success)}.primer-check-feedback.nope{border-color:var(--danger);color:var(--color-fg)}.primer-check-skip{margin:var(--space-3) 0 0;font-family:var(--font-sans);color:var(--color-fg-faint);font-size:.8rem;font-style:italic}[dir=rtl] .primer-check-skip{font-family:var(--font-arabic)}.primer-nav{justify-content:space-between;gap:var(--space-3);padding-top:var(--space-3);display:flex}.primer-nav-btn{font-family:var(--font-mono);padding:var(--space-3) var(--space-4);border:2px solid var(--border);background:var(--color-bg-2);color:var(--color-fg);transition:var(--t-fast);font-size:.95rem;text-decoration:none}.primer-nav-btn.primary{border-color:var(--phase-0);color:var(--phase-0)}.primer-nav-btn:hover{box-shadow:4px 4px 0 var(--color-bg);transform:translate(-2px,-2px)}.primer-nav-btn.primary:hover{background:var(--phase-0);color:var(--color-bg)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:720px){.hero h1{font-size:1.8rem}.level-card.mega{grid-column:span 1}#view{padding:var(--space-4) var(--space-3)}.status-bar-inner{gap:var(--space-2);font-size:.7rem}}
