Bc-AI commited on
Commit
2d7059c
·
verified ·
1 Parent(s): bb7ad9f

Upload index.html

Browse files
Files changed (1) hide show
  1. index.html +101 -17
index.html CHANGED
@@ -657,20 +657,69 @@
657
  body.dark .fun-tile{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.075)}
658
  .fun-tile strong{display:block;margin-bottom:3px;font-size:.82rem}
659
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
660
  .mobile-menu{display:none}
661
 
662
  @media (max-width: 980px){
 
663
  .hero-grid{grid-template-columns:1fr}
664
  .hero-side{min-height:0}
665
  .stats{grid-template-columns:repeat(2,1fr)}
666
  .layout{grid-template-columns:1fr}
667
  .toc{display:none}
668
  .flow{grid-template-columns:repeat(2,1fr)}
669
- .nav-links{display:none}
 
 
670
  .mobile-menu{display:block}
671
  }
672
 
673
  @media (max-width: 640px){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
674
  .hero{margin-top:48px}
675
  .hero-main{padding:34px 24px 30px;border-radius:28px}
676
  .hero-side{border-radius:28px}
@@ -689,6 +738,13 @@
689
  section{margin-bottom:58px}
690
  }
691
 
 
 
 
 
 
 
 
692
  @media (prefers-reduced-motion: reduce){
693
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
694
  }
@@ -715,9 +771,9 @@
715
  <a href="#nano">Nano</a>
716
  <a href="#scale">2B scale-up</a>
717
  <a href="#t22">T2.2</a>
718
- <a href="#ask-orion">Ask Orion</a>
719
  </div>
720
- <button class="icon-btn" id="themeToggle" aria-label="Toggle theme" title="Toggle theme">◐</button>
721
  </nav>
722
  </div>
723
 
@@ -806,7 +862,6 @@
806
  <a href="#t22">11 — T2.2 direction</a>
807
  <a href="#vm">12 — Built-in VM idea</a>
808
  <a href="#science">13 — What is actually proven?</a>
809
- <a href="#ask-orion">14 — Ask our chatbot</a>
810
  </aside>
811
 
812
  <main>
@@ -1356,8 +1411,16 @@
1356
  </div>
1357
  </section>
1358
 
1359
- <section id="ask-orion">
1360
- <div class="section-kicker">14 / Interactive architecture guide</div>
 
 
 
 
 
 
 
 
1361
  <h2>Ask our pattern-matching chatbot</h2>
1362
  <p class="lead">
1363
  Ask about Orion, T2.1, the ablations, Procedure Banks, Working State, the Vault, training data,
@@ -1405,10 +1468,7 @@
1405
  </div>
1406
  </div>
1407
  </div>
1408
- </section>
1409
-
1410
- </main>
1411
- </div>
1412
 
1413
  <footer>
1414
  <div><strong>Orion / Project Prism</strong> · Transformer 2 research notes</div>
@@ -1423,14 +1483,21 @@
1423
  const tocLinks = [...document.querySelectorAll('.toc a')];
1424
  const sections = [...document.querySelectorAll('main section')];
1425
 
