@font-face{font-family:Cinzel;src:url(../fonts/cinzel-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:LateranoScript;src:url(../fonts/pinyon-script.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:LSerif;src:url(../fonts/serif-p-400.woff2?v=9) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:LSerif;src:url(../fonts/serif-p-600.woff2?v=9) format("woff2");font-weight:600;font-display:swap}
:root{--paper:#f5f7f7;--card:#fff;--ink:#16232b;--slate:#627b84;--soft:#93a5ab;--blue:#0027ff;--blue2:#1156d5;--teal:#36b2bc;--red:#a80c29;--line:rgba(0,39,255,.16);--hair:rgba(22,35,43,.12);--serif:LSerif,"Source Han Serif SC","Noto Serif SC","Songti SC",serif;--cap:Cinzel,LSerif,"Source Han Serif SC","Noto Serif SC","Songti SC",serif;--script:LateranoScript,"Pinyon Script",cursive;--code:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);font:400 15px/1.85 var(--serif);background:var(--paper);background-image:linear-gradient(rgba(0,39,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,39,255,.045) 1px,transparent 1px);background-size:32px 32px;-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
a{color:inherit;text-decoration:none}img,video,svg{display:block;max-width:100%}button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{width:min(960px,100% - 48px);margin-inline:auto}
.eyebrow{font:500 12px/1.4 var(--cap);letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin:0}
code{font:500 .9em var(--code);background:rgba(0,39,255,.07);color:var(--blue2);padding:1px 5px}
.top{position:sticky;top:0;z-index:10;background:rgba(245,247,247,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top .wrap{width:min(1200px,100% - 48px)}
.bar{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{display:flex;align-items:center;gap:10px;font:400 27px/1 var(--script);padding-top:4px}.brand svg{width:26px;height:26px;margin-top:-4px}
.nav{font:500 13px/1 var(--cap);letter-spacing:.08em;color:var(--slate)}.nav a{padding:6px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}.nav a:hover{color:var(--blue);border-color:var(--blue)}
.back{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;font:600 15px/1 var(--serif);letter-spacing:.08em;padding:13px 26px 13px 18px;clip-path:polygon(0 0,100% 0,calc(100% - 11px) 100%,0 100%);box-shadow:0 0 0 0 transparent;transition:background .2s,transform .2s}
.back:hover{background:var(--blue2);transform:translateX(-2px)}
.back.sm{font-size:14px;padding:10px 22px 10px 14px}
.endnav{display:flex;justify-content:center;margin-top:80px}
.endnav+.pager{margin-top:28px}
.p-hero{padding:64px 0 0}
h1{font-weight:600;font-size:clamp(30px,4.4vw,48px);line-height:1.3;letter-spacing:.02em;margin:18px 0 0}
.lead{color:#2c3d45;font-size:17px;margin:16px 0 0;max-width:640px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:34px 0 0;border-top:1px solid var(--ink)}
.facts>div{padding:12px 16px 14px 0;border-bottom:1px solid var(--hair)}.facts>div+div:not(.wide){padding-left:16px;border-left:1px solid var(--hair)}
.facts .wide{grid-column:1/-1}
.facts dt{font:500 12px/1.6 var(--cap);letter-spacing:.12em;color:var(--slate)}.facts dd{margin:4px 0 0;font-size:15px}
.metrics{display:grid;grid-template-columns:repeat(var(--mc,3),minmax(0,1fr));gap:20px;margin-top:40px}
.awards{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.awards li{display:flex;align-items:flex-start;gap:12px;font-size:15px}
.awards .aw{flex-shrink:0;font:600 13px/1 var(--serif);letter-spacing:.08em;background:var(--blue);color:#fff;padding:7px 10px 6px}.awards .aw.gold{background:var(--red)}
.awards li>span:last-child{padding-top:3px}.awards small{display:block;color:var(--slate);font-size:13px;margin-top:2px}
.metric{position:relative;display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);padding:20px 20px 18px}
.metric::before{content:"";position:absolute;left:-1px;top:-1px;width:18px;height:18px;border:0 solid var(--blue);border-width:2px 0 0 2px}
.metric b{font:600 38px/1.1 var(--cap);color:var(--blue);letter-spacing:.01em}
.metric span{font-weight:600;font-size:15px}
.metric small{margin-top:8px;color:var(--slate);font-size:13px;line-height:1.7}
.metric small i{display:block;font:500 11px/1.6 var(--cap);font-style:normal;letter-spacing:.12em;color:var(--soft)}
.blk{padding-top:72px}
.h2{display:flex;align-items:center;gap:14px;padding-bottom:14px;margin-bottom:22px;border-bottom:1px solid var(--ink);position:relative}
.h2::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:6px;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 24px)}
.h2 .k{font:600 22px/1 var(--cap);color:#fff;background:var(--blue);padding:8px 18px 6px 10px;clip-path:polygon(0 0,100% 0,calc(100% - 9px) 100%,0 100%)}
.h2 h2{margin:0;font-weight:600;font-size:clamp(22px,2.6vw,28px);letter-spacing:.04em}
.did{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.did li{position:relative;background:var(--card);border:1px solid var(--hair);padding:14px 16px 14px 34px}
.did li::before{content:"";position:absolute;left:16px;top:24px;width:7px;height:7px;background:var(--blue);transform:rotate(45deg)}
.prose p{margin:0 0 14px;max-width:760px}
.note{margin:0 0 16px;color:var(--soft);font-size:13px}
.vids{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.vid{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1px solid var(--hair);padding:8px 8px 12px;transition:border-color .25s,transform .25s}
.vid:hover{border-color:var(--blue);transform:translateY(-2px)}
.vid .thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#e6ecee}.vid .thumb img{width:100%;height:100%;object-fit:cover}
.play{position:absolute;left:0;bottom:0;width:30px;height:30px;background:#fff;opacity:.94}.play::after{content:"";position:absolute;left:11px;top:9px;border-left:9px solid var(--blue);border-top:6px solid transparent;border-bottom:6px solid transparent}
.vt{font-size:13px;font-weight:600;line-height:1.5;padding:0 2px}
.limits ul{margin:0;padding:18px 20px 18px 38px;background:#fff;border:1px solid rgba(168,12,41,.22);border-left:3px solid var(--red)}
.limits li{margin:0 0 10px;color:#2c3d45}.limits li:last-child{margin:0}.limits li::marker{color:var(--red)}
.limits .k{background:var(--red)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:88px}
.pager a{display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--hair);padding:16px 18px;font-weight:600;transition:border-color .25s,color .25s}
.pager a:last-child{text-align:right}.pager a:hover{border-color:var(--blue);color:var(--blue)}
.pager small{font:500 12px/1.4 var(--cap);letter-spacing:.12em;color:var(--slate)}
.bgm{position:fixed;z-index:20;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;height:44px;padding:0 14px 0 12px;background:#fff;border:1px solid var(--blue);color:var(--blue);font:600 12px/1 var(--cap);letter-spacing:.08em;box-shadow:4px 4px 0 rgba(0,39,255,.12);transition:box-shadow .2s,transform .2s,translate .35s cubic-bezier(.2,.7,.2,1)}.bgm.away{translate:0 calc(100% + 30px)}
.bgm:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 rgba(0,39,255,.16)}
.bgm .eq{display:flex;align-items:flex-end;gap:2px;height:14px}.bgm .eq i{width:2px;height:3px;background:currentColor;transition:height .3s}
.bgm[aria-pressed="true"] .eq i{animation:eq 1.1s ease-in-out infinite}.bgm[aria-pressed="true"] .eq i:nth-child(2){animation-delay:-.4s}.bgm[aria-pressed="true"] .eq i:nth-child(3){animation-delay:-.8s}.bgm[aria-pressed="true"] .eq i:nth-child(4){animation-delay:-.2s}
@keyframes eq{0%,100%{height:3px}50%{height:14px}}
.bgm .lbl::after{content:"BGM OFF"}.bgm[aria-pressed="true"] .lbl::after{content:"BGM ON"}
@media(max-width:600px){.bgm{width:40px;height:40px;padding:0;justify-content:center}.bgm .lbl{display:none}.bgm .eq{height:16px}.bgm .eq i:nth-child(1){height:6px}.bgm .eq i:nth-child(2){height:12px}.bgm .eq i:nth-child(3){height:16px}.bgm .eq i:nth-child(4){height:9px}.bgm[aria-pressed="false"] .eq{opacity:.45}.bgm[aria-pressed="false"]::after{content:"";position:absolute;left:11px;right:11px;top:50%;height:1.5px;background:currentColor;rotate:-45deg}}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:26px;counter-reset:f}
.flow li{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);padding:30px 12px 14px;counter-increment:f}
.flow li::before{content:counter(f,decimal-leading-zero);position:absolute;left:12px;top:10px;font:600 11px/1 var(--cap);letter-spacing:.1em;color:var(--blue)}
.flow li+li::after{content:"";position:absolute;left:-21px;top:50%;width:16px;height:1px;background:var(--blue)}
.flow li+li>b::before{content:"";position:absolute;left:-10px;top:calc(50% - 4px);border-left:6px solid var(--blue);border-top:4px solid transparent;border-bottom:4px solid transparent}
.flow b{font-size:15px;font-weight:600;line-height:1.4}.flow span{color:var(--slate);font-size:12.5px;line-height:1.6}
.flow-note{display:flex;gap:10px;align-items:baseline;margin:18px 0 0;padding:12px 16px;border:1px dashed rgba(0,39,255,.35);background:rgba(0,39,255,.03);color:#2c3d45;font-size:14px}
.flow-note span{color:var(--blue);font-weight:600}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px}
.chart{margin:0;background:var(--card);border:1px solid var(--line);padding:16px 16px 14px}
.chart figcaption{font-weight:600;font-size:15px;margin-bottom:6px}
.chart svg{width:100%;height:auto;overflow:visible}
.chart svg text{font:500 12px var(--cap);fill:var(--slate)}.chart svg .ax{fill:var(--soft);font-size:11.5px}.chart svg .val{fill:var(--ink);font-weight:600}
.chart svg .grid{stroke:rgba(22,35,43,.1);stroke-width:1}
.chart .legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:6px 0 8px;padding:0;font-size:12.5px;color:#2c3d45}
.chart .legend i{display:inline-block;width:12px;height:3px;margin-right:6px;vertical-align:middle}
.chart .note{margin:0;font-size:12.5px}
.contact{margin:14px 0 0;color:var(--slate);font-size:14px}.contact a{color:var(--blue);border-bottom:1px solid var(--line)}
.tl{list-style:none;margin:48px 0 0;padding:0 0 0 28px;position:relative}
.tl::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:rgba(0,39,255,.14)}
.tl li::after{content:"";position:absolute;left:-22px;top:22.5px;bottom:-40.5px;width:1px;background:linear-gradient(var(--blue),rgba(0,39,255,.45));transform-origin:top}.tl li:last-child::after{display:none}
.tl li{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;margin-bottom:18px}
.tl li::before{content:"";position:absolute;left:-26px;top:18px;width:9px;height:9px;background:var(--paper);border:2px solid var(--blue);transform:rotate(45deg)}
.tl time{padding-top:13px;font:600 13px/1.4 var(--cap);letter-spacing:.06em;color:var(--blue)}
.tl-card{background:var(--card);border:1px solid var(--hair);padding:14px 18px 16px}
.tl-kind{font:500 12px/1.4 var(--cap);letter-spacing:.1em;color:var(--slate)}
.tl-card h3{margin:4px 0 4px;font-size:16px;font-weight:600;line-height:1.5}.tl-card p{margin:0;color:#2c3d45;font-size:14px}
.tl-card .more{display:inline-block;margin-top:8px;font:500 12px/1 var(--cap);letter-spacing:.12em;color:var(--blue)}
.tl{margin-top:8px}.blk .tl{margin-bottom:0}
.h2 .h2-en{margin-left:auto;font:500 12px/1 var(--cap);letter-spacing:.14em;color:var(--slate)}
.tl-card.has-media{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:20px;align-items:start}
.tl-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tl-media .m:only-child{grid-column:1/-1}
.tl-media .m{min-width:0;display:flex;flex-direction:column;gap:5px;color:var(--slate);transition:color .2s}
.tl-media .m:hover{color:var(--blue)}
.tl-media .thumb{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#e6ecee;border:1px solid var(--hair);transition:border-color .2s}
.tl-media .m:hover .thumb{border-color:var(--blue)}
.tl-media .thumb img{width:100%;height:100%;object-fit:cover}.tl-media .pic .thumb{background:#fff}.tl-media .pic .thumb img{object-fit:contain;padding:4px}
.tl-media .mt{font-size:12px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.img-view img{width:100%;max-height:min(78vh,760px);object-fit:contain;background:#fff}
.tl .next .tl-card{border:1px dashed var(--blue);background:rgba(0,39,255,.03)}.tl .next::before{background:var(--blue);animation:ping 2.2s ease-out 1s infinite}
.fx .tl li[data-rv].in::before{animation:node .5s cubic-bezier(.3,1.6,.5,1) calc(var(--rd,0ms) + .2s) backwards}.fx .tl li[data-rv].in::after{animation:seg .9s cubic-bezier(.2,.7,.2,1) calc(var(--rd,0ms) + .35s) backwards}
.fx .tl .next[data-rv].in::before{animation:node .5s cubic-bezier(.3,1.6,.5,1) calc(var(--rd,0ms) + .2s) backwards,ping 2.2s ease-out 1.2s infinite}
@keyframes node{from{opacity:0;scale:.3}}@keyframes seg{from{scale:1 0}}@keyframes ping{0%{box-shadow:0 0 0 0 rgba(0,39,255,.45)}70%,100%{box-shadow:0 0 0 9px rgba(0,39,255,0)}}
.tl-card{position:relative}.pager a{position:relative}
footer{margin-top:104px;border-top:1px solid var(--ink)}
footer .wrap{width:min(1200px,100% - 48px);display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0 40px;font:500 12px/1.6 var(--cap);letter-spacing:.08em;color:var(--slate)}
.foot2{padding:0 0 34px!important;margin-top:-22px;font-size:11.5px!important;color:var(--soft)!important;justify-content:flex-start!important;gap:22px!important}.foot2 a{transition:color .2s}.foot2 a:hover{color:var(--blue)}.foot2 .mail{font-family:var(--serif);letter-spacing:.03em;font-size:12.5px}
footer .slash{width:120px;height:14px;background:var(--blue);clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%)}
.fx [data-rv]:not(.in){opacity:0}.fx [data-rv].in{animation:rv .7s cubic-bezier(.2,.7,.2,1) var(--rd,0ms) backwards}@keyframes rv{from{opacity:0;translate:0 16px}}
.glow::after{content:"";position:absolute;inset:-1px;padding:1px;pointer-events:none;background:radial-gradient(220px circle at var(--mx,50%) var(--my,0),var(--blue),rgba(0,39,255,.3) 42%,transparent 72%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:0;transition:opacity .3s}.glow:hover::after{opacity:1}.glow:hover{border-color:var(--line)!important}
.mail.copied{color:var(--blue)}
dialog{padding:0;border:0;background:transparent;color:var(--ink);width:min(1120px,94vw);max-width:none;max-height:none;overflow:visible}
dialog::backdrop{background:rgba(236,241,242,.9);backdrop-filter:blur(8px)}
.frame{position:relative;padding:12px;border:1px solid var(--line);background:#fff}
.frame::before,.frame::after,.frame>.cm::before,.frame>.cm::after{content:"";position:absolute;width:18px;height:18px;border:0 solid var(--blue)}
.frame::before{left:-1px;top:-1px;border-width:2px 0 0 2px}.frame::after{right:-1px;bottom:-1px;border-width:0 2px 2px 0}
.frame>.cm::before{right:-1px;top:-1px;border-width:2px 2px 0 0}.frame>.cm::after{left:-1px;bottom:-1px;border-width:0 0 2px 2px}
.modal video{width:100%;max-height:min(74vh,620px);background:#0b1014}
.modal-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px 2px}.modal-bar h3{margin:0;font-size:18px;font-weight:600;line-height:1.4}
.links{display:flex;gap:8px;flex-shrink:0}
.ghost{border:1px solid var(--blue);background:#fff;color:var(--blue);padding:8px 14px;font:500 13px/1 var(--serif);letter-spacing:.06em;white-space:nowrap;transition:.2s}.ghost:hover{background:var(--blue);color:#fff}
@media(max-width:900px){.metrics{grid-template-columns:repeat(min(var(--mc,3),2),minmax(0,1fr))}.tl-card.has-media{grid-template-columns:minmax(0,1fr)}.tl-media{grid-template-columns:repeat(3,minmax(0,1fr))}.vids{grid-template-columns:1fr 1fr}.flow{grid-template-columns:1fr;gap:18px}.flow li{padding:12px 14px 12px 52px}.flow li::before{left:14px;top:15px}.flow li+li::after{left:24px;top:-15px;width:1px;height:12px}.flow li+li>b::before{left:20px;top:-7px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--blue);border-bottom:0}}
@media(max-width:600px){.metrics{grid-template-columns:1fr}.awards li{font-size:14px}.chart{padding:14px 10px 12px}.chart svg text{font-size:17px}.chart svg .ax{font-size:15px}.tl-media{grid-template-columns:1fr 1fr}.h2 .h2-en{display:none}.tl{padding-left:22px}.tl li{grid-template-columns:minmax(0,1fr);gap:6px}.tl li::before{left:-20px;top:4px}.tl li::after{left:-16px;top:8.5px;bottom:-26.5px}.tl time{padding-top:0}.foot2{flex-direction:row!important;flex-wrap:wrap;gap:6px 18px!important;margin-top:-28px}.wrap,.top .wrap,footer .wrap{width:calc(100% - 32px)}.brand{font-size:24px}.p-hero{padding-top:40px}.facts{grid-template-columns:1fr}.facts>div+div:not(.wide){padding-left:0;border-left:0}.metric b{font-size:32px}.blk{padding-top:56px}.vids{gap:10px}.pager{grid-template-columns:1fr;gap:12px}.pager a:last-child{text-align:left}.modal-bar{flex-direction:column;align-items:flex-start}footer .wrap{flex-direction:column;align-items:flex-start}}
@media(hover:none){.vid:hover{border-color:var(--hair);transform:none}.pager a:hover{border-color:var(--hair);color:inherit}}
@media(prefers-reduced-motion:reduce){*,::before,::after{transition:none!important;animation:none!important}}
