:root{--blue:#789ee1;--blue2:#b6d6f5;--lav:#a797e7;--pink:#efadd0;--ink:#5069ad;--soft:#7e8fbd;--line:#9fb9e7;--paper:#fbfdff;--shadow:4px 4px 0 rgba(105,121,190,.23)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{color:var(--ink);background:radial-gradient(circle at 12% 20%,#fff 0 2px,transparent 3px),linear-gradient(145deg,#e2efff,#f4ecff 52%,#ffedf7);background-size:70px 70px,auto;font-family:"MS Gothic","Osaka-Mono","Hiragino Kaku Gothic ProN","Yu Gothic",monospace;overflow:hidden}button{font:inherit;color:inherit}img{image-rendering:pixelated;-webkit-user-drag:none}
.site-shell{position:relative;width:min(1500px,calc(100vw - 24px));height:min(920px,calc(100vh - 24px));min-height:700px;margin:12px auto;border:4px solid #8d9fe0;border-radius:24px;background:#fbfdff;box-shadow:0 0 0 5px rgba(255,255,255,.78),0 0 0 8px rgba(136,152,218,.32),0 22px 70px rgba(78,91,157,.25);overflow:hidden;isolation:isolate}.site-shell:after{content:"";position:absolute;z-index:30;pointer-events:none;inset:54px 0 68px;background:repeating-linear-gradient(0deg,rgba(83,105,171,.035) 0 1px,transparent 1px 4px)}
.browser-bar{position:relative;z-index:40;height:54px;display:flex;align-items:stretch;gap:8px;padding:0 12px;color:#fff;border-bottom:3px solid #8194d1;background:linear-gradient(90deg,#899ee5,#ada2e9 55%,#e8b8d9);text-shadow:1px 1px #7584c5}.traffic{display:flex;align-items:center;gap:6px}.traffic i{width:17px;height:17px;border:3px solid #fff;background:var(--pink);box-shadow:2px 2px rgba(87,100,171,.35)}.traffic i:nth-child(2){background:#ffe69d}.traffic i:nth-child(3){background:#bce3df}.browser-tab{min-width:270px;border:0;padding:0 26px 0 16px;color:#fff;background:rgba(89,104,195,.4);clip-path:polygon(0 0,92% 0,100% 100%,0 100%);text-align:left;font-weight:bold;letter-spacing:.05em;cursor:pointer}.browser-bar nav{min-width:0;margin-left:auto;display:flex;overflow-x:auto;scrollbar-width:none}.browser-bar nav::-webkit-scrollbar{display:none}.browser-bar nav button{height:100%;flex:0 0 auto;padding:0 12px;border:0;color:rgba(255,255,255,.94);background:transparent;font-size:12px;font-weight:bold;cursor:pointer}.browser-bar nav button:before{content:"✧ ";color:#ffe0f1}.browser-bar nav button:hover,.browser-bar nav button.active{background:rgba(255,255,255,.18)}.browser-bar nav .secret-link{color:#fff4a6}.header-cat{width:44px;flex:0 0 auto;border:0;border-left:2px solid rgba(255,255,255,.35);color:#fff;background:transparent;font-size:21px;cursor:pointer}
.screen{position:relative;height:calc(100% - 122px);overflow:hidden;background:linear-gradient(rgba(255,255,255,.82),rgba(247,250,255,.9)),linear-gradient(90deg,transparent 31px,rgba(124,154,215,.1) 32px),linear-gradient(transparent 31px,rgba(124,154,215,.1) 32px);background-size:auto,32px 32px,32px 32px}.view{display:none;height:100%}.view.active{display:block}.home{position:relative;overflow:hidden}.sparkles span{position:absolute;z-index:1;color:#bba6ea;font-size:24px;animation:spark 1.8s steps(2,end) infinite}.sparkles span:nth-child(1){left:7%;top:12%}.sparkles span:nth-child(2){left:18%;top:28%;color:#ebb3d3;animation-delay:.4s}.sparkles span:nth-child(3){right:8%;top:18%;color:#ebb3d3;animation-delay:.8s}.sparkles span:nth-child(4){right:20%;top:30%;color:#8eb7e9}.sparkles span:nth-child(5){left:4%;bottom:18%}.sparkles span:nth-child(6){right:3%;bottom:22%;animation-delay:1s}
.official-logo{position:relative;z-index:5;display:block;width:min(940px,83%);height:245px;margin:2px auto 0;padding:0;border:0;background:transparent;cursor:pointer}.official-logo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(4px 5px 0 rgba(160,149,225,.16))}.official-logo:hover{transform:translateY(-2px)}.hero-stage{position:absolute;z-index:3;inset:220px 18px 0}.hero-stage:before{content:"";position:absolute;left:1%;right:1%;bottom:3%;height:18%;border-top:3px solid rgba(126,151,212,.38);background:linear-gradient(90deg,transparent 31px,rgba(125,151,210,.14) 32px),linear-gradient(transparent 23px,rgba(125,151,210,.1) 24px),rgba(238,245,255,.74);background-size:32px 100%,100% 24px,auto;transform:perspective(240px) rotateX(18deg);transform-origin:bottom}.hero-girls{position:absolute;inset:0}.hero-girl{position:absolute;z-index:2;bottom:2%;width:21%;height:100%;padding:0;border:0;background:transparent;cursor:pointer}.hero-girl:hover{transform:translateY(-9px)}.hero-girl img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.hero-girl.pos-0{left:0}.hero-girl.pos-1{left:17%}.hero-girl.pos-2{right:17%}.hero-girl.pos-3{right:0}
.game-menu{position:absolute;z-index:6;left:50%;top:15%;width:min(330px,27%);padding:14px;transform:translateX(-50%);border:4px double #9baee6;background:rgba(255,255,255,.95);box-shadow:6px 6px rgba(149,162,220,.3)}.game-menu>small{display:block;padding:3px 6px 8px;color:#8979cf;letter-spacing:.16em}.game-menu button{width:100%;display:block;padding:10px 8px;border:0;background:transparent;color:#6d75c1;text-align:left;font-size:clamp(14px,1.25vw,19px);font-weight:bold;cursor:pointer}.game-menu button:hover,.game-menu .primary{color:#8d69cf;background:linear-gradient(90deg,#eef6ff,#fff0f7)}.game-menu .primary{font-size:clamp(17px,1.5vw,23px)}.game-menu p{margin:8px 5px 0;padding-top:8px;border-top:1px dashed #c0c9e8;color:#8997bb;font-size:10px;line-height:1.6}
.panel{padding:18px;overflow:auto}.panel-title{position:sticky;z-index:20;top:0;height:58px;display:flex;align-items:center;justify-content:space-between;padding:6px 10px 6px 18px;color:#fff;border:3px solid #798dce;background:linear-gradient(90deg,#7f9ade,#aaa1e8 58%,#edb7d7);box-shadow:var(--shadow);text-shadow:1px 1px #6f7bbb}.panel-title>div{display:flex;align-items:baseline;gap:16px}.panel-title h1{margin:0;font-size:20px}.panel-title small{letter-spacing:.13em;font-weight:bold}.panel-title button{width:36px;height:34px;border:3px outset #fff;color:#7482bf;background:#fff;cursor:pointer}
.intro-card,.archive-toolbar,.season,.web-clap,.secret-terminal,.secret-card,.long-card{border:3px solid var(--line);background:rgba(255,255,255,.95);box-shadow:var(--shadow)}.intro-card{margin:14px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 18px}.intro-card>div{display:grid;gap:4px}.intro-card span{color:var(--soft);font-size:12px}.intro-card strong{color:#8976cf;white-space:nowrap}.intro-card i{font-style:normal}.signal-map{position:relative;min-height:530px;display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));grid-template-rows:repeat(2,1fr);gap:52px 30px;padding:42px 50px;overflow:hidden;border:3px solid #9ab9e9;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.96),transparent 35%),linear-gradient(rgba(238,248,255,.9),rgba(222,239,255,.95)),linear-gradient(90deg,transparent 39px,rgba(115,159,217,.13) 40px),linear-gradient(transparent 39px,rgba(115,159,217,.13) 40px);background-size:auto,auto,40px 40px,40px 40px}.signal-map:before{content:"✦　＋　♡　◇　✧";position:absolute;left:5%;top:45%;color:rgba(165,141,222,.4);font-size:23px;letter-spacing:1em}.wire{position:absolute;height:0;border-top:4px dotted rgba(119,158,217,.5);transform-origin:left}.wire.a{width:62%;left:11%;top:26%;transform:rotate(5deg)}.wire.b{width:53%;left:20%;top:68%;transform:rotate(-7deg)}.wire.c{width:36%;left:42%;top:50%;transform:rotate(25deg)}.motif-node{position:relative;z-index:3;width:106px;height:96px;place-self:center;display:grid;place-items:center;align-content:center;gap:6px;border:4px solid #81a6df;color:#6c85c6;background:#fff;box-shadow:6px 6px #cfddf4;cursor:pointer}.motif-node:hover{transform:translate(-3px,-5px);background:#fff0f7}.motif-node span{font-size:38px;filter:saturate(.72)}.motif-node span img{display:block;width:72px;height:72px;object-fit:contain;image-rendering:pixelated}.motif-node small{font-size:9px}.motif-node.observed{border-color:#bd8bd6;background:#fff3f9}.motif-node.observed:after{content:"✓";position:absolute;right:-10px;top:-12px;width:26px;height:26px;display:grid;place-items:center;color:#fff;background:#d98fbd;border:2px solid #fff}.motif-node.node-2,.motif-node.node-7{transform:translateY(20px)}.motif-node.node-3,.motif-node.node-9{transform:translateY(-18px)}.map-message{position:absolute;z-index:5;left:50%;top:50%;width:260px;display:grid;gap:7px;padding:13px;transform:translate(-50%,-50%);border:3px double #94afe2;color:#7970c2;background:rgba(255,255,255,.95);text-align:center;box-shadow:4px 4px rgba(139,157,216,.25)}.map-message span{font-size:10px;letter-spacing:.17em}
.archive-toolbar{margin:14px 0 0;display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-width:2px}.archive-toolbar b{color:#aa6dc1}.archive-toolbar button{position:relative;z-index:1;border:2px solid #a6b9e1;background:#fff;padding:6px 10px;cursor:pointer;pointer-events:auto;touch-action:manipulation}.archive-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;padding:16px 0 30px}.archive-card{min-height:310px;display:grid;grid-template-rows:auto 215px auto 1fr;padding:9px;border:3px solid #9eb9e7;color:var(--ink);background:rgba(255,255,255,.93);box-shadow:4px 4px rgba(141,158,216,.23);text-align:center;cursor:pointer}.archive-card:hover{transform:translateY(-3px);border-color:#a888d8}.archive-card>span{justify-self:start;color:#8977ce;font-size:10px}.archive-image{display:grid;place-items:center;overflow:hidden;border-bottom:1px dashed #c0cae7}.archive-image img{width:100%;height:100%;object-fit:contain}.archive-image i{font-style:normal;font-size:50px;filter:grayscale(1);opacity:.2}.archive-card h3{margin:9px 0 4px;font-size:14px}.archive-card p{margin:0;color:var(--soft);font-size:10px;line-height:1.5}.archive-card.locked{background:repeating-linear-gradient(135deg,#fbfcff 0 8px,#f1f4fc 8px 16px)}
.diary-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;padding:18px 2px 30px;align-items:start}.diary-feed{display:grid;gap:16px}.season{padding:16px 20px;background:linear-gradient(100deg,#eff8ff,#fff0f7)}.season span{color:#9f75c7;font-size:10px;letter-spacing:.13em}.season h2{margin:8px 0;color:#6e77bb;font-size:17px}.season p{margin:0;font-size:12px}.diary-entry{border:3px solid #a4bce6;background:rgba(255,255,255,.95);box-shadow:4px 4px rgba(147,160,216,.22)}.diary-entry>header{display:flex;gap:18px;padding:9px 14px;color:#fff;background:linear-gradient(90deg,#849edc,#b8a7e6,#ebb9d7)}.diary-entry time{font-weight:bold}.diary-body{display:grid;grid-template-columns:170px 1fr;align-items:center;min-height:220px;padding:12px 22px}.diary-body img{width:170px;height:190px;object-fit:contain}.diary-body p{margin:0;white-space:pre-line;line-height:2.05;font-size:13px}.diary-entry.locked{opacity:.73}.locked-copy{padding:35px;color:#8b95b9;text-align:center}.web-clap{position:sticky;top:76px;display:grid;gap:9px;padding:16px}.web-clap b{color:#916cc4}.web-clap i{font-style:normal}.web-clap p{margin:0;padding:8px;border:1px dashed #b5c4e4;background:#f9fbff;font-size:11px}.web-clap button{margin-top:5px;padding:10px;border:3px solid #d694bc;color:#a9638d;background:#fff0f7;box-shadow:3px 3px #ead0e2;cursor:pointer}.web-clap small{color:#929bb7;font-size:9px;line-height:1.5}
.text-view{padding-bottom:42px}.long-card{width:min(760px,92%);margin:28px auto;padding:34px 54px;line-height:2.1;text-align:center}.long-card h2{margin:0 0 22px;color:#7c71c2;font-size:22px}.long-card p{margin:0 0 18px}.admin-cat{width:100px;margin:0 auto 22px;padding:12px;border:3px solid #9fbbe8;color:#8973c9;background:#eef7ff;font-size:19px}.admin-card dl{margin:30px 0 0;padding-top:18px;border-top:2px dashed #aebde3}.admin-card dl div{display:grid;grid-template-columns:110px 1fr;border-bottom:1px dotted #bbc7e5}.admin-card dt{color:#8d7dca;font-weight:bold}.admin-card dd{margin:0}.poem-card{width:min(680px,92%);background:linear-gradient(#fff,#f7f3ff)}.signal-heart{width:54px;height:48px;display:grid;place-items:center;margin:0 auto 24px;border:3px solid #96b3e3;color:#e392bd;background:#edf7ff;font-size:28px;animation:heart 1.4s steps(2,end) infinite}
.secret-terminal{margin:16px 0;display:grid;gap:8px;padding:16px 20px;color:#6e78bb;background:#f1f8ff}.secret-terminal span{font-size:12px}.secret-terminal b{color:#9767c0}.secret-terminal p{margin:0;font-size:11px}.secret-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;padding:6px 2px 30px}.secret-card{min-height:190px;padding:22px}.secret-card>span{font-size:10px;letter-spacing:.15em}.secret-card h2{margin:12px 0;color:#826dc3;font-size:18px}.secret-card p{margin:0;line-height:1.9;font-size:12px}.secret-card.locked{color:#9ca5c2;background:repeating-linear-gradient(135deg,#fbfcff 0 9px,#f0f3fa 9px 18px);filter:grayscale(.4)}.secret-card.open{border-color:#b889dc;background:linear-gradient(135deg,#f1f8ff,#fff1f8)}
.status-bar{position:relative;z-index:40;height:68px;display:grid;grid-template-columns:220px minmax(0,1fr) 300px 210px;gap:10px;align-items:center;padding:7px 14px;border-top:3px solid #9eb5e3;background:linear-gradient(90deg,#ecf6ff,#f5f1ff 55%,#fff0f7)}.player,.welcome,.counter{height:49px;display:flex;align-items:center;justify-content:center;gap:10px;border:2px solid #a6bce7;background:rgba(255,255,255,.76)}.player button{border:0;color:#836ec2;background:transparent;font-size:20px;cursor:pointer}.player b{color:#df99bc;letter-spacing:-.15em}.welcome{color:#7580bf;font-weight:bold;letter-spacing:.08em;cursor:pointer}.counter{justify-content:space-around;color:#8277c6}.admin-room-button{position:relative;height:49px;display:grid;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:8px;padding:4px 10px;border:3px solid #e69ac9;border-radius:15px;color:#756ab8;background:linear-gradient(180deg,#fff9fd 0%,#ffddec 54%,#f8c8e2 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.9),inset 0 -4px 0 rgba(209,119,171,.18),3px 3px 0 rgba(137,116,192,.22);text-align:left;cursor:pointer;overflow:hidden}.admin-room-button:before,.admin-room-button:after{content:"✦";position:absolute;color:#c7a4e8;font-size:10px}.admin-room-button:before{left:5px;top:3px}.admin-room-button:after{right:24px;bottom:3px}.admin-room-button:hover{filter:brightness(1.035);transform:translateY(-1px)}.admin-room-button:active{transform:translate(2px,2px);box-shadow:inset 0 0 0 2px rgba(255,255,255,.8),inset 0 3px 5px rgba(145,93,156,.16)}.admin-room-door{width:34px;height:38px;display:grid;place-items:center;border:2px solid #df8fc0;border-radius:8px;color:#d77aae;background:linear-gradient(90deg,#ffd6e9,#fff 50%,#f4c7e1);box-shadow:inset 0 0 0 2px #fff;font-size:20px}.admin-room-label{min-width:0;line-height:1.05}.admin-room-label small{display:block;margin-bottom:2px;color:#a18bc7;font-size:8px;letter-spacing:.08em}.admin-room-label b{display:block;color:#7867b8;font-size:14px;white-space:nowrap}.admin-room-arrow{color:#e47db3;font-size:17px;text-shadow:1px 1px #fff}
.modal{position:fixed;z-index:100;inset:0;display:none;place-items:center;padding:18px;background:rgba(73,80,135,.38);backdrop-filter:blur(2px)}.modal.open{display:grid}.modal-window{width:min(780px,96vw);max-height:92vh;overflow:auto;border:4px solid #829bdb;background:#fbfdff;box-shadow:12px 12px rgba(104,114,174,.28)}.modal-window>header{position:sticky;z-index:5;top:0;min-height:48px;display:flex;align-items:center;justify-content:space-between;padding-left:16px;color:#fff;background:linear-gradient(90deg,#7896dc,#aa9fe8,#ecb4d5)}.modal-window>header button{width:42px;align-self:stretch;border:3px outset #fff;color:#6e7db8;background:#fff;cursor:pointer}.profile-content{display:grid;grid-template-columns:43% 1fr;gap:24px;padding:24px}.profile-image{min-height:430px;display:grid;place-items:center;border:2px dashed #bdc8e8;background:linear-gradient(#f4f9ff,#fff1f7)}.profile-image img{width:100%;height:430px;object-fit:contain}.profile-copy>span{color:#9e73ca;font-size:11px;letter-spacing:.15em}.profile-copy h2{margin:8px 0;color:#7567bb;font-size:30px}.profile-copy>strong{display:block;color:#b96c99;font-size:12px}.profile-copy>p{line-height:1.9;font-size:13px}.profile-copy h3{margin:18px 0 8px;border-bottom:2px dashed #b8c5e6;color:#8171c2;font-size:14px}.profile-copy ul{margin:0;padding-left:20px;line-height:1.8;font-size:12px}.profile-copy button{font:inherit}
.pixel-diary-button{position:relative;width:min(430px,66%);min-height:72px;margin:20px 0 6px auto;display:grid;grid-template-columns:42px minmax(0,1fr) 24px;align-items:center;gap:9px;padding:7px 10px;border:0;color:#6f63b6;background:#fff;box-shadow:0 -4px 0 #d7c9f3 inset,0 4px 0 #9a82d3 inset,4px 0 0 #9a82d3 inset,-4px 0 0 #9a82d3 inset,6px 6px 0 rgba(120,103,180,.22);cursor:pointer;image-rendering:pixelated;text-align:left;overflow:hidden}
.pixel-diary-button:before{content:"";position:absolute;inset:5px;border:2px dashed #c4b6eb;pointer-events:none}
.pixel-diary-button:after{content:"✦";position:absolute;right:34px;top:6px;color:#e7a6cc;font-size:10px;animation:spark 1.8s steps(2,end) infinite}
.pixel-diary-button:hover{transform:translate(-2px,-2px);background:#fff5fb;box-shadow:0 -4px 0 #f1c8df inset,0 4px 0 #a98bdd inset,4px 0 0 #a98bdd inset,-4px 0 0 #a98bdd inset,8px 8px 0 rgba(120,103,180,.22)}
.pixel-diary-button:active{transform:translate(3px,3px);box-shadow:0 -3px 0 #d7c9f3 inset,0 3px 0 #8e78c8 inset,3px 0 0 #8e78c8 inset,-3px 0 0 #8e78c8 inset,2px 2px 0 rgba(120,103,180,.18)}
.pixel-diary-icon{position:relative;z-index:1;width:36px;height:36px;display:grid;place-items:center;border:3px solid #8f7bc9;color:#dc8fbd;background:linear-gradient(135deg,#edf7ff 0 50%,#ffeaf5 50%);box-shadow:2px 2px 0 #d9cdf1;font-size:20px;line-height:1}
.pixel-diary-copy{position:relative;z-index:1;display:grid;gap:2px;min-width:0}
.pixel-diary-copy small{color:#a18bc8;font-size:8px;letter-spacing:.16em}
.pixel-diary-copy b{color:#7364b8;font-size:14px;letter-spacing:.04em}
.pixel-diary-arrow{position:relative;z-index:1;color:#e18ab8;font-size:16px;text-shadow:2px 2px 0 #f7d8e9}
.toast{position:fixed;z-index:150;left:50%;bottom:30px;width:min(610px,calc(100vw - 28px));padding:13px 18px;transform:translate(-50%,20px);border:3px solid #8d9fd9;color:#6c6eb8;background:rgba(255,255,255,.98);box-shadow:6px 6px rgba(112,122,183,.24);text-align:center;font-size:12px;opacity:0;visibility:hidden;transition:.15s}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

to{opacity:1}}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes spark{0%,45%{opacity:.25}50%,100%{opacity:1}}@keyframes heart{0%,50%{color:#e392bd}51%,100%{color:#94aee2}}
@media(max-width:1080px){.browser-tab{min-width:210px;font-size:11px}.browser-bar nav button{padding:0 8px;font-size:10px}.game-menu{width:30%}.archive-grid{grid-template-columns:repeat(3,minmax(165px,1fr))}.signal-map{padding-inline:22px;gap-inline:15px}.motif-node{width:88px}}
@media(max-width:760px){body{overflow:hidden;background:#eef4ff}.site-shell{width:100%;height:100svh;min-height:620px;margin:0;border:0;border-radius:0;box-shadow:none}.browser-bar{height:50px;padding:0 5px;gap:3px}.traffic{display:none}.browser-tab{min-width:160px;max-width:160px;padding:0 10px;font-size:9px}.browser-bar nav button{padding:0 10px}.header-cat{width:38px}.site-shell:after{inset:50px 0 70px}.screen{height:calc(100% - 120px)}.official-logo{width:96%;height:185px}.hero-stage{inset:170px 4px 0}.hero-girl{width:37%;height:64%}.hero-girl.pos-0{left:-5%}.hero-girl.pos-1{left:18%}.hero-girl.pos-2{right:18%}.hero-girl.pos-3{right:-5%}.game-menu{top:2%;width:72%}.game-menu button{padding:8px;font-size:14px}.game-menu .primary{font-size:18px}.game-menu p{display:none}.panel{padding:8px 8px 22px}.panel-title{height:52px;padding-left:10px}.panel-title small{display:none}.panel-title h1{font-size:16px}.intro-card{align-items:flex-start;padding:10px}.intro-card span{display:none}.intro-card strong{font-size:11px}.signal-map{min-height:720px;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,1fr);gap:28px 55px;padding:45px 38px}.wire{display:none}.motif-node{width:100px;height:92px}.motif-node.node-2,.motif-node.node-7,.motif-node.node-3,.motif-node.node-9{transform:none}.map-message{position:sticky;left:auto;top:auto;bottom:10px;width:100%;grid-column:1/-1;transform:none;align-self:end}.archive-grid{grid-template-columns:repeat(2,minmax(130px,1fr));gap:9px}.archive-card{min-height:265px;grid-template-rows:auto 170px auto 1fr}.archive-card p{display:none}.diary-layout{grid-template-columns:1fr}.diary-body{grid-template-columns:110px 1fr;padding:10px}.diary-body img{width:110px;height:150px}.diary-body p{font-size:11px}.web-clap{position:static}.long-card{width:100%;margin:14px auto;padding:24px 18px;font-size:12px}.secret-grid{grid-template-columns:1fr}.status-bar{height:70px;grid-template-columns:110px 88px minmax(160px,1fr);gap:5px;padding:6px}.player,.welcome{height:54px}.player{gap:3px;font-size:9px}.welcome{font-size:8px;line-height:1.15;letter-spacing:0;padding:4px}.admin-room-button{height:54px;grid-template-columns:37px minmax(0,1fr) 17px;gap:5px;padding:3px 7px;border-radius:14px}.admin-room-door{width:31px;height:41px;font-size:18px}.admin-room-label small{font-size:6px}.admin-room-label b{font-size:12px;line-height:1.15;white-space:normal}.admin-room-arrow{font-size:14px}.counter{display:none}.profile-content{grid-template-columns:1fr;padding:14px}.profile-image{min-height:300px}.profile-image img{height:300px}.profile-copy h2{font-size:25px}.modal-window>header{font-size:10px}}
@media(max-width:760px){.pixel-diary-button{width:68%;max-width:100%;min-height:66px;margin:20px 0 6px auto;grid-template-columns:40px minmax(0,1fr) 22px;padding:7px 9px}.pixel-diary-icon{width:32px;height:32px;font-size:18px}.pixel-diary-copy b{font-size:13px}.pixel-diary-copy small{font-size:7px}}
@media(max-width:420px){.browser-tab{min-width:140px;max-width:140px}.official-logo{height:160px}.hero-stage{inset:145px 2px 0}.hero-girl{width:43%;height:58%}.hero-girl.pos-0{left:-11%}.hero-girl.pos-1{left:12%}.hero-girl.pos-2{right:12%}.hero-girl.pos-3{right:-11%}.game-menu{width:78%}.archive-card{min-height:225px;grid-template-rows:auto 145px auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* SIGNAL SEARCH / INTERNET OCEAN */
.search-panel .panel-title{position:relative;top:auto;height:50px;padding:5px 8px 5px 18px;border:2px solid #8772c8;border-bottom:2px solid #8e81ca;color:#7065ae;background:linear-gradient(90deg,#f7e8ff 0%,#f2ddf6 52%,#f7e4f0 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.72);text-shadow:none}
.search-panel .panel-title>div{width:calc(100% - 48px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0}
.search-panel .panel-title small{font-size:12px;letter-spacing:.14em}
.search-panel .panel-title h1{font-size:17px;font-weight:500;text-align:left}
.search-panel .panel-title button{width:34px;height:32px;padding:0;border:2px solid #8176bd;color:#746ab0;background:#fff9ff;box-shadow:inset 0 0 0 2px #eee8fa;font-size:18px;line-height:1;cursor:pointer}
.search-panel{padding-bottom:28px}
.signal-map{position:relative;display:block;min-height:680px;margin:0;padding:0;overflow:hidden;border:2px solid #8779c3;border-top:0;background:linear-gradient(rgba(255,255,255,.94),rgba(255,255,255,.96)),linear-gradient(90deg,transparent 31px,rgba(129,111,191,.055) 32px),linear-gradient(transparent 31px,rgba(129,111,191,.055) 32px);background-size:auto,32px 32px,32px 32px;isolation:isolate}
.signal-map:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 30%,rgba(228,208,246,.17),transparent 18%),radial-gradient(circle at 76% 42%,rgba(202,224,255,.2),transparent 22%),radial-gradient(circle at 48% 82%,rgba(246,212,231,.16),transparent 19%);pointer-events:none}
.map-message{position:absolute;z-index:6;left:5%;top:4%;width:auto;display:block;padding:0;transform:none;border:0;color:#746ab4;background:transparent;text-align:left;box-shadow:none;pointer-events:none}
.map-message span{display:block;margin-bottom:8px;font-size:12px;font-weight:bold;letter-spacing:.14em}
.map-message p{margin:0;color:#7669b2;font-size:12px;font-weight:600;line-height:1.8;letter-spacing:.03em}
.map-prompt{position:absolute;z-index:6;right:5%;top:5%;color:#746ab4;font-size:12px;letter-spacing:.14em;pointer-events:none}
.map-prompt:after{content:"✦";display:inline-block;margin-left:12px;color:#e4a1ca;animation:signal-twinkle 1.9s steps(2,end) infinite}
.map-observed{position:absolute;z-index:7;left:3.5%;bottom:4%;color:#6f65ae;font-size:12px;letter-spacing:.08em;white-space:nowrap}
.map-observed i{font-style:normal;color:#ed8cb9;font-size:19px;font-weight:500;letter-spacing:.14em}
.map-note{position:absolute;z-index:7;right:3.5%;bottom:4.2%;color:#776db5;font-size:10px;letter-spacing:.025em}
.map-sparkles{position:absolute;z-index:1;inset:0;pointer-events:none}
.map-sparkles i{position:absolute;color:#d99fcd;font-style:normal;font-size:16px;animation:signal-twinkle 2.4s steps(2,end) infinite}
.map-sparkles i:nth-child(1){left:7%;top:21%}.map-sparkles i:nth-child(2){left:28%;top:35%;animation-delay:.5s}.map-sparkles i:nth-child(3){left:62%;top:27%;color:#a7c3eb}.map-sparkles i:nth-child(4){right:7%;top:23%;animation-delay:1s}.map-sparkles i:nth-child(5){left:8%;top:63%;color:#a9c5ed}.map-sparkles i:nth-child(6){right:10%;top:67%;animation-delay:.7s}.map-sparkles i:nth-child(7){left:46%;top:78%;color:#aec7e9}.map-sparkles i:nth-child(8){right:27%;top:84%;animation-delay:1.2s}
.motif-node,.motif-node.observed{position:absolute;z-index:4;left:calc(var(--signal-x) + var(--jitter-x));top:calc(var(--signal-y) + var(--jitter-y));width:92px;height:92px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:0;transform:translate(-50%,-50%);border:0;border-radius:0;color:inherit;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.motif-drift{display:grid;place-items:center;width:100%;height:100%;animation:motif-float var(--float-time) ease-in-out infinite alternate}
.motif-art{position:relative;display:grid;place-items:center;width:84px;height:84px;transition:transform .16s ease,filter .16s ease,opacity .18s ease;transform-origin:center}
.motif-art img{display:block;width:80px;height:80px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 7px 1px rgba(181,147,220,.13))}
.motif-fallback{display:grid;place-items:center;width:76px;height:76px;border:2px dashed #c5afe0;border-radius:16px;color:#8a75c4;background:#fff8fd;box-shadow:0 7px 0 rgba(184,155,217,.12);font-style:normal;font-size:42px;filter:saturate(.68)}
.motif-fallback[hidden]{display:none}
.motif-node.observed .motif-art{opacity:.68;filter:drop-shadow(0 0 7px rgba(225,133,190,.55))}
.motif-node.observed .motif-drift{animation-duration:var(--float-time-observed)}
.observed-check{position:absolute;z-index:4;right:1px;top:2px;width:17px;height:17px;display:grid;place-items:center;border:1px solid #fff;color:#fff;background:#da93bd;box-shadow:1px 1px 0 #a985c5;font-style:normal;font-size:10px;line-height:1}
.motif-node.discovering{z-index:10;pointer-events:none}
.motif-node.discovering .motif-art{animation:observe-pop .22s ease-out both;filter:drop-shadow(0 0 12px rgba(232,124,189,.9)) brightness(1.1)}
@media(hover:hover) and (pointer:fine){.motif-node:hover{transform:translate(-50%,-50%);background:transparent}.motif-node:hover .motif-art{transform:scale(1.1) rotate(2.5deg);filter:drop-shadow(0 0 9px rgba(228,139,194,.62)) brightness(1.04)}.motif-node:focus-visible{outline:2px dashed #a985cf;outline-offset:2px}}
@keyframes motif-float{0%{transform:translate(var(--float-x-neg),var(--float-y-up))}50%{transform:translate(0,var(--float-y))}100%{transform:translate(var(--float-x),var(--float-y-up-end))}}
@keyframes observe-pop{0%{transform:scale(1) translateY(0)}42%{transform:scale(1.18) translateY(-9px)}72%{transform:scale(.94) translateY(1px)}100%{transform:scale(1) translateY(0)}}
@keyframes signal-twinkle{0%,45%{opacity:.28}50%,100%{opacity:1}}

@media(max-width:1080px){.signal-map{padding:0}.motif-node{width:90px;height:90px}.motif-art{width:82px;height:82px}.motif-art img{width:76px;height:76px}}
@media(max-width:760px){.search-panel .panel-title{height:48px;padding-left:11px}.search-panel .panel-title>div{grid-template-columns:1fr 1fr}.search-panel .panel-title small{display:block;font-size:9px}.search-panel .panel-title h1{font-size:14px}.signal-map{min-height:790px;padding:0}.map-message{left:5%;top:3.5%}.map-message span{font-size:10px}.map-message p{font-size:11px;line-height:1.72}.map-prompt{right:4.5%;top:4%;font-size:9px}.map-prompt:after{margin-left:5px}.motif-node{width:94px;height:94px}.motif-art{width:88px;height:88px}.motif-art img{width:84px;height:84px}.motif-fallback{width:80px;height:80px;font-size:43px}.map-observed{left:4%;bottom:2.4%;font-size:10px}.map-observed i{font-size:18px}.map-note{right:4%;bottom:2.7%;max-width:55%;font-size:8px;line-height:1.5;text-align:right}}
@media(max-width:420px){.signal-map{min-height:750px}.map-message p{font-size:10px}.motif-node{width:88px;height:88px}.motif-art{width:84px;height:84px}.motif-art img{width:80px;height:80px}.motif-fallback{width:74px;height:74px;font-size:39px}.map-note{max-width:50%}}

/* GIRL PROFILE: keep the profile as a true full-screen page. */
.modal{padding:0}
.modal-window{width:100vw;height:100vh;height:100dvh;max-height:none;border:0;box-shadow:none}

/* GIRL DIARY: prominent game-style call to action. */
.pixel-diary-button{width:100%;max-width:470px;min-height:84px;margin:22px 0 24px;padding:9px 13px;border:0;background:linear-gradient(180deg,#fff8fd 0%,#ffd9ed 52%,#f1d9ff 100%);box-shadow:0 -5px 0 #f3bad8 inset,0 5px 0 #967bd3 inset,5px 0 0 #967bd3 inset,-5px 0 0 #967bd3 inset,8px 8px 0 rgba(111,86,179,.27);animation:diary-button-glow 2.2s ease-in-out infinite}
.pixel-diary-button:before{inset:7px;border:3px dashed #a68cde}
.pixel-diary-button:after{right:43px;top:9px;color:#ef79b4;font-size:14px}
.pixel-diary-icon{width:44px;height:44px;border-color:#8a70cb;color:#e56ca9;background:linear-gradient(135deg,#edf7ff 0 50%,#ffd6ec 50%);font-size:24px}
.pixel-diary-copy small{color:#8b75c7;font-size:9px;font-weight:bold}
.pixel-diary-copy b{color:#6653b0;font-size:18px;font-weight:800;letter-spacing:.06em;text-shadow:1px 1px 0 #fff}
.pixel-diary-arrow{color:#e86fab;font-size:25px;text-shadow:2px 2px 0 #fff}
@keyframes diary-button-glow{0%,100%{filter:drop-shadow(0 0 0 rgba(235,112,174,0))}50%{filter:drop-shadow(0 0 7px rgba(235,112,174,.38))}}
@media(max-width:760px){.pixel-diary-button{position:sticky;z-index:4;bottom:max(10px,env(safe-area-inset-bottom));width:100%;max-width:none;min-height:80px;margin:20px 0 24px;grid-template-columns:48px minmax(0,1fr) 28px;padding:9px 12px}.pixel-diary-copy b{font-size:17px}.pixel-diary-copy small{font-size:8px}.pixel-diary-arrow{font-size:24px}}
\n\n/* SIGNAL SEARCH: targeted mobile overlap and observed-state fix */
.search-panel .observed-check{display:none!important}
.search-panel .motif-fallback{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.search-panel .motif-node.observed .motif-art{opacity:.58;filter:none}

@media(max-width:760px){
  .search-panel .signal-map{min-height:790px!important;padding-bottom:112px!important;box-sizing:border-box}
  .search-panel .map-message{position:absolute!important;left:5%!important;right:auto!important;top:3.5%!important;bottom:auto!important;width:auto!important;max-width:58%!important;display:block!important;transform:none!important;align-self:auto!important}
  .search-panel .map-observed{left:4%!important;right:auto!important;bottom:18px!important;white-space:nowrap!important}
  .search-panel .map-note{left:auto!important;right:4%!important;bottom:18px!important;width:54%!important;max-width:54%!important;line-height:1.55!important;text-align:right!important}
}

@media(max-width:420px){
  .search-panel .signal-map{min-height:770px!important;padding-bottom:124px!important}
  .search-panel .map-message{max-width:62%!important}
  .search-panel .map-observed{bottom:20px!important}
  .search-panel .map-note{bottom:17px!important;width:52%!important;max-width:52%!important}
}


/* 404 COMPLETE REWARD — isolated additions */
.logo-zone{position:relative;display:block;width:fit-content;max-width:100%}
.logo-zone .official-logo{display:block}
.unknown-page-button[hidden]{display:none!important}
.unknown-page-button{position:absolute;z-index:8;top:2px;right:-34px;width:106px;min-height:72px;border:2px solid #9d91d8;background:linear-gradient(180deg,#fafdff 0%,#edf6ff 58%,#eee9ff 100%);box-shadow:3px 3px 0 rgba(117,99,181,.22),inset 0 0 0 2px rgba(255,255,255,.78);color:#7060b5;text-decoration:none;text-align:center;font-family:inherit;overflow:hidden;transition:transform .15s ease}
.unknown-page-button:hover{transform:translateY(-2px)}
.unknown-page-button:active{transform:translateY(1px)}
.unknown-window-bar{display:flex;justify-content:space-between;align-items:center;padding:3px 5px;border-bottom:1px solid #afa5dc;background:#dcd7fb;font-size:7px;letter-spacing:.1em;text-align:left}
.unknown-window-bar i{font-style:normal;letter-spacing:0}
.unknown-page-button strong{display:block;margin-top:3px;font-size:27px;line-height:1}
.unknown-page-button small{font-size:7px;letter-spacing:.08em}
.unknown-page-button.newly-unlocked{animation:unknown-reveal .65s ease both}
@keyframes unknown-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

.complete-overlay{position:fixed;z-index:1100;inset:0;display:grid;place-items:center;padding:18px;background:rgba(236,242,255,.62)}
.complete-overlay[hidden]{display:none!important}
.complete-window{width:min(410px,92vw);border:2px solid #8f7dcc;background:#fff;box-shadow:7px 7px 0 rgba(108,89,166,.22)}
.complete-window header{display:flex;justify-content:space-between;align-items:center;padding:6px 9px;background:linear-gradient(90deg,#cbdcff,#f3d7f2);border-bottom:2px solid #8f7dcc;color:#6658a7}
.complete-window header button{border:1px solid #8f7dcc;background:#fff;color:#6658a7}
.complete-window>div{padding:26px;text-align:center;color:#655aa2}
.complete-window strong{display:block;font-size:25px;letter-spacing:.12em}
.complete-window p{font-weight:bold;line-height:1.9}
.complete-window hr{border:0;border-top:1px dashed #beb5e1;margin:18px 0}
.complete-window #completeOk{min-width:110px;padding:9px;border:2px solid #8f7dcc;background:#eef5ff;color:#6658a7;font-family:inherit}

.special-archive{margin:28px 0 8px;padding-top:18px;border-top:2px dashed #c8c0e7}
.special-archive[hidden]{display:none!important}
.special-archive-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;color:#7364b0;font-size:11px}
.special-archive .special-card{display:block;width:min(240px,100%);margin:0 auto;text-decoration:none;color:inherit}
.special-card .archive-image{background:linear-gradient(180deg,#f8fbff,#efeaff)}

@media(max-width:760px){
  .logo-zone{width:100%}
  .unknown-page-button{top:4px;right:8px;width:92px;min-height:66px}
  .unknown-page-button strong{font-size:24px}
  .unknown-page-button small{font-size:6px}
  .special-archive-heading{flex-direction:column;text-align:center;gap:4px}
}

/* HOME GAME MENU — retro game title-screen styling only */
.game-menu{
  width:min(360px,29%);
  padding:18px 20px 17px;
  border:3px solid #8f9edc;
  outline:2px solid rgba(255,255,255,.92);
  outline-offset:-7px;
  background:rgba(255,255,255,.92);
  box-shadow:5px 5px 0 rgba(126,137,201,.25), inset 0 0 0 1px rgba(187,203,239,.7);
}
.game-menu:before,.game-menu:after{
  content:"";
  position:absolute;
  width:9px;
  height:9px;
  border:2px solid #8797d7;
  background:#f7f9ff;
  box-shadow:inset 0 0 0 2px #e6c5eb;
}
.game-menu:before{left:7px;top:7px}
.game-menu:after{right:7px;bottom:7px}
.game-menu-title{
  display:block!important;
  margin:0 0 7px;
  padding:0!important;
  color:#9a8fd0!important;
  font-size:8px!important;
  letter-spacing:.24em!important;
  text-align:center;
  opacity:.72;
}
.game-menu button{
  position:relative;
  display:grid;
  grid-template-columns:25px minmax(0,1fr);
  align-items:center;
  min-height:58px;
  padding:7px 18px 6px 12px;
  text-align:center;
  background:transparent;
  color:#747cc5;
}
.game-menu button:hover,.game-menu .primary{
  color:#7866c8;
  background:linear-gradient(90deg,rgba(232,244,255,.86),rgba(255,231,244,.82));
}
.game-menu .menu-cursor{
  visibility:hidden;
  color:#a35ed0;
  font-family:"DotGothic16","MS Gothic","Osaka-Mono",monospace;
  font-size:18px;
  text-shadow:2px 0 #f0b5d7;
}
.game-menu button:hover .menu-cursor,.game-menu button:focus-visible .menu-cursor,.game-menu .primary .menu-cursor{visibility:visible}
.game-menu .menu-label{display:block;min-width:0}
.game-menu .menu-label b{
  display:block;
  font-family:"MS Gothic","Osaka-Mono","Courier New",monospace;
  font-size:clamp(18px,1.65vw,25px);
  line-height:1.05;
  letter-spacing:.08em;
  font-weight:700;
  white-space:nowrap;
  text-shadow:1px 1px 0 #fff,2px 2px 0 rgba(148,158,219,.17);
}
.game-menu .menu-label small{
  display:block;
  margin-top:4px;
  color:#8995c2;
  font-family:"MS Gothic","Hiragino Kaku Gothic ProN","Yu Gothic",monospace;
  font-size:7px;
  line-height:1;
  letter-spacing:.14em;
  font-weight:400;
}
.game-menu p{display:none!important}

@media(max-width:760px){
  .game-menu{top:2%;width:72%;max-width:330px;padding:15px 16px 14px}
  .game-menu button{min-height:52px;padding:5px 14px 5px 8px;grid-template-columns:22px minmax(0,1fr)}
  .game-menu .menu-label b{font-size:20px}
  .game-menu .menu-label small{font-size:6px;margin-top:3px}
  .game-menu .menu-cursor{font-size:15px}
}
@media(max-width:420px){
  .game-menu{width:78%;padding:13px 13px 12px}
  .game-menu button{min-height:48px}
  .game-menu .menu-label b{font-size:18px;letter-spacing:.07em}
  .game-menu .menu-label small{font-size:6px;letter-spacing:.1em}
}

/* HOME GAME MENU — lightweight Japanese pixel-style font */
.game-menu .menu-label b{
  font-family:"DotGothic16","MS Gothic","Yu Gothic",monospace;
  font-weight:400;
  letter-spacing:.025em;
  line-height:1.2;
}
.game-menu-title,
.game-menu .menu-label small{
  font-family:"DotGothic16","MS Gothic","Yu Gothic",monospace;
}

@media(max-width:760px){
  .game-menu{
    top:0;
    width:70%;
    max-width:310px;
    padding:11px 13px 10px;
  }
  .game-menu-title{
    margin-bottom:3px;
    font-size:7px!important;
  }
  .game-menu button{
    min-height:42px;
    padding:3px 10px 3px 5px;
    grid-template-columns:19px minmax(0,1fr);
  }
  .game-menu .menu-label b{
    font-size:14px;
    letter-spacing:.02em;
  }
  .game-menu .menu-label small{
    margin-top:2px;
    font-size:6px;
    line-height:1;
  }
  .game-menu .menu-cursor{font-size:13px}
  .hero-girl{height:52%}
}

@media(max-width:420px){
  .game-menu{
    width:74%;
    max-width:285px;
    padding:10px 11px 9px;
  }
  .game-menu button{min-height:40px}
  .game-menu .menu-label b{font-size:13px}
  .hero-girl{height:49%}
}

/* TOP PAGE MAIL NOTICE — isolated, lightweight HTML/CSS button */
.mail-notice-button{position:absolute;z-index:9;left:18px;top:190px;width:154px;min-height:66px;padding:0;border:2px solid #9c91d4;background:linear-gradient(180deg,#fff 0%,#f3f8ff 58%,#eeeaff 100%);box-shadow:4px 4px 0 rgba(117,99,181,.22),inset 0 0 0 2px rgba(255,255,255,.8);color:#7060b5;font-family:"DotGothic16","MS Gothic",monospace;text-align:center;cursor:pointer;transition:transform .15s ease}
.mail-notice-button:hover{transform:translateY(-2px)}
.mail-notice-button:active{transform:translateY(1px)}
.mail-window-bar{display:flex;justify-content:space-between;align-items:center;width:100%;padding:3px 6px;border-bottom:1px solid #b7addd;background:linear-gradient(90deg,#dceaff,#f2dcf0);font-size:7px;letter-spacing:.1em;text-align:left;box-sizing:border-box}
.mail-window-bar i,.mail-window-bar b{font-style:normal}
.mail-notice-button strong{display:block;margin:8px 6px 2px;color:#6c60b0;font-size:13px;line-height:1.1;letter-spacing:.02em;text-shadow:1px 1px 0 #fff}
.mail-notice-button small{display:block;margin-bottom:7px;color:#de6ca8;font-size:7px;letter-spacing:.08em}
.mail-notice-button small:before{content:"●";margin-right:4px;color:#ef7ead;animation:mail-dot 1.4s steps(2,end) infinite}
@keyframes mail-dot{50%{opacity:.35}}

/* MAIL / SYSTEM MESSAGE VIEW */
.mail-view{overflow:auto}
.signal-message-window{width:min(570px,92%);margin:30px auto 48px;border:2px solid #9587cf;background:#fff;box-shadow:7px 7px 0 rgba(111,90,176,.2);color:#675b9e}
.signal-message-window>header{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-bottom:2px solid #9587cf;background:linear-gradient(90deg,#d8e8ff,#f2d9ef);font-size:9px;letter-spacing:.1em}
.signal-message-window>header i{font-style:normal}
.signal-message-body{padding:30px 34px 34px;text-align:center}
.signal-message-body>small{display:block;color:#b3a9d8;line-height:1}
.signal-message-body h2{margin:8px 0;color:#6658a7;font-size:19px;letter-spacing:.16em}
.signal-status-list{width:min(390px,100%);margin:28px auto 18px;text-align:left}
.signal-status-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:10px 8px;border-bottom:1px dashed #cec6e8;font-size:12px}
.signal-status-list dt:after{content:"："}
.signal-status-list dd{margin:0;color:#7465b3;font-weight:bold}
.signal-status-list .exploration-row{margin-top:6px;border:1px solid #c4b9e4;background:#f7f4ff}
.exploration-meter{width:min(390px,100%);height:13px;margin:0 auto 26px;border:2px solid #9789cd;background:#eef3ff;box-shadow:inset 0 0 0 2px #fff;text-align:left;overflow:hidden}
.exploration-meter i{display:block;width:0;height:100%;background:linear-gradient(90deg,#b9d9ff,#edbddd);transition:width .45s ease}
.signal-message-body p{font-size:12px;line-height:2}
.signal-message-body button{margin-top:14px;padding:10px 24px;border:2px solid #9587cf;background:linear-gradient(180deg,#fff,#e9f2ff);color:#6658a7;font-family:inherit;box-shadow:3px 3px 0 rgba(111,90,176,.18)}
.signal-message-body button:active{transform:translateY(1px)}

@media(max-width:760px){
  .mail-notice-button{left:8px;top:145px;width:130px;min-height:58px}
  .mail-notice-button strong{margin-top:6px;font-size:11px}
  .mail-notice-button small{font-size:6px;margin-bottom:5px}
  .mail-view{padding-bottom:24px}
  .signal-message-window{margin:14px auto 32px}
  .signal-message-body{padding:24px 18px 28px}
  .signal-status-list>div{font-size:11px}
}
@media(max-width:420px){
  .mail-notice-button{top:128px;width:122px}
  .mail-window-bar{font-size:6px}
  .mail-notice-button strong{font-size:10px}
}


/* COMBINED MAIL + HIDDEN ROUTES PAGE */
.combined-secret-view{overflow-y:auto;overflow-x:hidden;padding-bottom:42px}
.combined-secret-view .signal-message-window{margin-bottom:34px}
.secret-route-section{width:min(900px,94%);margin:0 auto 48px}
.combined-secret-view .secret-terminal{margin:0 auto 26px}
.combined-secret-view .secret-grid{margin-bottom:0}
@media(max-width:760px){
  .combined-secret-view{padding-bottom:96px}
  .combined-secret-view .signal-message-window{margin-bottom:24px}
  .secret-route-section{width:94%;margin-bottom:28px}
  .combined-secret-view .secret-terminal{margin-bottom:20px}
}

/* Girl profile mail system */
.profile-action-row{display:grid;grid-template-columns:minmax(0,1fr) 86px;align-items:end;gap:14px;margin:20px 0 8px}
.profile-action-row .pixel-diary-button{width:100%;max-width:none;margin:0}
.pixel-mail-button{min-width:86px;min-height:84px;display:grid;place-items:center;align-content:center;gap:2px;padding:6px;border:0;background:transparent;color:#7364b8;cursor:pointer;font:inherit;text-align:center;transition:transform .1s ease}
.pixel-mail-button img{width:38px;height:38px;object-fit:contain;image-rendering:pixelated;display:block}
.pixel-mail-button small{display:block;color:#a18bc8;font-size:7px;letter-spacing:.12em}
.pixel-mail-button b{display:block;font-size:10px;line-height:1.2;white-space:nowrap}
.pixel-mail-button:hover{transform:scale(1.05)}
.pixel-mail-button:active{transform:translateY(2px)}
.pixel-mail-button:focus-visible{outline:2px dashed #9b82d2;outline-offset:3px}

.mail-modal{position:fixed;z-index:140;inset:0;display:none;place-items:center;padding:18px;background:rgba(65,72,126,.42)}
.mail-modal.open{display:grid}
.mail-window{width:min(760px,96vw);max-height:90vh;overflow:hidden;border:4px solid #8d85cf;background:#fff;box-shadow:10px 10px rgba(95,89,153,.24)}
.mail-window>header{height:46px;display:flex;align-items:center;justify-content:space-between;padding-left:14px;border-bottom:3px solid #8d85cf;color:#7064b7;background:linear-gradient(90deg,#edf5ff,#f6eaff,#ffe5f2);font-size:11px;letter-spacing:.12em}
.mail-window>header button{width:44px;height:100%;border:0;border-left:3px solid #8d85cf;color:#6f63b6;background:#fff;cursor:pointer;font-size:22px}
.mail-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:430px;max-height:calc(90vh - 50px)}
.mail-list-panel{min-width:0;border-right:3px solid #d5caed;background:#f8f8ff;overflow:auto}
.mail-list-heading{display:grid;gap:3px;padding:15px;border-bottom:2px dashed #c7bce6}
.mail-list-heading strong{color:#6e62b2;font-size:15px;letter-spacing:.12em}
.mail-list-heading span{color:#9688c6;font-size:9px}
.mail-list{display:grid}
.mail-list-item{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;min-height:54px;padding:8px 10px;border:0;border-bottom:1px dashed #d8d0eb;color:#7368b4;background:#fff;text-align:left;cursor:pointer;font:inherit}
.mail-list-item:hover,.mail-list-item.selected{background:linear-gradient(90deg,#eef6ff,#fff0f7)}
.mail-list-item span{font-size:9px;color:#a293cb}
.mail-list-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600}
.mail-list-item i{padding:2px 4px;color:#fff;background:#e58abd;font-size:7px;font-style:normal;letter-spacing:.08em}
.mail-list-item.read{opacity:.78}
.mail-list-item.locked{opacity:.45;cursor:default;background:#f7f5fb;color:#aaa1c7}
.mail-list-item.locked:hover{background:#f7f5fb}
.mail-list-item:disabled{pointer-events:none}

.mail-list-item.selected{opacity:1;box-shadow:4px 0 0 #b495df inset}
.mail-reader{min-width:0;padding:22px;overflow:auto;background:linear-gradient(rgba(255,255,255,.94),rgba(255,255,255,.94)),repeating-linear-gradient(0deg,transparent 0 23px,#e8e3f4 24px)}
.mail-empty{color:#9a8bc5;text-align:center;margin-top:120px;font-size:11px}
.mail-meta{margin:0 0 22px;border:2px solid #c6bae6;background:#fbfaff}
.mail-meta div{display:grid;grid-template-columns:70px minmax(0,1fr);border-bottom:1px dashed #d6cdea}
.mail-meta div:last-child{border-bottom:0}
.mail-meta dt,.mail-meta dd{margin:0;padding:8px 10px;font-size:10px}
.mail-meta dt{color:#8978be;background:#f1edfb;font-weight:bold}
.mail-meta dd{color:#675c9f}

.mail-attachment{margin:0 0 20px;padding:8px;border:2px solid #c8bde5;background:#faf9ff}
.mail-attachment img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border:1px solid #ded6ef;background:#f4f1fa}
.mail-attachment figcaption{margin-top:6px;color:#9688c6;font-size:8px;letter-spacing:.08em;text-align:right}

.mail-body{color:#5f5d86;font-size:12px;line-height:1.85;white-space:normal}
.mail-body p{margin:0}

@media(max-width:760px){
  .profile-action-row{grid-template-columns:minmax(0,1fr) 72px;gap:8px;margin:20px 0 10px}
  .profile-action-row .pixel-diary-button{position:static;min-height:78px;margin:0}
  .pixel-mail-button{min-width:72px;min-height:78px;padding:4px}
  .pixel-mail-button img{width:46px;height:46px}
  .pixel-mail-button b{font-size:9px}
  .mail-modal{padding:0}
  .mail-window{width:100vw;height:100dvh;max-height:none;border:0;box-shadow:none}
  .mail-window>header{position:sticky;top:0;z-index:2;height:50px}
  .mail-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:calc(100dvh - 50px);max-height:none;min-height:0}
  .mail-list-panel{max-height:220px;border-right:0;border-bottom:3px solid #d5caed}
  .mail-list-heading{padding:10px 14px}
  .mail-list{grid-template-columns:1fr}
  .mail-list-item{min-height:46px;padding:7px 12px}
  .mail-reader{padding:16px 14px 80px;-webkit-overflow-scrolling:touch}
  .mail-meta div{grid-template-columns:58px minmax(0,1fr)}
  .mail-meta dt,.mail-meta dd{padding:7px 8px;font-size:9px}
  .mail-body{font-size:12px;line-height:1.9}
}

/* SECRET ROUTE ARCHIVE: only implemented routes are listed. */
.secret-terminal b{font-size:15px}
.secret-card{display:flex;flex-direction:column}
.secret-card p{white-space:pre-line}
.secret-card .secret-hint{display:grid;gap:8px}
.secret-card .secret-hint small{color:#a186c8;font-size:9px;letter-spacing:.18em}
.secret-open-button{align-self:flex-start;margin-top:auto;padding:8px 14px;border:2px solid #9eafe0;color:#766bc0;background:#fff;box-shadow:2px 2px #dce3f4;font-family:inherit;font-size:11px;cursor:pointer}
.secret-open-button:hover{transform:translateY(-1px);background:#fff2f8}
.secret-open-button:active{transform:translateY(1px);box-shadow:1px 1px #dce3f4}
.secret-detail-modal{position:fixed;z-index:140;inset:0;display:none;place-items:center;padding:18px;background:rgba(75,82,130,.35)}
.secret-detail-modal.open{display:grid}
.secret-detail-window{width:min(560px,94vw);max-height:min(680px,88svh);overflow:auto;border:3px solid #92a8dc;background:#fff;box-shadow:8px 8px rgba(84,96,157,.25)}
.secret-detail-window>header{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;color:#fff;background:linear-gradient(90deg,#849edc,#b6a6e4,#e8b4d2)}
.secret-detail-window>header button{width:27px;height:25px;border:2px solid #fff;color:#fff;background:rgba(255,255,255,.13);cursor:pointer}
.secret-detail-body{padding:24px}
.secret-detail-body>span{font-size:10px;letter-spacing:.18em;color:#8c78c8}
.secret-detail-body h2{margin:10px 0 18px;color:#7667b8;font-size:22px}
.secret-detail-body p{margin:0;white-space:pre-line;line-height:2;font-size:13px}
.secret-detail-body a{display:inline-block;margin-top:22px;padding:9px 16px;border:2px solid #99acdc;color:#7468b6;background:#f7faff;box-shadow:3px 3px #dbe3f4;text-decoration:none;font-size:11px}
@media(max-width:760px){.secret-detail-modal{padding:10px}.secret-detail-window{width:96vw;max-height:86svh}.secret-detail-body{padding:20px 16px}.secret-open-button{width:100%;text-align:center}}

/* MAIL NOTICE ATTENTION MOTION — periodically invites a click without flashing */
.mail-notice-button{
  transform-origin:50% 100%;
  animation:mail-call-attention 4.8s ease-in-out infinite;
  will-change:transform;
}
.mail-notice-button:hover{
  animation-play-state:paused;
  transform:translateY(-3px) scale(1.025);
}
.mail-notice-button:active{
  animation-play-state:paused;
  transform:translateY(2px) scale(.985);
}
.mail-notice-button strong{
  animation:mail-title-nudge 4.8s ease-in-out infinite;
}
.mail-notice-button:hover strong,
.mail-notice-button:active strong{
  animation-play-state:paused;
}
.mail-notice-button::after{
  content:"▶";
  position:absolute;
  right:-12px;
  top:50%;
  color:#d56ca9;
  font-family:"DotGothic16","MS Gothic",monospace;
  font-size:11px;
  opacity:0;
  transform:translate(-3px,-50%);
  animation:mail-click-arrow 4.8s steps(2,end) infinite;
  pointer-events:none;
}
@keyframes mail-call-attention{
  0%,68%,100%{transform:translateY(0) rotate(0deg)}
  72%{transform:translateY(-5px) rotate(-1.2deg)}
  76%{transform:translateY(0) rotate(1deg)}
  80%{transform:translateY(-3px) rotate(-.7deg)}
  84%{transform:translateY(0) rotate(0deg)}
}
@keyframes mail-title-nudge{
  0%,68%,100%{transform:translateX(0)}
  73%{transform:translateX(-2px)}
  77%{transform:translateX(2px)}
  81%{transform:translateX(-1px)}
  84%{transform:translateX(0)}
}
@keyframes mail-click-arrow{
  0%,67%,87%,100%{opacity:0;transform:translate(-3px,-50%)}
  70%,84%{opacity:1;transform:translate(0,-50%)}
}
@media (prefers-reduced-motion: reduce){
  .mail-notice-button,
  .mail-notice-button strong,
  .mail-notice-button::after,
  .mail-notice-button small::before,
  .shop-floating-cart.shop-cart-added .shop-floating-cart-icon,
  .shop-floating-cart.shop-cart-added i,
  .shop-card-actions .shop-add-button.is-pressing,
  .shop-detail-add.is-pressing{
    animation:none !important;
  }
}


/* DENNOU FANCY SHOP — isolated fictional shopping/collection view */
.game-menu .shop-menu-button{position:relative;min-height:34px;margin-top:3px;padding-top:4px;padding-bottom:4px;border-top:1px dashed #c8c5e7;background:linear-gradient(90deg,rgba(255,238,247,.75),rgba(234,244,255,.75))}
.game-menu .shop-menu-button .menu-label b{font-size:clamp(12px,1.05vw,16px);letter-spacing:.04em}
.game-menu .shop-menu-button .menu-label small{font-size:6px}
.shop-menu-cart{position:absolute;right:8px;top:50%;min-width:18px;height:18px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid #fff;color:#fff;background:#df79ad;box-shadow:1px 1px #927ac1;font-size:7px;font-style:normal}
.shop-menu-cart[hidden]{display:none}
.shop-view{overflow-y:auto;overflow-x:hidden;padding-bottom:72px;-webkit-overflow-scrolling:touch}
.shop-page{width:min(1180px,100%);margin:0 auto;padding:16px 4px 50px}
.shop-brand{display:grid;justify-items:center;gap:7px;margin:0 auto 16px;text-align:center}
.shop-brand img{display:block;width:min(780px,94%);height:auto;max-height:250px;object-fit:contain;image-rendering:auto;filter:none;box-shadow:none;border:0}
.shop-brand p{margin:-5px 0 0;color:#7c76aa;font-size:11px;line-height:1.8}
.shop-brand strong{color:#a475c1;font-size:9px;letter-spacing:.13em}
.shop-tabs{position:sticky;z-index:15;top:61px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(930px,100%);margin:0 auto 18px;border:3px double #9e9ad7;background:#fff;box-shadow:4px 4px rgba(124,133,190,.18)}
.shop-tabs button{position:relative;min-height:44px;padding:7px 5px;border:0;border-right:1px dashed #cbc4e8;color:#7369b2;background:linear-gradient(#fff,#f5f7ff);font-family:"DotGothic16","MS Gothic",monospace;font-size:10px;cursor:pointer}
.shop-tabs button:last-child{border-right:0}.shop-tabs button:hover,.shop-tabs button.active{color:#8f5fbd;background:linear-gradient(90deg,#edf7ff,#fff0f7)}
.shop-tabs i{display:inline-grid;min-width:16px;height:16px;margin-left:3px;place-items:center;border:1px solid #c59ad3;color:#fff;background:#dd82b2;font-size:7px;font-style:normal}
.shop-content{width:min(1100px,100%);margin:0 auto}
.shop-list-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 0 12px;padding:10px 14px;border:2px solid #a9b8df;background:linear-gradient(90deg,#f5faff,#fff4f9);box-shadow:3px 3px rgba(127,142,199,.15)}
.shop-list-heading small{color:#9688c7;font-size:8px;letter-spacing:.18em}.shop-list-heading h2{margin:3px 0 0;color:#7264ae;font-size:17px}.shop-list-heading>span{color:#a16eb7;font-size:9px;letter-spacing:.12em}
.shop-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.shop-product-card{position:relative;display:flex;min-width:0;flex-direction:column;padding:8px;border:2px solid #aaa5dc;background:#fff;box-shadow:4px 4px rgba(131,140,194,.18)}
.shop-product-card:before{content:"♡";position:absolute;z-index:2;left:6px;top:6px;color:#dd91ba;font-size:13px;text-shadow:1px 1px #fff}
.shop-product-card:hover{border-color:#a77dc8;transform:translateY(-2px)}
.shop-new-label{position:absolute;z-index:4;right:-4px;top:10px;padding:3px 7px;border:1px solid #fff;color:#fff;background:#df79ad;box-shadow:2px 2px #977fc4;font-size:8px;letter-spacing:.08em}.shop-new-label.static{position:static;display:inline-block;align-self:flex-start;margin-bottom:7px}
.shop-product-photo{display:block;width:100%;aspect-ratio:1;border:0;border-bottom:2px dashed #d2cbea;background:#faf9ff;cursor:pointer;overflow:hidden}.shop-product-photo img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:auto;transition:transform .18s ease}.shop-product-photo:hover img{transform:scale(1.025)}
.shop-product-copy{display:flex;flex:1;flex-direction:column;padding:10px 6px 8px}.shop-product-copy>small{color:#9a8bc7;font-size:13px;letter-spacing:.08em}.shop-product-copy h2{margin:5px 0 4px;color:#6f64aa;font-size:17px;line-height:1.45;font-weight:700}.shop-product-copy>strong{color:#d36fa7;font-size:18px;font-weight:700}.shop-product-copy p{min-height:68px;margin:10px 0 8px;padding-top:8px;border-top:1px dashed #d6cfea;color:#79769d;font-size:14px;line-height:1.55}.shop-product-copy p b{color:#8c73b8}.shop-owned-mark{margin-top:auto;color:#bc79ab;font-size:11px}
.shop-card-actions{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:6px}.shop-card-actions button,.shop-empty-state button,.shop-cart-actions button,.shop-detail-add{min-height:44px;border:2px solid #9fafdb;color:#7166ad;background:#fff;box-shadow:2px 2px #dce2f3;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}.shop-card-actions button:hover,.shop-empty-state button:hover,.shop-cart-actions button:hover,.shop-detail-add:hover{background:#fff0f7;transform:translateY(-1px)}.shop-card-actions .shop-add-button,.shop-cart-actions .primary,.shop-detail-add{border-color:#c88bb7;color:#fff;background:linear-gradient(#efacd0,#d987ba);text-shadow:1px 1px #a06b9a}.shop-card-actions .shop-add-button:hover,.shop-cart-actions .primary:hover,.shop-detail-add:hover{background:linear-gradient(#f6bdd9,#df92bf)}.shop-card-actions .shop-add-button.is-added,.shop-detail-add.is-added{border-color:#8379c9;background:linear-gradient(180deg,#b7b2f2 0%,#8e87dc 100%);box-shadow:2px 2px #d8d9f3;text-shadow:1px 1px #6f68b2}.shop-card-actions .shop-add-button.is-added:hover,.shop-detail-add.is-added:hover{background:linear-gradient(180deg,#c4c0f6 0%,#9a93e4 100%)}.shop-card-actions .shop-add-button.is-pressing,.shop-detail-add.is-pressing{animation:shop-add-button-press .2s ease-out}
@keyframes shop-add-button-press{0%{transform:translateY(0)}42%{transform:translateY(3px);box-shadow:0 0 #d8d9f3}100%{transform:translateY(0)}}
.shop-fiction-note{margin:28px auto 0;color:#9b94b5;font-size:8px;text-align:center;line-height:1.7}
.shop-floating-cart{position:fixed;z-index:90;right:24px;bottom:96px;min-width:126px;min-height:48px;display:grid;grid-template-columns:24px auto 24px;align-items:center;justify-content:center;gap:7px;padding:7px 10px;border:3px double #9b8fd1;border-radius:3px;color:#7165ad;background:linear-gradient(180deg,#fff 0%,#f4f8ff 50%,#ffeef7 100%);box-shadow:3px 3px 0 rgba(123,111,181,.24),inset 0 0 0 1px #fff;font-family:"DotGothic16","MS Gothic",monospace;cursor:pointer;transition:transform .12s ease,filter .12s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.shop-floating-cart:before{content:"";position:absolute;inset:3px;border:1px dashed #cbc2e7;pointer-events:none}
.shop-floating-cart:hover{transform:translateY(-2px);filter:brightness(1.025)}
.shop-floating-cart:active{transform:translateY(2px);box-shadow:1px 1px 0 rgba(123,111,181,.24),inset 0 0 0 1px #fff}
.shop-floating-cart-icon,.shop-floating-cart-label,.shop-floating-cart i{position:relative;z-index:1}
.shop-floating-cart-icon{font-size:17px;line-height:1}
.shop-floating-cart-label{font-size:11px;font-weight:bold;letter-spacing:.12em}
.shop-floating-cart i{min-width:22px;height:22px;display:grid;place-items:center;border:2px solid #fff;color:#fff;background:#dc7ead;box-shadow:1px 1px 0 #9d83c4;font-size:9px;font-style:normal}
.shop-floating-cart.shop-cart-added .shop-floating-cart-icon{animation:shop-cart-icon-added .26s ease-out}
.shop-floating-cart.shop-cart-added i{animation:shop-cart-count-added .26s ease-out}
@keyframes shop-cart-icon-added{
  0%,100%{transform:translateX(0) rotate(0deg) scale(1)}
  30%{transform:translateX(-2px) rotate(-8deg) scale(1.12)}
  65%{transform:translateX(2px) rotate(7deg) scale(1.06)}
}
@keyframes shop-cart-count-added{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.2)}
}

.shop-empty-state,.shop-checkout{width:min(650px,100%);margin:20px auto;padding:42px 24px;border:3px double #a9a1dc;background:#fff;text-align:center;box-shadow:5px 5px rgba(132,141,194,.18)}.shop-empty-state>span,.shop-checkout>small{color:#9b8fc6;font-size:9px;letter-spacing:.18em}.shop-empty-state h2,.shop-checkout h2{color:#7165ac}.shop-empty-state p,.shop-checkout p{color:#8581aa;font-size:11px;line-height:1.9}.shop-empty-state button{min-width:180px;margin-top:12px}
.shop-cart-list{display:grid;gap:9px}.shop-cart-row{display:grid;grid-template-columns:86px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:9px;border:2px solid #aaa5dc;background:#fff;box-shadow:3px 3px rgba(130,139,192,.14)}.shop-cart-row>img{width:86px;height:86px;object-fit:cover;image-rendering:auto}.shop-cart-row small{color:#9c8cc7;font-size:8px}.shop-cart-row h3{margin:4px 0;color:#7165aa;font-size:13px}.shop-cart-row strong{color:#c672a5;font-size:10px}.shop-quantity{display:grid;grid-template-columns:36px 34px 36px;align-items:center;text-align:center}.shop-quantity button{width:36px;height:38px;border:2px solid #9cadda;background:#fff;cursor:pointer}.shop-quantity b{font-size:11px}.shop-remove{min-width:55px;height:38px;border:2px solid #d3a2c3;color:#a2608d;background:#fff;cursor:pointer;font-size:9px}
.shop-cart-total,.shop-checkout-total{display:flex;justify-content:space-between;align-items:center;margin:16px 0;padding:16px;border:3px double #a8a1db;background:linear-gradient(90deg,#f2f8ff,#fff0f7)}.shop-cart-total strong,.shop-checkout-total strong{color:#ca6fa3;font-size:18px}.shop-cart-actions{display:flex;justify-content:flex-end;gap:10px}.shop-cart-actions button{min-width:155px;padding:8px 14px}
.shop-checkout-lines{display:grid;gap:0;margin:24px 0;border:2px solid #c2b9e5}.shop-checkout-lines>div{display:flex;justify-content:space-between;gap:15px;padding:11px 13px;border-bottom:1px dashed #d5cdea;color:#746ca2;font-size:10px}.shop-checkout-lines>div:last-child{border-bottom:0}.shop-checkout-lines b{color:#b8699c}
.shop-items-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.shop-owned-item{display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;gap:12px;padding:8px;border:2px solid #aaa5dc;color:#7267aa;background:#fff;text-align:left;box-shadow:3px 3px rgba(130,139,192,.15);cursor:pointer}.shop-owned-item:hover{background:#fff4f9}.shop-owned-item img{width:105px;height:105px;object-fit:cover;image-rendering:auto}.shop-owned-item span{display:grid;gap:4px}.shop-owned-item small{font-size:8px;color:#9989c5}.shop-owned-item b{font-size:12px}.shop-owned-item i{color:#d278aa;font-size:9px;font-style:normal}
.shop-complete-stamp{width:min(560px,100%);margin:22px auto;padding:18px;border:3px double #c385b3;color:#9d6694;background:#fff0f7;text-align:center;box-shadow:4px 4px #ead3e2}.shop-complete-stamp strong{display:block;font-size:18px;letter-spacing:.12em}.shop-complete-stamp span{display:block;margin-top:6px;font-size:9px}
.shop-history-list{display:grid;gap:14px}.shop-history-list article{border:2px solid #aaa5dc;background:#fff;box-shadow:3px 3px rgba(130,139,192,.14)}.shop-history-list header,.shop-history-list footer{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;background:#f3f7ff;color:#756aac;font-size:9px}.shop-history-list ul{list-style:none;margin:0;padding:6px 12px}.shop-history-list li{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px dashed #d8d1eb;color:#7d779f;font-size:9px}.shop-history-list li:last-child{border-bottom:0}.shop-history-list li b,.shop-history-list footer strong{color:#be6e9f}
.shop-history-tools{display:grid;justify-items:center;gap:10px;margin:18px auto 0}
.shop-history-reset,.shop-history-confirm button{min-height:44px;border:2px solid #aa9ed7;color:#7567ad;background:#fff;box-shadow:2px 2px #dce2f3;font-family:inherit;font-size:9px;cursor:pointer}
.shop-history-reset{min-width:190px;padding:8px 14px}
.shop-history-reset:hover,.shop-history-confirm button:hover{background:#fff0f7;transform:translateY(-1px)}
.shop-history-confirm{width:min(430px,100%);padding:16px;border:3px double #a9a0d7;background:linear-gradient(90deg,#f4f8ff,#fff2f8);text-align:center;box-shadow:3px 3px rgba(130,139,192,.14)}
.shop-history-confirm p{margin:0 0 12px;color:#776e9f;font-size:10px;line-height:1.7}
.shop-history-confirm>div{display:flex;justify-content:center;gap:8px}
.shop-history-confirm button{min-width:100px;padding:7px 12px}
.shop-history-confirm [data-shop-history-confirm]{border-color:#c88bb7;color:#fff;background:linear-gradient(#efacd0,#d987ba);text-shadow:1px 1px #a06b9a}
.shop-modal{position:fixed;z-index:150;inset:0;display:none;place-items:center;padding:18px;background:rgba(70,75,126,.43)}.shop-modal.open{display:grid}.shop-modal-window{width:min(820px,96vw);max-height:90svh;overflow:hidden;border:4px solid #9188ce;background:#fff;box-shadow:10px 10px rgba(82,83,145,.24)}.shop-modal-window>header{height:45px;display:flex;align-items:center;justify-content:space-between;padding-left:13px;border-bottom:3px solid #9188ce;color:#7063b1;background:linear-gradient(90deg,#dceaff,#f4dff1,#ffe7f2);font-size:10px;letter-spacing:.13em}.shop-modal-window>header button{width:45px;height:100%;border:0;border-left:3px solid #9188ce;color:#7063b1;background:#fff;cursor:pointer;font-size:20px}.shop-detail-body{max-height:calc(90svh - 48px);padding:18px;overflow:auto;-webkit-overflow-scrolling:touch}.shop-detail-grid{display:grid;grid-template-columns:minmax(260px,1.05fr) minmax(260px,.95fr);gap:22px}.shop-detail-image{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:2px solid #c2b9e3;image-rendering:auto}.shop-detail-copy{display:flex;flex-direction:column;align-items:flex-start}.shop-detail-copy>small{color:#9a8bc6;font-size:8px}.shop-detail-copy h2{margin:7px 0;color:#6f63aa;font-size:22px}.shop-detail-copy>strong{color:#cf70a5;font-size:18px}.shop-detail-copy>p{color:#777398;font-size:11px;line-height:1.9}.shop-detail-copy blockquote{width:100%;margin:10px 0;padding:12px;border-left:5px solid #e5a6c9;background:#fff2f8;color:#8073a8;font-size:10px;line-height:1.7}.shop-detail-copy dl{width:100%;margin:5px 0 12px;border:2px solid #c9c0e5}.shop-detail-copy dl div{display:grid;grid-template-columns:80px 1fr;border-bottom:1px dashed #d6cfea}.shop-detail-copy dl div:last-child{border-bottom:0}.shop-detail-copy dt,.shop-detail-copy dd{margin:0;padding:8px;font-size:9px}.shop-detail-copy dt{background:#f2eefb}.shop-memory-copy{color:#bf6f9f!important}.shop-detail-add{width:100%;margin-top:auto}
.shop-order-window{width:min(520px,94vw)}.shop-order-body{padding:34px 25px;text-align:center;color:#6f64a9}.shop-order-body>span{display:block;font-size:21px;letter-spacing:.12em}.shop-order-body h2{font-size:17px}.shop-order-body p{font-size:11px;line-height:2}.shop-order-body hr{margin:20px 0;border:0;border-top:1px dashed #c9c0e4}.shop-order-body>strong{display:block;color:#ce6fa5;font-size:18px}.shop-order-body>b{display:block;margin:12px 0;color:#8d6cc0;font-size:11px;letter-spacing:.13em}.shop-order-body>small{display:block;margin-top:24px;color:#9992ad;font-size:7px;line-height:1.7}.shop-order-body>button{min-width:130px;min-height:42px;margin-top:18px;border:2px solid #9287cd;color:#7063ad;background:#f3f7ff;cursor:pointer}
@media(max-width:980px){.shop-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .game-menu .shop-menu-button{min-height:31px}.game-menu .shop-menu-button .menu-label b{font-size:10px}.shop-menu-cart{right:5px;min-width:16px;height:16px}
  .shop-view{padding:10px 10px calc(128px + env(safe-area-inset-bottom))}.shop-page{padding:8px 0 calc(96px + env(safe-area-inset-bottom))}.shop-brand img{width:100%;max-height:180px}.shop-brand p{font-size:10px}.shop-tabs{top:59px;grid-template-columns:repeat(5,minmax(68px,1fr));overflow-x:auto;scrollbar-width:none}.shop-tabs::-webkit-scrollbar{display:none}.shop-tabs button{min-width:68px;min-height:46px;font-size:8px}
  .shop-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.shop-product-card{min-width:0;padding:6px;overflow:hidden}.shop-new-label{right:2px;top:7px;padding:3px 5px;font-size:7px}.shop-product-copy{min-width:0;padding:8px 3px 6px}.shop-product-copy>small{font-size:13px;letter-spacing:.04em}.shop-product-copy h2{min-height:50px;margin:4px 0 3px;font-size:17px;line-height:1.45;overflow-wrap:anywhere;word-break:break-word}.shop-product-copy>strong{font-size:18px}.shop-product-copy p{display:-webkit-box;min-height:66px;max-height:66px;margin:7px 0 6px;padding-top:6px;overflow:hidden;font-size:14px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:3}.shop-owned-mark{font-size:11px;overflow-wrap:anywhere}.shop-card-actions{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:4px}.shop-card-actions button{min-width:0;min-height:48px;padding:4px 2px;font-size:16px;white-space:nowrap}
  .shop-floating-cart{right:max(12px,env(safe-area-inset-right));bottom:calc(82px + env(safe-area-inset-bottom));min-width:118px;min-height:48px;grid-template-columns:22px auto 22px;gap:6px;padding:6px 9px}.shop-floating-cart-label{font-size:10px}.shop-floating-cart-icon{font-size:16px}.shop-floating-cart i{min-width:21px;height:21px;font-size:8px}
  .shop-list-heading{align-items:center}.shop-list-heading h2{font-size:15px}
  .shop-cart-row{grid-template-columns:76px minmax(0,1fr);gap:9px}.shop-cart-row>img{width:76px;height:76px}.shop-quantity{grid-column:1/2;grid-row:2;grid-template-columns:44px 36px 44px}.shop-quantity button{width:44px;height:44px}.shop-remove{grid-column:2;grid-row:2;justify-self:end;min-width:80px;height:44px}.shop-cart-actions{display:grid;grid-template-columns:1fr}.shop-cart-actions button{min-height:46px;width:100%}
  .shop-items-grid{grid-template-columns:1fr}.shop-owned-item{grid-template-columns:90px minmax(0,1fr);min-height:108px}.shop-owned-item img{width:90px;height:90px}
  .shop-history-tools{margin-top:16px}.shop-history-reset{width:100%;min-width:0}.shop-history-confirm{padding:14px 10px}.shop-history-confirm button{min-width:0;flex:1}
  .shop-modal{padding:0}.shop-modal-window{width:100vw;height:100dvh;max-height:none;border:0;box-shadow:none}.shop-modal-window>header{position:sticky;top:0;z-index:3;height:50px}.shop-detail-body{height:calc(100dvh - 50px);max-height:none;padding:14px 14px 80px}.shop-detail-grid{grid-template-columns:1fr;gap:16px}.shop-detail-image{width:min(520px,100%);margin:auto}.shop-detail-copy h2{font-size:19px}.shop-detail-add{min-height:48px}.shop-order-body{display:grid;place-content:center;min-height:calc(100dvh - 50px);padding-bottom:80px}
}
@media(max-width:420px){.shop-brand img{max-height:150px}.shop-tabs{top:58px}.shop-list-heading{padding:9px 10px}.shop-product-grid{gap:8px}.shop-product-photo{aspect-ratio:1}.shop-fiction-note{font-size:7px}.shop-floating-cart{right:max(10px,env(safe-area-inset-right));min-width:112px}}

/* HOME STICKER BOOK — append-only extension. The completed first view remains unchanged. */
.home{
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.home::-webkit-scrollbar{width:0;height:0}
.home-first-view{
  position:relative;
  width:100%;
  height:100%;
  min-height:100%;
  overflow:hidden;
}
.stickerbook-section{
  position:relative;
  min-height:1980px;
  padding:58px 26px 78px;
  overflow:hidden;
  border-top:3px solid rgba(193,164,201,.38);
  background-color:#fffaf3;
  background-image:
    url("assets/stickerbook/paper-texture.webp"),
    linear-gradient(90deg,rgba(255,255,255,.28),rgba(248,229,239,.11) 50%,rgba(255,255,255,.26));
  background-repeat:repeat,repeat;
  background-size:256px 256px,auto;
  box-shadow:inset 0 22px 36px rgba(166,139,176,.10);
  isolation:isolate;
}
.stickerbook-section:before{
  content:"";
  position:absolute;
  z-index:0;
  left:0;
  right:0;
  top:0;
  height:26px;
  opacity:.62;
  background:radial-gradient(circle at 13px -2px,transparent 0 12px,rgba(230,207,219,.42) 12.5px 13.5px,transparent 14px) 0 0/26px 26px repeat-x;
  pointer-events:none;
}
.stickerbook-paper{
  position:relative;
  z-index:1;
  width:min(1260px,100%);
  min-height:1850px;
  margin:0 auto;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s ease,transform .55s ease;
}
.stickerbook-section.is-visible .stickerbook-paper{opacity:1;transform:none}
.stickerbook-canvas{
  position:relative;
  width:100%;
  height:1230px;
  margin:0 auto;
}
.stickerbook-link{
  --sticker-angle:0deg;
  position:absolute;
  z-index:2;
  display:block;
  margin:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  cursor:pointer;
  transform:rotate(var(--sticker-angle));
  transform-origin:center;
  transition:transform .15s ease,filter .15s ease;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.stickerbook-link img{
  display:block;
  width:100%;
  height:auto;
  image-rendering:auto;
  pointer-events:none;
  user-select:none;
  filter:drop-shadow(0 9px 7px rgba(117,91,137,.13));
}
.stickerbook-link:hover{
  z-index:6;
  transform:translateY(-8px) rotate(var(--sticker-angle)) scale(1.018);
  filter:brightness(1.025);
}
.stickerbook-link:focus-visible{
  outline:3px dashed #a98acb;
  outline-offset:8px;
  border-radius:22px;
}
.stickerbook-link:active,
.stickerbook-link.is-pressed{
  z-index:7;
  transform:translateY(2px) rotate(var(--sticker-angle)) scale(.95);
  filter:brightness(.99);
}
.stickerbook-shop{
  --sticker-angle:-1.8deg;
  top:36px;
  left:50%;
  width:min(790px,76%);
  transform:translateX(-50%) rotate(var(--sticker-angle));
}
.stickerbook-shop:hover{transform:translateX(-50%) translateY(-8px) rotate(var(--sticker-angle)) scale(1.018)}
.stickerbook-shop:active,
.stickerbook-shop.is-pressed{transform:translateX(-50%) translateY(2px) rotate(var(--sticker-angle)) scale(.95)}
.stickerbook-zukan{
  --sticker-angle:-6.2deg;
  top:548px;
  left:7.5%;
  width:min(300px,27%);
}
.stickerbook-diary{
  --sticker-angle:5.4deg;
  top:575px;
  right:7%;
  width:min(320px,29%);
}
.stickerbook-search{
  --sticker-angle:-2.8deg;
  top:785px;
  left:50%;
  width:min(465px,43%);
  transform:translateX(-50%) rotate(var(--sticker-angle));
}
.stickerbook-search:hover{transform:translateX(-50%) translateY(-8px) rotate(var(--sticker-angle)) scale(1.018)}
.stickerbook-search:active,
.stickerbook-search.is-pressed{transform:translateX(-50%) translateY(2px) rotate(var(--sticker-angle)) scale(.95)}
.stickerbook-girl-area{
  position:relative;
  min-height:620px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin-top:-10px;
}
.stickerbook-girl{
  position:relative;
  z-index:2;
  display:block;
  width:min(590px,59%);
  height:auto;
  margin:0 auto;
  image-rendering:auto;
  filter:drop-shadow(0 12px 8px rgba(112,91,134,.10));
}
.stickerbook-speech{
  position:absolute;
  z-index:5;
  left:calc(50% + 190px);
  top:72px;
  width:min(310px,29%);
  min-height:108px;
  display:grid;
  place-items:center;
  padding:21px 25px;
  border:3px solid #a995cf;
  border-radius:26px;
  color:#7265aa;
  background:rgba(255,255,255,.95);
  box-shadow:4px 5px 0 rgba(165,142,196,.20),inset 0 0 0 3px #f7eef8;
  font-family:"DotGothic16","MS Gothic",monospace;
  font-size:clamp(12px,1.15vw,17px);
  font-weight:bold;
  line-height:1.8;
  letter-spacing:.035em;
  text-align:center;
}
.stickerbook-speech:before{
  content:"";
  position:absolute;
  left:-22px;
  bottom:26px;
  width:33px;
  height:28px;
  background:linear-gradient(42deg,transparent 0 48%,#a995cf 49% 56%,#fff 57% 100%);
  transform:rotate(8deg);
}
.stickerbook-speech:after{
  content:"♡";
  position:absolute;
  right:12px;
  top:7px;
  color:#e3a1c4;
  font-size:12px;
}
.stickerbook-speech.is-rare{
  border-color:#9e86cc;
  color:#6758a3;
  box-shadow:4px 5px 0 rgba(143,118,188,.24),0 0 16px rgba(212,168,220,.18),inset 0 0 0 3px #f5ebfb;
}

@media(max-width:980px){
  .stickerbook-section{min-height:1880px;padding-inline:18px}
  .stickerbook-paper{min-height:1760px}
  .stickerbook-canvas{height:1150px}
  .stickerbook-shop{width:min(720px,82%)}
  .stickerbook-zukan{top:505px;left:5%;width:29%}
  .stickerbook-diary{top:535px;right:5%;width:31%}
  .stickerbook-search{top:735px;width:46%}
  .stickerbook-girl-area{min-height:610px}
  .stickerbook-girl{width:min(560px,65%)}
  .stickerbook-speech{left:auto;right:5%;top:58px;width:30%}
}

@media(max-width:760px){
  .stickerbook-section{
    min-height:1780px;
    padding:42px 8px calc(86px + env(safe-area-inset-bottom));
  }
  .stickerbook-paper{min-height:1680px}
  .stickerbook-canvas{height:1120px}
  .stickerbook-shop{top:25px;width:94%}
  .stickerbook-zukan{top:390px;left:4%;width:43%}
  .stickerbook-diary{top:412px;right:3%;width:45%}
  .stickerbook-search{top:680px;width:min(470px,73%)}
  .stickerbook-girl-area{
    min-height:560px;
    margin-top:-2px;
    padding-top:110px;
  }
  .stickerbook-girl{width:min(560px,91%)}
  .stickerbook-speech{
    left:50%;
    right:auto;
    top:3px;
    width:min(330px,82%);
    min-height:88px;
    padding:17px 21px;
    transform:translateX(-50%);
    font-size:13px;
  }
  .stickerbook-speech:before{
    left:50%;
    bottom:-19px;
    width:28px;
    height:25px;
    transform:translateX(-50%) rotate(132deg);
  }
}

@media(max-width:420px){
  .stickerbook-section{min-height:1455px;padding-top:36px}
  .stickerbook-paper{min-height:1340px}
  .stickerbook-canvas{height:905px}
  .stickerbook-shop{top:18px;width:97%}
  .stickerbook-zukan{top:345px;left:2%;width:45%}
  .stickerbook-diary{top:365px;right:1%;width:47%}
  .stickerbook-search{top:612px;width:78%}
  .stickerbook-girl-area{min-height:430px;padding-top:102px}
  .stickerbook-girl{width:98%}
  .stickerbook-speech{width:88%;font-size:12px;line-height:1.65}
}

@media(hover:none){
  .stickerbook-link:hover{filter:none}
  .stickerbook-shop:hover{transform:translateX(-50%) rotate(var(--sticker-angle))}
  .stickerbook-search:hover{transform:translateX(-50%) rotate(var(--sticker-angle))}
  .stickerbook-zukan:hover,
  .stickerbook-diary:hover{transform:rotate(var(--sticker-angle))}
}

@media(prefers-reduced-motion:reduce){
  .stickerbook-paper,
  .stickerbook-link{transition:none!important}
  .stickerbook-paper{opacity:1;transform:none}
}

/* HOME STICKER BOOK — cool-white blue album paper + responsive girl repair */
.stickerbook-section{
  border-top:3px solid rgba(169,198,228,.54);
  background-color:#f8fcff;
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.68),rgba(240,248,255,.16) 44%,rgba(255,255,255,.42)),
    url("assets/stickerbook/paper-texture-blue.webp");
  background-repeat:repeat,repeat;
  background-size:auto,256px 256px;
  background-blend-mode:normal,multiply;
  box-shadow:
    inset 0 22px 38px rgba(119,159,199,.075),
    inset 0 -18px 34px rgba(181,204,230,.055);
}
.stickerbook-section:before{
  opacity:.48;
  background:radial-gradient(circle at 13px -2px,transparent 0 12px,rgba(164,195,227,.40) 12.5px 13.5px,transparent 14px) 0 0/26px 26px repeat-x;
}

/* Keep the speech and the girl within one stable composition on narrow screens. */
@media(max-width:760px){
  .stickerbook-girl-area{
    box-sizing:border-box;
    min-height:470px;
    margin-top:0;
    padding:18px 12px 22px;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto;
    justify-items:center;
    align-content:end;
    row-gap:14px;
    overflow:visible;
  }
  .stickerbook-speech{
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    width:min(260px,72vw);
    min-height:0;
    box-sizing:border-box;
    margin:0;
    padding:13px 18px;
    border:2px solid #9f91ca;
    border-radius:20px;
    transform:none;
    color:#7065a7;
    background:rgba(252,254,255,.96);
    box-shadow:3px 4px 0 rgba(145,168,205,.14),inset 0 0 0 2px #eef7ff;
    font-size:12px;
    line-height:1.55;
    overflow-wrap:anywhere;
  }
  .stickerbook-speech:before{
    left:50%;
    bottom:-16px;
    width:23px;
    height:20px;
    background:linear-gradient(42deg,transparent 0 48%,#9f91ca 49% 56%,#fcfeff 57% 100%);
    transform:translateX(-50%) rotate(132deg);
  }
  .stickerbook-speech:after{
    right:9px;
    top:5px;
    font-size:10px;
  }
  .stickerbook-girl{
    width:min(320px,78vw);
    max-width:100%;
    height:auto;
    margin:0 auto;
    align-self:end;
  }
}

@media(max-width:420px){
  .stickerbook-section{
    min-height:1425px;
    padding-top:34px;
  }
  .stickerbook-paper{min-height:1315px}
  .stickerbook-canvas{height:890px}
  .stickerbook-shop{top:18px;width:96%}
  .stickerbook-zukan{top:338px;left:3%;width:44%}
  .stickerbook-diary{top:357px;right:2%;width:46%}
  .stickerbook-search{top:595px;width:76%}
  .stickerbook-girl-area{
    min-height:388px;
    padding:14px 10px 16px;
    row-gap:12px;
  }
  .stickerbook-speech{
    width:min(246px,70vw);
    padding:11px 15px;
    font-size:11px;
    line-height:1.5;
  }
  .stickerbook-girl{
    width:min(294px,74vw);
  }
}

/* HOME GUIDE + WEBMASTER NEWS — compact 2000s personal-site windows */
.stickerbook-info-board{
  position:absolute;
  z-index:4;
  top:585px;
  left:50%;
  width:min(1040px,84%);
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:22px;
  transform:translateX(-50%);
  font-family:"DotGothic16","MS Gothic",monospace;
}
.stickerbook-guide-window,
.stickerbook-news-window{
  min-width:0;
  overflow:hidden;
  border:3px solid #8fa8d8;
  color:#655fa1;
  background:rgba(253,254,255,.96);
  box-shadow:6px 6px 0 rgba(132,151,203,.18),inset 0 0 0 2px rgba(235,244,255,.95);
}
.stickerbook-guide-window>header,
.stickerbook-news-window>header{
  height:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 10px 0 12px;
  border-bottom:2px solid #91a9d8;
  color:#fff;
  background:linear-gradient(90deg,#8da8dc,#aaa0df 58%,#e6accd);
  text-shadow:1px 1px #746fba;
  letter-spacing:.12em;
}
.stickerbook-guide-window>header strong,
.stickerbook-news-window>header strong{font-size:13px}
.stickerbook-guide-window>header span,
.stickerbook-news-window>header span{font-size:11px;letter-spacing:.22em}
.stickerbook-guide-body{
  min-height:218px;
  display:grid;
  place-content:center;
  gap:8px;
  padding:18px 20px;
  background:
    linear-gradient(90deg,transparent 23px,rgba(126,158,210,.07) 24px),
    linear-gradient(transparent 23px,rgba(126,158,210,.07) 24px),
    rgba(255,255,255,.94);
  background-size:24px 24px;
  text-align:center;
}
.stickerbook-guide-body p{margin:0;font-size:13px;line-height:1.85}
.stickerbook-guide-body b{color:#8667bd;font-size:14px}
.stickerbook-news-body{
  min-height:218px;
  display:grid;
  grid-template-rows:1fr auto;
  padding:12px 14px 13px;
}
.stickerbook-news-body ol{list-style:none;margin:0;padding:0}
.stickerbook-news-body li{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:10px;
  padding:6px 4px;
  border-bottom:1px dotted #b8c7e7;
  font-size:11px;
  line-height:1.45;
}
.stickerbook-news-body time{color:#7d8fbd;font-weight:bold}
.stickerbook-news-body li span{min-width:0;color:#675e9e;overflow-wrap:anywhere}
.stickerbook-news-more{
  justify-self:end;
  margin-top:9px;
  padding:6px 10px;
  border:2px outset #eaf2ff;
  color:#765dad;
  background:linear-gradient(#fff,#edf3ff);
  font-size:11px;
  font-weight:bold;
  cursor:pointer;
}
.stickerbook-news-more:hover{background:linear-gradient(#fff5fb,#eaf3ff)}
.stickerbook-news-more:active{transform:translateY(1px);border-style:inset}

/* Move the remaining stickers down only far enough to make room for the guide. */
.stickerbook-section{min-height:2260px}
.stickerbook-paper{min-height:2140px}
.stickerbook-canvas{height:1510px}
.stickerbook-zukan{top:875px}
.stickerbook-diary{top:900px}
.stickerbook-search{top:1120px}

/* Dedicated webmaster news page */
.news-page{
  width:min(900px,96%);
  margin:22px auto 52px;
  font-family:"DotGothic16","MS Gothic",monospace;
}
.news-intro-window,
.news-log-window{
  overflow:hidden;
  border:3px solid #8fa8d8;
  color:#625d9b;
  background:rgba(255,255,255,.96);
  box-shadow:6px 6px 0 rgba(125,145,202,.18),inset 0 0 0 2px #eef5ff;
}
.news-intro-window>header,
.news-log-window>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:39px;
  padding:7px 12px;
  border-bottom:2px solid #91a9d8;
  color:#fff;
  background:linear-gradient(90deg,#839fda,#aaa0df 58%,#e7adcf);
  text-shadow:1px 1px #716db3;
}
.news-intro-window>header strong{font-size:15px}
.news-intro-window>header span{font-size:10px;letter-spacing:.2em}
.news-intro-window>div{
  padding:25px 28px 22px;
  background:
    linear-gradient(90deg,transparent 31px,rgba(125,157,211,.065) 32px),
    linear-gradient(transparent 31px,rgba(125,157,211,.065) 32px),
    rgba(255,255,255,.94);
  background-size:32px 32px;
  text-align:center;
}
.news-intro-window p{margin:0 0 14px;font-size:13px;line-height:2}
.news-intro-window p:last-child{margin-bottom:0;color:#896bb6;font-weight:bold}
.news-log-window{margin-top:22px}
.news-log-window>header strong{letter-spacing:.14em}
.news-log-window>header span{font-size:10px;letter-spacing:.12em}
.news-log-list{padding:11px 16px 19px}
.news-log-entry{
  position:relative;
  margin:0;
  padding:15px 12px 16px 18px;
  border-bottom:2px dotted #b7c6e5;
}
.news-log-entry:last-child{border-bottom:0}
.news-log-entry:before{
  content:"◇";
  position:absolute;
  left:0;
  top:18px;
  color:#df91bc;
  font-size:11px;
}
.news-log-entry.is-latest:after{
  content:"NEW!";
  position:absolute;
  right:9px;
  top:12px;
  padding:2px 5px;
  border:1px solid #e5a4c8;
  color:#c86c9d;
  background:#fff0f7;
  font-size:8px;
  animation:spark 1.8s steps(2,end) infinite;
}
.news-log-meta{display:flex;align-items:center;gap:10px;padding-right:46px}
.news-log-meta time{color:#7389b9;font-size:12px;font-weight:bold}
.news-log-meta span{
  padding:2px 7px;
  border:1px solid #a9bde0;
  color:#7b69ae;
  background:#edf5ff;
  font-size:8px;
  letter-spacing:.1em;
}
.news-log-entry p{margin:8px 0 0;color:#615b98;font-size:14px;line-height:1.7}

@media(max-width:980px){
  .stickerbook-info-board{top:540px;width:88%;gap:16px}
  .stickerbook-section{min-height:2160px}
  .stickerbook-paper{min-height:2040px}
  .stickerbook-canvas{height:1430px}
  .stickerbook-zukan{top:835px}
  .stickerbook-diary{top:860px}
  .stickerbook-search{top:1070px}
}

@media(max-width:760px){
  .stickerbook-info-board{
    top:285px;
    width:92%;
    grid-template-columns:1fr;
    gap:14px;
  }
  .stickerbook-guide-window,
  .stickerbook-news-window{border-width:2px;box-shadow:4px 4px 0 rgba(132,151,203,.16),inset 0 0 0 1px rgba(235,244,255,.95)}
  .stickerbook-guide-window>header,
  .stickerbook-news-window>header{height:30px;border-bottom-width:2px;padding-inline:9px}
  .stickerbook-guide-window>header strong,
  .stickerbook-news-window>header strong{font-size:11px}
  .stickerbook-guide-body{min-height:151px;padding:12px 14px;gap:5px}
  .stickerbook-guide-body p{font-size:11px;line-height:1.7}
  .stickerbook-guide-body b{font-size:12px}
  .stickerbook-news-body{min-height:219px;padding:9px 10px 10px}
  .stickerbook-news-body li{grid-template-columns:78px minmax(0,1fr);gap:7px;padding:5px 2px;font-size:9px;line-height:1.45}
  .stickerbook-news-more{margin-top:7px;padding:5px 8px;font-size:9px}
  .stickerbook-section{min-height:1900px}
  .stickerbook-paper{min-height:1790px}
  .stickerbook-canvas{height:1320px}
  .stickerbook-zukan{top:760px}
  .stickerbook-diary{top:785px}
  .stickerbook-search{top:1045px}
  .news-page{width:100%;margin:14px auto 32px}
  .news-intro-window,
  .news-log-window{border-width:2px;box-shadow:4px 4px 0 rgba(125,145,202,.15),inset 0 0 0 1px #eef5ff}
  .news-intro-window>header,
  .news-log-window>header{min-height:35px;padding:6px 9px;border-bottom-width:2px}
  .news-intro-window>header strong{font-size:12px}
  .news-intro-window>header span,
  .news-log-window>header span{font-size:8px}
  .news-intro-window>div{padding:18px 14px}
  .news-intro-window p{font-size:11px;line-height:1.85}
  .news-log-window{margin-top:15px}
  .news-log-list{padding:7px 10px 12px}
  .news-log-entry{padding:12px 8px 13px 15px}
  .news-log-entry:before{top:14px}
  .news-log-entry.is-latest:after{right:4px;top:9px}
  .news-log-meta{gap:7px;padding-right:40px}
  .news-log-meta time{font-size:10px}
  .news-log-meta span{padding:1px 5px;font-size:7px}
  .news-log-entry p{margin-top:6px;font-size:12px;line-height:1.6}
}

@media(max-width:420px){
  .stickerbook-info-board{top:278px;width:94%;gap:12px}
  .stickerbook-guide-body{min-height:145px;padding:10px 12px}
  .stickerbook-news-body{min-height:214px}
  .stickerbook-section{min-height:1795px}
  .stickerbook-paper{min-height:1685px}
  .stickerbook-canvas{height:1295px}
  .stickerbook-zukan{top:754px}
  .stickerbook-diary{top:777px}
  .stickerbook-search{top:1015px}
}

@media(prefers-reduced-motion:reduce){
  .news-log-entry.is-latest:after{animation:none}
}

/* Small-screen readability adjustment for the compact NEWS list. */
@media(max-width:760px){
  .stickerbook-news-body li{grid-template-columns:82px minmax(0,1fr);font-size:10px}
  .stickerbook-news-more{font-size:10px}
}


/* 2026-07 archive-special update: preserve the existing design while repairing visibility. */
.system-message-heading{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:190px;
  padding:4px 42px 0;
}
.secret-control-room-logo{display:block;width:min(500px,100%);height:auto;object-fit:contain}
.secret-access-subtitle{margin:-3px 0 8px!important;font-size:10px!important;line-height:1.5!important;letter-spacing:.12em}
.archive-folder-button{
  position:absolute;
  right:2px;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:42px;
  display:grid;
  place-items:center;
  margin-right:2px;
  padding:1px;
  border:0;
  background:transparent;
  opacity:.72;
  cursor:pointer;
  transition:transform .14s ease,opacity .14s ease,filter .14s ease;
}
.archive-folder-button img{
  display:block;
  width:42px;
  height:42px;
  object-fit:contain;
  image-rendering:pixelated;
}
.archive-folder-button:hover,.archive-folder-button:focus-visible{opacity:1;transform:translateY(calc(-50% - 2px));filter:drop-shadow(2px 2px 0 rgba(122,101,177,.25))}
.archive-folder-button:active,.archive-folder-button.is-opening{transform:translateY(calc(-50% + 2px)) scale(.94)}
.archive-folder-button.is-found{opacity:.88}
.archive-folder-button:focus-visible{outline:2px dashed #9d8bd1;outline-offset:2px}


.secret-manager-scene{position:relative;width:min(470px,100%);min-height:245px;margin:28px auto 0;display:flex;align-items:flex-end;justify-content:center}
.secret-manager-image{display:block;width:210px;max-width:55%;height:auto;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(3px 4px 0 rgba(112,91,159,.08))}
.secret-manager-speech{position:absolute;z-index:2;right:2%;top:20px;width:min(190px,45%);padding:11px 13px;border:2px solid #b8a7dd;border-radius:16px;color:#6d61a8;background:rgba(255,255,255,.97);box-shadow:3px 3px 0 rgba(122,101,177,.13);font-size:10px;line-height:1.65;text-align:left}
.secret-manager-speech:before{content:"";position:absolute;left:24px;bottom:-12px;border-width:11px 9px 0 0;border-style:solid;border-color:#b8a7dd transparent transparent transparent;transform:skewX(-18deg)}
.secret-manager-speech:after{content:"";position:absolute;left:26px;bottom:-8px;border-width:8px 7px 0 0;border-style:solid;border-color:#fff transparent transparent transparent;transform:skewX(-18deg)}
.archive-diary-entry{position:relative}
.archive-diary-detail-link{display:block;margin:0 16px 16px;padding:9px 12px;border:2px solid #9eafe0;color:#766bc0;background:#fff;box-shadow:2px 2px #dce3f4;text-align:center;text-decoration:none;font-size:10px}
.archive-diary-detail-link:hover{transform:translateY(-1px);background:#fff2f8}

.archive-discovery-overlay{
  position:fixed;
  z-index:1200;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(225,235,255,.68);
  backdrop-filter:blur(1px);
}
.archive-discovery-overlay[hidden]{display:none!important}
.archive-discovery-window{
  width:min(430px,94vw);
  border:3px solid #8e80cd;
  background:#fff;
  box-shadow:8px 8px 0 rgba(101,83,164,.23),inset 0 0 0 3px #f2f6ff;
  animation:archive-popup-in .22s steps(3,end) both;
}
.archive-discovery-window>header{
  height:39px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-left:11px;
  border-bottom:3px solid #8e80cd;
  color:#fff;
  background:linear-gradient(90deg,#88a7e5,#b6a4e6 55%,#eab6d6);
  font-size:10px;
  letter-spacing:.12em;
  text-shadow:1px 1px #786eb5;
}
.archive-discovery-window>header button{
  width:38px;
  height:100%;
  border:0;
  border-left:3px solid #8e80cd;
  color:#6c5eae;
  background:#fff;
  cursor:pointer;
  font-size:21px;
}
.archive-discovery-body{display:grid;justify-items:center;padding:24px 22px 21px;text-align:center;color:#6559a4}
.archive-discovery-body>img{width:82px;height:82px;object-fit:contain;image-rendering:pixelated;margin-bottom:6px}
.archive-discovery-body>strong{font-size:19px;letter-spacing:.04em}
.archive-discovery-body>p{margin:14px 0 18px;font-size:12px;line-height:1.9}
.archive-discovery-body>button{min-width:130px;padding:9px 22px;border:2px solid #8e80cd;background:linear-gradient(180deg,#fff,#eaf3ff);box-shadow:3px 3px 0 rgba(101,83,164,.18);color:#6559a4;font-family:inherit;cursor:pointer;font-weight:bold}
.archive-discovery-body>button:active{transform:translateY(2px);box-shadow:1px 1px 0 rgba(101,83,164,.18)}
.archive-discovery-body>small{margin-top:10px;color:#9a8bc7;font-size:8px}
@keyframes archive-popup-in{from{opacity:0;transform:translateY(7px) scale(.98)}to{opacity:1;transform:none}}

.special-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,240px));justify-content:center;gap:18px}
.special-archive .special-card{width:100%;margin:0}

/* Mobile-first top-page repair: compact the menu and raise the unchanged character artwork. */
@media(max-width:760px){
  .hero-stage{inset:160px 4px 0}
  .game-menu{top:-5px;width:70%;max-width:300px;padding:8px 11px 7px}
  .game-menu-title{margin-bottom:1px!important}
  .game-menu button{min-height:34px;padding:2px 9px 2px 4px}
  .game-menu .shop-menu-button{min-height:30px;margin-top:1px;padding-top:2px;padding-bottom:2px}
  .game-menu .menu-label small{margin-top:1px}
  .hero-girl{bottom:6%}
  .system-message-heading{min-height:142px;padding:0 34px}
  .secret-control-room-logo{width:min(420px,100%)}
  .archive-folder-button{width:39px;height:37px}
  .archive-folder-button img{width:35px;height:35px}
  .secret-manager-scene{min-height:220px;margin-top:22px}
  .secret-manager-image{width:190px;max-width:58%}
  .secret-manager-speech{right:0;top:8px;width:min(168px,47%);padding:9px 10px;font-size:9px}
  .special-archive-grid{grid-template-columns:minmax(0,240px)}
}
@media(max-width:420px){
  .hero-stage{inset:137px 2px 0}
  .game-menu{top:-4px;width:72%;max-width:278px;padding:7px 9px 6px}
  .game-menu button{min-height:31px;padding-top:1px;padding-bottom:1px}
  .game-menu .shop-menu-button{min-height:28px}
  .hero-girl{bottom:5%}
  .archive-discovery-overlay{padding:10px}
  .archive-discovery-body{padding:21px 15px 19px}
  .archive-discovery-body>strong{font-size:17px}
  .archive-discovery-body>p{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.archive-discovery-window{animation-duration:.01ms!important}.archive-folder-button{transition:none!important}}


/* SECRET GIRLS ARCHIVE — separate section within the existing mail/route view. */
.secret-girl-card{min-height:360px}
.secret-girl-image{height:210px;display:grid;place-items:center;margin:10px 0 12px;overflow:hidden;border:1px dashed #c8bde5;background:linear-gradient(180deg,#f8fbff,#fff2f8)}
.secret-girl-image img{display:block;width:100%;height:100%;object-fit:contain}
.secret-girl-image img.archive-girl-card-image{transform:translateY(-36px)}
.secret-girl-image.locked-image{color:#a99fc6;font-size:58px;opacity:.35}
.secret-girl-card .secret-open-button{display:inline-block;text-decoration:none}
@media(max-width:760px){
  .secret-girl-card{min-height:330px}
  .secret-girl-image{height:190px}
  .secret-girl-image img.archive-girl-card-image{transform:translateY(-34px)}
}


/* ROUTE 001 — DENNOU CAT: top-logo interaction and affection system. */
.dennou-cat-widget{
  position:absolute;
  z-index:10;
  top:7%;
  right:3.2%;
  width:86px;
  height:86px;
  overflow:visible;
}
.dennou-cat-button{
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.dennou-cat-button img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:pixelated;
  pointer-events:none;
}
.dennou-cat-button:hover{transform:translateY(-1px)}
.dennou-cat-button:active,.dennou-cat-button.is-petted{transform:translateY(1px)}
.dennou-cat-button:focus-visible{outline:2px dashed #9d8bd1;outline-offset:2px}
.dennou-cat-button.is-unlocked{cursor:pointer}
.dennou-cat-prompt,.dennou-cat-speech{
  position:absolute;
  z-index:4;
  right:-7px;
  bottom:calc(100% - 7px);
  min-width:max-content;
  padding:5px 8px 6px;
  border:2px solid #7768b6;
  color:#62568f;
  background:#fff;
  box-shadow:2px 2px 0 rgba(113,101,174,.28);
  font-family:"DotGothic16","MS Gothic",monospace;
  font-size:10px;
  font-weight:bold;
  line-height:1;
  letter-spacing:.04em;
  white-space:nowrap;
  pointer-events:none;
}
.dennou-cat-prompt::before,.dennou-cat-speech::before{
  content:"";
  position:absolute;
  right:17px;
  bottom:-7px;
  width:9px;
  height:9px;
  border-right:2px solid #7768b6;
  border-bottom:2px solid #7768b6;
  background:#fff;
  transform:rotate(45deg);
}
.dennou-cat-prompt[hidden],.dennou-cat-speech[hidden]{display:none!important}
.dennou-cat-prompt{animation:dennou-cat-prompt 1.8s steps(2,end) infinite}
.dennou-cat-speech{
  opacity:0;
  transform:translateY(3px);
  transition:opacity .12s linear,transform .12s linear;
}
.dennou-cat-speech.is-visible{opacity:1;transform:none}
@keyframes dennou-cat-prompt{0%,82%{transform:translateY(0)}83%,100%{transform:translateY(-1px)}}
.secret-card .secret-open-button[href]{display:inline-block;text-decoration:none;text-align:center}

.cat-unlock-overlay{
  position:fixed;
  z-index:300;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(72,62,111,.22);
  opacity:0;
  transition:opacity .18s linear;
}
.cat-unlock-overlay[hidden]{display:none!important}
.cat-unlock-overlay.is-visible{opacity:1}
.cat-unlock-window{
  width:min(390px,calc(100vw - 36px));
  border:3px solid #887ac1;
  color:#655a9c;
  background:#fff;
  box-shadow:7px 7px 0 rgba(92,76,145,.24),inset 0 0 0 4px #edf5ff;
  transform:translateY(5px);
  transition:transform .18s ease;
  font-family:"DotGothic16","MS Gothic",monospace;
  text-align:center;
}
.cat-unlock-overlay.is-visible .cat-unlock-window{transform:none}
.cat-unlock-window header{
  padding:8px 10px;
  border-bottom:3px solid #887ac1;
  color:#fff;
  background:linear-gradient(90deg,#86a4df,#b7abe3 55%,#e4b7d3);
  font-size:11px;
  letter-spacing:.14em;
  text-shadow:1px 1px #7469a8;
}
.cat-unlock-window div{padding:24px 16px 25px}
.cat-unlock-window strong{display:block;color:#7768b6;font-size:20px;letter-spacing:.12em}
.cat-unlock-window p{margin:12px 0 0;font-size:12px;line-height:1.8}

@media(max-width:760px){
  .dennou-cat-widget{top:9%;right:2.2%;width:62px;height:62px}
  .dennou-cat-prompt,.dennou-cat-speech{right:-5px;bottom:calc(100% - 5px);padding:4px 7px 5px;font-size:9px}
}
@media(max-width:420px){
  .dennou-cat-widget{top:9%;right:1.5%;width:54px;height:54px}
  .dennou-cat-prompt,.dennou-cat-speech{right:-3px;font-size:8px}
}
@media(prefers-reduced-motion:reduce){
  .dennou-cat-button,.dennou-cat-prompt,.dennou-cat-speech,.cat-unlock-overlay,.cat-unlock-window{animation:none!important;transition:none!important}
}

.player .footer-cat{border:0;color:#836ec2;background:transparent;font-size:20px}

/* ROUTE 002 — logo tap feedback. */
.official-logo.is-route-tapped{transform:translateY(2px) scale(.995)}
@media(prefers-reduced-motion:reduce){.official-logo.is-route-tapped{transform:none}}


/* OBSERVER COUNTER — Cloudflare KV visitor count, placed beneath the stickerbook girl. */
.stickerbook-girl-stack{
  position:relative;
  z-index:2;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
}
.observer-counter-panel{
  position:relative;
  z-index:4;
  width:min(390px,72%);
  box-sizing:border-box;
  margin:-2px auto 8px;
  padding:10px 16px 12px;
  border:2px solid #9baed8;
  border-radius:7px;
  color:#69619b;
  background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(238,246,255,.94));
  box-shadow:3px 4px 0 rgba(127,145,194,.16),inset 0 0 0 2px rgba(255,255,255,.88);
  font-family:"DotGothic16","MS Gothic",monospace;
  text-align:center;
}
.observer-counter-panel:before{
  content:"ACCESS LOG  □  ×";
  display:block;
  margin:-10px -16px 9px;
  padding:4px 8px;
  border-bottom:2px solid #aebde0;
  color:#776ba6;
  background:linear-gradient(90deg,#e8f3ff,#f4efff 55%,#ffeef6);
  font-size:9px;
  line-height:1.2;
  letter-spacing:.08em;
  text-align:left;
}
.observer-counter-title{
  display:block;
  margin-bottom:4px;
  color:#8a73b2;
  font-size:11px;
  font-weight:bold;
  letter-spacing:.08em;
}
.observer-counter-number{
  display:block;
  min-height:29px;
  color:#62528f;
  font-family:"Courier New","MS Gothic",monospace;
  font-size:25px;
  line-height:1.15;
  letter-spacing:.16em;
  font-variant-numeric:tabular-nums;
  text-shadow:1px 1px 0 #fff;
}
.observer-counter-message{
  display:block;
  margin-top:4px;
  color:#7b79a9;
  font-size:9px;
  line-height:1.5;
}
.observer-counter-panel.is-kiriban{
  border-color:#d98bb6;
  background:linear-gradient(180deg,#fffafd,#fff0f7);
  box-shadow:3px 4px 0 rgba(198,119,165,.18),0 0 16px rgba(225,143,187,.22),inset 0 0 0 2px #fff;
  animation:kiriban-glow 1s ease-in-out 2;
}
.observer-counter-panel.is-kiriban:before{
  border-bottom-color:#e2a4c6;
  color:#9e5f87;
  background:linear-gradient(90deg,#fff0f7,#f5efff 55%,#eef7ff);
}
.observer-counter-panel.is-kiriban .observer-counter-number{color:#bb5f91}
.observer-counter-panel.has-error .observer-counter-number{font-size:18px;letter-spacing:.04em}
@keyframes kiriban-glow{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
@media(max-width:760px){
  .stickerbook-girl-stack{grid-row:2;width:100%}
  .observer-counter-panel{width:min(300px,82vw);margin:-3px auto 0;padding:9px 13px 10px}
  .observer-counter-panel:before{margin:-9px -13px 8px;font-size:8px}
  .observer-counter-number{font-size:22px}
  .observer-counter-title{font-size:10px}
  .observer-counter-message{font-size:8px}
}
@media(max-width:420px){
  .observer-counter-panel{width:min(274px,84vw);padding:8px 12px 9px}
  .observer-counter-panel:before{margin:-8px -12px 7px}
  .observer-counter-number{font-size:20px;letter-spacing:.13em}
}
@media(prefers-reduced-motion:reduce){
  .observer-counter-panel.is-kiriban{animation:none}
}
