:root{
  --ui-green:#99F9A3;
  --ui-glow:#2D9619;
  --bg:#050008;
  --font:'DotGothic16', sans-serif;
  --page-overlay:rgba(0,0,0,.54);
  --panel-overlay:rgba(0,0,0,.54);
  --readability-overlay:rgba(0,0,0,.64);
  --choice-overlay:rgba(0,0,0,.74);
}

*{box-sizing:border-box;font-family:var(--font)}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--ui-green)}
button,a{font:inherit}
button{cursor:pointer}

.screen{position:relative;width:100vw;height:100dvh;max-width:430px;margin:0 auto;overflow:hidden;background:var(--bg)}
.scene{position:absolute;inset:0;display:none;overflow:hidden;background:var(--bg)}
.scene-result{overflow:hidden}
.scene-result .result-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:translateZ(0);will-change:transform}
.scene-result .prescription-panel{position:absolute;inset:0;min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior:contain}
.scene-result .prescription-panel::-webkit-scrollbar{display:none}
.scene.is-active{display:block}
.bg-img,.top-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.rain,.shop-rain{position:absolute;pointer-events:none;overflow:hidden}
.rain{inset:-18%;z-index:3;opacity:.92}
.rain.shop-off{display:none}
.shop-rain{inset:0;z-index:1;opacity:.86;clip-path:polygon(84% 21%,100% 21%,100% 54%,84% 54%)}
.drop{position:absolute;width:1px;height:38px;color:var(--ui-green);background:currentColor;image-rendering:pixelated;box-shadow:0 12px 0 currentColor;filter:drop-shadow(0 0 5px currentColor);animation-timing-function:linear;animation-iteration-count:infinite}
.rain .drop{transform:rotate(13deg);animation-name:rainFall}
.shop-rain .drop{transform:none;animation-name:windowRainFall}
@keyframes rainFall{from{translate:-8px -30vh}to{translate:18px 135vh}}
@keyframes windowRainFall{from{translate:0 -30vh}to{translate:0 135vh}}

.scene-op{z-index:10}
.scene-gate{background:#020004}
.top-bg{z-index:1;filter:saturate(1.12) contrast(1.04)}
.scene-gate::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.18;background:repeating-linear-gradient(to bottom,rgba(153,249,163,.035) 0,rgba(153,249,163,.035) 1px,transparent 2px,transparent 5px);mix-blend-mode:screen}
.top-open-button{position:absolute;z-index:4;left:38.5%;top:66.7%;width:22%;height:8%;transform:none;padding:0;border:0;background:transparent;color:var(--ui-green);font-size:.90rem;line-height:1.05;letter-spacing:.04em;text-align:center;text-shadow:0 0 8px var(--ui-glow),0 0 24px var(--ui-glow),0 0 42px var(--ui-glow);animation:topOpenFloat 2.8s ease-in-out infinite,topOpenGlow 3.2s steps(2,end) infinite}

.top-activity-button,.top-underground-button{position:absolute;z-index:4;padding:0;border:0;background:transparent;color:var(--ui-green);font-size:.90rem;line-height:1.05;letter-spacing:.04em;text-align:center;opacity:.78;text-shadow:0 0 5px var(--ui-glow),0 0 14px var(--ui-glow),0 0 24px rgba(45,150,25,.72);-webkit-tap-highlight-color:transparent;touch-action:manipulation}
/* 見た目は中の文字だけで作り、ボタン本体はスマホ用の透明な押下範囲として広く取る */
.top-activity-button{left:25%;top:15.2%;width:20%;height:7.2%;animation:undergroundFloat 3.05s ease-in-out .25s infinite,undergroundGlow 3.55s steps(2,end) .25s infinite}
.top-underground-button{left:80.8%;top:46.2%;width:16%;height:8%;animation:undergroundFloat 3.15s ease-in-out .65s infinite,undergroundGlow 3.65s steps(2,end) .65s infinite}
.top-activity-arrow{position:absolute;left:18%;top:50%;display:block;transform:translate(-50%,-50%);font-size:.62em;line-height:.9;text-shadow:inherit}
.top-activity-label{position:absolute;left:30%;top:50%;display:block;transform:translateY(-50%);text-shadow:inherit;white-space:nowrap}
.top-underground-arrow{position:absolute;left:50%;top:68%;display:block;transform:translate(-50%,-50%);font-size:.62em;line-height:.9;text-shadow:inherit}
.top-underground-label{position:absolute;left:50%;top:34%;display:block;transform:translate(-50%,-50%);text-shadow:inherit;white-space:nowrap}
@keyframes undergroundFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes undergroundGlow{0%,100%{opacity:.74;text-shadow:0 0 5px var(--ui-glow),0 0 14px var(--ui-glow),0 0 24px rgba(45,150,25,.72)}50%{opacity:.86;text-shadow:0 0 7px var(--ui-glow),0 0 18px var(--ui-glow),0 0 32px rgba(45,150,25,.78)}}

