/* B02 Studio Pilot 01: image-world entry and a short threshold transition. */
.studio-visit #outside > img{object-position:center}
.studio-visit #inside > img{object-position:center}
.radio-hotspot{position:absolute;z-index:2;left:70%;top:41%;width:clamp(140px,13vw,190px);height:clamp(58px,7vw,78px);transform:translate(-50%,-50%);border-radius:5px}
.radio-hotspot::before{content:"";position:absolute;inset:3px;border-radius:5px;background:#d6583740;box-shadow:0 0 22px 7px #e87a4766;opacity:0;transition:opacity .2s}
.radio-hotspot:hover::before,.radio-hotspot:focus-visible::before,.studio-visit.is-radio-entering .radio-hotspot::before{opacity:1}
.radio-hotspot-hint{position:absolute;left:50%;top:100%;transform:translateX(-50%);padding:4px 7px;color:#fff7e7;background:#14201980;border-radius:2px;font-size:10px;letter-spacing:.08em;white-space:nowrap;text-shadow:0 1px 5px #07110e;opacity:.7;transition:opacity .2s}
.radio-hotspot:hover .radio-hotspot-hint,.radio-hotspot:focus-visible .radio-hotspot-hint{opacity:1}
.studio-visit #inside > img{transition:transform .32s ease,filter .32s ease}
.studio-visit.is-radio-entering #inside > img{transform:scale(1.045);transform-origin:70% 41%;filter:brightness(1.12)}
.studio-visit.is-radio-entering .studio-threshold{opacity:1;background:#211b18;transition-duration:.3s}
.studio-visit.is-radio-arriving .studio-threshold{opacity:0;transition-duration:.4s}
.studio-visit.is-radio-arriving .radio-room{animation:radio-arrive .42s ease-out both}
@keyframes radio-arrive{from{opacity:.8;transform:translateY(12px)}to{opacity:1;transform:none}}
.radio-threshold{min-height:100svh;display:grid;align-items:center;padding:clamp(74px,9vw,130px) clamp(24px,7vw,100px);background:radial-gradient(ellipse at 80% 0%,#89543c45,transparent 48%),linear-gradient(150deg,#26372d,#17231e 65%);color:#f3ecd9}
.radio-room{width:min(100%,1120px);margin:auto}
.radio-heading{max-width:720px;margin-bottom:clamp(40px,6vw,76px)}
.radio-heading h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(42px,6vw,78px);font-weight:600;letter-spacing:.09em;line-height:1.25;margin:19px 0 18px}
.radio-heading>p:last-child{font-size:clamp(14px,1.4vw,17px);line-height:1.9;letter-spacing:.08em;margin:0;color:#dfd8c8}
.radio-shelves{display:grid;grid-template-columns:1.35fr 1fr .85fr;gap:16px}
.radio-shelf{min-width:0;min-height:228px;padding:28px clamp(22px,2.7vw,36px);border:1px solid #e9d9b94d;border-top:3px solid #d6b97f;background:#f0e5cf0b;box-shadow:0 16px 40px #0d191325}
.radio-shelf-number{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:10px;letter-spacing:.18em;color:#dfc69a;margin:0 0 32px}
.radio-shelf h3{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(22px,2.4vw,31px);font-weight:600;letter-spacing:.08em;margin:0 0 15px}
.radio-shelf>p:last-child,.radio-archive p{font-size:12px;line-height:1.9;letter-spacing:.05em;color:#c5c4b8}
.radio-story{display:grid;gap:9px}.radio-story p{margin:0;font-size:12px;line-height:1.9;letter-spacing:.05em;color:#c5c4b8}.radio-story .radio-story-meta{font-size:10px;letter-spacing:.12em;color:#dfc69a}.radio-media-links{display:flex;flex-wrap:wrap;gap:12px 22px}.radio-media-links a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid #ddc9a4;font-size:12px;letter-spacing:.08em}.radio-media-links a:hover,.radio-media-links a:focus-visible{color:#fff;border-color:#fff}.radio-archive-entry+.radio-archive-entry{margin-top:18px;padding-top:16px;border-top:1px solid #e9d9b933}
.radio-archive summary{display:inline-flex;gap:22px;align-items:center;min-height:44px;border-bottom:1px solid #ddc9a4;font-size:13px;letter-spacing:.08em;cursor:pointer;list-style:none}
.radio-archive summary::-webkit-details-marker{display:none}
.radio-archive summary:hover,.radio-archive summary:focus-visible{color:#fff}
.radio-archive p{margin:14px 0 0}
.radio-shelf-muted{border-top-color:#a2a99a}
.radio-return{display:flex;flex-wrap:wrap;gap:14px 34px;margin-top:clamp(38px,5vw,64px)}
.radio-return a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid #e4d1ad99;font-size:12px;letter-spacing:.08em}
.radio-return a:hover,.radio-return a:focus-visible{color:#fff;border-color:#fff}
.studio-entry{position:absolute;z-index:2;left:69%;top:68%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:148px;min-height:64px;padding:6px 10px;text-shadow:0 1px 6px #06100c}
.navigation-sign-asset{display:block;width:138px;height:auto;opacity:.82;transition:opacity .25s,transform .25s}
.studio-entry:hover .navigation-sign-asset,.studio-entry:focus-visible .navigation-sign-asset{opacity:1;transform:scale(1.06)}
.studio-entry-label{font-size:10px;letter-spacing:.08em;white-space:nowrap;opacity:.82}
.studio-threshold{position:fixed;inset:0;z-index:30;pointer-events:none;background:#111b16;opacity:0;transition:opacity .24s ease}
.studio-visit.is-entering .studio-threshold{opacity:1}
.studio-visit.is-inside .studio-threshold{opacity:0;transition-duration:.42s}
.studio-visit.is-inside #inside > img{animation:studio-arrive .55s ease-out both}
@keyframes studio-arrive{from{transform:scale(1.025)}to{transform:scale(1)}}
@media(max-width:700px){
  .studio-visit #outside > img{object-position:65% center}
  .studio-visit #inside > img{height:65%;object-position:57% center;mask-image:linear-gradient(to bottom,#000 0 70%,transparent 100%)}
  .radio-hotspot{left:82%;top:27%;width:120px;height:56px}
  .studio-visit.is-radio-entering #inside > img{transform-origin:82% 27%}
  .studio-entry{left:68%;top:58%;min-width:140px;min-height:58px}
  .navigation-sign-asset{width:126px}
  .radio-threshold{padding:78px 24px 54px}
  .radio-heading{margin-bottom:42px}
  .radio-shelves{grid-template-columns:1fr;gap:12px}
  .radio-shelf{min-height:0;padding:22px 24px}
  .radio-shelf-number{margin-bottom:18px}
  .radio-return{display:grid;justify-items:start;gap:8px;margin-top:42px}
}

/* B02 Growing CMS v0.2: record shop shelves, keeping the Studio world intact. */
.radio-projection{display:grid;gap:20px}
.radio-projection .radio-shelf{min-height:0;padding:clamp(22px,3vw,38px);border:1px solid #e9d9b94d;border-top:3px solid #d6b97f;background:linear-gradient(135deg,#f8edda12,#f0e5cf08);box-shadow:0 16px 40px #0d191325}
.radio-projection .radio-shelf-latest{border-top-color:#e67b54;background:linear-gradient(115deg,#633f343b,#f0e5cf08 64%)}
.radio-projection .radio-shelf-number{display:flex;align-items:center;gap:10px;margin-bottom:15px}
.radio-tape-label{display:inline-block;padding:5px 9px;border:1px solid #ef9772;background:#a94435;color:#fff2d9;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:10px;letter-spacing:.16em;transform:rotate(-2deg)}
.radio-latest-card{max-width:920px}
.radio-episode-card{display:grid;grid-template-columns:minmax(170px,34%) minmax(0,1fr);align-items:center;gap:clamp(22px,4vw,54px);min-width:0}
.radio-cover{position:relative;display:grid;aspect-ratio:1/1;place-content:center;gap:10px;overflow:hidden;width:100%;max-width:320px;padding:22px;border:1px solid #e3cba2;background:radial-gradient(circle at 70% 28%,#f3d396 0 2px,transparent 3px),linear-gradient(145deg,#9f583f,#49352e 60%,#25382e);box-shadow:inset 0 0 0 8px #efdcb42b,inset 0 0 0 9px #efdcb466,8px 10px 0 #0d171940;color:#fff0d3;text-align:center}
.radio-cover::before{content:"";position:absolute;width:58%;aspect-ratio:1;border:1px solid #f0d9a77d;border-radius:50%;background:repeating-radial-gradient(circle,#1a2925 0 2px,#d4af7740 3px 4px);opacity:.76}
.radio-cover::after{content:"";position:absolute;width:13%;aspect-ratio:1;border-radius:50%;background:#e7ca91;box-shadow:0 0 0 5px #29372f}
.radio-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.radio-cover.is-artwork-fallback img{display:none}
.radio-cover-kicker,.radio-cover-title,.radio-cover-series{position:relative;z-index:2;text-shadow:0 1px 4px #17211c;overflow-wrap:anywhere}
.radio-cover-kicker{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(10px,1vw,13px);letter-spacing:.12em}
.radio-cover-title{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(17px,2vw,25px);letter-spacing:.12em}
.radio-cover-series{font-size:9px;letter-spacing:.1em}
.radio-cover.is-small{max-width:104px;padding:8px;gap:4px}
.radio-cover.is-small .radio-cover-kicker{font-size:8px}.radio-cover.is-small .radio-cover-title{font-size:11px}.radio-cover.is-small .radio-cover-series{font-size:6px}
.radio-episode-copy{min-width:0}.radio-episode-copy h4,.radio-archive-copy h4{margin:0;color:#f4ead5;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(19px,2.4vw,29px);font-weight:600;line-height:1.65;letter-spacing:.05em;overflow-wrap:anywhere}
.radio-episode-copy .radio-story-meta,.radio-archive-copy .radio-story-meta{margin:0 0 9px;color:#e7c894;font-size:10px;letter-spacing:.12em}
.radio-episode-catch{margin:10px 0 16px;color:#d9d2c3;font-size:13px;line-height:1.9;letter-spacing:.04em}
.radio-episode-card .radio-media-links{gap:8px 18px}.radio-episode-card .radio-media-links a{min-height:42px}
.radio-media-links.is-compact a{min-height:34px;font-size:11px}
.radio-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.radio-card-grid>p,.radio-archive-grid>p{margin:0;color:#c5c4b8;font-size:12px;line-height:1.9}
.radio-episode-card.is-recommend{grid-template-columns:minmax(90px,28%) minmax(0,1fr);gap:17px;align-items:start;padding:16px;background:#e8d5b50b;border:1px solid #e9d9b92b}
.radio-episode-card.is-recommend .radio-cover{max-width:150px;padding:10px}
.radio-episode-card.is-recommend .radio-episode-copy h4{font-size:16px;line-height:1.55}
.radio-episode-card.is-recommend .radio-episode-catch{font-size:11px;line-height:1.7;margin:7px 0}
.radio-episode-card.is-recommend .radio-story-meta{font-size:9px}
.radio-tag-list{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:8px 0;list-style:none}
.radio-tag-list li{padding:3px 8px;border:1px solid #d9c29b66;border-radius:99px;color:#e6d4b5;font-size:9px;letter-spacing:.06em}
.radio-archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.radio-archive-card{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:10px;background:#e8d5b50b;border:1px solid #e9d9b929}
.radio-archive-card .radio-cover.is-small{width:72px;max-width:72px}
.radio-archive-copy{min-width:0}.radio-archive-copy h4{font-size:12px;line-height:1.55}.radio-archive-copy .radio-story-meta{font-size:8px;margin:0 0 5px}.radio-archive-copy .radio-media-links{gap:8px}.radio-archive-copy .radio-media-links a{min-height:30px;font-size:10px}
@media(max-width:700px){
  .radio-projection{gap:12px}.radio-projection .radio-shelf{padding:20px 18px}
  .radio-episode-card{grid-template-columns:minmax(0,1fr);gap:18px}
  .radio-cover{max-width:min(100%,280px);margin-inline:auto}
  .radio-card-grid{grid-template-columns:1fr;gap:10px}
  .radio-episode-card.is-recommend{grid-template-columns:84px minmax(0,1fr);gap:14px;padding:12px}
  .radio-episode-card.is-recommend .radio-cover{max-width:84px;padding:5px}
  .radio-episode-card.is-recommend .radio-cover-kicker{font-size:7px}.radio-episode-card.is-recommend .radio-cover-title{font-size:10px}.radio-episode-card.is-recommend .radio-cover-series{font-size:5px}
  .radio-archive-grid{grid-template-columns:1fr 1fr;gap:8px}
  .radio-archive-card{grid-template-columns:52px minmax(0,1fr);gap:8px;padding:7px}
  .radio-archive-card .radio-cover.is-small{width:52px;max-width:52px;padding:4px}
  .radio-archive-copy h4{font-size:10px}.radio-archive-copy .radio-story-meta{font-size:7px}
}

/* B02 Projection v0.2.1: thumbnails lead the listening shelves. */
.radio-episode-card.is-recommend,.radio-episode-card.is-theme{position:relative;grid-template-columns:minmax(0,1fr);align-content:start;gap:11px;padding:12px;background:#e8d5b50b;border:1px solid #e9d9b944}
.radio-episode-card.is-recommend::before,.radio-episode-card.is-theme::before{position:absolute;z-index:3;top:19px;left:19px;padding:5px 8px;background:#25352de8;border:1px solid #e9d9b977;color:#f3e6c9;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:8px;letter-spacing:.14em;pointer-events:none}
.radio-episode-card.is-recommend::before{content:"RECOMMEND"}
.radio-episode-card.is-theme::before{content:"SAME THEME"}
.radio-episode-card.is-recommend .radio-cover,.radio-episode-card.is-theme .radio-cover{width:100%;max-width:none;aspect-ratio:1/1;margin:0;padding:14px}
.radio-episode-card.is-recommend .radio-episode-copy,.radio-episode-card.is-theme .radio-episode-copy{display:grid;align-content:start;gap:5px}
.radio-episode-card.is-recommend .radio-episode-copy h4,.radio-episode-card.is-theme .radio-episode-copy h4{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:14px;line-height:1.55}
.radio-episode-card.is-recommend .radio-episode-catch,.radio-episode-card.is-theme .radio-episode-catch{display:none}
.radio-episode-card.is-recommend .radio-episode-copy .radio-story-meta,.radio-episode-card.is-theme .radio-episode-copy .radio-story-meta{display:none}
.radio-episode-card.is-recommend .radio-tag-list,.radio-episode-card.is-theme .radio-tag-list{margin:0}
.radio-episode-card.is-recommend .radio-tag-list li,.radio-episode-card.is-theme .radio-tag-list li{font-size:8px}
.radio-episode-card.is-recommend .radio-media-links,.radio-episode-card.is-theme .radio-media-links{gap:5px 12px}
.radio-episode-card.is-recommend .radio-media-links a,.radio-episode-card.is-theme .radio-media-links a{min-height:30px;font-size:10px}
.radio-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:700px){
  .radio-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .radio-episode-card.is-recommend,.radio-episode-card.is-theme{gap:8px;padding:8px}
  .radio-episode-card.is-recommend::before,.radio-episode-card.is-theme::before{top:13px;left:13px;padding:4px 6px;font-size:7px}
  .radio-episode-card.is-recommend .radio-cover,.radio-episode-card.is-theme .radio-cover{padding:8px}
  .radio-episode-card.is-recommend .radio-episode-copy h4,.radio-episode-card.is-theme .radio-episode-copy h4{font-size:11px;line-height:1.45}
  .radio-episode-card.is-recommend .radio-tag-list li,.radio-episode-card.is-theme .radio-tag-list li{padding:2px 6px;font-size:7px}
  .radio-episode-card.is-recommend .radio-media-links,.radio-episode-card.is-theme .radio-media-links{gap:4px 8px}
  .radio-episode-card.is-recommend .radio-media-links a,.radio-episode-card.is-theme .radio-media-links a{min-height:28px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  .navigation-sign-asset,.studio-threshold{transition:none}
  .studio-visit.is-inside #inside > img{animation:none}
  .studio-visit #inside > img,.radio-hotspot::before,.radio-hotspot-hint{transition:none}
  .studio-visit.is-radio-arriving .radio-room{animation:none}
}
