*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-void: #08080a;--bg-deep: #0d0d11;--bg-surface: #14141a;--bg-surface-rgb: 20, 20, 26;--accent-gold: #c9a84c;--accent-gold-rgb: 201, 168, 76;--accent-gold-bright: #e6c55a;--accent-gold-dim: #8a7235;--text-primary: #f0ece4;--text-secondary: #9e9a92;--text-dim: #5a5750}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior-y:none;background:var(--bg-void);color:var(--text-primary);font-family:Noto Sans JP,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#particle-canvas{position:fixed;inset:0;z-index:0;pointer-events:none}.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(8,8,10,.7) 100%)}.grain{position:fixed;inset:-50%;width:200%;height:200%;z-index:2;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain-drift 8s steps(10) infinite}@keyframes grain-drift{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}30%{transform:translate(3%,-15%)}50%{transform:translate(12%,9%)}70%{transform:translate(9%,4%)}90%{transform:translate(-1%,7%)}}.scanlines{position:fixed;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.03) 3px,rgba(0,0,0,.03) 4px)}.scene{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;perspective:1200px}.stage{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1);z-index:20}.stage.hidden{opacity:0;transform:scale(1.05);pointer-events:none}.stage-subtitle{font-family:DM Mono,monospace;font-size:1.4rem;letter-spacing:.25em;text-transform:none;color:var(--accent-gold-dim);margin-bottom:2.5rem;opacity:0;animation:fade-up 1s .3s ease forwards;display:flex;align-items:center;gap:.8rem}.beta-badge{color:var(--text-dim);font-size:1rem;text-transform:uppercase}.stage-title{font-family:Noto Sans JP,sans-serif;font-weight:900;font-size:clamp(1.4rem,4vw,2.2rem);color:var(--text-primary);letter-spacing:.08em;margin-bottom:.5rem;opacity:0;animation:fade-up 1s .5s ease forwards}.stage-tagline{font-family:Playfair Display,serif;font-style:italic;font-size:clamp(.85rem,2vw,1.05rem);color:var(--text-secondary);margin-bottom:4rem;opacity:0;animation:fade-up 1s .7s ease forwards}.source-selector{display:flex;gap:1.5rem;margin-bottom:2.5rem;opacity:0;animation:fade-up 1s .9s ease forwards}.source-option{display:flex;align-items:center;gap:.5rem;cursor:pointer}.source-option input[type=checkbox]{appearance:none;-webkit-appearance:none;width:12px;height:12px;border:1px solid var(--accent-gold-dim);border-radius:2px;cursor:pointer;position:relative;transition:border-color .2s ease,background .2s ease;flex-shrink:0}.source-option input[type=checkbox]:checked{background:var(--accent-gold-dim);border-color:var(--accent-gold)}.source-option-label{font-family:DM Mono,monospace;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);transition:color .2s ease;user-select:none}.source-option:has(input:checked) .source-option-label{color:var(--accent-gold-dim)}.discover-btn{position:relative;border:none;background:transparent;cursor:pointer;outline:none;text-decoration:none;opacity:0;animation:fade-up 1s 1s ease forwards;-webkit-tap-highlight-color:transparent}.discover-btn:disabled{cursor:not-allowed;opacity:.5}.discover-btn .btn-ring{width:clamp(140px,28vw,200px);height:clamp(140px,28vw,200px);border-radius:50%;border:1.5px solid var(--accent-gold-dim);display:flex;align-items:center;justify-content:center;transition:border-color .5s ease,transform .5s ease,box-shadow .5s ease;position:relative}.discover-btn:not(:disabled):hover .btn-ring{border-color:var(--accent-gold);transform:scale(1.06);box-shadow:0 0 60px rgba(var(--accent-gold-rgb),.1),inset 0 0 30px rgba(var(--accent-gold-rgb),.03)}.discover-btn:not(:disabled):active .btn-ring{transform:scale(.97)}.btn-label{font-family:Noto Sans JP,sans-serif;font-weight:700;font-size:clamp(1rem,3vw,1.3rem);color:var(--accent-gold);letter-spacing:.15em;transition:color .3s ease,text-shadow .3s ease;position:relative;display:inline-block}.discover-btn:not(:disabled):hover .btn-label{color:var(--accent-gold-bright);text-shadow:0 0 10px rgba(var(--accent-gold-rgb),.8),0 0 20px rgba(var(--accent-gold-rgb),.6),0 0 30px rgba(var(--accent-gold-rgb),.4);animation:glitch-shift .3s ease-in-out}.discover-btn:not(:disabled):hover .btn-label:before,.discover-btn:not(:disabled):hover .btn-label:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;opacity:.8}.discover-btn:not(:disabled):hover .btn-label:before{color:#ff0050b3;animation:glitch-shift .25s ease-in-out infinite;animation-delay:.05s;transform:translate(-2px);mix-blend-mode:screen}.discover-btn:not(:disabled):hover .btn-label:after{color:#00ffffb3;animation:glitch-shift .25s ease-in-out infinite reverse;animation-delay:.1s;transform:translate(2px);mix-blend-mode:screen}.stage-loading{position:fixed;inset:0;z-index:100;background:var(--bg-void);display:flex;align-items:center;justify-content:center;gap:2px}.stage-loading-text{font-family:DM Mono,monospace;font-size:clamp(.9rem,2vw,1.1rem);letter-spacing:.15em;color:var(--accent-gold-dim)}.stage-loading-cursor{display:inline-block;width:1px;height:1.1em;background:var(--accent-gold-dim);animation:blink-cursor .8s step-end infinite;align-self:center}.btn-hint{margin-top:2rem;font-family:DM Mono,monospace;font-size:.75rem;color:var(--text-dim);letter-spacing:.2em;text-transform:uppercase;opacity:0;animation:fade-up 1s 1.4s ease forwards}.stage-error{margin-top:.85rem;font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.08em;color:#ff7878e6;text-align:center}.btn-glow{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-gold-rgb),.06) 0%,transparent 70%);animation:breathe 4s ease-in-out infinite;pointer-events:none}@keyframes breathe{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.2);opacity:1}}@keyframes glitch-shift{0%,to{transform:translate(0)}33%{transform:translate(-2px,1px)}66%{transform:translate(2px,-1px)}}.reveal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;opacity:0;pointer-events:none;transition:opacity .6s ease;z-index:20;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--accent-gold-dim) transparent}.reveal::-webkit-scrollbar{width:4px}.reveal::-webkit-scrollbar-track{background:transparent}.reveal::-webkit-scrollbar-thumb{background:var(--accent-gold-dim);border-radius:2px}.reveal.visible{opacity:1;pointer-events:auto}.reveal-inner{display:flex;flex-direction:column;align-items:center;width:100%;max-width:740px;padding:3rem 2rem 4rem;margin:0 auto}.reveal-category{font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:var(--accent-gold-dim);margin-bottom:1.5rem;opacity:0;transform:translateY(10px);transition:opacity .6s .2s ease,transform .6s .2s ease}.reveal.visible .reveal-category{opacity:1;transform:translateY(0)}.reveal-keyword{font-family:Playfair Display,serif;font-weight:900;font-size:clamp(2.4rem,9vw,2.5rem);line-height:1.05;text-align:center;color:var(--text-primary);max-width:90vw;opacity:0;transform:translateY(20px) scale(.95);transition:opacity .8s .4s ease,transform .8s .4s cubic-bezier(.4,0,.2,1)}.reveal.visible .reveal-keyword{opacity:1;transform:translateY(0) scale(1)}.reveal-keyword-ja{font-family:Noto Sans JP,sans-serif;font-size:clamp(.85rem,2.5vw,1.1rem);font-weight:400;color:var(--text-secondary);text-align:center;margin-top:.6rem}.reveal-accent{width:60px;height:1.5px;background:var(--accent-gold);margin:2rem 0;opacity:0;transform:scaleX(0);transition:opacity .5s .8s ease,transform .6s .8s cubic-bezier(.4,0,.2,1);flex-shrink:0}.reveal.visible .reveal-accent{opacity:1;transform:scaleX(1)}.content-section{width:100%;opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;margin-bottom:2.2rem}.content-section.visible{opacity:1;transform:translateY(0)}.videos-list{display:flex;flex-direction:row;gap:.6rem;overflow-x:auto;list-style:none;padding:0;margin:0;scrollbar-width:none}.videos-list::-webkit-scrollbar{display:none}.videos-list li a img{display:block;width:160px;height:90px;object-fit:cover;border-radius:3px;opacity:.85;transition:opacity .2s ease}.videos-list li a:hover img{opacity:1}.video-embed{margin-top:.8rem;width:100%;aspect-ratio:16 / 9}.video-embed iframe{width:100%;height:100%;border:none;border-radius:3px}.section-label{font-family:DM Mono,monospace;font-size:.6rem;letter-spacing:.35em;text-transform:uppercase;color:var(--accent-gold-dim);margin-bottom:.7rem;display:flex;align-items:center;gap:.6rem}.section-label:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--accent-gold-dim),transparent);opacity:.3}.definition-section .definition-text{font-family:Noto Sans JP,sans-serif;font-weight:700;font-size:clamp(1rem,2.5vw,1.2rem);line-height:1.8;color:var(--text-primary)}.explanation-section .explanation-text{font-family:Noto Sans JP,sans-serif;font-weight:300;font-size:clamp(.85rem,2vw,.95rem);line-height:2;color:var(--text-secondary);white-space:pre-line}.diagram-section .diagram-container{background:rgba(var(--bg-surface-rgb),.8);border:1px solid rgba(var(--accent-gold-rgb),.12);border-radius:4px;padding:1.5rem;overflow-x:auto}.diagram-section .diagram-code{font-family:DM Mono,monospace;font-size:.75rem;color:var(--text-secondary);white-space:pre;line-height:1.6}.mermaid-output svg{width:100%;height:auto;max-width:100%}.usecases-section .usecases-list{list-style:none;padding:0}.usecases-section .usecases-list li{font-family:Noto Sans JP,sans-serif;font-weight:300;font-size:.9rem;line-height:1.7;color:var(--text-secondary);padding:.5rem 0 .5rem 1.2rem;position:relative}.usecases-section .usecases-list li:before{content:"";position:absolute;left:0;top:.95rem;width:5px;height:5px;border-radius:50%;background:var(--accent-gold-dim)}.related-terms-section .terms-grid{display:flex;flex-wrap:wrap;gap:.5rem}.related-terms-section .term-tag{font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.05em;color:var(--accent-gold);border:1px solid rgba(var(--accent-gold-rgb),.25);background:rgba(var(--accent-gold-rgb),.04);padding:.4em .9em;border-radius:2px;transition:background .3s ease,border-color .3s ease,transform .3s ease;cursor:pointer}.related-terms-section .term-tag:hover{background:rgba(var(--accent-gold-rgb),.1);border-color:var(--accent-gold);transform:scale(1.05)}.related-terms-section .term-tag:active{transform:scale(.98);background:rgba(var(--accent-gold-rgb),.15)}.persisted-term-tag{cursor:default}.persisted-term-tag:hover,.persisted-term-tag:active{transform:none}.persisted-keyword-badges{display:flex;flex-wrap:wrap;gap:.5rem}.persisted-keyword-badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;border:1px solid var(--accent-gold-dim);color:var(--accent-gold-bright);background-color:rgba(var(--accent-gold-rgb),.08);font-size:.85rem;font-weight:500;letter-spacing:.02em;cursor:default}.keyword-badge{transition:background .3s ease,border-color .3s ease,transform .3s ease}.keyword-badge:hover{background:rgba(var(--accent-gold-rgb),.1)!important;border-color:var(--accent-gold)!important;transform:scale(1.05)}.keyword-badge:active{transform:scale(.98);background:rgba(var(--accent-gold-rgb),.15)!important}.papers-section .papers-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:1rem}.papers-section .papers-list li{display:flex;flex-direction:column;gap:.25rem}.papers-section .papers-list a{font-family:Noto Sans JP,sans-serif;font-size:.9rem;font-weight:400;color:var(--text-primary);text-decoration:none;transition:color .2s ease}.papers-section .papers-list a:hover{color:var(--accent-gold)}.papers-section .papers-list span{font-family:DM Mono,monospace;font-size:.7rem;color:var(--text-dim);letter-spacing:.03em}@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skel{background:linear-gradient(90deg,var(--bg-surface) 25%,#1f1f28 50%,var(--bg-surface) 75%);background-size:800px 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:3px}.skel-line{height:1em;width:100%;display:block}.skel-block{display:block;width:100%}.skeleton-rows{display:flex;flex-direction:column;gap:.6em}.cursor{display:inline-block;width:2px;height:1em;background:var(--accent-gold);vertical-align:text-bottom;margin-left:2px;animation:blink-cursor .8s step-end infinite}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.reveal-cta{margin-top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.2rem;opacity:0;transform:translateY(15px);transition:opacity .6s ease,transform .6s ease;padding-bottom:2rem}.reveal-cta.visible{opacity:1;transform:translateY(0)}.cta-message{font-family:Noto Sans JP,sans-serif;font-weight:700;font-size:clamp(.95rem,2.5vw,1.2rem);color:var(--accent-gold);letter-spacing:.12em}.cta-sub{font-family:DM Mono,monospace;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--text-dim)}.cta-error-message{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.08em;color:#ff7878e6;text-align:center}.reset-btn{border:1px solid var(--text-dim);background:transparent;color:var(--text-secondary);font-family:Noto Sans JP,sans-serif;font-size:.8rem;letter-spacing:.12em;padding:.7em 2.5em;cursor:pointer;border-radius:6px;text-decoration:none;transition:border-color .3s ease,color .3s ease,background .3s ease}.reset-btn:hover{border-color:var(--accent-gold);color:var(--accent-gold);background:rgba(var(--accent-gold-rgb),.05)}.reset-btn-label{position:relative;display:inline-block}.reset-btn:hover .reset-btn-label{text-shadow:0 0 10px rgba(var(--accent-gold-rgb),.8),0 0 20px rgba(var(--accent-gold-rgb),.6),0 0 30px rgba(var(--accent-gold-rgb),.4);animation:glitch-shift .3s ease-in-out}.reset-btn:hover .reset-btn-label:before,.reset-btn:hover .reset-btn-label:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;opacity:.8}.reset-btn:hover .reset-btn-label:before{color:#ff0050b3;animation:glitch-shift .25s ease-in-out infinite;animation-delay:.05s;transform:translate(-2px);mix-blend-mode:screen}.reset-btn:hover .reset-btn-label:after{color:#00ffffb3;animation:glitch-shift .25s ease-in-out infinite reverse;animation-delay:.1s;transform:translate(2px);mix-blend-mode:screen}.cta-actions{display:flex;align-items:stretch;gap:.75rem;margin-top:1rem}.copy-btn,.share-btn{color:var(--text-secondary);background:transparent;border:1px solid var(--text-dim);padding:.55rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:border-color .3s ease,color .3s ease,background .3s ease}.copy-btn:hover,.share-btn:hover{border-color:var(--accent-gold);color:var(--accent-gold);background:rgba(var(--accent-gold-rgb),.05)}.copy-btn.copied,.share-btn.shared{border-color:var(--accent-gold-dim);color:var(--accent-gold-dim)}@keyframes fade-up{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.reveal-keyword{font-size:clamp(2rem,10vw,3.5rem)}.stage-title{font-size:1.3rem}.discover-btn .btn-ring{width:130px;height:130px}.reveal-inner{padding:2rem 1.2rem 3rem}.definition-section .definition-text{font-size:.95rem}.explanation-section .explanation-text{font-size:.85rem}.related-terms-section .term-tag{font-size:.65rem;padding:.35em .7em}}@media(prefers-reduced-motion:reduce){.discover-btn:not(:disabled):hover .btn-label,.discover-btn:not(:disabled):hover .btn-label:before,.discover-btn:not(:disabled):hover .btn-label:after{animation:none}.discover-btn:not(:disabled):hover .btn-label{text-shadow:0 0 10px rgba(var(--accent-gold-rgb),.6)}.reset-btn:hover .reset-btn-label,.reset-btn:hover .reset-btn-label:before,.reset-btn:hover .reset-btn-label:after{animation:none}.reset-btn:hover .reset-btn-label{text-shadow:0 0 10px rgba(var(--accent-gold-rgb),.6)}}