.top-arrow{position:absolute;left:50%;top:10%;display:block;transform:translateX(-50%);font-size:.62em;line-height:.9}
.top-label{position:absolute;left:50%;top:36%;display:block;transform:translateX(-50%);white-space:nowrap}
@keyframes topOpenFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes topOpenGlow{0%,100%{text-shadow:0 0 8px var(--ui-glow),0 0 24px var(--ui-glow),0 0 44px var(--ui-glow)}50%{text-shadow:0 0 12px var(--ui-glow),0 0 32px var(--ui-glow),0 0 56px var(--ui-glow)}}

.scene-shop::after{content:"";position:absolute;inset:0;z-index:0;background:#000;pointer-events:none}
.scene-shop .shop-rain{z-index:1}
.scene-shop .bg-img{z-index:2;object-position:center center}
.drugstore-ui{position:absolute;inset:0;z-index:3;pointer-events:none}
.drugstore-ui .keiko,.drugstore-ui .dialog,.drugstore-ui .next{pointer-events:auto}
.keiko{position:absolute;left:50%;bottom:0;width:112%;max-height:96%;object-fit:contain;object-position:bottom center;transform:translateX(-50%);z-index:2;opacity:1}
.scene-shop.shop-enter .keiko{opacity:0;animation:keikoGhostIn 2.6s ease-out forwards}
.scene-shop.shop-enter .dialog{opacity:0;visibility:hidden}
.scene-shop.dialog-ready .dialog{opacity:1;visibility:visible}
@keyframes keikoGhostIn{0%{opacity:0;filter:drop-shadow(0 0 2px rgba(45,150,25,.05))}48%{opacity:.38;filter:drop-shadow(0 0 16px rgba(45,150,25,.22))}100%{opacity:1;filter:none}}
.dialog{position:absolute;left:5.5%;right:5.5%;bottom:7.2%;height:18.5%;z-index:8;isolation:isolate;border:0;border-radius:6px;background:transparent;overflow:visible}
.dialog::before{content:"";position:absolute;left:-7vw;right:-7vw;top:0;bottom:-28dvh;z-index:1;border-radius:6px 6px 0 0;background:var(--readability-overlay);pointer-events:none}
.dialog::after{content:"";position:absolute;inset:0;z-index:4;border:2px solid rgba(153,249,163,.95);border-radius:6px;pointer-events:none}
.name,.text,.next{position:absolute;z-index:5;color:var(--ui-green);font-weight:700}
.name{left:4.6%;top:10%;font-size:1.22rem}
.text{left:7%;top:42.5%;font-size:1.2rem;line-height:1.35;letter-spacing:.04em}
.next{right:3.5%;bottom:5.5%;padding:0;border:0;background:transparent;font-size:.72rem;line-height:1;animation:dialogArrowFloat 2.2s ease-in-out infinite}
@keyframes dialogArrowFloat{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-7px);opacity:1}}

