:root{--ink:#29332f;--muted:#68726c;--line:#dde3dd;--paper:#fff;--sage:#758574;--serif:Georgia,"Times New Roman","Yu Mincho",serif;--sans:"Segoe UI","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--gutter:clamp(24px,6.5vw,112px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:14px;line-height:1.9;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #50664f;outline-offset:6px}img{display:block;width:100%;height:100%;object-fit:cover}button img{pointer-events:none}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:400}::selection{background:#e0e7de}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:16px;padding:10px 20px;background:white;z-index:100}.skip-link:focus{top:10px}.site-header{position:fixed;z-index:20;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:24px var(--gutter);background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:padding .3s,border-color .3s}.site-header.scrolled{padding-top:15px;padding-bottom:15px;border-color:var(--line)}.wordmark{font:32px/1 var(--serif);letter-spacing:-1.5px}.brand-dot{color:var(--sage)}nav{display:flex;gap:34px}nav a{position:relative;padding:8px 0;font-size:10px;font-weight:500;letter-spacing:1.9px}nav a::after{position:absolute;content:"";left:0;right:2px;bottom:2px;height:1px;background:var(--sage);transform:scaleX(0);transition:transform .25s}nav a:hover::after,nav a[aria-current]::after{transform:scaleX(1)}.menu-toggle{display:none}.hero{height:100svh;min-height:650px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;background:#f4f6f2;overflow:hidden}.hero-image{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 49% 33%,#fff 0%,#ffffffd9 22%,transparent 64%),linear-gradient(115deg,#e9eee8 0%,#f7f8f4 35%,#eceff2 75%,#e3e9ed 100%)}.hero-image picture{display:block;width:100%;height:100%}.hero-image img{object-position:var(--hero-position,50% 40%)}.hero:after{content:"";position:absolute;inset:55% 0 0;z-index:-1;pointer-events:none;background:linear-gradient(transparent,rgba(255,255,255,.55))}.hero-note{text-align:center;padding-bottom:65px;color:#647168}.hero-note .eyebrow{letter-spacing:5px;font-size:9px}.hero-note p{font-family:var(--serif);font-size:19px;letter-spacing:4px;margin:13px 0 9px}.small-note{font-size:10px;letter-spacing:2px}.hero-signature{position:absolute;bottom:96px;text-align:center}.hero-signature .eyebrow{font-size:9px;letter-spacing:4.5px;margin-bottom:13px}.hero h1{font:clamp(64px,7vw,96px)/1 var(--serif);letter-spacing:-5px}.scroll-cue{position:absolute;bottom:0;left:50%;transform:translateX(-50%);text-align:center}.scroll-cue span:first-child{font-size:8px;letter-spacing:2.2px}.scroll-line{display:block;width:1px;height:35px;background:#88958a;margin:12px auto 0;transition:height .3s}.scroll-cue:hover .scroll-line{height:43px}.hero-edition{position:absolute;bottom:35px;right:var(--gutter);font-size:8px;letter-spacing:2px;writing-mode:vertical-rl}.eyebrow{font-size:10px;letter-spacing:2.6px;font-weight:500;line-height:1.6}.section{max-width:1600px;margin:auto;padding:112px var(--gutter)}.section-number{color:#8a968a;margin-right:20px}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:47px}.section-note{font-size:10px;letter-spacing:2px;color:var(--muted)}.release-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,9vw,150px);align-items:center}.placeholder{position:relative;background:linear-gradient(140deg,#edf0e9,#f7f8f5 55%,#e8ede6);display:flex;align-items:center;justify-content:center;overflow:hidden}.tone-blue{background:linear-gradient(130deg,#ebeff1,#f6f8f8 55%,#e5ebed)}.tone-warm{background:linear-gradient(120deg,#f1eee9,#f8f7f4 55%,#eae7e1)}.placeholder-label{font-size:9px;letter-spacing:2px;color:#737e74;text-align:center;padding:20px}.placeholder-symbol{font-size:23px;font-weight:200;color:#9da99a}.release-art{aspect-ratio:1}.release-art .placeholder-label{position:absolute;bottom:22px}.release-copy>.eyebrow{color:var(--sage);margin-bottom:23px}.release-copy h2{font-family:var(--serif);font-size:clamp(31px,3vw,45px);line-height:1.7;letter-spacing:3px;white-space:pre-line}.release-copy>p:not(.eyebrow){color:var(--muted);font-size:12px;line-height:2.3;letter-spacing:1px;margin:24px 0 22px;white-space:pre-line}.status{display:inline-flex;gap:9px;align-items:center;font-size:10px;letter-spacing:1.3px;color:#626e62}.status>span{width:4px;height:4px;background:#8a9a84;border-radius:50%}.text-link{display:inline-flex;align-items:center;gap:45px;padding:10px 0;border-bottom:1px solid #aab5a6;font-size:11px;letter-spacing:1px}.text-link span{font-size:17px;transition:transform .2s}.text-link:hover span{transform:translate(2px,-2px)}.release-copy>.text-link{margin-top:30px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:46px}.section-heading h2{font:clamp(54px,5.2vw,78px)/1.1 var(--serif);letter-spacing:-2px;margin-top:17px}.heading-dot{color:#899784}.section-heading>p{font-size:12px;color:var(--muted);line-height:2.2;letter-spacing:1px;padding-bottom:4px}.music{border-top:1px solid var(--line)}.music-player{min-height:370px;background:#f0f3ed;position:relative;border-radius:3px;overflow:hidden}.music-empty{text-align:center;padding:43px 20px 62px}.music-mark{display:block;font:43px var(--serif);color:#7e8f78;margin-bottom:13px}.music-empty .eyebrow{font-size:9px;letter-spacing:2.5px}.music-empty h3{font:23px var(--serif);letter-spacing:2px;margin:21px 0 12px}.music-empty>p:not(.eyebrow){font-size:11px;color:var(--muted);letter-spacing:1px;margin-bottom:22px}.player-label{position:absolute;bottom:19px;left:25px;font-size:8px;letter-spacing:2px;color:#647260}.music-player iframe{width:100%;height:420px;display:block;border:0}.service-note{font-size:10px;color:var(--muted);margin-top:17px;text-align:right;letter-spacing:.7px}.videos{padding-top:24px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.video-visual{aspect-ratio:16/9;width:100%;border:0;padding:0}.video-visual img{transition:transform .6s}.video-visual:is(button):hover img{transform:scale(1.035)}.play-circle{position:absolute;display:grid;place-items:center;width:57px;height:57px;border:1px solid #fff9;border-radius:50%;color:white;background:#25302885;backdrop-filter:blur(6px);font-size:20px;padding-left:4px}.card-caption{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:16px}.card-caption h3{font-size:12px;letter-spacing:.8px}.card-caption>span{font-size:9px;color:var(--muted);letter-spacing:1px;flex-shrink:0}.gallery{background:#f9faf7;max-width:none}.gallery>.section-heading,.gallery-grid{max-width:1376px;margin-left:auto;margin-right:auto}.gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;align-items:start}.gallery-item:nth-child(2){padding-top:56px}.gallery-visual{aspect-ratio:3/4;width:100%;padding:0;border:0}.gallery-item:nth-child(2) .gallery-visual{aspect-ratio:4/5}.gallery-visual img{transition:transform .6s}.gallery-visual:is(button):hover img{transform:scale(1.035)}.gallery-item figcaption{font-size:10px;color:var(--muted);margin-top:13px;letter-spacing:1px}.works-list{border-top:1px solid var(--line)}.work-row{display:grid;grid-template-columns:45px 1fr 1fr 90px;align-items:center;gap:25px;padding:32px 0;border-bottom:1px solid var(--line)}.work-number{font:12px var(--serif);color:#84917e}.work-row h3{font:30px var(--serif)}.work-row h3 span{display:block;font:9px var(--sans);letter-spacing:2px;color:var(--muted);margin-top:8px}.work-row>p{font-size:11px;letter-spacing:.6px;color:var(--muted)}.work-status{font-size:10px;color:var(--muted);text-align:right;letter-spacing:1px}.work-row .text-link{font-size:10px;gap:15px}.site-footer{margin:24px var(--gutter) 0;padding:42px 0 24px;border-top:1px solid var(--line)}.footer-top,.footer-bottom{display:flex;justify-content:space-between;align-items:center}.footer-brand{font:40px var(--serif);letter-spacing:-1px}.back-top{font-size:9px;letter-spacing:1.4px;border:0;gap:25px}.footer-bottom{margin-top:53px;color:#737d73;font-size:9px;letter-spacing:1.2px}.footer-bottom small{font-size:9px;letter-spacing:.5px}.reveal{transition:opacity .75s ease,transform .75s ease}.reveal.waiting{opacity:0;transform:translateY(18px)}dialog{width:min(1050px,94vw);max-height:92svh;border:1px solid var(--line);padding:24px;background:#fff;color:var(--ink)}dialog::backdrop{background:#152019ba;backdrop-filter:blur(7px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:20px}.dialog-header h2{font-size:14px}.dialog-header button{border:0;background:transparent;padding:8px 4px;font-size:10px;letter-spacing:1px;white-space:nowrap}.dialog-header button span{margin-left:12px;font-size:24px;vertical-align:middle}#dialog-content iframe{display:block;width:100%;aspect-ratio:16/9;border:0}#dialog-content img{width:100%;height:auto;max-height:68svh;object-fit:contain}#dialog-caption{font-size:11px;color:var(--muted);margin-top:10px}.noscript-note{padding:20px var(--gutter);font-size:12px;border-top:1px solid var(--line)}
@media(min-width:1600px){.hero h1{font-size:96px}}
@media(max-width:800px){nav{gap:22px}.site-header{padding-top:22px;padding-bottom:22px}.section{padding-top:80px;padding-bottom:80px}.release-layout{gap:40px}.section-heading h2{font-size:60px}.work-row{grid-template-columns:30px 1fr 1fr 65px;gap:14px}.work-row h3{font-size:25px}.hero{min-height:620px}}
@media(max-width:600px){html{scroll-padding-top:85px}.site-header{padding:23px 24px}.wordmark{font-size:29px}.menu-toggle{display:flex;align-items:center;gap:13px;padding:9px 0 9px 12px;border:0;background:none;min-height:44px}.menu-label{font-size:9px;letter-spacing:1.8px}.menu-lines{position:relative;width:20px;height:10px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);transition:transform .25s}.menu-toggle[aria-expanded=true] .menu-lines{transform:rotate(-45deg);border-bottom:0;height:1px}.menu-toggle[aria-expanded=true] .menu-lines::after{content:"";position:absolute;inset:-1px 0 0;border-top:1px solid var(--ink);transform:rotate(90deg)}nav{display:flex;position:absolute;left:0;right:0;top:100%;background:#fffffff7;backdrop-filter:blur(18px);padding:15px 28px 28px;flex-direction:column;gap:5px;border-bottom:1px solid var(--line)}.js nav:not(.open){display:none}nav a{padding:12px 0;font-size:11px;letter-spacing:2.5px}nav a::after{right:auto;width:26px;bottom:8px}.hero{min-height:580px}.hero-image img{object-position:var(--hero-mobile-position,50% 30%)}.hero-note{padding-bottom:86px}.hero-note p{font-size:16px;letter-spacing:2.5px}.hero-note .eyebrow{font-size:8px}.small-note{font-size:9px}.hero-signature{bottom:109px}.hero-signature .eyebrow{font-size:8px;letter-spacing:3px}.hero h1{font-size:64px;letter-spacing:-2px}.hero-edition{bottom:28px;right:23px;font-size:7px}.section{padding:68px 24px}.section-top{margin-bottom:27px}.section-number{margin-right:12px}.section-note{font-size:8px;letter-spacing:1px}.eyebrow{font-size:9px;letter-spacing:2px}.release-layout{grid-template-columns:1fr;gap:35px}.release-art{max-width:100%}.release-copy{padding:0 4px}.release-copy>.eyebrow{margin-bottom:14px}.release-copy h2{font-size:33px;line-height:1.6;letter-spacing:2px}.release-copy>p:not(.eyebrow){font-size:12px;margin-top:20px}.release-copy>.text-link{margin-top:21px}.section-heading{display:block;margin-bottom:31px}.section-heading h2{font-size:58px;margin-top:12px}.section-heading>p{margin-top:23px;font-size:11px}.music-player{min-height:345px}.music-empty{padding-top:36px}.music-empty h3{font-size:19px;letter-spacing:1px}.music-player iframe{height:420px}.service-note{text-align:left;line-height:2;font-size:9px}.videos{padding-top:12px}.video-grid{grid-template-columns:1fr;gap:29px}.card-caption{margin-top:11px}.gallery-grid{grid-template-columns:1fr 1fr;gap:18px}.gallery-item:nth-child(2){padding-top:34px}.gallery-item:nth-child(3){grid-column:1/-1;width:65%;margin:8px auto 0}.gallery-item:nth-child(3) .gallery-visual{aspect-ratio:4/5}.placeholder-label{font-size:8px;letter-spacing:1.3px;padding:10px}.gallery-item figcaption{font-size:9px;margin-top:10px}.work-row{grid-template-columns:22px 1fr 65px;gap:14px;padding:25px 0}.work-row h3{font-size:28px}.work-row>p{grid-column:2;grid-row:2;font-size:10px}.work-status,.work-row>.text-link{grid-column:3;grid-row:1/3}.work-row>.text-link{gap:9px;justify-self:end}.site-footer{margin:5px 24px 0;padding-top:30px}.footer-brand{font-size:35px}.footer-bottom{margin-top:35px;gap:20px;font-size:7px;letter-spacing:.6px}.footer-bottom small{font-size:8px}.back-top{font-size:8px;gap:16px}dialog{padding:15px}.dialog-header{margin-bottom:12px}.dialog-header h2{font-size:12px}.js:not(.nav-ready) nav{display:none}}
/* v0.1.1: preserve the photograph's proportions, light and original colors. */
.hero-image img{opacity:0;transition:opacity .9s ease}
.hero-image.image-loaded img{opacity:1}
.hero.has-image::after{inset:78% 0 0;background:linear-gradient(transparent,rgba(255,255,255,.28))}
.hero.has-image .hero-signature{color:#29332f;text-shadow:0 1px 12px rgba(255,255,255,.3)}
.collection-empty{grid-column:1/-1;padding:35px 0;color:var(--muted);font-size:11px;letter-spacing:1px}
/* v0.1.2: Spotify is the focus; all additions are scoped to MUSIC. */
#music .music-playlist-heading{margin-bottom:24px}
#music .music-playlist-heading .eyebrow{color:var(--muted);font-size:9px;letter-spacing:2px}
#music .music-playlist-heading h3{margin-top:8px;font:30px/1.5 var(--serif);letter-spacing:.2px;overflow-wrap:anywhere}
#music .music-player{min-height:560px;border-radius:12px;background:#f1f4f5}
#music .music-player iframe{display:block;width:100%;height:560px;border:0;border-radius:12px}
#music .music-empty{min-height:560px;display:flex;flex-direction:column;align-items:center;justify-content:center}
#music .music-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:24px}
#music .music-links .text-link{min-height:44px;gap:25px;max-width:100%;overflow-wrap:anywhere}
#music .service-note{text-align:left;font-size:11px;line-height:2;letter-spacing:.3px;margin-top:20px;color:var(--muted)}
@media(max-width:600px){#music .music-playlist-heading h3{font-size:25px}#music .music-links{align-items:flex-start;flex-direction:column;gap:9px}#music .service-note{font-size:10px}}
/* v0.1.3: thumbnail-first, inline video playback. All rules stay in VIDEOS. */
#videos .video-grid{row-gap:40px}
#videos .video-card{min-width:0}
#videos .video-visual{position:relative;aspect-ratio:16/9;overflow:hidden;background-color:#eef1ee}
#videos .video-trigger{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;background:none;overflow:hidden}
#videos .video-trigger:focus-visible{outline:2px solid #50664f;outline-offset:-5px}
#videos .video-visual iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:#111}
#videos .video-trigger:hover img{transform:scale(1.025)}
#videos .play-circle{width:52px;height:52px;font-size:19px;background:#25302870;transition:background .2s ease}
#videos .video-trigger:hover .play-circle{background:#253028aa}
#videos .card-caption{align-items:flex-start;gap:16px;margin-top:17px}
#videos .card-caption h3{font-size:13px;line-height:1.8;overflow-wrap:anywhere}
#videos .card-caption>span{font-size:8px;line-height:2.8}
#videos .video-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-top:3px}
#videos .video-watch-link,#videos .video-stop{display:inline-flex;align-items:center;gap:17px;min-height:44px;font-size:10px;letter-spacing:.6px}
#videos .video-watch-link{color:var(--muted)}
#videos .video-watch-link:hover{text-decoration:underline;text-underline-offset:5px}
#videos .video-stop{padding:0;border:0;background:none;color:var(--muted);text-decoration:underline;text-underline-offset:5px}
@media(max-width:600px){#videos .video-grid{row-gap:27px}#videos .card-caption h3{font-size:12px}#videos .card-caption>span{font-size:7px;letter-spacing:.6px}#videos .card-caption{gap:10px}}
/* v0.1.4: a quiet disclosure control beneath the unchanged video grid. */
#videos .video-toggle-wrap{display:flex;justify-content:center;margin-top:36px}
#videos .video-toggle{min-width:180px;min-height:48px;padding:12px 36px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:11px;letter-spacing:1.5px;transition:background .2s,border-color .2s}
#videos .video-toggle:hover{background:#f7f9f6;border-color:#aab5a6}
/* v0.1.5: natural-ratio gallery, lightweight controls and an image-only lightbox. */
#gallery .gallery-grid{--gallery-columns:3;grid-template-columns:repeat(var(--gallery-columns),minmax(0,1fr));grid-auto-rows:1px;column-gap:26px;row-gap:0;align-items:start}
#gallery .collection-empty{grid-column:1/-1;grid-row:span 100}
#gallery .gallery-item{padding:0;margin:0;width:auto;min-width:0}
#gallery .gallery-visual{display:block;position:relative;width:100%;height:auto;border:0;padding:0;background:#edf0ec;overflow:hidden}
#gallery .gallery-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:none}
#gallery .gallery-visual:is(button):hover img{transform:none;opacity:1}
#gallery .gallery-visual:focus-visible{outline:2px solid #50664f;outline-offset:5px}
#gallery .gallery-toggle-wrap{display:flex;justify-content:center;margin-top:36px}
#gallery .gallery-toggle{min-width:180px;min-height:48px;padding:12px 36px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:11px;letter-spacing:1.5px;transition:background .2s,border-color .2s}
#gallery .gallery-toggle:hover{background:#f3f6f1;border-color:#aab5a6}
.gallery-sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
body.gallery-open{position:fixed;top:var(--gallery-scroll-offset);inset-inline:0;width:100%;padding-right:var(--gallery-scrollbar-width,0px);overflow:hidden}
#media-dialog.gallery-lightbox{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:clamp(16px,3vw,40px);background:#fff;color:var(--ink)}
#media-dialog.gallery-lightbox[open]{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;grid-template-rows:48px minmax(0,1fr) 16px;gap:16px;align-items:center}
#media-dialog.gallery-lightbox::backdrop{background:rgba(255,255,255,.94)}
#media-dialog .gallery-lightbox-close,#media-dialog .gallery-lightbox-previous,#media-dialog .gallery-lightbox-next{display:grid;place-items:center;width:48px;height:48px;min-width:48px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font:32px/1 var(--serif)}
#media-dialog .gallery-lightbox-close{grid-column:3;grid-row:1;font-size:28px}
#media-dialog .gallery-lightbox-previous{grid-column:1;grid-row:2}
#media-dialog .gallery-lightbox-next{grid-column:3;grid-row:2}
#media-dialog .gallery-lightbox-stage{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}
#media-dialog .gallery-lightbox-stage img{position:static;display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:1000px){#gallery .gallery-grid{--gallery-columns:2;column-gap:22px}}
@media(max-width:600px){#gallery .gallery-grid{column-gap:16px}#media-dialog.gallery-lightbox[open]{grid-template-rows:48px minmax(0,1fr) 48px;gap:12px;padding:16px}#media-dialog .gallery-lightbox-stage{grid-column:1/-1}#media-dialog .gallery-lightbox-previous,#media-dialog .gallery-lightbox-next{grid-row:3}}
@media(max-width:359px){#gallery .gallery-grid{--gallery-columns:1}}
/* v0.1.6: release-specific artwork and publication links. */
#latest .release-art img{object-fit:contain}
#latest #release-action{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
#latest #release-action .text-link{min-height:44px;gap:24px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.reveal.waiting{opacity:1;transform:none}}

/* v0.1.8: Games works page. Top-page sections stay unchanged. */
.works-subpage .games-page{padding-top:168px;padding-bottom:96px}
.works-subpage .games-page .section-heading h1{font:clamp(54px,5.2vw,78px)/1.1 var(--serif);letter-spacing:-2px;margin-top:17px;font-weight:400}
.works-subpage .games-list{border-top:1px solid var(--line)}
.works-subpage .game-entry{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(36px,6vw,88px);align-items:start;padding:48px 0;border-bottom:1px solid var(--line)}
.works-subpage .game-media{display:flex;flex-direction:column;gap:18px;min-width:0}
.works-subpage .game-visual{display:block;width:100%;overflow:hidden;border-radius:2px;background:#edf0ec;border:0;padding:0;cursor:zoom-in;font:inherit;color:inherit}
.works-subpage button.game-visual:focus-visible{outline:2px solid #50664f;outline-offset:5px}
.works-subpage button.game-visual:disabled{cursor:default}
.works-subpage .game-visual.placeholder{display:flex;align-items:center;justify-content:center;min-height:160px}
.works-subpage .game-visual img{width:100%;height:auto;object-fit:contain;background:#f4f6f2}
.works-subpage .game-visual-main{width:100%}
.works-subpage .game-screens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.works-subpage .game-copy .eyebrow{color:var(--sage);margin-bottom:18px}
.works-subpage .game-copy h2{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.6;letter-spacing:2px;font-weight:400}
.works-subpage .game-status{margin-top:18px}
.works-subpage .game-description{margin-top:22px;font-size:12px;line-height:2.3;letter-spacing:1px;color:var(--muted);white-space:pre-line}
.works-subpage .game-notice{margin-top:28px;padding-top:22px;border-top:1px solid var(--line);font-size:11px;line-height:2.1;letter-spacing:.4px;color:var(--muted);white-space:pre-line}
.works-subpage .games-back{margin-top:48px}
.works-subpage .games-back .text-link{gap:24px;min-height:44px}
@media(max-width:800px){
  .works-subpage .games-page{padding-top:140px}
  .works-subpage .game-entry{grid-template-columns:1fr;gap:28px;padding:36px 0}
  .works-subpage .games-page .section-heading h1{font-size:60px}
  .works-subpage .game-screens{grid-template-columns:1fr;gap:12px}
}
@media(max-width:600px){
  .works-subpage .games-page{padding-top:120px;padding-bottom:68px}
  .works-subpage .games-page .section-heading h1{font-size:58px}
  .works-subpage .game-entry{padding:28px 0;gap:22px}
  .works-subpage .game-copy h2{font-size:30px;letter-spacing:1.5px}
  .works-subpage .game-description{font-size:11px;margin-top:18px}
  .works-subpage .game-notice{margin-top:22px;padding-top:18px;font-size:10px}
  .works-subpage .games-back{margin-top:36px}
}

/* v0.1.9: Games image lightbox (GALLERY-equivalent controls; separate from #media-dialog). */
body.games-lightbox-open{position:fixed;top:var(--games-scroll-offset);inset-inline:0;width:100%;padding-right:var(--games-scrollbar-width,0px);overflow:hidden}
#games-dialog.games-lightbox{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:clamp(16px,3vw,40px);background:transparent;color:#fff}
#games-dialog.games-lightbox[open]{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;grid-template-rows:48px minmax(0,1fr) 16px;gap:16px;align-items:center}
#games-dialog.games-lightbox::backdrop{background:rgba(15,20,18,.88);backdrop-filter:blur(6px)}
#games-dialog .games-lightbox-close,#games-dialog .games-lightbox-previous,#games-dialog .games-lightbox-next{display:grid;place-items:center;width:48px;height:48px;min-width:48px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);font:32px/1 var(--serif)}
#games-dialog .games-lightbox-close{grid-column:3;grid-row:1;font-size:28px}
#games-dialog .games-lightbox-previous{grid-column:1;grid-row:2}
#games-dialog .games-lightbox-next{grid-column:3;grid-row:2}
#games-dialog .games-lightbox-stage{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}
#games-dialog .games-lightbox-stage img{position:static;display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:600px){#games-dialog.games-lightbox[open]{grid-template-rows:48px minmax(0,1fr) 48px;gap:12px;padding:16px}#games-dialog .games-lightbox-stage{grid-column:1/-1}#games-dialog .games-lightbox-previous,#games-dialog .games-lightbox-next{grid-row:3}}

/* v0.1.10: Philosophy works page. Mirrors Games layout; other sections unchanged. */
.works-subpage .philosophy-page{padding-top:168px;padding-bottom:96px}
.works-subpage .philosophy-page .section-heading h1{font:clamp(54px,5.2vw,78px)/1.1 var(--serif);letter-spacing:-2px;margin-top:17px;font-weight:400}
.works-subpage .philosophy-list{border-top:1px solid var(--line)}
.works-subpage .philosophy-entry{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(36px,6vw,88px);align-items:start;padding:48px 0;border-bottom:1px solid var(--line)}
.works-subpage .philosophy-media{min-width:0;max-width:320px}
.works-subpage .philosophy-cover{overflow:hidden;border-radius:2px;background:#edf0ec;width:100%}
.works-subpage .philosophy-cover.placeholder{display:flex;align-items:center;justify-content:center;min-height:220px}
.works-subpage .philosophy-cover img{width:100%;height:auto;object-fit:contain;background:#f4f6f2}
.works-subpage .philosophy-copy .eyebrow{color:var(--sage);margin-bottom:18px}
.works-subpage .philosophy-copy h2{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.6;letter-spacing:2px;font-weight:400}
.works-subpage .philosophy-author{margin-top:14px;font-size:12px;letter-spacing:1px;color:var(--ink)}
.works-subpage .philosophy-original{margin-top:6px;font-size:11px;letter-spacing:.8px;color:var(--muted);font-style:italic}
.works-subpage .philosophy-status{margin-top:18px}
.works-subpage .philosophy-description{margin-top:22px;font-size:12px;line-height:2.3;letter-spacing:1px;color:var(--muted);white-space:pre-line}
.works-subpage .philosophy-access{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.works-subpage .philosophy-access-note{font-size:11px;letter-spacing:1.2px;color:var(--ink)}
.works-subpage .philosophy-access-list{margin:14px 0 0;padding:0;list-style:none;font-size:11px;line-height:2;letter-spacing:.4px;color:var(--muted)}
.works-subpage .philosophy-notice{margin-top:22px;font-size:11px;line-height:2.1;letter-spacing:.4px;color:var(--muted);white-space:pre-line}
.works-subpage .philosophy-back{margin-top:48px}
.works-subpage .philosophy-back .text-link{gap:24px;min-height:44px}
@media(max-width:1000px){
  .works-subpage .philosophy-page{padding-top:140px}
  .works-subpage .philosophy-entry{grid-template-columns:1fr;gap:28px;padding:36px 0}
  .works-subpage .philosophy-media{max-width:280px}
  .works-subpage .philosophy-page .section-heading h1{font-size:60px}
}
@media(max-width:600px){
  .works-subpage .philosophy-page{padding-top:120px;padding-bottom:68px}
  .works-subpage .philosophy-page .section-heading h1{font-size:58px}
  .works-subpage .philosophy-entry{padding:28px 0;gap:22px}
  .works-subpage .philosophy-media{max-width:100%}
  .works-subpage .philosophy-copy h2{font-size:30px;letter-spacing:1.5px}
  .works-subpage .philosophy-description{font-size:11px;margin-top:18px}
  .works-subpage .philosophy-access{margin-top:22px;padding-top:18px}
  .works-subpage .philosophy-back{margin-top:36px}
}

/* v0.1.11 Web reader link */
.works-subpage .philosophy-read-link{display:inline-flex;align-items:center;gap:14px;padding:8px 0;border-bottom:1px solid #aab5a6;color:var(--ink);font-size:12px;letter-spacing:1.6px;transition:color .2s,border-color .2s}.works-subpage .philosophy-read-link::after{content:"\2192";font-size:14px;transition:transform .2s}.works-subpage .philosophy-read-link:hover{color:#50664f;border-color:#50664f}.works-subpage .philosophy-read-link:hover::after{transform:translateX(3px)}

/* v0.1.14: Philosophy EPUB download + trial-translation notice */
.works-subpage .philosophy-access-list li+li{margin-top:12px}
.works-subpage .philosophy-epub-note{margin-top:6px;font-size:10px;line-height:1.9;letter-spacing:.4px;color:var(--muted)}
.works-subpage .philosophy-read-link{min-height:40px}
.works-subpage .philosophy-translation{margin-top:28px;padding:20px 22px;background:#f6f8f4;border-left:2px solid #c9d2c4;border-radius:2px}
.works-subpage .philosophy-translation h3{font-family:var(--serif);font-size:13px;font-weight:400;letter-spacing:1.6px;color:var(--ink);margin-bottom:10px}
.works-subpage .philosophy-translation p{font-size:11px;line-height:2.1;letter-spacing:.4px;color:var(--muted)}
.works-subpage .philosophy-translation p+p{margin-top:10px}
.works-subpage .philosophy-translation-source{font-size:10px!important}
.works-subpage .philosophy-translation-source a{border-bottom:1px solid #c9d2c4;word-break:break-all}
@media (max-width:600px){.works-subpage .philosophy-translation{padding:16px 16px}.works-subpage .philosophy-media{max-width:260px}}
.works-subpage .philosophy-translation p{overflow-wrap:anywhere}

/* v0.2.1: Games の公開リンク（publishState: public のときのみ表示） */
.game-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px}

/* v0.2.6: Games 配布ボタン（ブラウザ / Windows / Android）。等幅・横一列・アイコン上／文字下 */
.game-dist{margin-top:28px;max-width:420px}
.game-dist-label{margin:0 0 10px;font-size:10px;letter-spacing:.18em;color:#8a8a8a}
.game-dist-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.game-dist-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:68px;padding:12px 6px 10px;border:1px solid #dcdcdc;border-radius:6px;background:#fff;color:#3c3c3c;text-decoration:none;font-size:12px;letter-spacing:.06em;line-height:1.2;transition:background-color .2s ease,border-color .2s ease}
.game-dist-button:hover{background:#f5f5f4;border-color:#cfcfcf}
.game-dist-button:focus-visible{outline:2px solid #8a8a8a;outline-offset:2px}
.game-dist-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.game-dist-text{white-space:nowrap}
@media (max-width:600px){.game-dist{max-width:none}.game-dist-buttons{gap:8px}.game-dist-button{min-height:60px;padding:10px 4px 8px;font-size:11px;letter-spacing:.03em}.game-dist-icon{width:20px;height:20px}}
@media (max-width:300px){.game-dist-buttons{grid-template-columns:1fr}.game-dist-button{flex-direction:row;min-height:44px;gap:10px}}

/* v0.2.9 FOLLOW MABELLE (SNS) */
.footer-sns{margin-top:44px;display:flex;align-items:center;gap:34px}.footer-sns-label{font-size:9px;font-weight:500;letter-spacing:2.6px;color:#737d73}.footer-sns-list{display:flex;flex-wrap:wrap;gap:30px;margin:0;padding:0;list-style:none}.footer-sns-link{display:inline-flex;align-items:center;gap:10px;padding:6px 0;font-size:10px;letter-spacing:1.4px;color:var(--ink);border-bottom:1px solid transparent;opacity:.78;transition:opacity .25s,border-color .25s}.footer-sns-link:hover{opacity:1;border-color:#aab5a6}.footer-sns-icon{width:16px;height:16px;flex-shrink:0;display:block}
@media(max-width:600px){.footer-sns{margin-top:32px;flex-direction:column;align-items:flex-start;gap:12px}.footer-sns-label{font-size:8px;letter-spacing:2px}.footer-sns-list{gap:26px}.footer-sns-link{min-height:44px;font-size:10px}.footer-bottom{margin-top:26px}}
