:root{--black:#111;--dark:#1a1a1a;--gray-900:#2a2a2a;--gray-700:#555;--gray-500:#888;--gray-300:#bbb;--gray-100:#e5e5e5;--white:#fafafa;--paper:#f2f0ec;--red:#d42b1e;--red-dim:#d42b1e14;--blue:#1a56db;--font-serif:"Instrument Serif", Georgia, serif;--font-mono:"JetBrains Mono", monospace;--font-jp:"Zen Kaku Gothic New", sans-serif;--font-body:"Noto Sans JP", sans-serif;--border:2px solid var(--black);--border-thin:1px solid var(--gray-100)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--white);color:var(--black);font-family:var(--font-body);font-weight:400;line-height:1.8;overflow-x:hidden}body.mobile-menu-open{overflow:hidden}header{z-index:100;background:var(--white);border-bottom:var(--border);max-width:100vw;height:56px;display:flex;position:fixed;top:0;left:0;right:0;overflow:hidden}.logo{color:var(--black);border-right:var(--border);white-space:nowrap;align-items:center;padding:0 24px;text-decoration:none;display:flex}.logo-image{object-fit:contain;width:auto;display:block}.logo-image--30{height:30px}.nav-items{flex:1;display:flex}.nav-items a{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gray-700);border-right:1px solid var(--gray-100);white-space:nowrap;align-items:center;padding:0 20px;font-size:10px;text-decoration:none;transition:all .2s;display:flex}.nav-items a:hover{background:var(--black);color:var(--white)}.nav-spacer{flex:1}.nav-contact{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:var(--red);color:var(--white);border-left:var(--border);align-items:center;padding:0 20px;font-size:10px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-contact:hover{background:var(--black)}.header-pop{border-left:1px solid var(--gray-100);font-family:var(--font-mono);white-space:nowrap;color:inherit;align-items:center;gap:10px;padding:0 14px;text-decoration:none;display:flex}.header-pop-label{font-family:var(--font-jp);color:var(--gray-500);letter-spacing:.05em;flex-direction:column;align-items:flex-end;font-size:9px;line-height:1.4;display:flex}.header-pop-meta{text-align:right;flex-direction:column;align-items:flex-end;gap:0;display:flex}.header-pop-year{color:var(--gray-500);letter-spacing:.05em;font-size:10px}.header-pop-display{background:var(--black);border-radius:4px;align-items:center;padding:3px;display:inline-flex;box-shadow:inset 0 1px 4px #0006}.header-pop-slot{background:var(--dark);border:1px solid #333;border-radius:2px;width:20px;height:28px;margin:0 1px;position:relative;overflow:hidden}.header-pop-slot span{width:20px;height:28px;font-family:var(--font-mono);font-variant-numeric:tabular-nums lining-nums;color:#e0e0e0;text-shadow:0 0 6px #ffffff1a;place-items:center;font-size:16px;font-weight:700;line-height:1;display:grid}.header-pop-slot:after{content:"";pointer-events:none;background:#ffffff14;height:1px;position:absolute;top:50%;left:0;right:0}.header-pop-slot:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(#0000004d 0%,#0000 30% 70%,#0000004d 100%);position:absolute;inset:0}.header-pop-comma{font-family:var(--font-mono);color:#666;align-self:flex-end;margin:0 1px;padding-bottom:2px;font-size:14px;font-weight:700}.header-pop-delta,.header-pop-pct{color:var(--red);letter-spacing:.02em;font-size:9px;line-height:1.2}.mobile-menu-btn{border:none;border-left:var(--border);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;padding:0 14px;display:none}.mobile-menu-btn span{background:var(--black);width:18px;height:1.5px;margin:3px 0;display:block}.mobile-menu{z-index:99;opacity:0;pointer-events:none;transition:opacity .2s;position:fixed;inset:56px 0 0}.mobile-menu.is-open{opacity:1;pointer-events:auto}.mobile-menu-backdrop{background:#11111129;border:0;position:absolute;inset:0}.mobile-menu-surface{z-index:1;position:relative}.mobile-menu-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.mobile-menu-eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);margin-bottom:6px;font-size:10px}.mobile-menu-brand{font-family:var(--font-jp);font-size:18px;font-weight:700;line-height:1.2}.mobile-menu-close{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;font-size:10px}.mobile-menu-nav{display:grid}.mobile-menu-link{color:inherit;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;text-decoration:none;display:grid}.mobile-menu-index{font-family:var(--font-mono);letter-spacing:.08em;color:var(--gray-500);font-size:10px}.mobile-menu-label{font-family:var(--font-jp);font-size:18px;font-weight:700;line-height:1.2}.mobile-menu-arrow{font-family:var(--font-mono);font-size:14px}.mobile-menu-label-ja{font-family:var(--font-body);color:var(--gray-500);letter-spacing:0;margin-top:2px;font-size:11px;font-weight:400;display:block}.mobile-menu--slide-a6 .mobile-menu-surface{background:var(--white);border-left:var(--border);flex-direction:column;width:240px;height:calc(100vh - 56px);transition:transform .25s;display:flex;transform:translate(100%)}.mobile-menu--slide-a6{justify-content:flex-end;display:flex}.mobile-menu--slide-a6 .mobile-menu-backdrop{opacity:0;transition:opacity .25s}.mobile-menu--slide-a6.is-open .mobile-menu-backdrop{opacity:1}.mobile-menu--slide-a6.is-open .mobile-menu-surface{transform:translate(0)}[class*=mobile-menu--slide-a] .mobile-menu-head{border-bottom:var(--border);padding:16px 14px 12px}[class*=mobile-menu--slide-a] .mobile-menu-brand{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:12px}[class*=mobile-menu--slide-a] .mobile-menu-nav{flex:1;grid-template-columns:1fr;overflow-y:auto}[class*=mobile-menu--slide-a] .mobile-menu-link{border-bottom:1px solid var(--gray-100);grid-template-columns:32px 1fr auto;gap:8px;padding:12px 14px}[class*=mobile-menu--slide-a] .mobile-menu-index{color:var(--gray-300);font-size:16px;font-weight:700}[class*=mobile-menu--slide-a] .mobile-menu-label{font-size:14px}[class*=mobile-menu--slide-a] .mobile-menu-label-ja{font-size:10px}[class*=mobile-menu--slide-a] .mobile-menu-arrow{color:var(--gray-300);font-size:11px}[class*=mobile-menu--slide-a] .mobile-menu-link--contact{background:var(--black);color:var(--white);border-bottom:none;margin-top:auto}[class*=mobile-menu--slide-a] .mobile-menu-link--contact .mobile-menu-index,[class*=mobile-menu--slide-a] .mobile-menu-link--contact .mobile-menu-label-ja{color:#ffffff80}[class*=mobile-menu--slide-a] .mobile-menu-label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:400}[class*=mobile-menu--slide-a] .mobile-menu-label-ja{font-family:var(--font-mono), var(--font-body);letter-spacing:0;text-transform:none;font-size:10px}.mobile-menu--slide-a6 .mobile-menu-link{opacity:0;border-left:3px solid #0000;transition:opacity .25s,transform .25s,border-color .15s,background .15s;transform:translate(20px)}.mobile-menu--slide-a6.is-open .mobile-menu-link{opacity:1;transform:translate(0)}.mobile-menu--slide-a6.is-open .mobile-menu-link:first-child{transition-delay:.1s}.mobile-menu--slide-a6.is-open .mobile-menu-link:nth-child(2){transition-delay:.2s}.mobile-menu--slide-a6.is-open .mobile-menu-link:nth-child(3){transition-delay:.3s}.mobile-menu--slide-a6.is-open .mobile-menu-link:nth-child(4){transition-delay:.4s}.mobile-menu--slide-a6.is-open .mobile-menu-link:nth-child(5){transition-delay:.5s}.mobile-menu--slide-a6.is-open .mobile-menu-link:nth-child(6){transition-delay:.6s}.mobile-menu--slide-a6.is-open .mobile-menu-link:nth-child(7){transition-delay:.7s}.mobile-menu--slide-a6 .mobile-menu-link:active{border-left-color:var(--red);background:var(--red-dim)}.mobile-menu--slide-a6 .mobile-menu-link.is-tapped{border-left-color:var(--red);animation:.6s tap-blink}@keyframes tap-blink{0%{background:var(--red-dim)}17%{background:0 0}33%{background:var(--red-dim)}50%{background:0 0}67%{background:var(--red-dim)}83%{background:0 0}to{background:var(--red-dim)}}@media (width<=1000px){.nav-items,.nav-contact{display:none}.logo{flex-shrink:0;padding:0 12px}.header-pop{flex:1 1 0;justify-content:center;min-width:0;overflow:hidden}.header-pop-display{padding:2px}.header-pop-slot{width:18px;height:26px}.header-pop-slot span{width:18px;height:26px;font-size:14px}.header-pop-comma{font-size:12px}.header-pop-label span,.header-pop-meta span{font-size:8px}.mobile-menu-btn{flex-shrink:0;padding:0 12px;display:flex}}@media (width>=1001px){.mobile-menu{display:none}}.hero{border-bottom:var(--border);grid-template-columns:1fr 1fr;min-height:calc(100vh - 56px);margin-top:56px;display:grid}.hero-left{border-right:var(--border);flex-direction:column;justify-content:center;padding:clamp(48px,6vw,100px) clamp(32px,5vw,72px);display:flex;position:relative}.hero-tag{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--gray-500);opacity:0;font-size:9px;animation:.6s .1s forwards appear;position:absolute;top:24px;left:clamp(32px,5vw,72px)}.hero h1{font-family:var(--font-jp);letter-spacing:.02em;color:var(--black);opacity:0;margin-bottom:8px;font-size:clamp(32px,5vw,64px);font-weight:900;line-height:1.35;animation:.6s .2s forwards appear}.hero-line{white-space:nowrap}@media (width<=600px){.hero-line{display:block}}.hero-en{font-family:var(--font-serif);color:var(--gray-500);opacity:0;margin-bottom:40px;font-size:clamp(20px,2.5vw,36px);font-style:italic;animation:.6s .3s forwards appear}.hero-body{color:var(--gray-700);opacity:0;max-width:480px;margin-bottom:48px;font-size:15px;line-height:2;animation:.6s .4s forwards appear}.hero-body strong{color:var(--black);background:linear-gradient(to top, var(--red-dim) 40%, transparent 40%);padding:0 2px;font-weight:700}.hero-actions{opacity:0;gap:0;animation:.6s .5s forwards appear;display:flex}.btn-brutal{font-family:var(--font-mono);letter-spacing:.06em;border:var(--border);cursor:pointer;text-transform:uppercase;align-items:center;gap:8px;padding:16px 32px;font-size:12px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-brutal:not(:first-child){border-left:none}.btn-fill{background:var(--black);color:var(--white)}.btn-fill:hover{background:var(--red)}.btn-ghost{background:var(--white);color:var(--black)}.btn-ghost:hover{background:var(--black);color:var(--white)}.hero-right{background:var(--paper);opacity:0;justify-content:center;align-items:center;animation:.8s .3s forwards appear;display:flex;position:relative;overflow:hidden}.hero-right--dt{cursor:pointer;background:#0a0e1a;text-decoration:none}.hero-right--dt iframe{pointer-events:none;border:0;width:100%;height:100%;position:absolute;inset:0}.hero-right--dt .hero-date,.hero-right--dt .hero-coord{color:#94d3fc80;z-index:1}.hero-dt-overlay{z-index:2;background:#0a0e1a00;justify-content:center;align-items:center;transition:background .3s;display:flex;position:absolute;inset:0}.hero-dt-overlay span{font-family:var(--font-mono);letter-spacing:.1em;color:#fff;opacity:0;font-size:13px;transition:opacity .3s,transform .3s;transform:translateY(6px)}.hero-right--dt:hover .hero-dt-overlay{background:#0a0e1a80}.hero-right--dt:hover .hero-dt-overlay span{opacity:1;transform:translateY(0)}.hero-right-text{font-family:var(--font-mono);color:var(--gray-500);letter-spacing:.1em;text-align:center;font-size:10px;line-height:2.5}.hero-coord{font-family:var(--font-mono);color:var(--gray-300);letter-spacing:.08em;font-size:9px;position:absolute;bottom:20px;right:24px}.hero-date{font-family:var(--font-mono);color:var(--gray-300);letter-spacing:.08em;font-size:9px;position:absolute;top:20px;left:24px}@media (width<=900px){.hero{grid-template-columns:1fr}.hero-left{border-right:none;border-bottom:var(--border)}.hero-right{min-height:40vh}}.section-bar{border-bottom:var(--border);background:var(--white);display:flex}.section-bar-num{font-family:var(--font-mono);border-right:var(--border);text-align:center;min-width:56px;padding:12px 20px;font-size:11px;font-weight:700}.section-bar-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;flex:1;padding:12px 24px;font-size:11px;font-weight:500}.section-bar-link{font-family:var(--font-mono);letter-spacing:.08em;border-left:1px solid var(--gray-100);color:var(--gray-500);padding:12px 24px;font-size:10px;text-decoration:none;transition:all .2s}.section-bar-link:hover{background:var(--black);color:var(--white)}.why{border-bottom:var(--border);grid-template-columns:repeat(3,1fr);display:grid}.why-item{border-right:var(--border);padding:clamp(32px,4vw,56px)}.why-item:last-child{border-right:none}.why-item-idx{font-family:var(--font-serif);color:var(--gray-100);margin-bottom:16px;font-size:72px;line-height:1}.why-item h3{font-family:var(--font-jp);margin-bottom:16px;font-size:clamp(16px,1.4vw,20px);font-weight:900;line-height:1.6}.why-item p{color:var(--gray-700);font-size:13px;line-height:2}@media (width<=768px){.why{grid-template-columns:1fr}.why-item{border-right:none;border-bottom:var(--border)}.why-item:last-child{border-bottom:none}}.exp-grid{border-bottom:var(--border);grid-template-columns:repeat(3,1fr);display:grid}.exp-card{border-right:var(--border);border-bottom:var(--border);cursor:pointer;padding:clamp(24px,3vw,40px);transition:all .2s;position:relative}.exp-card:nth-child(3n){border-right:none}.exp-card:nth-child(n+4){border-bottom:none}.exp-card:hover{background:var(--black);color:var(--white)}.exp-card:hover .exp-status{border-color:var(--white);color:var(--white)}.exp-card:hover .exp-status.status-active{background:var(--red);border-color:var(--red)}.exp-card:hover .exp-status.status-completed{background:var(--black);border-color:var(--white)}.exp-card:hover p{color:var(--gray-300)}.exp-card:hover .exp-arrow{color:var(--white)}.exp-status{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--gray-300);color:var(--gray-700);margin-bottom:20px;padding:3px 10px;font-size:9px;font-weight:500;transition:all .2s;display:inline-block}.status-active{border-color:var(--red);color:var(--red)}.status-planned{border-color:var(--gray-300);color:var(--gray-500)}.status-completed{border-color:var(--black);color:var(--black)}.exp-card h3{font-family:var(--font-jp);margin-bottom:10px;font-size:clamp(16px,1.3vw,19px);font-weight:900;line-height:1.5}.exp-card p{color:var(--gray-700);font-size:13px;line-height:1.9;transition:color .2s}.exp-arrow{font-family:var(--font-mono);color:var(--gray-300);font-size:18px;transition:all .2s;position:absolute;bottom:clamp(24px,3vw,40px);right:clamp(24px,3vw,40px)}@media (width<=900px){.exp-grid{grid-template-columns:1fr 1fr}.exp-card:nth-child(3n){border-right:var(--border)}.exp-card:nth-child(2n){border-right:none}.exp-card{border-bottom:var(--border)!important}}@media (width<=560px){.exp-grid{grid-template-columns:1fr}.exp-card{border-right:none!important}}.proof-stats{border-bottom:var(--border);grid-template-columns:repeat(4,1fr);display:grid}.proof-stat{border-right:var(--border);text-align:center;padding:clamp(28px,3vw,48px) clamp(20px,2vw,36px)}.proof-stat:last-child{border-right:none}.proof-stat-num{font-family:var(--font-serif);margin-bottom:4px;font-size:clamp(40px,5vw,72px);font-weight:400;line-height:1}.proof-stat-unit{font-family:var(--font-mono);color:var(--gray-500);font-size:14px}.proof-stat-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);margin-top:8px;font-size:9px}.proof-cases{border-bottom:var(--border)}.case-row{border-bottom:1px solid var(--gray-100);cursor:pointer;grid-template-columns:200px 1fr auto;scroll-margin-top:72px;transition:all .2s;display:grid}.case-row-link{color:inherit;text-decoration:none}.case-row:last-child{border-bottom:none}.case-row:hover{background:var(--paper)}.case-img{background:var(--paper);border-right:1px solid var(--gray-100);min-height:120px;position:relative}.case-img-ph{font-family:var(--font-mono);color:var(--gray-300);letter-spacing:.1em;font-size:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.case-content{flex-direction:column;justify-content:center;padding:24px 32px;display:flex}.case-tag{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:6px;font-size:9px}.case-content h4{font-family:var(--font-jp);margin-bottom:6px;font-size:16px;font-weight:900;line-height:1.5}.case-content p{color:var(--gray-700);font-size:13px;line-height:1.7}.case-arrow{font-family:var(--font-mono);color:var(--gray-300);border-left:1px solid var(--gray-100);align-items:center;padding:0 32px;font-size:18px;transition:all .2s;display:flex}.case-row:hover .case-arrow{color:var(--black)}@media (width<=768px){.proof-stats{grid-template-columns:1fr 1fr}.proof-stat:nth-child(2){border-right:none;border-bottom:var(--border)}.proof-stat:first-child{border-bottom:var(--border)}.case-row{grid-template-columns:1fr auto}.case-img{display:none}}.connect-section{background:var(--black);color:var(--white)}.connect-section .section-bar{background:var(--black);border-color:var(--white)}.connect-section .section-bar-num{border-color:var(--white);color:var(--white)}.connect-section .section-bar-title{color:var(--white)}.connect-grid{border-bottom:2px solid var(--white);grid-template-columns:repeat(4,1fr);display:grid}.connect-card{border-right:2px solid var(--white);cursor:pointer;padding:clamp(28px,3vw,44px);transition:all .2s;position:relative}.connect-card:last-child{border-right:none}.connect-card:hover{background:var(--gray-900)}.connect-card-sym{font-family:var(--font-serif);color:var(--red);margin-bottom:20px;font-size:36px;line-height:1;display:block}.connect-card h3{font-family:var(--font-jp);margin-bottom:10px;font-size:clamp(15px,1.2vw,18px);font-weight:900;line-height:1.6}.connect-card p{color:var(--gray-500);margin-bottom:20px;font-size:13px;line-height:1.8}.connect-card-cta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red);align-items:center;gap:6px;font-size:10px;transition:gap .2s;display:inline-flex}.connect-card:hover .connect-card-cta{gap:12px}@media (width<=900px){.connect-grid{grid-template-columns:1fr 1fr}.connect-card:nth-child(2){border-right:none}.connect-card{border-bottom:2px solid var(--white)}}@media (width<=560px){.connect-grid{grid-template-columns:1fr}.connect-card{border-right:none!important}}.infra-layout{border-bottom:var(--border);grid-template-columns:1fr 1fr;display:grid}.infra-photo{background:var(--paper);border-right:var(--border);filter:grayscale();min-height:400px;transition:filter .5s;position:relative}.infra-photo:hover{filter:grayscale(0)}.infra-photo-ph{font-family:var(--font-mono);color:var(--gray-300);text-align:center;letter-spacing:.1em;font-size:10px;line-height:2.5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.infra-details{padding:clamp(36px,4vw,64px)}.infra-name{margin-bottom:32px}.infra-logo{width:auto;height:36px}.infra-table{border-collapse:collapse;width:100%;margin-bottom:36px}.infra-table tr{border-bottom:1px solid var(--gray-100)}.infra-table td{vertical-align:top;padding:14px 0;font-size:14px}.infra-table td:first-child{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);width:80px;padding-top:17px;font-size:9px}.infra-table td:last-child{color:var(--gray-700);line-height:1.7}@media (width<=768px){.infra-layout{grid-template-columns:1fr}.infra-photo{border-right:none;border-bottom:var(--border);min-height:240px}}footer{background:var(--white);border-top:var(--border);padding:clamp(40px,5vw,64px) clamp(24px,4vw,72px) 24px}.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:clamp(20px,3vw,48px);margin-bottom:48px;display:grid}.footer-brand{font-family:var(--font-mono);letter-spacing:.08em;margin-bottom:12px;font-size:12px;font-weight:700}.footer-brand-desc{font-family:var(--font-serif);color:var(--gray-500);font-size:15px;font-style:italic;line-height:1.6}.footer-col h4{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--gray-500);border-bottom:var(--border);margin-bottom:14px;padding-bottom:8px;font-size:9px;font-weight:700}.footer-col a{color:var(--gray-700);padding:4px 0;font-size:13px;text-decoration:none;transition:color .2s;display:block}.footer-col a:hover{color:var(--red)}.footer-bottom{border-top:var(--border);justify-content:space-between;align-items:center;padding-top:20px;display:flex}.footer-copy{font-family:var(--font-mono);letter-spacing:.08em;color:var(--gray-500);font-size:9px}.footer-social{gap:0;display:flex}.footer-social a{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gray-700);border:1px solid var(--gray-100);border-left:none;padding:6px 14px;font-size:9px;text-decoration:none;transition:all .2s}.footer-social a:first-child{border-left:1px solid var(--gray-100)}.footer-social a:hover{background:var(--black);color:var(--white);border-color:var(--black)}@media (width<=768px){.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column;align-items:flex-start;gap:16px}}@keyframes appear{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(20px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal:has(:target){transition:opacity .5s;transform:none}.hub-hero{text-align:center;border-bottom:var(--border);margin-top:56px;padding:clamp(60px,8vw,120px) clamp(24px,5vw,72px)}.hub-hero h1{font-family:var(--font-jp);margin-bottom:8px;font-size:clamp(28px,4vw,48px);font-weight:900;line-height:1.4}.hub-hero .hero-en{font-family:var(--font-serif);color:var(--gray-500);margin-bottom:24px;font-size:clamp(18px,2vw,28px);font-style:italic}.hub-hero p{color:var(--gray-700);max-width:600px;margin:0 auto;font-size:15px;line-height:2}.hub-grid{border-bottom:var(--border);grid-template-columns:repeat(3,1fr);display:grid}.hub-card{border-right:var(--border);flex-direction:column;padding:clamp(32px,4vw,56px);transition:all .2s;display:flex}.hub-card:last-child{border-right:none}.hub-card:hover{background:var(--paper)}.hub-card-label{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--gray-500);margin-bottom:16px;font-size:10px}.hub-card h2{font-family:var(--font-jp);margin-bottom:16px;font-size:clamp(18px,1.6vw,24px);font-weight:900;line-height:1.5}.hub-card p{color:var(--gray-700);flex:1;margin-bottom:32px;font-size:13px;line-height:2}.hub-card .btn-brutal{align-self:flex-start}@media (width<=768px){.hub-grid{grid-template-columns:1fr}.hub-card{border-right:none;border-bottom:var(--border)}.hub-card:last-child{border-bottom:none}}.subpage-hero{border-bottom:var(--border);margin-top:56px;padding:clamp(60px,8vw,120px) clamp(24px,5vw,72px)}.subpage-hero h1{font-family:var(--font-jp);margin-bottom:8px;font-size:clamp(28px,4vw,48px);font-weight:900;line-height:1.4}.subpage-hero .hero-en{font-family:var(--font-serif);color:var(--gray-500);margin-bottom:24px;font-size:clamp(18px,2vw,28px);font-style:italic}.subpage-hero p{color:var(--gray-700);max-width:640px;font-size:15px;line-height:2}.subpage-content{border-bottom:var(--border);max-width:800px;padding:clamp(48px,6vw,80px) clamp(24px,5vw,72px)}.subpage-content h2{font-family:var(--font-jp);margin-bottom:16px;font-size:clamp(20px,2vw,28px);font-weight:900}.subpage-content p{color:var(--gray-700);margin-bottom:24px;font-size:15px;line-height:2}.subpage-content--wide{max-width:1120px}.case-index-head{margin-bottom:32px}.case-index-head h2{font-family:var(--font-jp);margin-bottom:12px;font-size:clamp(24px,3vw,36px);font-weight:900;line-height:1.4}.case-index-list{gap:16px;display:grid}.case-index-card{border:var(--border);color:inherit;padding:28px 32px;scroll-margin-top:72px;text-decoration:none;transition:all .2s;display:block}.case-index-card:hover{background:var(--paper)}.case-index-card--disabled,.case-index-card--disabled:hover{background:#f2f0ec59}.project-index-head-secondary{margin-top:56px}.case-index-meta,.case-summary-kicker,.case-fact-label,.case-section-label,.case-timeline-item span{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.case-index-meta{color:var(--red);margin-bottom:10px}.case-index-card h3{font-family:var(--font-jp);margin-bottom:10px;font-size:clamp(20px,2.4vw,28px);line-height:1.4}.case-index-card p{color:var(--gray-700);margin-bottom:14px}.case-index-link{font-family:var(--font-mono);font-size:11px}.case-hero{border-bottom:var(--border);grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);margin-top:56px;display:grid}.case-hero-main{border-right:var(--border);padding:clamp(48px,6vw,92px) clamp(24px,5vw,72px)}.case-hero-tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:20px;font-size:10px;display:inline-block}.case-hero h1{font-family:var(--font-jp);margin-bottom:10px;font-size:clamp(34px,5vw,62px);font-weight:900;line-height:1.25}.case-hero p{max-width:720px;color:var(--gray-700);font-size:15px;line-height:2}.case-hero-actions{margin-top:36px;display:flex}.case-hero-side{background:var(--paper);padding:clamp(32px,4vw,56px) clamp(24px,3vw,40px)}.case-fact-label{color:var(--gray-500);margin-bottom:20px}.case-fact-row{border-top:1px solid #1111111a;justify-content:space-between;gap:20px;padding:14px 0;display:flex}.case-fact-row strong{font-family:var(--font-jp);font-size:15px}.case-summary,.case-body,.case-timeline,.case-cta{padding:0 clamp(24px,4vw,72px)}.case-summary-grid{border-bottom:var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:clamp(40px,5vw,64px) 0;display:grid}.case-summary-kicker{color:var(--gray-500);margin-bottom:12px}.case-summary h2,.case-timeline h2,.case-cta h2,.case-section-content h2{font-family:var(--font-jp);font-size:clamp(24px,3vw,38px);font-weight:900;line-height:1.45}.case-summary-points{gap:18px;display:grid}.case-summary-point{border-top:1px solid var(--gray-100);grid-template-columns:52px 1fr;gap:16px;padding:18px 0;display:grid}.case-summary-point span{font-family:var(--font-serif);color:var(--gray-300);font-size:34px;line-height:1}.case-demo{border-bottom:var(--border);padding:clamp(40px,5vw,72px) clamp(24px,4vw,72px)}.case-demo-head{margin-bottom:24px}.case-demo-frame{aspect-ratio:4/3;border:var(--border);background:#0a0e1a;border-radius:4px;width:100%;position:relative;overflow:hidden}@media (width>=901px){.case-demo-frame{aspect-ratio:16/9}}.case-demo-frame iframe{pointer-events:none;border:0;width:100%;height:100%}.case-demo-guard{z-index:2;font-family:var(--font-mono);letter-spacing:.08em;color:#ffffffb3;cursor:pointer;background:#0a0e1a66;justify-content:center;align-items:center;font-size:13px;transition:opacity .3s;display:flex;position:absolute;inset:0}.case-demo-guard.is-hidden{opacity:0;pointer-events:none}.case-demo-bar{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.case-demo-hint{font-family:var(--font-mono);color:var(--gray-500);letter-spacing:.05em;font-size:11px}@media (width<=768px){.case-demo-hint{display:none}}.case-demo-bar .btn-brutal.case-demo-fs{border:var(--border);flex-shrink:0;padding:6px 14px;font-size:12px}.dt-fullscreen{flex-direction:column;height:calc(100vh - 56px);margin-top:56px;display:flex}.dt-breadcrumb{font-family:var(--font-mono);letter-spacing:.06em;color:var(--gray-500);border-bottom:var(--border);background:var(--white);align-items:center;gap:6px;padding:8px clamp(24px,4vw,72px);font-size:10px;display:flex}.dt-breadcrumb a{color:var(--gray-500);text-decoration:none}.dt-breadcrumb a:hover{color:var(--black)}.dt-fullscreen iframe{border:0;flex:1;width:100%}.dt-fullscreen-bar{border-top:var(--border);background:var(--white);align-items:center;gap:12px;padding:12px clamp(24px,4vw,72px);display:flex}.dt-fullscreen-bar .btn-brutal{border-left:var(--border)}.dt-keys{font-family:var(--font-mono);color:var(--gray-500);letter-spacing:.04em;margin-left:auto;font-size:10px}.dt-keys kbd{background:var(--gray-100);color:var(--gray-700);border-radius:3px;padding:1px 5px;font-size:10px}@media (width<=768px){.dt-keys{display:none}.dt-fullscreen-bar{flex-direction:column;gap:0;padding:0}.dt-fullscreen-bar .btn-brutal{border-left:none;border-top:var(--border);text-align:center;justify-content:center;width:100%}}.case-body{padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(20px,3vw,32px)}.case-section{border-bottom:1px solid var(--gray-100);grid-template-columns:160px minmax(0,1fr);gap:32px;padding:28px 0;display:grid}.case-section-label{color:var(--gray-500);padding-top:8px}.case-section-content p{color:var(--gray-700);max-width:780px;margin-top:14px;font-size:15px;line-height:2}.case-markdown{max-width:980px}.case-markdown>:first-child{margin-top:0}.case-markdown h2{border-top:1px solid var(--gray-100);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);grid-template-columns:160px minmax(0,1fr);gap:32px;margin-top:0;padding:28px 0 0;font-size:10px;display:grid}.case-markdown h3{font-family:var(--font-jp);letter-spacing:0;text-transform:none;color:var(--black);grid-column:2;margin:-2px 0 0;font-size:clamp(24px,3vw,38px);font-weight:900;line-height:1.45}.case-markdown p,.case-markdown ul,.case-markdown ol{color:var(--gray-700);grid-column:2;max-width:780px;margin-top:14px;font-size:15px;line-height:2}.case-markdown p:last-child{margin-bottom:0}.case-markdown em{font-size:13px;font-style:normal}.case-markdown a{color:var(--red);border-bottom:1px solid #d42b1e4d;text-decoration:none}.case-timeline{padding-top:clamp(24px,3vw,36px);padding-bottom:clamp(40px,5vw,64px)}.case-timeline-head{margin-bottom:24px}.case-timeline-grid{grid-template-columns:1fr;display:grid}.case-timeline-item{border-bottom:1px solid var(--gray-100);padding:20px 0}.case-timeline-item:last-child{border-bottom:none}.case-timeline-item span{color:var(--red);min-width:132px;margin-right:16px;display:inline-block}.case-timeline-item p,.case-cta p{color:var(--gray-700)}.case-source-note{margin-top:16px;font-size:13px}.case-source-note a{color:var(--red);border-bottom:1px solid #d42b1e4d;text-decoration:none}.case-cta{border-top:var(--border);justify-content:space-between;align-items:end;gap:24px;padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);display:flex}@media (width<=900px){.case-hero,.case-summary-grid,.case-section,.case-markdown h2{grid-template-columns:1fr}.case-markdown h3,.case-markdown p,.case-markdown ul,.case-markdown ol{grid-column:auto}.case-hero-main{border-right:none;border-bottom:var(--border)}.case-timeline-grid{grid-template-columns:1fr}.case-cta{flex-direction:column;align-items:flex-start}}.project-hero,.project-snapshot,.project-body,.project-focus,.project-phases,.project-questions,.project-cta{padding-left:clamp(24px,5vw,72px);padding-right:clamp(24px,5vw,72px)}.project-hero{border-bottom:var(--border);margin-top:56px;padding-top:clamp(56px,7vw,100px);padding-bottom:clamp(48px,6vw,80px)}.project-status,.project-section-kicker,.project-snapshot-label,.project-phase-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.project-status{border:1px solid var(--red);color:var(--red);margin-bottom:20px;padding:6px 10px;display:inline-flex}.project-hero h1{font-family:var(--font-jp);margin-bottom:10px;font-size:clamp(34px,5vw,60px);font-weight:900;line-height:1.25}.project-hero p,.project-cta p{max-width:760px;color:var(--gray-700);font-size:15px;line-height:2}.project-hero-actions,.project-cta-actions{margin-top:36px;display:flex}.project-snapshot,.project-focus,.project-phases,.project-questions,.project-cta{border-bottom:var(--border);padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px)}.project-section-head{margin-bottom:28px}.project-section-kicker{color:var(--gray-500);margin-bottom:8px}.project-section-head h2,.project-markdown h3{font-family:var(--font-jp);font-size:clamp(24px,3vw,38px);font-weight:900;line-height:1.45}.project-snapshot-grid,.project-list-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-snapshot-card,.project-list-card,.project-question-item{border:var(--border);padding:24px 28px}.project-snapshot-label{color:var(--gray-500);margin-bottom:12px}.project-snapshot-card p,.project-list-card p,.project-question-item p{color:var(--gray-700)}.project-list-card{grid-template-columns:44px 1fr;gap:14px;display:grid}.project-list-card span{font-family:var(--font-serif);color:var(--gray-300);font-size:32px;line-height:1}.project-body{padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(8px,1vw,12px)}.project-markdown{max-width:980px}.project-markdown>:first-child{margin-top:0}.project-markdown h2{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);border-top:1px solid var(--gray-100);margin-top:0;padding-top:28px;font-size:10px}.project-markdown h3{margin-top:8px}.project-markdown p{max-width:780px;color:var(--gray-700);margin-top:14px;font-size:15px;line-height:2}.project-phase-list{gap:18px;display:grid}.project-phase-item{border-top:1px solid var(--gray-100);grid-template-columns:120px 1fr;gap:20px;padding:18px 0;display:grid}.project-phase-label{color:var(--red);padding-top:6px}.project-phase-content h3{font-family:var(--font-jp);margin-bottom:6px;font-size:22px;line-height:1.4}.project-phase-content p{color:var(--gray-700)}.project-question-list{gap:12px;display:grid}@media (width<=900px){.project-snapshot-grid,.project-list-grid{grid-template-columns:1fr}.project-phase-item{grid-template-columns:1fr;gap:8px}.project-hero-actions,.project-cta-actions{flex-direction:column;align-items:flex-start}}.pdd-hero{border-bottom:var(--border);margin-top:56px;padding:clamp(40px,6vw,72px) clamp(24px,5vw,72px)}.pdd-hero-inner{max-width:680px}.pdd-badge{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--white);background:var(--red);margin-bottom:14px;padding:3px 10px;font-size:10px;display:inline-block}.pdd-hero h1{font-family:var(--font-jp);margin-bottom:6px;font-size:clamp(32px,5vw,52px);font-weight:900;line-height:1.25}.pdd-en{font-family:var(--font-serif);color:var(--gray-500);margin-bottom:18px;font-size:18px;font-style:italic}.pdd-hero p{color:var(--gray-700);max-width:600px;margin-bottom:24px}.pdd-hero-actions{gap:0;display:flex}.pdd-nav{border-bottom:var(--border);background:var(--white);z-index:50;display:flex;position:sticky;top:56px;overflow-x:auto}.pdd-nav-link{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gray-500);white-space:nowrap;border-right:1px solid var(--gray-100);padding:14px 20px;font-size:10px;text-decoration:none;transition:all .15s;display:inline-block}.pdd-nav-link:hover{background:var(--black);color:var(--white)}.pdd-bar{border-bottom:var(--border);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);align-items:center;gap:16px;padding:16px clamp(24px,5vw,72px);font-size:10px;font-weight:400;display:flex}.pdd-bar span{color:var(--black);font-size:14px;font-weight:700}.pdd-bar--alt{background:var(--paper)}.pdd-section{border-bottom:var(--border);padding:clamp(32px,5vw,56px) clamp(24px,5vw,72px);scroll-margin-top:100px}.pdd-section--alt{background:var(--paper)}.pdd-section h3{font-family:var(--font-jp);margin-top:28px;margin-bottom:10px;font-size:18px;font-weight:700}.pdd-section h3:first-child{margin-top:0}.pdd-section p{color:var(--gray-700);max-width:720px;margin-bottom:16px;line-height:1.9}.pdd-col{margin-bottom:8px}.pdd-stepper{gap:0;margin-bottom:32px;display:flex}.pdd-step{text-align:center;flex-direction:column;flex:1;align-items:center;display:flex}.pdd-step-indicator{align-items:center;width:100%;margin-bottom:10px;display:flex}.pdd-step-dot{background:var(--gray-300);z-index:1;border-radius:50%;flex-shrink:0;width:14px;height:14px}.pdd-step--active .pdd-step-dot{background:var(--red);box-shadow:0 0 0 4px var(--red-dim)}.pdd-step-line{background:var(--gray-100);flex:1;height:2px}.pdd-step-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--gray-500);font-size:10px}.pdd-step--active .pdd-step-label{color:var(--black);font-weight:600}.pdd-sim-screens{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px;display:grid}.pdd-sim-fig{border:1px solid var(--gray-100);background:var(--black);color:inherit;border-radius:4px;margin:0;text-decoration:none;transition:border-color .2s;display:block;overflow:hidden}.pdd-sim-fig:hover{border-color:var(--black)}.pdd-sim-fig img{width:100%;height:auto;display:block}.pdd-sim-fig figcaption{font-family:var(--font-mono);letter-spacing:.06em;color:var(--gray-500);background:var(--white);border-top:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:8px 12px;font-size:10px;display:flex}.pdd-sim-fig figcaption:after{content:"開く →";color:var(--gray-300);transition:color .2s}.pdd-sim-fig:hover figcaption:after{color:var(--red)}@media (width<=600px){.pdd-sim-screens{grid-template-columns:1fr}}.pdd-focus-list{max-width:720px;list-style:none}.pdd-focus-list li{color:var(--gray-700);border-bottom:1px solid #0000000f;padding:10px 0;font-size:14px}.pdd-focus-list li:before{content:"→ ";color:var(--red);font-family:var(--font-mono)}.pdd-findings-group{margin-bottom:28px}.pdd-finding-row{border-bottom:1px solid var(--gray-100);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.pdd-finding-row span{font-family:var(--font-mono);text-align:center;flex-shrink:0;width:24px;font-size:16px;font-weight:700;line-height:1.4}.pdd-finding--learning span{color:#16a34a}.pdd-finding--challenge span{color:#d97706}.pdd-finding--question span{color:var(--red);font-family:var(--font-serif);font-size:20px}.pdd-finding-row p{color:var(--gray-700);margin-bottom:0;font-size:14px}.pdd-scalability{background:var(--white);border:1px solid var(--gray-100);border-left:3px solid var(--red);padding:20px 24px;font-size:14px}.pdd-involve-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:32px;display:grid}.pdd-involve-card{border:var(--border);background:var(--white);padding:24px}.pdd-involve-who{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:8px;font-size:9px}.pdd-involve-card h3{margin-top:0;margin-bottom:8px;font-size:16px}.pdd-involve-card p{margin-bottom:10px;font-size:13px}.pdd-involve-examples{list-style:none}.pdd-involve-examples li{font-family:var(--font-mono);color:var(--gray-500);padding:3px 0;font-size:11px}.pdd-involve-examples li:before{content:"· "}.pdd-mid-cta{background:var(--paper);border:var(--border);justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.pdd-mid-cta p{margin-bottom:0;font-weight:500}.pdd-milestones{max-width:720px;margin-bottom:36px}.pdd-milestone{border-bottom:1px solid #0000000f;align-items:baseline;gap:16px;padding:12px 0;display:flex}.pdd-milestone-date{font-family:var(--font-mono);color:var(--gray-500);white-space:nowrap;flex-shrink:0;min-width:100px;font-size:11px;font-weight:600}.pdd-milestone p{color:var(--gray-700);margin-bottom:0;font-size:13px}.pdd-milestone-link{font-family:var(--font-mono);color:var(--red);letter-spacing:.04em;font-size:10px;text-decoration:none}.pdd-milestone-link:hover{text-decoration:underline}.pdd-info-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.pdd-info-grid h4{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);margin-bottom:12px;font-size:10px}.pdd-info-grid p{font-size:14px}.pdd-team-row{border-bottom:1px solid #0000000f;gap:12px;padding:6px 0;font-size:13px;display:flex}.pdd-team-role{font-family:var(--font-mono);color:var(--gray-500);letter-spacing:.06em;min-width:60px;font-size:10px}.pdd-info-link{font-family:var(--font-mono);color:var(--black);border-bottom:1px solid var(--gray-100);padding:6px 0;font-size:12px;text-decoration:none;transition:color .15s;display:block}.pdd-info-link:hover{color:var(--red)}.pdd-final-cta{background:var(--black);color:var(--white);padding:clamp(48px,6vw,80px) clamp(24px,5vw,72px)}.pdd-final-cta-inner{max-width:560px}.pdd-cta-kicker{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#fff6;margin-bottom:10px;font-size:10px}.pdd-final-cta h2{font-family:var(--font-jp);margin-bottom:12px;font-size:24px;font-weight:700}.pdd-final-cta p{color:#fff9;margin-bottom:24px}@media (width<=768px){.pdd-info-grid{grid-template-columns:1fr;gap:24px}.pdd-involve-grid{grid-template-columns:1fr}.pdd-mid-cta{text-align:center;flex-direction:column;gap:16px}.pdd-stepper{flex-wrap:wrap;gap:8px}.pdd-step-indicator{width:auto}.pdd-step-line{display:none}}