.scene-shop.choice-mode::before{content:"";position:absolute;inset:0;z-index:8;background:var(--choice-overlay);pointer-events:none}
.choices{display:none;position:absolute;z-index:9;left:50%;top:50%;width:max-content;max-width:84vw;min-width:220px;transform:translate3d(-50%,-50%,0);padding:18px 20px;border-radius:8px;background:transparent;text-align:left;will-change:opacity}
.choices.show{display:flex;flex-direction:column;align-items:flex-start}
.choices.show button{animation-name:choiceNeonStep}
.choices h1{margin:0 0 14px;color:var(--ui-green);font-size:1.16rem;letter-spacing:.04em;text-shadow:0 0 7px rgba(45,150,25,.72)}
.choices button{--glow:var(--ui-glow);display:flex;align-items:center;gap:.45rem;width:max-content;max-width:calc(84vw - 40px);margin:7px 0;padding:5px 6px;border:0;background:transparent;color:var(--ui-green);font-size:1.2rem;line-height:1.25;text-align:left;text-shadow:0 0 5px var(--ui-glow);opacity:.82;animation:choiceNeonStep 4.2s steps(1,end) infinite;will-change:filter,opacity}
.choices img{width:28px;height:28px;image-rendering:pixelated}
.choices button:nth-of-type(1){--glow:var(--ui-glow);animation-delay:0s}
.choices button:nth-of-type(2){--glow:var(--ui-glow);animation-delay:.76s}
.choices button:nth-of-type(3){--glow:var(--ui-glow);animation-delay:1.52s}
.choices button:nth-of-type(4){--glow:var(--ui-glow);animation-delay:2.28s}
.choices button:nth-of-type(5){--glow:var(--ui-glow);animation-delay:3.04s}
.choices.second{min-width:min(78vw,330px)}
.choices.second button{width:100%;animation-duration:1.52s;animation-name:choiceNeonStepSecond}
.choices.second button:nth-of-type(1){animation-delay:0s}
.choices.second button:nth-of-type(2){animation-delay:.76s}
@keyframes choiceNeonStepSecond{0%,49.9%{opacity:1;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--glow),0 0 32px var(--glow);filter:drop-shadow(0 0 12px var(--glow)) drop-shadow(0 0 26px var(--glow))}50%,100%{opacity:.74;text-shadow:0 0 5px var(--ui-glow);filter:none}}
@keyframes choiceNeonStep{0%,19.9%{opacity:1;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--glow),0 0 32px var(--glow);filter:drop-shadow(0 0 12px var(--glow)) drop-shadow(0 0 26px var(--glow))}20%,100%{opacity:.74;text-shadow:0 0 5px var(--ui-glow);filter:none}}

.scene-hand .hand-bg{z-index:1;object-position:center center;filter:brightness(.42) saturate(1.12)}
.hand-img{position:absolute;z-index:4;left:50%;top:50%;width:min(82vw,360px);height:auto;transform:translate(-50%,-50%);opacity:0;filter:drop-shadow(0 0 10px rgba(45,150,25,.38))}
.scene-hand.is-active .hand-img{animation:ghostHandFade 4.8s ease-out both}
@keyframes ghostHandFade{0%{opacity:0;filter:drop-shadow(0 0 3px rgba(45,150,25,.08))}64%{opacity:.56;filter:drop-shadow(0 0 22px rgba(45,150,25,.45))}100%{opacity:1;filter:drop-shadow(0 0 10px rgba(45,150,25,.38))}}

.scene-result .bg-img,.scene-take .bg-img,.scene-warehouse .bg-img,.scene-letter .bg-img,.scene-activity .bg-img,.scene-works .bg-img,.scene-work-detail .bg-img,.scene-logo .bg-img{z-index:1;object-position:center center}
.scene-result .bg-img{filter:saturate(1.14) contrast(1.03)}
.result-keiko-line{position:relative;z-index:5;margin:0 auto 1.2dvh;padding:.55rem .8rem;width:min(88%,420px);border:1px solid rgba(153,249,163,.9);border-radius:6px;background:var(--page-overlay);color:var(--ui-green);font-size:.82rem;line-height:1.45;text-align:left;text-shadow:0 0 8px rgba(45,150,25,.65)}
.scene-take .bg-img,.scene-warehouse .bg-img,.scene-letter .bg-img,.scene-about .bg-img,.scene-activity .bg-img,.scene-works .bg-img,.scene-work-detail .bg-img,.scene-kko-profile .bg-img,.scene-logo .bg-img{filter:saturate(1.12)}
.crt-noise{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.10;background:repeating-linear-gradient(to bottom,rgba(153,249,163,.035) 0,rgba(153,249,163,.035) 1px,transparent 2px,transparent 5px);mix-blend-mode:screen}
.prescription-panel{position:relative;z-index:5;min-height:100%;padding:3dvh 4% 8dvh;display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--ui-green);overflow:visible}
.rx-title{position:relative;z-index:4;margin:0 0 6px;font-size:1.28rem;line-height:1.18;text-shadow:0 0 8px var(--ui-glow),0 0 14px rgba(45,150,25,.7)}
.result-card{position:relative;z-index:2;width:min(66.2vw,285px);max-height:none;object-fit:contain;transform-origin:top center;filter:drop-shadow(0 0 18px rgba(45,150,25,.72));flex-shrink:0}
.scene-result.is-active .result-card.rx-enter{animation:cardSlideIn 2.4s cubic-bezier(.16,.72,.24,1) both,cardPinkBreath 4.2s ease-in-out 2.4s infinite}
.scene-result.archive-result .result-card.rx-enter{animation:none;opacity:1;transform:none;filter:drop-shadow(0 0 18px rgba(45,150,25,.72)) drop-shadow(0 0 42px rgba(45,150,25,.48))}
@keyframes cardSlideIn{0%{transform:translateY(-42px);opacity:0}55%{opacity:.58}100%{transform:translateY(0);opacity:1}}
@keyframes cardPinkBreath{0%,100%{filter:drop-shadow(0 0 10px rgba(45,150,25,.38)) drop-shadow(0 0 22px rgba(45,150,25,.25))}50%{filter:drop-shadow(0 0 24px rgba(45,150,25,.95)) drop-shadow(0 0 54px rgba(45,150,25,.70))}}
.stars{position:relative;z-index:4;margin:14px 0 12px;font-size:1.28rem;letter-spacing:.08em;text-shadow:0 0 10px var(--ui-glow)}
.rx-copy{width:min(92%,390px);display:flex;flex-direction:column;gap:8px;text-align:left;padding:12px 14px 18px;margin-top:4px;border:1px solid var(--ui-green);border-radius:8px;background:var(--panel-overlay);box-shadow:0 0 14px rgba(45,150,25,.34), inset 0 0 16px rgba(45,150,25,.10)}
.rx-block{display:grid;grid-template-columns:5.4em 1fr;gap:.4em;font-size:.98rem;line-height:1.35}
.rx-block b{white-space:nowrap;color:var(--ui-green)}
.rx-block span{color:var(--ui-green)}

