:root{--paper:#08090b;--white:#151619;--ink:#f2f3f4;--red:#ff303b;--bright:#ff303b;--muted:#9699a2;--line:#303238;--soft:#17191e}
html,body{background:#060709;color:#f2f3f4}.immersive{min-height:100dvh}.ambient-scene{position:fixed;inset:0;z-index:0;background:#060709;transition:opacity 1.4s var(--ease),filter 1.4s var(--ease);overflow:hidden}.ambient-scene canvas{width:100%;height:100%;display:block;cursor:grab}.ambient-scene canvas:active{cursor:grabbing}.scene-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 30%,#06070933 65%,#060709bb 100%)}.scene-crosshair{position:absolute;pointer-events:none;width:19px;height:19px;opacity:.35;color:#a7abb2}.scene-crosshair::before,.scene-crosshair::after{content:'';position:absolute;background:currentColor}.scene-crosshair::before{width:19px;height:1px;top:9px;left:0}.scene-crosshair::after{width:1px;height:19px;left:9px;top:0}.crosshair-top{left:34px;top:115px}.crosshair-bottom{right:34px;bottom:112px}.scene-header{position:fixed;inset:0 0 auto;background:linear-gradient(#060709c9,transparent);pointer-events:none;z-index:30}.scene-header .header-top{height:100px;max-width:none;padding:0 38px}.scene-header .brand{pointer-events:auto;font-size:21px;color:#f5f5f5;gap:12px}.scene-header .brand svg{width:32px;height:32px;color:var(--red)}.scene-header .brand-sub{font-size:8px;letter-spacing:.27em}.scene-coordinate{font-size:9px;letter-spacing:.1em;position:absolute;left:50%;transform:translateX(-50%);color:#747780;display:flex;align-items:center;gap:9px}.coordinate-dot{width:4px;height:4px;border-radius:50%;background:#f33;animation:ping 3s infinite}.scene-header .header-actions{pointer-events:auto;gap:12px}.scene-header .icon-button,.scene-header .search-button{width:38px;height:38px;color:#9d9fa6;display:flex;align-items:center;justify-content:center;padding:0;transition:color .3s,background .3s}.scene-header .icon-button:hover,.scene-header .search-button:hover{background:#ffffff0b;color:#fff}.scene-header .icon-button svg,.scene-header .search-button svg{width:18px;height:18px}.scene-header .menu-button{display:none}.scene-dock{position:fixed;z-index:35;bottom:27px;left:50%;transform:translateX(-50%);padding:9px 13px;display:flex;align-items:center;gap:4px;width:auto;max-width:calc(100% - 36px);height:65px;overflow:visible;border:1px solid #fff2;border-radius:18px;background:#121418b8;backdrop-filter:blur(22px);box-shadow:0 18px 50px #0004}.scene-dock a{width:55px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;position:relative;color:#727681;transition:color .25s,background .25s,transform .5s var(--ease)}.scene-dock a svg{width:22px;height:22px;stroke-width:1.3}.scene-dock a:hover{transform:translateY(-6px);color:#fff;background:#fff1}.scene-dock a.active{color:var(--red);background:#ff303b10}.scene-dock a::after{width:3px;height:3px;bottom:1px;left:calc(50% - 1.5px);border-radius:50%;transform:scale(0);background:var(--red)}.scene-dock a.active::after{transform:scale(1)}.scene-dock a span{position:absolute;bottom:60px;left:50%;transform:translate(-50%,8px);opacity:0;pointer-events:none;white-space:nowrap;background:#191b20f5;border:1px solid #373b42;padding:7px 12px;font-size:10px;color:#e8e9ed;transition:opacity .3s,transform .4s var(--ease);border-radius:5px}.scene-dock a:hover span,.scene-dock a:focus-visible span{opacity:1;transform:translate(-50%,0)}.scene-home{overflow:hidden}.scene-home #main{position:relative;z-index:5;pointer-events:none;width:100%;min-height:100dvh}.scene-home .page-enter{animation:none}.scene-home .site-footer,.scene-detail .site-footer{display:none}.scene-detail .ambient-scene{opacity:.3;filter:blur(2px);pointer-events:none}.scene-detail #main{position:relative;z-index:5;padding-top:106px;padding-bottom:130px;min-height:100dvh}.scene-detail .page-enter{animation:detailOpen .9s var(--ease) both}@keyframes detailOpen{from{opacity:0;transform:translateY(45px) scale(.98);filter:blur(9px);clip-path:inset(3% 0 0)}to{opacity:1;transform:none;filter:blur(0);clip-path:inset(0)}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.scene-ui{position:fixed;inset:0;pointer-events:none}.scene-region-rail{position:absolute;left:43px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:27px;align-items:start;pointer-events:auto}.region-orbit{position:relative;display:flex;align-items:center;gap:16px;padding:7px 0;color:#727780;font-size:9px;letter-spacing:.16em;transition:color .3s}.region-orbit::before{content:'';width:5px;height:5px;border:1px solid #6a6f79;border-radius:50%;transition:box-shadow .4s,background .4s}.region-orbit:hover,.region-orbit.active{color:white}.region-orbit.active::before{background:var(--red);border-color:var(--red);box-shadow:0 0 0 5px #ff303b12,0 0 20px #ff303b66}.region-orbit span{opacity:.5;transition:opacity .3s,transform .3s}.region-orbit:hover span,.region-orbit.active span{opacity:1;transform:translateX(3px)}.scene-counter{position:absolute;right:45px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:end;gap:9px;color:#a7abb3;pointer-events:auto;background:none}.scene-counter strong{font-size:62px;line-height:1;font-weight:400;letter-spacing:-.04em;color:#d5d7db}.scene-counter span{font-size:8px;letter-spacing:.25em;color:#757a85}.scene-counter::after{content:'';height:45px;width:1px;background:linear-gradient(var(--red),transparent);margin-top:16px;animation:counterLine 3s ease-in-out infinite}@keyframes counterLine{50%{transform:scaleY(.55);opacity:.3}}.scene-caption{position:absolute;left:40px;bottom:40px;font-size:8px;letter-spacing:.16em;color:#6d717a;display:flex;align-items:center;gap:12px;pointer-events:auto}.scene-caption a{width:19px;height:19px;border:1px solid #444952;border-radius:50%;display:grid;place-items:center;font-size:10px;letter-spacing:0}.scene-caption a:hover{color:white;border-color:white}.scene-instruction{position:absolute;right:40px;bottom:44px;font-size:8px;letter-spacing:.2em;color:#656a75;display:flex;align-items:center;gap:13px}.scene-instruction svg{width:19px;height:19px;animation:handMove 5s var(--ease) infinite}@keyframes handMove{0%,100%{transform:translateX(0)}45%{transform:translateX(-7px)}65%{transform:translateX(5px)}}.signal-drawer{position:fixed;z-index:25;right:28px;top:106px;bottom:112px;width:min(440px,calc(100% - 56px));background:#101216ed;border:1px solid #ffffff20;backdrop-filter:blur(25px);padding:30px;overflow:auto;pointer-events:auto;opacity:0;transform:translateX(calc(100% + 30px));transition:transform .8s var(--ease),opacity .5s;box-shadow:0 25px 70px #0006;scrollbar-width:thin}.signal-drawer.is-open{opacity:1;transform:translateX(0)}.signal-drawer-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:28px}.signal-drawer-head h2{font-size:31px;letter-spacing:-.03em;font-weight:400;max-width:300px}.signal-drawer-head small{display:block;font-size:9px;letter-spacing:.12em;color:#7c8490;margin-top:10px}.signal-drawer-head button{color:#8a909d;font-size:26px;width:30px;height:30px}.signal-story{display:grid;grid-template-columns:27px 1fr 14px;gap:15px;padding:23px 0;border-top:1px solid #2a2e36;transition:padding-left .4s var(--ease)}.signal-story:hover{padding-left:5px}.signal-story svg{width:21px;height:21px;color:var(--red)}.signal-story time{font-size:9px;color:#818895;letter-spacing:.05em}.signal-story h3{font-size:14px;font-weight:500;line-height:1.8;color:#e1e4e9;margin-top:7px;letter-spacing:0}.signal-story small{font-size:9px;color:#737b89;display:block;margin-top:10px}.signal-story>span{font-size:14px;color:#697282}.signal-drawer-foot{font-size:9px;color:#6f7784;line-height:1.9;padding-top:20px;border-top:1px solid #2a2e36}.drawer-browse{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:17px 0;margin-top:12px;color:#fff}.scene-detail .reading-progress{background:var(--red)}.scene-home .reading-progress{display:none}.scene-close-detail{position:fixed;right:39px;top:112px;width:40px;height:40px;border:1px solid #ffffff2a;border-radius:50%;display:grid;place-items:center;z-index:18;color:#a4a9b2;background:#0b0d11a8;backdrop-filter:blur(8px);font-size:22px}.scene-close-detail:hover{color:#fff;border-color:var(--red);transform:rotate(90deg);transition:transform .5s var(--ease)}.scene-home .scene-close-detail{display:none}.scene-signal-flash{position:fixed;inset:0;pointer-events:none;z-index:2;background:radial-gradient(circle at 50% 50%,#ff303b1a,transparent 65%);animation:sceneFlash .9s var(--ease) both}@keyframes sceneFlash{from{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.2)}}
@media(max-width:1100px){.scene-coordinate{display:none}.scene-counter{right:28px}.scene-region-rail{left:30px}.scene-caption{bottom:118px;left:30px;font-size:7px}.scene-instruction{bottom:118px;right:30px;font-size:7px}.scene-header .header-top{padding:0 30px}.scene-close-detail{right:20px;top:102px}.scene-detail #main{padding-top:100px}.signal-drawer{top:95px;bottom:108px}}
@media(max-width:600px){.scene-header .header-top{padding:0 22px;height:83px}.scene-header .brand{font-size:17px;gap:10px}.scene-header .brand svg{width:26px;height:26px}.scene-header .brand-sub{font-size:7px;letter-spacing:.22em;margin-top:6px}.scene-header .header-actions{gap:3px}.scene-header .icon-button,.scene-header .search-button{width:34px;height:34px}.scene-header .menu-button{display:flex}.scene-dock{bottom:20px;height:59px;width:calc(100% - 32px);padding:8px;gap:0;justify-content:space-between;border-radius:15px;overflow:visible}.scene-dock a{width:calc((100vw - 50px)/8);height:40px;border-radius:8px;flex-shrink:1;min-width:0}.scene-dock a svg{width:18px;height:18px}.scene-dock a span{font-size:9px;bottom:54px;padding:6px 9px}.scene-dock a:first-child span{left:0;transform:translate(0,0)}.scene-dock a:last-child span{left:auto;right:0;transform:translate(0,0)}.scene-dock.menu-open{height:auto;padding:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:15px;overflow:visible;background:#101216f2;bottom:20px}.scene-dock.menu-open a{height:65px;width:auto;display:flex;flex-direction:column;gap:10px}.scene-dock.menu-open a span{position:static;transform:none;opacity:1;background:none;border:0;padding:0;font-size:8px;letter-spacing:0;max-width:70px;white-space:normal;text-align:center}.scene-dock.menu-open a svg{width:21px;height:21px}.scene-region-rail{left:24px;top:109px;transform:none;flex-direction:row;gap:19px;right:20px}.region-orbit{font-size:7px;gap:7px;letter-spacing:.12em}.region-orbit::before{width:3px;height:3px}.scene-counter{right:24px;top:auto;bottom:150px;transform:none;gap:4px}.scene-counter strong{font-size:37px}.scene-counter span{font-size:7px;letter-spacing:.18em}.scene-counter::after{display:none}.scene-caption{left:24px;bottom:103px;gap:8px;font-size:6px;letter-spacing:.1em}.scene-caption a{width:16px;height:16px;font-size:9px}.scene-instruction{right:24px;bottom:108px;font-size:6px;letter-spacing:.1em;gap:6px}.scene-instruction svg{width:14px;height:14px}.crosshair-top{left:22px;top:155px;width:12px;height:12px}.crosshair-bottom{right:22px;bottom:145px;display:none}.scene-crosshair::before{width:12px;top:6px}.scene-crosshair::after{height:12px;left:6px}.signal-drawer{right:16px;left:16px;top:151px;bottom:101px;width:auto;padding:23px;transform:translateY(50px);pointer-events:none;visibility:hidden;transition:transform .7s var(--ease),opacity .5s,visibility .5s}.signal-drawer.is-open{pointer-events:auto;visibility:visible;transform:none}.signal-drawer-head{margin-bottom:20px}.signal-drawer-head h2{font-size:27px}.signal-story{padding:19px 0;gap:11px;grid-template-columns:23px 1fr 12px}.signal-story h3{font-size:13px}.signal-story time,.signal-story small{font-size:8px}.scene-detail #main{padding-top:85px;padding-bottom:110px}.scene-close-detail{right:18px;top:92px;height:28px;width:28px;font-size:17px}.scene-vignette{background:radial-gradient(ellipse at center,transparent 32%,#06070922 62%,#060709aa 100%)}.scene-detail .ambient-scene{filter:blur(1px);opacity:.22}}
@media(prefers-reduced-motion:reduce){.scene-dock a:hover{transform:none}.scene-detail .page-enter{animation:none}}
.scene-detail .compare-tray{bottom:110px}.scene-detail .concept-relation.distinct::after{content:'↔'}.scene-detail #main:focus{outline:none}.scene-home #main:focus{outline:none}.scene-detail .page-header .english-title{display:none}.scene-detail .page-header h1{font-size:54px;letter-spacing:-.04em;font-weight:400}.scene-detail .breadcrumb{font-size:9px;opacity:.65}.scene-detail .page-header p{max-width:55em;font-size:11px}.scene-detail .page-header{padding-top:22px;padding-bottom:28px}
@media(max-width:600px){.scene-detail .page-header h1{font-size:37px}.scene-detail .page-header p{font-size:10px}.scene-detail .compare-tray{bottom:92px}.scene-detail .concept-relation.distinct::after{content:'↔'}}
.motion-paused .page-enter{animation:none!important;opacity:1;transform:none;filter:none;clip-path:none}

/* Japanese wordmark */
.scene-header .brand-name{font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:17px;letter-spacing:.025em;line-height:1.25;font-weight:700;white-space:nowrap}.scene-header .brand-name .brand-sub{font-size:9px;letter-spacing:.38em;margin-top:6px;font-weight:500}.scene-header .brand svg{flex-shrink:0}
@media(max-width:600px){.scene-header .brand{gap:8px}.scene-header .brand-name{font-size:14px;letter-spacing:0}.scene-header .brand-name .brand-sub{font-size:8px;letter-spacing:.24em;margin-top:4px}.scene-header .brand svg{width:25px;height:29px}.scene-header .header-actions{gap:3px}}

/* v8: the emblem and cut-letter wordmark are one authored brand asset. */
.scene-header .brand-v8{display:block;flex:none;gap:0;line-height:1}
.brand-art{position:relative;display:block;width:288px;aspect-ratio:3/1;transition:filter .25s,transform .35s cubic-bezier(.16,1,.3,1)}
.brand-logo{display:block;width:100%;height:100%;object-fit:contain;color:#f4f3ef;font-size:18px;font-weight:800}
.brand-committee{position:absolute;left:29%;bottom:12%;font-size:8px;line-height:1;letter-spacing:.46em;color:#c5c5c7;font-weight:500;white-space:nowrap}
.brand-v8:hover .brand-art,.brand-v8:focus-visible .brand-art{filter:brightness(1.2);transform:translateY(-1px)}
@media(max-width:600px){.brand-art{width:min(230px,calc(100vw - 156px))}.brand-committee{font-size:7px;letter-spacing:.3em;bottom:10%}.brand-logo{font-size:15px}}
html.motion-paused .brand-art{transition:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.brand-art{transition:none!important;transform:none!important}}