1426
- const saved = localStorage.getItem('orion-theme');
1427
- if (saved === 'dark' || (!saved && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
1428
- body.classList.add('dark');
1429
- }
1430
-
 
 
 
 
 
 
1431
  toggle.addEventListener('click', () => {
1432
- body.classList.toggle('dark');
1433
- localStorage.setItem('orion-theme', body.classList.contains('dark') ? 'dark' : 'light');
 
1434
  });
1435
 
1436
  const updateScroll = () => {
@@ -1449,6 +1516,23 @@
1449
  window.addEventListener('scroll', updateScroll, {passive:true});
1450
  updateScroll();
1451
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1452
  const observer = new IntersectionObserver(entries => {
1453
  entries.forEach(entry => {
1454
  if (!entry.isIntersecting) return;
 
657
  body.dark .fun-tile{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.075)}
658
  .fun-tile strong{display:block;margin-bottom:3px;font-size:.82rem}
659
 
660
+
661
+ .nav-tab-btn,.back-blog{
662
+ border:1px solid var(--glass-border);cursor:pointer;color:var(--ink);
663
+ background:rgba(255,255,255,.34);font-weight:750;
664
+ box-shadow:inset 0 1px 0 rgba(255,255,255,.4);
665
+ }
666
+ .nav-tab-btn{padding:10px 13px;border-radius:14px;font-size:.82rem;margin-left:4px}
667
+ .nav-tab-btn:hover,.back-blog:hover{background:rgba(255,255,255,.58)}
668
+ body.dark .nav-tab-btn,body.dark .back-blog{background:rgba(255,255,255,.045)}
669
+ body.dark .nav-tab-btn:hover,body.dark .back-blog:hover{background:rgba(255,255,255,.08)}
670
+ .assistant-view{
671
+ display:none;
672
+ width:min(calc(100% - 34px),var(--content));
673
+ margin:54px auto 80px;
674
+ min-height:calc(100vh - 180px);
675
+ }
676
+ body.assistant-mode .assistant-view{display:block}
677
+ body.assistant-mode .hero,
678
+ body.assistant-mode > .stats,
679
+ body.assistant-mode > .layout,
680
+ body.assistant-mode > footer{display:none}
681
+ .assistant-view-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
682
+ .back-blog{padding:10px 14px;border-radius:14px}
683
+ body.assistant-mode .nav-wrap{position:sticky}
684
+ body.assistant-mode .ask-shell{max-width:980px;margin:24px auto 0}
685
+ body.assistant-mode .assistant-view > h2,
686
+ body.assistant-mode .assistant-view > p{max-width:980px;margin-left:auto;margin-right:auto}
687
+ body.assistant-mode .assistant-view-head{max-width:980px;margin-left:auto;margin-right:auto}
688
+ .desktop-only{display:inline}
689
+
690
  .mobile-menu{display:none}
691
 
692
  @media (max-width: 980px){
693
+ :root{--blur:22px}
694
  .hero-grid{grid-template-columns:1fr}
695
  .hero-side{min-height:0}
696
  .stats{grid-template-columns:repeat(2,1fr)}
697
  .layout{grid-template-columns:1fr}
698
  .toc{display:none}
699
  .flow{grid-template-columns:repeat(2,1fr)}
700
+ .nav-links a{display:none}
701
+ .nav-links{display:flex}
702
+ .nav-tab-btn{margin:0}
703
  .mobile-menu{display:block}
704
  }
705
 
706
  @media (max-width: 640px){
707
+ .nav-wrap{top:8px;margin-top:8px;width:calc(100% - 16px)}
708
+ .nav{min-height:58px;border-radius:20px}
709
+ .brand-mark{width:34px;height:34px}
710
+ .icon-btn{width:38px;height:38px;border-radius:13px}
711
+ .nav-tab-btn{padding:9px 10px;font-size:.74rem}
712
+ .hero{margin-top:38px;width:calc(100% - 20px)}
713
+ .layout,.stats,footer{width:calc(100% - 20px)}
714
+ .assistant-view{width:calc(100% - 20px);margin-top:32px}
715
+ .ask-inner{padding:12px;border-radius:26px}
716
+ .ask-shell{border-radius:27px}
717
+ .chat-window{height:56vh;min-height:360px;padding:12px;border-radius:20px}
718
+ .bubble{max-width:91%;font-size:.86rem}
719
+ .ask-top{align-items:flex-start}
720
+ .online-pill{font-size:.6rem}
721
+ .fun-strip{display:none}
722
+ .composer{position:sticky;bottom:8px;z-index:5}
723
  .hero{margin-top:48px}
724
  .hero-main{padding:34px 24px 30px;border-radius:28px}
725
  .hero-side{border-radius:28px}
 
738
  section{margin-bottom:58px}
739
  }
740
 
741
+ @media (min-width: 1500px){
742
+ :root{--content:1320px}
743
+ .layout{grid-template-columns:280px minmax(0,1fr);gap:42px}
744
+ .hero-main{padding:62px}
745
+ .chat-window{height:520px}
746
+ }
747
+
748
  @media (prefers-reduced-motion: reduce){
749
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
750
  }
 
771
  <a href="#nano">Nano</a>
772
  <a href="#scale">2B scale-up</a>
773
  <a href="#t22">T2.2</a>
774
+ <button class="nav-tab-btn" id="openAssistant" type="button">✦ AI Assistant</button>
775
  </div>
776
+ <button class="icon-btn" id="themeToggle" aria-label="Switch to dark mode" title="Switch appearance"><span id="themeIcon">☾</span></button>
777
  </nav>
778
  </div>
779
 
 
862
  <a href="#t22">11 — T2.2 direction</a>
863
  <a href="#vm">12 — Built-in VM idea</a>
864
  <a href="#science">13 — What is actually proven?</a>
 
865
  </aside>
866
 
867
  <main>
 
1411
  </div>
1412
  </section>
1413
 
1414
+
1415
+
1416
+ </main>
1417
+ </div>
1418
+
1419
+ <section id="ask-orion" class="assistant-view" aria-hidden="true">
1420
+ <div class="assistant-view-head">
1421
+ <button class="back-blog" id="backToBlog" type="button">← Research blog</button>
1422
+ <div class="section-kicker">AI / Interactive architecture guide</div>
1423
+ </div>
1424
  <h2>Ask our pattern-matching chatbot</h2>
1425
  <p class="lead">
1426
  Ask about Orion, T2.1, the ablations, Procedure Banks, Working State, the Vault, training data,
 
1468
  </div>
1469
  </div>
1470
  </div>
1471
+ </section>
 
 
 
1472
 
1473
  <footer>
1474
  <div><strong>Orion / Project Prism</strong> · Transformer 2 research notes</div>
 
1483
  const tocLinks = [...document.querySelectorAll('.toc a')];
1484
  const sections = [...document.querySelectorAll('main section')];
1485
 
1486
+ const themeIcon = document.getElementById('themeIcon');
1487
+ const safeGetTheme = () => { try { return localStorage.getItem('orion-theme'); } catch(e) { return null; } };
1488
+ const safeSetTheme = v => { try { localStorage.setItem('orion-theme', v); } catch(e) {} };
1489
+ const applyTheme = dark => {
1490
+ body.classList.toggle('dark', dark);
1491
+ themeIcon.textContent = dark ? '☀︎' : '☾';
1492
+ toggle.setAttribute('aria-label', dark ? 'Switch to light mode' : 'Switch to dark mode');
1493
+ document.querySelector('meta[name="theme-color"]').setAttribute('content', dark ? '#08131c' : '#eaf8ff');
1494
+ };
1495
+ const saved = safeGetTheme();
1496
+ applyTheme(saved ? saved === 'dark' : window.matchMedia('(prefers-color-scheme: dark)').matches);
1497
  toggle.addEventListener('click', () => {
1498
+ const next = !body.classList.contains('dark');
1499
+ applyTheme(next);
1500
+ safeSetTheme(next ? 'dark' : 'light');
1501
  });
1502
 
1503
  const updateScroll = () => {
 
1516
  window.addEventListener('scroll', updateScroll, {passive:true});
1517
  updateScroll();
1518
 
1519
+ const openAssistant = document.getElementById('openAssistant');
1520
+ const backToBlog = document.getElementById('backToBlog');
1521
+ const assistantView = document.getElementById('ask-orion');
1522
+ function setView(mode, push=true){
1523
+ const assistant = mode === 'assistant';
1524
+ body.classList.toggle('assistant-mode', assistant);
1525
+ assistantView.setAttribute('aria-hidden', assistant ? 'false' : 'true');
1526
+ document.title = assistant ? 'AI Assistant — Orion / Project Prism' : 'Orion / Project Prism — Transformer 2 Research Blog';
1527
+ if(push) history.pushState({view:mode},'',assistant ? '#assistant' : '#top');
1528
+ window.scrollTo({top:0,behavior:'smooth'});
1529
+ }
1530
+ openAssistant.addEventListener('click',()=>setView('assistant'));
1531
+ backToBlog.addEventListener('click',()=>setView('blog'));
1532
+ window.addEventListener('popstate',()=>setView(location.hash === '#assistant' ? 'assistant' : 'blog',false));
1533
+ if(location.hash === '#assistant') setView('assistant',false);
1534
+
1535
+
1536
  const observer = new IntersectionObserver(entries => {
1537
  entries.forEach(entry => {
1538
  if (!entry.isIntersecting) return;