.take-panel,.warehouse-panel{position:absolute;z-index:5;left:7%;right:7%;color:var(--ui-green);text-align:center}
.take-panel{position:absolute;inset:0;z-index:5;padding:0;color:var(--ui-green);text-align:left;pointer-events:none}
.take-panel p{margin:0 0 8px;font-size:1.35rem;text-shadow:0 0 8px var(--ui-glow)}
.take-panel .take-menu-item{position:absolute;display:grid;text-align:left;grid-template-columns:calc(116px * var(--return-scale, 1)) 1fr;align-items:center;justify-items:start;padding:0;border:0;background:transparent;color:var(--ui-green);text-decoration:none;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow);box-shadow:none;pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.take-menu-num{display:flex;align-items:center;justify-content:center;width:calc(116px * var(--return-scale, 1));height:calc(116px * var(--return-scale, 1));border:calc(4px * var(--return-scale, 1)) solid var(--ui-green);border-radius:calc(10px * var(--return-scale, 1));box-shadow:0 0 12px rgba(45,150,25,.55), inset 0 0 12px rgba(45,150,25,.12);font-size:calc(56px * var(--return-scale, 1));line-height:1;text-align:center}
.take-menu-label{display:block;text-align:left;justify-self:start;padding-left:calc(56px * var(--return-scale, 1));font-size:calc(58px * var(--return-scale, 1));line-height:1.05;white-space:nowrap;letter-spacing:.02em}
.take-panel button:not(.disabled):not(.staff-only),.take-panel a{opacity:1}
.take-panel .disabled{opacity:.45;cursor:not-allowed}.take-panel .staff-only{opacity:.32;filter:grayscale(1)}
.take-panel button,.take-panel a{font:inherit}

.scene-result::after,.scene-take::after,.scene-warehouse::after,.scene-letter::after,.scene-about::after,.scene-activity::after,.scene-works::after,.scene-work-detail::after,.scene-kko-profile::after,.scene-logo::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.82) 0%,rgba(0,0,0,.42) 7%,rgba(0,0,0,0) 18%,rgba(0,0,0,0) 78%,rgba(0,0,0,.50) 91%,rgba(0,0,0,.88) 100%)}
.scene-about::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.20);pointer-events:none}
.warehouse-panel{top:3.2%;bottom:5%;left:3.5%;right:3.5%;display:flex;flex-direction:column;gap:14px;text-align:left;min-height:0}
.warehouse-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px}
.warehouse-head h1{margin:0;font-size:1.32rem;text-align:center;text-shadow:0 0 12px var(--ui-glow)}
.warehouse-back,.scene-back{padding:0;border:0;background:transparent;color:var(--ui-green);line-height:1;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.warehouse-back{position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:1.65rem}
.scene-back{position:absolute;z-index:8;left:6%;top:4.5%;font-size:1.65rem}
.scene-back[hidden]{display:none}
.sort-tabs{display:flex;align-items:center;justify-content:center;gap:34px}
.sort-tabs button{padding:0;background:transparent;border:0;box-shadow:none;color:var(--ui-green);text-shadow:0 0 7px var(--ui-glow),0 0 16px var(--ui-glow);opacity:.72;font-size:1.42rem;line-height:1}
.sort-tabs button.is-active{opacity:1}.sort-tabs button[data-order='production'].is-active,.sort-tabs button[data-order='popular'].is-active{text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 18px;justify-items:center;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;padding:34px 0 52px;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 88%,transparent 100%)}
.archive-grid::-webkit-scrollbar{display:none}
.archive-card{position:relative;width:100%;min-height:auto;aspect-ratio:150/216;padding:0;border:0;border-radius:0;background:transparent;color:var(--ui-green);text-align:center;box-shadow:none;animation:none}
.archive-card img{display:block;width:100%;height:100%;object-fit:contain;margin:0 auto;image-rendering:auto;filter:none;animation:none}
.archive-title{display:none}
.heart{position:absolute;top:0;right:2px;z-index:2;padding:1px 5px;border-radius:999px;background:rgba(0,0,0,.58);color:var(--ui-green);font-size:.8rem;text-shadow:0 0 8px var(--ui-glow)}


