.wave-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:35px;font-size:12px}
.wave-toolbar button{background:none;border:0;padding:10px 14px;border-bottom:1px solid transparent}
.wave-filters{display:flex;gap:5px}.wave-filters button[aria-pressed=true]{border-color:var(--ink)}
.wave-view{border:1px solid #304a4c55!important;border-radius:30px;margin-left:auto}
.wave-stage{position:relative;height:clamp(330px,42vw,570px);margin:20px -8% 0;perspective:1100px;overflow:hidden;touch-action:pan-y;cursor:grab;isolation:isolate}
.wave-stage.dragging{cursor:grabbing}.wave-stage:focus-visible{outline:1px solid var(--ink);outline-offset:5px}
.wave-card{position:absolute;left:50%;top:50%;width:clamp(210px,30vw,385px);aspect-ratio:1;padding:0;border:1px solid #fff8;border-radius:4px;background:#eee5d4;box-shadow:0 18px 35px #304a4c18;transition:transform .85s cubic-bezier(.22,1,.36,1),opacity .5s;will-change:transform;overflow:hidden}
.wave-card img{width:100%;height:100%;object-fit:contain;display:block;user-select:none;pointer-events:none}
.wave-card:not(.is-current) img{animation:wave-breathe 7s ease-in-out infinite alternate}
.wave-card:hover{outline:1px solid #304a4c70;outline-offset:5px}
.wave-caption{text-align:center;min-height:120px}.wave-caption>span{font-size:10px;letter-spacing:2px}.wave-caption h3{font:400 clamp(27px,3vw,40px) var(--serif);margin:12px 0 4px}.wave-caption .text-link{font-size:11px;padding:8px 0}
.wave-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin:24px 0}.wave-controls button{border:1px solid #304a4c44;background:none;border-radius:50%;width:43px;height:43px;font-size:20px}.wave-controls button:disabled{opacity:.25;cursor:default}.wave-count{font:14px var(--serif);letter-spacing:2px}
.wave-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:45px}.wave-list button{border:0;background:none;text-align:left;padding:0}.wave-list img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#eee5d4}.wave-list span{display:block;font:26px var(--serif);margin-top:16px}.wave-list small{display:block;font:10px 'Noto Serif JP';margin-bottom:8px}
.wave-gallery [hidden]{display:none!important}
.wave-list button{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){
 #works .wave-toolbar{align-items:center;gap:8px}
 #works .wave-toolbar button{min-height:44px;font-size:12px;padding:9px}
 #works .wave-filters{gap:0;flex-wrap:nowrap}
 #works .wave-view{margin-left:0}
 #works .wave-list span{font-size:18px}
 #works .wave-list small{font-size:12px}
}
.spatial-gallery .wave-stage{height:clamp(490px,65svh,760px);margin:8px -6% 0;perspective:none}
.works-orbit-intro{display:none;margin:22px 0 0;font-size:clamp(13px,1.25vw,18px);line-height:1.7;letter-spacing:.04em}
.spatial-gallery.is-all-orbit .works-orbit-intro{display:block}
.wave-gallery.is-list-mode .works-orbit-intro{display:none}
.spatial-gallery.is-all-orbit .wave-stage::before{content:'';position:absolute;left:50%;top:51%;width:88%;height:55%;border:1px solid #32c12735;border-radius:50%;transform:translate(-50%,-50%) rotate(-8deg);pointer-events:none}
.spatial-gallery .works-logo-guide{opacity:.075}
.wave-stage-hint{position:absolute;right:clamp(20px,5vw,78px);bottom:22px;z-index:50;font:600 11px/1 'Barlow',sans-serif;letter-spacing:.14em;color:var(--ink);pointer-events:none}
#works .spatial-gallery .wave-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 20px;min-height:0;margin-top:14px;text-align:left}
#works .spatial-gallery .wave-caption>span{grid-column:1}
#works .spatial-gallery .wave-caption h3{grid-column:1;margin:0;font-size:clamp(24px,2.5vw,36px)}
#works .spatial-gallery .wave-caption .text-link{grid-column:2;grid-row:1/3;align-self:center}
#works .spatial-gallery .wave-controls{margin:14px 0 28px}
#works .spatial-gallery .wave-controls button{width:44px;height:44px}
.spatial-gallery .wave-card{width:240px;max-width:none;aspect-ratio:auto;height:260px;border:1px solid #dbe2de;border-radius:3px;overflow:visible;transform-origin:center;transition:transform 1.15s cubic-bezier(.22,1,.36,1),opacity .65s ease;box-shadow:0 12px 30px #304a4c15}
.spatial-gallery .wave-card img{height:240px;animation:none!important}
.spatial-gallery .wave-card small{display:block;height:20px;font:10px/20px sans-serif;text-align:center;background:white;white-space:nowrap}
.spatial-gallery .wave-card{border:0;outline:none;transition:transform 1.15s cubic-bezier(.22,1,.36,1),opacity .65s ease,scale .8s cubic-bezier(.22,1,.36,1),box-shadow .8s ease}
.spatial-gallery .wave-card:hover{outline:none;z-index:41!important}
.spatial-gallery .wave-card.is-current{outline:none;box-shadow:0 20px 55px #304a4c25}
.spatial-gallery .wave-card.is-current:hover{outline:none}
.spatial-gallery .wave-card:focus-visible{outline:1px dashed #526963;outline-offset:8px}
.spatial-gallery .wave-filters button[aria-pressed=true]{background:#304a4c;color:white;border-radius:25px}
.spatial-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.orbit-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) translateY(5px);width:46%;text-align:center;font:400 clamp(20px,3vw,38px)/1.35 var(--serif);color:var(--ink);pointer-events:none;opacity:0;transition:opacity .45s ease,transform .65s ease;z-index:45;overflow-wrap:anywhere}
.orbit-title.is-visible{opacity:1;transform:translate(-50%,-50%)}
.works-logo-guide{position:absolute;left:50%;top:44.5%;transform:translate(-50%,-50%);width:var(--works-logo-size);height:var(--works-logo-size);object-fit:contain;opacity:.12;pointer-events:none}
.spatial-gallery .wave-card img{image-rendering:auto;backface-visibility:hidden}
.spatial-gallery .wave-card{box-shadow:0 5px 16px #304a4c24;cursor:pointer}
.spatial-gallery .wave-card small{font-size:12px;font-weight:500}
@media(max-width:700px){.spatial-gallery .wave-stage{height:540px}.spatial-gallery .wave-card{width:240px}.spatial-gallery .wave-stage::before{width:140%;height:45%}.wave-stage-hint{right:18px;bottom:14px}#works .spatial-gallery .wave-caption{margin-top:12px}#works .spatial-gallery .wave-caption h3{font-size:24px}}
@media(prefers-reduced-motion:reduce){.spatial-gallery .wave-card{transition:none}}
.wave-card,.wave-list img{background:#fff}
.wave-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}.wave-list span{font-size:21px}
@media(max-width:700px){.wave-toolbar{flex-wrap:wrap}.wave-filters{flex-wrap:wrap}.wave-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@keyframes wave-breathe{from{transform:translateY(-3px) scale(1.025)}to{transform:translateY(3px) scale(1.025)}}
@media(max-width:700px){.wave-toolbar{gap:5px;font-size:10px}.wave-toolbar button{padding:9px}.wave-card{width:60vw;max-width:300px}.wave-stage{height:360px;margin-inline:-9%}.wave-list{gap:15px}.wave-list span{font-size:20px}}
@media(prefers-reduced-motion:reduce){.wave-card{transition:none}.wave-card img{animation:none!important}}
