:root{font-family:Arial,'Helvetica Neue','Noto Sans JP',sans-serif;color:#ecece8;background:#101112;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid #ddd;outline-offset:6px}a{color:inherit;text-decoration:none}canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.grain{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.58),transparent 65%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 25%)}header{position:fixed;top:40px;left:48px;right:48px;display:flex;justify-content:space-between;align-items:flex-start;z-index:5}.brand{font-size:20px;line-height:1.05;font-weight:700;letter-spacing:-.04em}.brand span{display:block;font-size:12px;font-weight:400;letter-spacing:.025em;margin-top:16px;color:#aaa}#indexButton{font-size:14px;letter-spacing:.1em;padding:4px 0}#indexButton span{margin-left:30px}main{position:absolute;inset:0;pointer-events:none}main button,nav{pointer-events:auto}.coordinate{position:absolute;top:27%;left:48px;font-size:12px;letter-spacing:.13em;display:flex;gap:35px;color:#aaa}section{position:absolute;left:10%;top:34%;width:450px}.eyebrow{font-size:12px;letter-spacing:.18em;color:#bdbdb7;margin:0 0 22px}h1{font-size:clamp(48px,5.6vw,86px);font-weight:400;line-height:1.25;letter-spacing:-.07em;margin:0 0 28px}h1 em{font-style:normal;color:#a6a6a2}h2{font-size:clamp(42px,5vw,78px);font-weight:400;letter-spacing:-.06em;line-height:1;margin:0 0 12px}.jp{font-size:16px;color:#aaa;letter-spacing:.12em;margin:0 0 35px}.lead{font-size:16px;line-height:1.95;color:#c2c2bc;max-width:345px;white-space:pre-line}.lineButton{margin-top:24px;border-top:1px solid #676763;padding:16px 0;width:255px;display:flex;justify-content:space-between;font-size:14px}.lineButton span{font-size:12px;color:#9e9e98;letter-spacing:.1em}footer{position:fixed;bottom:30px;left:48px;right:48px;display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.1em;color:#aaa;z-index:5}footer button{font-size:12px;padding:10px 0;letter-spacing:.1em}#hint{font-size:12px;letter-spacing:.03em}.navigator{position:fixed;right:48px;top:50%;display:flex;flex-direction:column;gap:16px;align-items:center;font-size:12px;color:#bbb}.navigator button{width:40px;height:40px;border:1px solid #555;border-radius:50%;font-size:20px}.navigator span{font-size:12px}#index{pointer-events:auto;position:absolute;inset:0;background:rgba(13,14,15,.97);padding:170px 10% 80px;overflow:auto;z-index:4}.indexHead{font-size:12px;letter-spacing:.16em;display:flex;justify-content:space-between;color:#999;margin-bottom:32px}nav{display:grid;grid-template-columns:1fr 1fr;column-gap:70px}nav button{border-top:1px solid #454546;display:flex;align-items:baseline;gap:24px;padding:18px 0;text-align:left;font-size:27px;letter-spacing:-.04em}nav button:hover{color:#aaa}nav small{font-size:12px;color:#888;letter-spacing:0}nav .label{margin-left:auto;font-size:12px;color:#999;letter-spacing:0}.indexNote{color:#888;font-size:14px;margin-top:35px}#fallback{position:fixed;right:30px;bottom:80px;max-width:250px;font-size:14px;color:#aaa}[hidden]{display:none!important}@media(max-width:700px){header{top:25px;left:24px;right:24px}.brand{font-size:17px}.brand span{font-size:12px}.coordinate{left:24px;top:25%;gap:24px}section{left:24px;top:33%;width:calc(100% - 80px)}h1{font-size:54px}h2{font-size:46px}.lead{font-size:16px;max-width:285px}.navigator{right:16px;top:53%}footer{left:24px;right:24px;bottom:15px}#hint{display:none}#index{padding:145px 24px 85px}nav{grid-template-columns:1fr}nav button{font-size:24px;padding:15px 0}.indexHead span{display:none}.lineButton{margin-top:18px;width:240px}}@media(max-height:700px){section{top:29%}h1{font-size:50px;margin-bottom:15px}.lead{line-height:1.65}.lineButton{margin-top:10px}.coordinate{top:23%}.jp{margin-bottom:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

:root{color:#f2f0eb;background:#101114}.grain{background:linear-gradient(90deg,rgba(5,6,8,.80),rgba(5,6,8,.25) 40%,transparent 74%),linear-gradient(0deg,rgba(0,0,0,.66),transparent 35%)}.brand{font-weight:500;letter-spacing:.035em;font-size:18px;line-height:1.14}.brand span{letter-spacing:.12em;font-size:12px;color:#b4aea2}.eyebrow{color:#b9b0a0;letter-spacing:.24em}.coordinate{color:#b7ad9c}.lineButton{border-color:#8a8070}#index{background:rgba(9,10,12,.97)}nav button{border-color:#343336}nav small{color:#a99a83}h1 em{color:#c5beb2}.navigator button{border-color:#867965}.lead{color:#cdc9c0}.indexNote{color:#b5afa3}

#intro{width:min(640px,75vw)}h1.manifesto{font-size:clamp(30px,3.8vw,58px);line-height:1.22;letter-spacing:-.035em;font-weight:400;margin-bottom:32px}#intro .lead{max-width:370px}.brand span{font-size:12px;letter-spacing:.03em}@media(max-width:700px){#intro{width:calc(100% - 70px)}h1.manifesto{font-size:clamp(24px,4.7vw,32px);line-height:1.35;letter-spacing:-.025em}.brand span{max-width:210px;line-height:1.5}}@media(max-height:700px){h1.manifesto{font-size:clamp(24px,3.3vw,42px);margin-bottom:22px}}

.brand{display:flex;align-items:flex-start;gap:14px}.brand .symbol{width:76px;height:76px;object-fit:contain;filter:invert(1);margin-top:-13px}.brand .brandText{display:block;font-size:18px;line-height:1.14;letter-spacing:.035em;font-weight:500;color:#f2f0eb;margin-top:0}.brand .brandTag{font-size:12px;letter-spacing:.03em;line-height:1.5;color:#b4aea2;margin-top:12px}@media(max-width:700px){.brand{gap:8px}.brand .symbol{width:55px;height:55px;margin-top:-8px}.brand .brandText{font-size:16px}.brand .brandTag{max-width:170px;font-size:12px}}

:root{background:#303235;color:#eee}.grain{background:linear-gradient(90deg,rgba(12,14,16,.79),rgba(12,14,16,.35) 42%,transparent 80%),linear-gradient(0deg,rgba(4,5,6,.58),transparent 32%)}.eyebrow,.coordinate,.brand .brandTag{color:#bec3c7}h1 em,.lead{color:#d0d3d5}.lineButton,.navigator button{border-color:#9a9fa3}nav small{color:#aeb5ba}#index{background:rgba(28,30,33,.98)}

:root{color:#eee;background:#333}canvas{filter:grayscale(1)}.grain{background:linear-gradient(90deg,rgba(13,13,13,.79),rgba(13,13,13,.35) 42%,transparent 80%),linear-gradient(0deg,rgba(5,5,5,.58),transparent 32%)}.eyebrow,.coordinate,.brand .brandTag{color:#c2c2c2}.brand .brandText{color:#eee}.lead{color:#d1d1d1}.lineButton,.navigator button{border-color:#9e9e9e}nav small{color:#b4b4b4}#index{background:rgba(30,30,30,.98)}.indexNote{color:#b2b2b2}h1 em{color:#c4c4c4}

.verticalNav{position:fixed;right:115px;bottom:100px;display:flex;flex-direction:column;gap:13px;align-items:center;color:#ccc}.verticalNav button{font-size:14px;border-top:1px solid #737373;padding:12px 10px;min-width:110px}.verticalNav span{font-size:12px;letter-spacing:.12em;color:#999}.verticalNav button:hover{color:white}@media(max-width:700px){.verticalNav{right:20px;bottom:75px;gap:7px}.verticalNav button{font-size:12px;min-width:85px;padding:8px}.verticalNav span{font-size:12px}}

.zoomNav{position:fixed;left:48px;bottom:95px;display:flex;gap:22px}.zoomNav button{font-size:14px;color:#bbb;border-top:1px solid #666;padding:12px 0}.zoomNav button:hover{color:#fff}@media(max-width:700px){.zoomNav{left:24px;bottom:75px;gap:18px}.zoomNav button{font-size:12px}}

.locations{font-size:14px;letter-spacing:.035em;color:#bbb}.indexLocations{font-size:14px;line-height:2;color:#bbb;letter-spacing:.04em}@media(max-width:700px){footer{flex-wrap:wrap;gap:2px}footer .locations{order:3;width:100%;text-align:center;font-size:12px;margin-bottom:0}.zoomNav,.verticalNav{bottom:95px}}

.groupCompanies{margin-top:36px;padding-top:24px;border-top:1px solid #444}.groupCompanies .eyebrow{margin-bottom:14px}.groupCompanies>p:not(.eyebrow){font-size:18px;color:#ddd;line-height:1.6;margin:8px 0}

.businessList{display:grid;grid-template-columns:1fr 1fr;gap:0 60px}.businessList button{display:flex;gap:20px;text-align:left;padding:20px 0;border-top:1px solid #555}.businessList button>span{font-size:12px;color:#999;padding-top:5px}.businessList h3{font-size:24px;line-height:1.2;font-weight:400;margin:0 0 10px;letter-spacing:-.025em}.businessList p{font-size:14px;line-height:1.7;color:#aaa;margin:0}.explorations{margin:35px 0 45px}.explorations .eyebrow{margin-bottom:12px}.explorations>p:last-child{font-size:16px;color:#bbb}.fieldsHead{margin-top:40px}.groupCompanies small{font-size:14px;color:#aaa}@media(max-width:700px){.businessList{grid-template-columns:1fr}.businessList h3{font-size:22px}}

/* Compact spatial composition, with a clear touch-control dock. */
@media(max-width:700px){
 body{height:100svh;height:100dvh;overscroll-behavior:none}
 header{top:max(20px,env(safe-area-inset-top));left:20px;right:20px;align-items:flex-start}
 .brand{gap:6px}.brand .symbol{width:48px;height:48px;margin-top:-6px}
 .brand .brandText{font-size:15px;line-height:1.16}.brand .brandTag{display:none}
 #indexButton{min-height:44px;font-size:14px;padding:8px 0}#indexButton span{margin-left:12px}
 .grain{background:linear-gradient(0deg,rgba(8,8,8,.9),rgba(8,8,8,.52) 38%,transparent 74%)}
 .coordinate{top:105px;left:22px;gap:18px;font-size:12px}
 section,#intro{top:auto;bottom:calc(190px + env(safe-area-inset-bottom));left:22px;width:calc(100% - 86px);max-height:calc(100dvh - 325px);overflow-y:auto;pointer-events:auto;scrollbar-width:none}
 section::-webkit-scrollbar{display:none}
 .eyebrow{font-size:12px;letter-spacing:.16em;margin-bottom:16px}
 h1.manifesto{font-size:clamp(23px,6vw,38px);line-height:1.24;letter-spacing:-.035em;margin-bottom:20px}
 h2{font-size:clamp(32px,9vw,56px);line-height:1.04;overflow-wrap:anywhere;margin-bottom:12px}
 .jp{font-size:14px;line-height:1.5;letter-spacing:.03em;margin-bottom:16px}
 .lead,#intro .lead{font-size:16px;line-height:1.65;max-width:100%;margin:0}
 .lineButton{width:100%;min-height:48px;margin-top:20px;padding:14px 0;font-size:14px}
 .navigator{right:14px;top:auto;bottom:calc(220px + env(safe-area-inset-bottom));gap:12px}
 .navigator button{width:44px;height:44px;background:rgba(20,20,20,.35)}
 .zoomNav{left:22px;bottom:calc(105px + env(safe-area-inset-bottom));gap:16px}
 .zoomNav button{font-size:14px;min-height:44px;padding:12px 0}
 .verticalNav{right:20px;bottom:calc(105px + env(safe-area-inset-bottom));display:grid;grid-template-columns:44px 44px;gap:0 8px}
 .verticalNav span{grid-column:1 / -1;grid-row:1;text-align:center;margin-bottom:5px}
 .verticalNav button{min-width:44px;min-height:44px;padding:0;font-size:0;border:1px solid #777;border-radius:50%;background:rgba(20,20,20,.35)}
 #upLevel::after{content:'↑';font-size:20px}#downLevel::after{content:'↓';font-size:20px}
 footer{left:22px;right:22px;bottom:calc(14px + env(safe-area-inset-bottom));gap:4px 12px}
 footer button{font-size:12px;min-height:44px}footer .locations{font-size:12px;line-height:1.6;letter-spacing:0;text-align:left}
 #index{position:fixed;padding:110px 22px calc(40px + env(safe-area-inset-bottom));overscroll-behavior:contain}
 body.menu-open .zoomNav,body.menu-open .verticalNav,body.menu-open .navigator,body.menu-open footer{visibility:hidden}
 body.menu-open header{background:#1e1e1e;top:0;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:18px;left:0;right:0;padding-left:20px;padding-right:20px}
 .indexHead{margin-bottom:24px}.businessList button{gap:16px}.businessList h3{font-size:22px}.businessList p{font-size:16px;line-height:1.6}
 nav button{font-size:22px;gap:14px;flex-wrap:wrap;min-height:58px}nav .label{font-size:14px;line-height:1.5;text-align:right;max-width:48%}
 .groupCompanies>p:not(.eyebrow){font-size:17px}.indexLocations{font-size:14px}
 #fallback{left:22px;right:22px;bottom:170px;max-width:none}
}
@media(max-width:700px) and (max-height:650px){
 section,#intro{bottom:calc(165px + env(safe-area-inset-bottom));max-height:calc(100dvh - 285px)}
 .coordinate{top:90px}.eyebrow{margin-bottom:10px}h1.manifesto{font-size:23px;margin-bottom:14px}
 .lineButton{margin-top:12px}.navigator{bottom:180px}.zoomNav,.verticalNav{bottom:calc(85px + env(safe-area-inset-bottom))}
}
@media(max-height:500px) and (orientation:landscape){
 header{top:14px;left:20px;right:20px}.brand .brandTag{display:none}.coordinate{top:85px;left:22px}
 section,#intro{top:120px;bottom:80px;left:22px;width:55%;max-height:calc(100dvh - 200px);overflow:auto;pointer-events:auto}
 h1.manifesto{font-size:25px;margin-bottom:12px}h2{font-size:32px}.eyebrow{margin-bottom:8px}.jp{margin-bottom:10px}.lead{line-height:1.5}.lineButton{margin-top:10px}
 .zoomNav{left:auto;right:110px;bottom:65px}.verticalNav{right:20px;bottom:65px}.navigator{right:20px;top:90px;bottom:auto;gap:8px}
 footer{bottom:10px;left:22px;right:22px}.locations{font-size:12px}
 #index{padding:100px 22px 40px}body.menu-open .zoomNav,body.menu-open .verticalNav,body.menu-open .navigator,body.menu-open footer{visibility:hidden}
}
@media(max-width:380px){.zoomNav{gap:12px}.zoomNav button{font-size:12px}.verticalNav{right:16px;grid-template-columns:44px 44px;gap:0 6px}section,#intro{width:calc(100% - 80px)}}

/* Mobile: the space, the statement and the index. */
@media(max-width:700px), (max-height:500px) and (pointer:coarse){
 .zoomNav,.verticalNav,.navigator,.coordinate,#home,#sound,#hint{display:none!important}
 header{left:22px;right:22px;top:max(20px,env(safe-area-inset-top))}
 .brand .brandTag{display:none}
 section,#intro{left:24px;top:auto;bottom:calc(88px + env(safe-area-inset-bottom));width:calc(100% - 48px);max-height:calc(100dvh - 215px);overflow-y:auto;pointer-events:none}
 section button{pointer-events:auto}
 #detail{pointer-events:auto}
 #intro>.eyebrow{display:none}
 h1.manifesto{font-size:clamp(26px,7.1vw,44px);line-height:1.2;margin-bottom:22px}
 h2{font-size:clamp(34px,10vw,58px);line-height:1.08;overflow-wrap:normal}
 .lead,#intro .lead{font-size:16px;line-height:1.65;max-width:350px}
 .lineButton{width:100%;max-width:350px;min-height:52px;margin-top:24px}
 footer{left:24px;right:24px;bottom:calc(22px + env(safe-area-inset-bottom));display:block;pointer-events:none}
 footer .locations{display:block;width:100%;font-size:12px;line-height:1.6;letter-spacing:.01em;text-align:left}
 .grain{background:linear-gradient(0deg,rgba(8,8,8,.91),rgba(8,8,8,.57) 34%,rgba(8,8,8,.10) 63%,transparent 80%)}
 #fallback{left:24px;right:24px;bottom:70px}
 #index{padding-top:110px}
}
@media(max-height:500px) and (pointer:coarse){
 section,#intro{left:24px;bottom:58px;width:62%;max-height:calc(100dvh - 150px)}
 h1.manifesto{font-size:26px;margin-bottom:12px}.lead{line-height:1.5}.lineButton{margin-top:12px}
 footer{bottom:12px}
}