.letter-panel{position:absolute;z-index:5;left:7%;right:7%;top:9%;padding:22px 18px 24px;border:0;border-radius:8px;background:transparent;box-shadow:none;color:var(--ui-green);text-align:center}
.letter-back{position:absolute;left:0;top:-44px;padding:0;border:0;background:transparent;color:var(--ui-green);font-size:1.65rem;line-height:1;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.letter-panel h1{margin:0 0 12px;font-size:1.28rem;font-weight:400;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.letter-panel p{margin:0 0 14px;font-size:.98rem;opacity:.92}
.letter-form{margin:0}
.letter-panel input,.letter-panel textarea{display:block;width:100%;padding:12px;border:1px solid var(--ui-green);border-radius:4px;background:rgba(0,0,0,.34);color:var(--ui-green);font:inherit;line-height:1.5;outline:none;box-shadow:0 0 14px rgba(45,150,25,.35),inset 0 0 22px rgba(0,0,0,.72)}
.letter-panel input{height:44px;margin-bottom:10px}
.letter-panel textarea{height:25dvh;min-height:160px;resize:none}
.letter-panel input::placeholder,.letter-panel textarea::placeholder{color:rgba(153,249,163,.7)}
.letter-panel input:focus,.letter-panel textarea:focus{box-shadow:0 0 12px rgba(45,150,25,.55),0 0 24px rgba(45,150,25,.28)}
.letter-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.letter-send{margin-top:16px;padding:10px 18px;border:0;border-radius:0;background:transparent;color:var(--ui-green);text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow);box-shadow:none;animation:none}
.letter-status{min-height:1.2em;margin-top:12px;font-size:.9rem;color:var(--ui-green);text-shadow:0 0 8px var(--ui-glow)}


.about-panel{position:absolute;z-index:5;left:7%;right:7%;top:6%;bottom:5%;color:var(--ui-green);text-align:left;display:flex;flex-direction:column;min-height:0}
.about-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;margin-bottom:14px}.about-back{position:absolute;left:0;top:50%;transform:translateY(-50%);padding:0;border:0;background:transparent;color:var(--ui-green);font-size:1.65rem;line-height:1;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}.about-title{margin:0;padding:0 0 0 1.8rem;color:var(--ui-green);font-size:1.18rem;font-weight:400;line-height:1.2;letter-spacing:.02em;text-align:center;white-space:nowrap;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.about-card{width:100%;flex:1;min-height:0;overflow-y:auto;padding:34px 18px 52px;border:0;border-radius:0;background:transparent;box-shadow:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 88%,transparent 100%)}
.about-card::-webkit-scrollbar{display:none}
.about-card h1{margin:0 0 18px;font-size:1.18rem;font-weight:400;line-height:1.45;letter-spacing:.02em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.about-card p{margin:0 0 18px;font-size:1rem;line-height:1.75;letter-spacing:.02em;text-shadow:0 0 6px rgba(45,150,25,.65),0 0 14px rgba(0,0,0,.95)}
.about-card h2{margin:2px 0 18px;font-size:1.12rem;font-weight:400;line-height:1.45;letter-spacing:.02em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow),0 0 16px rgba(0,0,0,.95)}
.about-divider{height:1px;margin:14px 0 20px;background:var(--ui-green);box-shadow:0 0 10px rgba(45,150,25,.75)}
.about-note{margin-top:2px}
.about-note p{margin:0 0 8px;font-size:.88rem;line-height:1.55;opacity:.92}

