@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--blue-900:#0a0e27;--blue-800:#0f1538;--blue-700:#141c4a;--blue-600:#1a2560;--blue-500:#2a3a7c;--blue-400:#3d5292;--blue-300:#5e7ab8;--blue-200:#8aa3d4;--blue-100:#b8cce8;--text-primary:#e8edf5;--text-secondary:#9aa8c7;--text-muted:#6b7a9a;--accent:#4a9eff;--accent-glow:#4a9eff26;--font-sans:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);color:var(--text-primary);background:var(--blue-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400}.presentation{width:100vw;height:100vh;position:relative;overflow:hidden}.slide{background:linear-gradient(145deg, var(--blue-800) 0%, var(--blue-900) 50%, #080b1e 100%);opacity:0;pointer-events:none;flex-direction:column;transition:opacity .6s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0}.slide.active{opacity:1;pointer-events:auto}.slide:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#4a9eff08 1px,#0000 1px),linear-gradient(90deg,#4a9eff08 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.slide:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.4;z-index:1;height:2px;position:absolute;top:0;left:0;right:0}.slide-content{z-index:1;flex-direction:column;width:100%;height:100%;display:flex;position:relative}.title-slide .slide-content{text-align:center;justify-content:center;align-items:center;padding:60px}.title-slide h1{font-family:var(--font-sans);letter-spacing:-.5px;color:var(--text-primary);opacity:0;margin-bottom:24px;font-size:3.4rem;font-weight:600;line-height:1.2;transform:translateY(20px)}.title-slide.active h1{animation:.8s cubic-bezier(.16,1,.3,1) .3s forwards fadeUp}.title-slide .subtitle{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;opacity:0;font-size:1.1rem;font-weight:400;transform:translateY(12px)}.title-slide.active .subtitle{animation:.8s cubic-bezier(.16,1,.3,1) .6s forwards fadeUp}.particles-canvas{z-index:0;pointer-events:none;position:absolute;inset:0}.network-canvas{z-index:0;pointer-events:none;width:50%;height:100%;position:absolute;top:0;left:0;-webkit-mask-image:linear-gradient(90deg,#0009 0%,#0000004d 60%,#0000 100%);mask-image:linear-gradient(90deg,#0009 0%,#0000004d 60%,#0000 100%)}.content-slide .slide-content{padding:0}.slide-header{text-align:center;opacity:0;border-bottom:1px solid #4a9eff1a;flex-shrink:0;padding:48px 72px 32px;transform:translateY(-10px)}.slide.active .slide-header{animation:.6s cubic-bezier(.16,1,.3,1) .2s forwards fadeDown}.slide-header h2{font-family:var(--font-sans);color:var(--text-primary);letter-spacing:-.3px;font-size:2.2rem;font-weight:600}.slide-body{flex:1;align-items:flex-start;padding:48px 72px;display:flex;overflow:hidden}.bullet-list{width:100%;padding:0;list-style:none}.bullet-list>li{color:var(--text-secondary);opacity:0;padding:10px 0 10px 28px;font-size:1.5rem;line-height:1.6;position:relative;transform:translate(-16px)}.slide.active .bullet-list>li{animation:.5s cubic-bezier(.16,1,.3,1) forwards fadeRight}.bullet-list>li:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;width:6px;height:6px;position:absolute;top:20px;left:0}.sub-items{margin:4px 0 4px 24px;padding:0;list-style:none}.sub-items li{color:var(--text-muted);padding:3px 0 3px 20px;font-size:1.15rem;line-height:1.5;position:relative}.sub-items li:before{content:"";background:var(--blue-300);opacity:.5;border-radius:50%;width:4px;height:4px;position:absolute;top:12px;left:0}.bullet-list>li.highlight{color:var(--text-primary);font-weight:500}.two-columns{grid-template-columns:1fr 1fr;align-items:start;gap:64px;width:100%;display:grid}.column{opacity:0}.column.left{transform:translate(-30px)}.column.right{transform:translate(30px)}.slide.active .column.left{animation:.6s cubic-bezier(.16,1,.3,1) .3s forwards fadeRight}.slide.active .column.right{animation:.6s cubic-bezier(.16,1,.3,1) .5s forwards fadeLeft}.column-header{font-family:var(--font-sans);color:var(--accent);letter-spacing:.3px;border-bottom:1px solid #4a9eff26;margin-bottom:20px;padding-bottom:12px;font-size:1.35rem;font-weight:600}.column .bullet-list li,.column .structured-list>li{opacity:1;padding:6px 0 6px 24px;font-size:1.25rem;transform:none;animation:none!important}.column .bullet-list>li:before{width:5px;height:5px}.bullet-list .nested{margin:4px 0 4px 24px;padding:0;list-style:none}.bullet-list .nested li{color:var(--text-muted);padding:4px 0 4px 20px;font-size:.95rem}.bullet-list .nested li:before{background:var(--blue-300);opacity:.5;width:4px;height:4px}.structured-list{width:100%;padding:0;list-style:none}.structured-list>li{color:var(--text-secondary);opacity:0;padding:8px 0 8px 28px;font-size:1.35rem;line-height:1.5;position:relative;transform:translate(-16px)}.slide.active .structured-list>li{animation:.5s cubic-bezier(.16,1,.3,1) forwards fadeRight}.structured-list>li:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;width:6px;height:6px;position:absolute;top:18px;left:0}.structured-list>li.section-label{color:var(--accent);letter-spacing:.3px;margin-top:16px;font-size:1.25rem;font-weight:600}.structured-list>li.section-label:first-child{margin-top:0}.structured-list>li.section-label:before{display:none}.slide-body.two-col-body{gap:48px}.tasks-column{flex:1}.tasks-column h3{color:var(--accent);letter-spacing:.3px;border-bottom:1px solid #4a9eff1f;margin-bottom:16px;padding-bottom:8px;font-size:1rem;font-weight:600}.schedule-body{flex-direction:column;gap:36px}.schedule-list{flex-direction:column;gap:6px;width:100%;margin:0;padding:0;list-style:none;display:flex}.schedule-row{color:var(--text-secondary);opacity:0;border-bottom:1px solid #4a9eff14;grid-template-columns:180px 1fr;align-items:baseline;gap:28px;padding:8px 0;display:grid;transform:translate(-16px)}.slide.active .schedule-row{animation:.5s cubic-bezier(.16,1,.3,1) forwards fadeRight}.schedule-time{font-family:var(--font-mono);color:var(--accent);letter-spacing:.5px;white-space:nowrap;font-size:1.15rem;font-weight:500}.schedule-desc{color:var(--text-primary);font-size:1.3rem;line-height:1.5}.schedule-desc .sub-items{margin-left:0}.schedule-notice{border:1px solid #4a9eff33;border-left:3px solid var(--accent);opacity:0;background:#4a9eff0d;border-radius:8px;width:100%;padding:20px 28px;transform:translateY(12px)}.slide.active .schedule-notice{animation:.6s cubic-bezier(.16,1,.3,1) forwards fadeUp}.schedule-notice-title{font-family:var(--font-sans);color:var(--accent);letter-spacing:.5px;text-transform:uppercase;margin-bottom:10px;font-size:1.1rem;font-weight:600}.schedule-notice-list{width:100%}.schedule-notice-list>li{opacity:1;padding:4px 0 4px 24px;font-size:1.1rem;transform:none;animation:none!important}.oplan-body{position:relative;padding:16px 40px 32px!important}.oplan-canvas{width:100%;height:100%;display:block}.oplan-tooltip{pointer-events:none;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#0f1932eb;border:1px solid #4a9eff80;border-radius:8px;flex-direction:column;gap:2px;padding:8px 14px;animation:.15s ease-out tooltipFadeIn;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 4px 20px #0006,0 0 12px #4a9eff26}.oplan-tooltip strong{color:#8cc8ff;letter-spacing:.5px;font-size:.8rem;font-weight:600}.oplan-tooltip span{color:#dcebffe6;font-size:.75rem;font-weight:400}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,-100%)translateY(4px)}to{opacity:1;transform:translate(-50%,-100%)translateY(0)}}.nav-controls{z-index:100;align-items:center;gap:16px;display:flex;position:fixed;bottom:28px;right:36px}.slide-counter{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:1px;font-size:.8rem}.nav-btn{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e27b3;border:1px solid #4a9eff33;border-radius:8px;justify-content:center;align-items:center;font-size:.9rem;transition:all .2s;display:flex}.nav-btn:hover{border-color:var(--accent);color:var(--accent);background:#4a9eff14}.nav-btn:disabled{opacity:.3;cursor:default}.progress-bar{background:var(--accent);opacity:.6;z-index:100;height:2px;transition:width .4s cubic-bezier(.4,0,.2,1);position:fixed;bottom:0;left:0}.gate{background:linear-gradient(145deg, var(--blue-800) 0%, var(--blue-900) 50%, #080b1e 100%);z-index:9999;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.gate-box{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e27b3;border:1px solid #4a9eff33;border-radius:12px;flex-direction:column;gap:16px;width:100%;max-width:400px;padding:36px 40px;display:flex}.gate-title{font-family:var(--font-sans);color:var(--text-primary);letter-spacing:-.2px;text-align:center;margin:0;font-size:1.3rem;font-weight:600}.gate-input{width:100%;color:var(--text-primary);font-family:var(--font-mono);letter-spacing:2px;background:#0a0e2799;border:1px solid #4a9eff40;border-radius:8px;outline:none;padding:12px 14px;font-size:1rem;transition:border-color .2s}.gate-input:focus{border-color:var(--accent)}.gate-input.has-error{border-color:#ff6b6b}.gate-error{font-family:var(--font-mono);color:#f88;text-align:center;font-size:.85rem;line-height:1.5}.gate-error code{color:var(--accent);background:#4a9eff1a;border-radius:4px;padding:1px 6px}.gate-submit{border:1px solid var(--accent);color:var(--accent);font-family:var(--font-sans);letter-spacing:.3px;cursor:pointer;background:#4a9eff14;border-radius:8px;padding:12px 16px;font-size:1rem;font-weight:500;transition:background .2s,color .2s}.gate-submit:hover{color:var(--text-primary);background:#4a9eff26}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeRight{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes fadeLeft{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}
