@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{--ink:#242522;--muted:#767770;--accent:#ba3828;--paper:#e8e5dd;--line:rgba(36,37,34,.17);font-family:Arial,'Helvetica Neue',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{border:0;font:inherit;background:none;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:7px}a{color:inherit;text-decoration:none}#stage{position:fixed;inset:0;background:radial-gradient(ellipse at 64% 38%,#f9f7ef 0,#e8e5dd 48%,#c8c9c4 100%)}#stage canvas{display:block;width:100%;height:100%;touch-action:none}.grain{position:fixed;inset:0;pointer-events:none;z-index:3;opacity:.10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.4' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
header{position:fixed;z-index:6;left:3.4vw;right:3.4vw;top:28px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;gap:15px;align-items:center;font-size:17px;letter-spacing:.16em}.brand-mark{font-family:Georgia,serif;font-style:italic;font-size:49px;letter-spacing:-.13em;line-height:1;margin-right:4px}.brand-sub{display:block;font-size:10px;letter-spacing:.1em;margin-top:7px}.header-right{display:flex;align-items:center;gap:54px}.edition{font-size:10px;line-height:1.7;letter-spacing:.09em}#menu-toggle{width:42px;height:44px;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:8px}#menu-toggle span{height:1px;background:var(--ink);width:25px;transition:transform .3s}.hero-copy{position:fixed;z-index:4;left:10vw;top:30%;pointer-events:none;transition:opacity .5s}.eyebrow{font-size:11px;letter-spacing:.12em;display:flex;align-items:center;gap:12px;margin:0 0 26px}.red-dot{display:block;width:6px;height:6px;border-radius:50%;background:var(--accent)}h1{font-family:'Noto Serif JP','Yu Mincho',serif;font-weight:400;font-size:clamp(76px,8.5vw,142px);line-height:1.4;letter-spacing:-.13em;margin:0 0 25px -.08em;white-space:nowrap}.title-dot{color:var(--accent);font-size:.8em;margin-left:.04em}#subtitle{font-family:'Noto Serif JP',serif;font-size:19px;line-height:2;letter-spacing:.12em;margin:0 0 31px}.english-caption{font-size:10px;letter-spacing:.15em}.side-note{position:fixed;right:3.6vw;top:38%;writing-mode:vertical-rl;font-family:'Noto Serif JP',serif;font-size:13px;letter-spacing:.36em;z-index:4}.object-caption{position:fixed;left:66%;bottom:20%;z-index:4;display:flex;flex-direction:column;font-size:10px;letter-spacing:.1em;line-height:2;color:#55584f;pointer-events:none}.caption-line{height:32px;width:1px;background:#747970;margin-bottom:14px}.object-caption span:last-child{font-size:9px;opacity:.6}#sculpture-hit{position:fixed;z-index:5;left:68%;top:49%;display:flex;gap:15px;align-items:center;white-space:nowrap}.hit-label{font-size:11px;letter-spacing:.13em;opacity:0;transform:translateX(10px);transition:.3s}.hit-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #686b604a;border-radius:50%;font-size:23px;background:#e8e5dd18;backdrop-filter:blur(3px);transition:.4s}#sculpture-hit:hover .hit-label{opacity:1;transform:none}#sculpture-hit:hover .hit-icon{background:var(--accent);border-color:var(--accent);color:white;transform:rotate(90deg)}.scene-selector{position:fixed;z-index:5;left:3.4vw;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:20px}.scene-selector button{position:relative;display:flex;align-items:center;gap:12px;opacity:.4;transition:opacity .3s;padding:6px 0;text-align:left}.scene-selector button:hover,.scene-selector button.selected{opacity:1}.scene-selector button span{font-size:10px}.scene-selector b{font-family:'Noto Serif JP',serif;font-weight:400;font-size:16px}.scene-selector button.selected:before{content:'';height:22px;width:2px;background:var(--accent);position:absolute;left:-12px}
footer{position:fixed;z-index:6;left:3.4vw;right:3.4vw;bottom:25px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;font-size:11px}.footer-left,.footer-right{display:flex;align-items:center;gap:28px}#inside-button{display:flex;align-items:center;gap:10px;font-size:16px}.inside-icon{display:grid;place-items:center;border:1px solid var(--ink);width:29px;height:29px;border-radius:50%;font-size:18px;transition:.5s}#inside-button:hover .inside-icon{transform:rotate(45deg);background:var(--ink);color:var(--paper)}#motion-button{font-size:10px;letter-spacing:.06em}#motion-button span{margin-left:4px;color:var(--muted)}.interaction-hint{font-size:11px;letter-spacing:.08em;color:var(--muted)}.interaction-hint span{margin:0 10px;color:#aaa}#sound-button{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.04em}.sound-bars{height:13px;display:flex;gap:2px;align-items:center}.sound-bars i{width:1px;height:3px;background:var(--ink);transition:height .3s}.sound-bars i:nth-child(2){height:9px}.sound-bars i:nth-child(3){height:6px}#sound-button[aria-pressed=true] i{animation:sound 1s infinite alternate}#sound-button[aria-pressed=true] i:nth-child(2){animation-delay:.3s}#sound-button[aria-pressed=true] i:nth-child(3){animation-delay:.6s}@keyframes sound{to{height:13px}}#full-button{font-size:24px;line-height:1}.contact-button{font-size:16px}#loading{position:fixed;inset:0;background:#171917;color:#e8e5dd;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 1s,visibility 1s}.loading-word{font-family:'Noto Serif JP',serif;font-size:44px;letter-spacing:.22em}.loading-line{width:80px;height:1px;background:#ffffff25;margin:35px 0 22px;overflow:hidden}.loading-line i{display:block;width:50%;height:100%;background:#d04d3c;animation:loading 1.5s ease-in-out infinite}#load-text{font-size:11px;letter-spacing:.18em}@keyframes loading{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}}body.ready #loading{opacity:0;visibility:hidden}body.ready header,body.ready footer{animation:enter 1.2s both}@keyframes enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}body.inside .hero-copy,body.inside .object-caption{opacity:0}body.inside #sculpture-hit{visibility:hidden}#inside-orbit{position:fixed;inset:0;z-index:5;pointer-events:none}#inside-orbit button{pointer-events:auto;position:absolute;padding:18px 26px;border:1px solid #bcbeb4;background:#eeeee695;backdrop-filter:blur(15px);font-family:'Noto Serif JP',serif;font-size:19px;transition:background .3s,transform .3s}#inside-orbit button:hover{background:#fff;transform:translateY(-5px)}#inside-orbit small{font:10px Arial;margin-right:24px;color:var(--accent)}#inside-orbit button:nth-child(1){left:13%;top:34%}#inside-orbit button:nth-child(2){right:12%;top:42%}#inside-orbit button:nth-child(3){left:21%;top:65%}
dialog{border:0;color:var(--ink);background:var(--paper);max-width:none;max-height:none;margin:0;padding:0}dialog::backdrop{background:#17191760;backdrop-filter:blur(12px)}dialog[open]{animation:panel-enter .65s cubic-bezier(.2,.8,.2,1)}@keyframes panel-enter{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}#menu{width:100%;height:100dvh;padding:8vh 10vw}.close-panel{position:absolute;right:3.4vw;top:28px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:28px;z-index:3}.panel-kicker{font-size:11px;letter-spacing:.18em;color:var(--muted)}#menu nav{margin-top:7vh;display:flex;flex-direction:column}#menu nav button{display:flex;align-items:baseline;text-align:left;font-size:clamp(34px,5.5vw,80px);font-weight:400;letter-spacing:-.04em;border-bottom:1px solid var(--line);padding:17px 0;transition:color .3s}#menu nav button:hover{color:var(--accent)}#menu nav small{font-size:11px;margin-right:35px;letter-spacing:0}#menu nav span{font-family:'Noto Serif JP',serif;font-size:14px;margin-left:auto;letter-spacing:.08em}.menu-bottom{font-size:10px;letter-spacing:.12em;margin-top:45px}#content-panel{position:fixed;inset:0 0 0 auto;width:min(920px,90vw);height:100dvh;overflow-y:auto}#panel-content{padding:10vh 7vw 7vh}.panel-title{font-size:clamp(45px,5.4vw,80px);line-height:1;letter-spacing:-.06em;font-weight:400;margin:45px 0 20px}.panel-jp{font-family:'Noto Serif JP',serif;font-size:16px;letter-spacing:.12em;color:var(--accent);margin-bottom:50px}.large-copy{font-family:'Noto Serif JP',serif;font-size:clamp(25px,3vw,37px);line-height:1.9;letter-spacing:.04em;margin-bottom:35px}.body-copy{font-size:16px;line-height:2.1;color:#62645c;max-width:540px}.panel-rule{height:1px;background:var(--line);margin:40px 0}.panel-meta{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.1em}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.work-card{padding:0;text-align:left}.work-image{display:block;width:100%;aspect-ratio:4/5;background:#d7d8cf;object-fit:cover;transition:filter .3s}.work-card:hover .work-image{filter:contrast(1.13)}.work-card small{display:block;font-size:10px;letter-spacing:.09em;margin-top:17px;color:var(--muted)}.work-card h3{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:400;margin:9px 0}.work-card p{font-size:12px;color:var(--muted)}.pill{border:1px solid var(--line);padding:15px 24px;margin-top:20px;font-size:14px}.pill:hover{background:var(--ink);color:var(--paper)}.credits{font-size:12px;line-height:1.8;color:var(--muted);margin-top:40px}.credits a{text-decoration:underline;text-underline-offset:3px}.contact-name{font-size:clamp(65px,9vw,120px);font-family:'Noto Serif JP',serif;margin:50px 0 30px}.contact-note{padding:22px;border-left:2px solid var(--accent);font-size:14px;line-height:2;background:#ffffff35}#fallback{position:fixed;left:48%;top:42%;z-index:5;font-size:14px;line-height:2}.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);z-index:200;background:var(--ink);color:white;padding:14px 24px;font-size:13px;border-radius:2px;white-space:nowrap}body.ink{--ink:#e6e3d8;--muted:#aaa79d;--line:#ece7dc30}body.ink .object-caption{color:#ddd}body.ink #sculpture-hit .hit-icon{background:#12171025;border-color:#ffffff50}body.ink dialog{--ink:#242522;--muted:#767770;--line:rgba(36,37,34,.17);color:var(--ink)}body.ink #inside-orbit button{color:#242522}body.ink #stage{background:#1a201f}
@media(min-width:1600px){.hero-copy{left:12vw}.object-caption{bottom:23%}}@media(max-width:900px){.hero-copy{left:9vw;top:30%}h1{font-size:90px}.header-right{gap:24px}.edition{display:none}.interaction-hint{display:none}.scene-selector{left:3vw}.hero-copy .eyebrow{font-size:10px}.object-caption{left:73%;bottom:22%}#sculpture-hit{left:70%}.footer-left,.footer-right{gap:17px}.side-note{right:4vw}.brand-sub{font-size:9px}}
@media(max-width:600px){header{top:22px;left:6vw;right:6vw}.brand-mark{font-size:39px}.brand{font-size:14px;gap:12px}.brand-sub{font-size:9px}.hero-copy{left:8vw;top:18%}.eyebrow{margin-bottom:11px}h1{font-size:70px;line-height:1.25;margin-bottom:16px}#subtitle{font-size:16px;line-height:1.85;margin-bottom:16px}.english-caption{font-size:10px;letter-spacing:.07em}.side-note{font-size:12px;right:6vw;top:25%}.scene-selector{left:8vw;top:auto;bottom:16%;transform:none;flex-direction:row;gap:25px}.scene-selector button{gap:8px}.scene-selector button.selected:before{left:0;bottom:-3px;width:100%;height:1px}.scene-selector b{font-size:18px}.object-caption{left:auto;right:8vw;bottom:17%;font-size:10px;line-height:1.8}.caption-line{height:20px;margin-bottom:9px}.object-caption span:last-child{font-size:9px}#sculpture-hit{top:53%;left:auto;right:14%}.hit-label{display:none}.hit-icon{width:38px;height:38px}.footer-left,.footer-right{gap:14px}footer{left:6vw;right:6vw;bottom:22px;padding-top:20px}#inside-button{font-size:15px}.inside-icon{width:27px;height:27px}#motion-button{display:none}#sound-button{font-size:10px;gap:5px}.contact-button{font-size:14px}#full-button{display:none}#inside-orbit button{padding:15px 18px;font-size:16px}#inside-orbit button:nth-child(1){left:8%;top:25%}#inside-orbit button:nth-child(2){right:8%;top:46%}#inside-orbit button:nth-child(3){left:8%;top:68%}#inside-orbit small{margin-right:12px}#menu{padding:100px 8vw 30px}#menu nav{margin-top:25px}#menu nav button{font-size:35px;flex-wrap:wrap;padding:22px 0}#menu nav small{margin-right:16px}#menu nav span{width:100%;margin:12px 0 0 30px;font-size:14px}#content-panel{width:100%}#panel-content{padding:90px 8vw 50px}.panel-title{font-size:54px;margin-top:35px}.panel-jp{margin-bottom:33px}.large-copy{font-size:25px}.body-copy{font-size:16px}.work-grid{grid-template-columns:1fr;gap:28px}.work-image{aspect-ratio:4/3}.work-card p{font-size:14px}.close-panel{right:6vw;top:22px}.panel-meta{font-size:10px}#fallback{left:10%;top:55%;font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