.logo{position:absolute;z-index:5;left:7%;right:7%;top:6%;bottom:5%;padding:12px 14px 18px;text-align:center;text-shadow:none;isolation:isolate;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
.logo::before{content:"";position:absolute;z-index:-2;left:50%;top:20%;width:min(88vw,380px);height:min(54vw,235px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse at center,rgba(45,150,25,.58) 0%,rgba(45,150,25,.34) 34%,rgba(45,150,25,.16) 58%,rgba(45,150,25,0) 76%);filter:blur(18px);opacity:.95;animation:logoGreenBreath 4.2s ease-in-out infinite;pointer-events:none}
.logo::after{content:"";position:absolute;z-index:-1;left:50%;top:20%;width:min(82vw,340px);height:min(42vw,180px);transform:translate(-50%,-50%);background:rgba(0,0,0,.45);border-radius:8px;pointer-events:none}
.scene-logo.is-active .logo{animation:logoFadeIn 2.6s ease-out both}
.logo-img{display:block;width:min(58vw,260px);height:auto;margin:0 auto 10px;filter:drop-shadow(0 0 10px rgba(45,150,25,.38)) drop-shadow(0 0 22px rgba(45,150,25,.25));box-shadow:none;text-shadow:none;animation:logoPulse 2.8s ease-in-out infinite}
.game-credits{position:relative;width:min(82vw,360px);height:58%;margin:0 auto;overflow:hidden;mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 88%,transparent 100%)}
.game-credits-roll{padding-top:52%;color:var(--ui-green);font-size:.84rem;line-height:1.45;letter-spacing:.08em;text-shadow:0 0 7px rgba(45,150,25,.72);animation:creditsRoll 28s linear infinite}
.credits-title{margin-bottom:30px;font-size:1.08rem;letter-spacing:.18em}
.credits-role{margin-top:18px;font-size:.74rem;opacity:.78}
.credits-name{margin-top:4px;font-size:.95rem;letter-spacing:.06em}
.credits-thanks{line-height:1.7}
.credits-final{margin:34px 0 44px;font-size:.92rem;letter-spacing:.05em}
.logo-copy{position:fixed;right:4.8%;bottom:3.8%;z-index:6;color:var(--ui-green);font-size:.78rem;letter-spacing:.04em;text-shadow:0 0 8px rgba(45,150,25,.55)}
@keyframes creditsRoll{0%{transform:translateY(0)}100%{transform:translateY(-72%)}}
@keyframes logoFadeIn{0%{opacity:0;filter:drop-shadow(0 0 2px rgba(45,150,25,.05))}48%{opacity:.38;filter:drop-shadow(0 0 16px rgba(45,150,25,.22))}100%{opacity:1;filter:none}}
@keyframes logoPulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes logoGreenBreath{0%,100%{opacity:.72;filter:blur(16px);transform:translate(-50%,-50%) scale(.94)}50%{opacity:1;filter:blur(25px);transform:translate(-50%,-50%) scale(1.13)}}

@media (max-height:680px){
  .prescription-panel{padding-top:2dvh}
  .result-card{width:min(61.6vw,262px)}
  .rx-title{font-size:1.12rem}
  .stars{margin:10px 0 9px;font-size:1.12rem}
  .rx-block{font-size:.92rem;line-height:1.25}
  .dialog{bottom:7%;height:19%}
  .text{font-size:1.08rem}
  .name{font-size:1.12rem}
  .archive-grid{gap:22px 16px}
}

.scene-kko-profile::before{content:"";position:absolute;inset:0;z-index:2;background:var(--page-overlay);pointer-events:none}
.kko-profile-panel{position:absolute;z-index:5;left:0;right:0;top:0;bottom:0;padding:7% 6% 12%;color:var(--ui-green);text-align:center;overflow-y:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.kko-profile-panel::-webkit-scrollbar{display:none}
.kko-profile-panel h1{margin:0 0 18px;font-size:1.55rem;font-weight:400;letter-spacing:.05em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.kko-profile-img{display:block;width:min(82vw,360px);height:auto;max-height:none;object-fit:contain;margin:0 auto 10px;box-shadow:none;filter:none}
.kko-store-img{width:min(82vw,360px)}
.kko-profile-text{margin:0 auto;padding:0 0 28px;max-width:360px;text-align:left;list-style:none;font-size:1rem;line-height:1.72;letter-spacing:.03em;text-shadow:0 0 6px rgba(45,150,25,.55),0 0 14px rgba(0,0,0,.95)}
.kko-profile-text li{margin:0 0 14px}.kko-profile-text li::before{content:"";}
@media (max-height:680px){.kko-profile-img{max-height:none;margin-bottom:10px}.kko-profile-text{font-size:.96rem;line-height:1.62}.kko-profile-panel h1{font-size:1.38rem;margin-bottom:12px}}


.activity-panel{position:absolute;z-index:5;left:7%;right:7%;top:8%;bottom:5%;color:var(--ui-green);text-align:center;overflow:visible}
.activity-panel::-webkit-scrollbar{display:none}
.activity-back{position:absolute;left:0;top:0;padding:0;border:0;background:transparent;color:var(--ui-green);font-size:1.65rem;line-height:1;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.activity-title{margin:58px auto 26px;font-size:1.62rem;font-weight:400;letter-spacing:.04em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.activity-buttons{display:flex;flex-direction:column;gap:12px;width:100%;margin:0 auto;padding:0 0 18px}
.activity-buttons button{color:var(--ui-green);background:var(--panel-overlay);border:1px solid var(--ui-green);border-radius:6px;padding:11px;text-decoration:none;box-shadow:0 0 14px rgba(45,150,25,.42), inset 0 0 16px rgba(45,150,25,.14);font-size:1rem;line-height:1.35}
.activity-buttons .disabled{opacity:.45;cursor:not-allowed;filter:grayscale(1)}
@media (max-height:680px){.activity-panel{top:6%}.activity-title{margin:48px auto 20px;font-size:1.42rem}.activity-buttons{gap:10px}}


/* === TOP UI FIX:文字は画像で固定表示。CSS文字のズレを防ぐ === */
.top-ui-layout{
  position:absolute;
  inset:0;
  z-index:4;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  image-rendering:pixelated;
  animation:topUiLayoutFloat 3.4s ease-in-out infinite;
  will-change:transform;
}

@keyframes topUiLayoutFloat{
  0%,100%{transform:translate3d(0,-4px,0)}
  50%{transform:translate3d(0,4px,0)}
}

.scene-gate .top-activity-button,
.scene-gate .top-open-button,
.scene-gate .top-underground-button{
  z-index:5;
  background:transparent;
  border:0;
  box-shadow:none;
  text-shadow:none;
  color:transparent;
  opacity:1;
  animation:none;
  -webkit-tap-highlight-color:transparent;
}

.scene-gate .top-activity-button span,
.scene-gate .top-open-button span,
.scene-gate .top-underground-button span{
  display:none;
}

/* 画像上の文字位置に合わせた透明クリック範囲 */
.scene-gate .top-activity-button{left:20.5%;top:14.2%;width:25%;height:8%;}
.scene-gate .top-underground-button{left:76.5%;top:43.5%;width:20%;height:10%;}
.scene-gate .top-open-button{left:36%;top:63.5%;width:28%;height:10%;}

/* return scene controls: return_bg.webp（1080×1920）基準でJS配置 */
.return-controls{position:absolute;inset:0;z-index:6;pointer-events:none}
.return-phone-img,.return-door-img,.return-phone-hit,.return-door-hit{position:absolute;display:block;padding:0;margin:0;border:0;background:transparent;transform:none;transform-origin:top left;pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.return-phone-img,.return-door-img{pointer-events:none;image-rendering:auto}
.return-phone-hit,.return-door-hit{font-size:0;color:transparent;appearance:none;-webkit-appearance:none}
.return-door-open,.return-door-close{z-index:7}
.return-phone-hit{z-index:7}


/* === K子の活動 > 作品提供一覧 === */
.scene-works,.scene-work-detail{overflow:hidden}
.works-panel{position:absolute;z-index:5;left:0;right:0;top:0;bottom:0;color:var(--ui-green);text-align:center;background:rgba(0,0,0,.20)}
.works-head{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:center;min-height:72px;padding:12px 7% 8px;background:linear-gradient(to bottom,rgba(0,0,0,.78),rgba(0,0,0,.30),rgba(0,0,0,0));pointer-events:none}
.works-title{margin:0;font-size:1.62rem;font-weight:400;letter-spacing:.08em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow),0 0 28px rgba(45,150,25,.55)}
.works-back,.work-detail-back{position:absolute;left:7%;top:22px;z-index:9;padding:0;border:0;background:transparent;color:var(--ui-green);font-size:1.65rem;line-height:1;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow);pointer-events:auto}
.works-scroll{position:absolute;inset:0;z-index:6;overflow-y:auto;overflow-x:hidden;padding:92px 5.8% 92px;-webkit-overflow-scrolling:touch;scrollbar-width:none;mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 88%,transparent 100%)}
.works-scroll::-webkit-scrollbar{display:none}
.works-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px;align-items:start;padding-bottom:24px}
.work-card{display:block;width:100%;padding:0;border:0;background:transparent;color:var(--ui-green);text-align:center;cursor:pointer;transform:none;animation:none;-webkit-tap-highlight-color:transparent}
.work-frame{display:block;position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:rgba(0,0,0,.35);border:1px solid rgba(153,249,163,.88);box-shadow:0 0 10px rgba(45,150,25,.50), inset 0 0 10px rgba(45,150,25,.14);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.work-frame img{display:block;width:100%;height:100%;object-fit:cover;background:#fff}
.work-name{display:block;margin-top:8px;font-size:1.05rem;line-height:1.1;letter-spacing:.08em;text-shadow:0 0 7px var(--ui-glow),0 0 16px var(--ui-glow)}
.work-detail-panel{position:absolute;z-index:5;inset:0;color:var(--ui-green);text-align:left;background:rgba(0,0,0,.10)}
.work-detail-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;padding:44px 6.5% 96px;-webkit-overflow-scrolling:touch;scrollbar-width:none;mask-image:linear-gradient(to bottom,#000 0,#000 88%,transparent 100%)}
.work-detail-scroll::-webkit-scrollbar{display:none}
.work-detail-title{margin:0 0 26px;text-align:center;font-size:1.62rem;font-weight:400;line-height:1.08;letter-spacing:.08em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow),0 0 28px rgba(45,150,25,.55)}
.work-detail-body{display:block}
.work-detail-section{margin:0 0 22px}
.work-detail-hero{margin-bottom:10px}
.work-detail-main-img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#000;border:1px solid rgba(153,249,163,.88);box-shadow:0 0 12px rgba(45,150,25,.45),inset 0 0 10px rgba(45,150,25,.12)}
.work-detail-year{margin:0 0 16px 2px;font-size:1.05rem;line-height:1;letter-spacing:.08em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.work-detail-label{margin:-14px 0 14px 2px;font-size:1.34rem;font-weight:400;line-height:1.18;letter-spacing:.05em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
@keyframes scrollHint{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(7px);opacity:1}}
@media (max-width:360px){.work-detail-title{font-size:1.42rem}.work-detail-label{font-size:1.18rem}.works-grid{gap:20px 14px}.work-name{font-size:.96rem}.works-title{font-size:1.45rem}}
@media (max-height:680px){.works-scroll{padding-top:78px}.works-grid{gap:20px 16px}.work-name{font-size:.96rem}.works-head{min-height:62px}.works-back{top:18px}}


/* === 2026-07 coding fix: smartphone native back, detail year position === */
.warehouse-back,.letter-back,.about-back,.activity-back,.works-back,.work-detail-back,.scene-back{display:none!important}
.about-title{padding-left:0}
.work-detail-scroll{padding-top:48px}
.work-detail-title{margin:0 0 10px;text-align:center}
.work-detail-year{margin:0 0 26px;text-align:center;font-size:1.18rem;line-height:1;letter-spacing:.08em;text-shadow:0 0 8px var(--ui-glow),0 0 18px var(--ui-glow)}
.work-detail-hero{margin-bottom:10px}


/* === 2026-07-07 fix: Castaway / tact detail labels === */
.work-detail-label{margin:10px 0 22px 2px}
.work-detail-section{margin:0 0 28px}
.work-detail-hero{margin-bottom:0}
.work-detail-year{margin:0 0 24px;text-align:center}

/* === ABOUT PAGE SCROLL LOCK ===
   「毒ステって？」は縦方向だけスクロール可能にする。
   iOS Safari の斜めスワイプによる左右の揺れも抑制。 */
.scene-about{
  overflow:hidden;
  overscroll-behavior-x:none;
  touch-action:pan-y;
}
.scene-about .about-panel{
  width:auto;
  max-width:100%;
  overflow:hidden;
  overscroll-behavior-x:none;
  touch-action:pan-y;
}
.scene-about .about-card{
  max-width:100%;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior-x:none;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  word-break:normal;
}
.scene-about .about-card > *{
  max-width:100%;
}

.work-detail-intro{margin:0 auto 28px;padding:16px 18px;max-width:680px;border:1px solid rgba(91,255,114,.58);border-radius:8px;background:rgba(0,0,0,.52);text-align:left;line-height:1.8;box-shadow:0 0 18px rgba(45,150,25,.22)}
.work-detail-intro p{margin:0 0 12px}
.work-detail-intro p:last-child{margin-bottom:0}

/* === 2026-07 exhibition detail spacing / intro frame removal === */
.work-detail-intro{
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:0 2px;
}
.work-detail-section,
.work-detail-section.work-detail-hero{
  margin-bottom:28px;
}

#collabBtn{opacity:.45;filter:grayscale(.35);}
#collabBtn:hover{opacity:.7;}
