*{box-sizing:border-box}:root{--black:#050706;--black-soft:#101713;--ink:#111;--white:#fff;--paper:#f4f0de;--green:#14e878;--green-deep:#06723b;--mint:#9dffd0;--yellow:#ffd84f;--cyan:#22c9d8;--red:#ff3659;--gray:#94a39b;--shadow:rgba(0,0,0,.45);font-family:"Yu Gothic","Meiryo",system-ui,sans-serif}html,body{width:100%;min-height:100%;margin:0}body{overflow:hidden;color:var(--white);background:linear-gradient(0deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(135deg,#06100b 0%,#040605 48%,#0b2117 100%);background-size:42px 42px,42px 42px,auto}button{font:inherit;cursor:pointer}.portal-root{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;width:100%;height:100vh;height:100dvh;padding:14px;opacity:1;transition:filter .18s ease}.system-boot{position:fixed;z-index:5000;inset:0;display:grid;place-items:center;padding:28px;background:linear-gradient(112deg,rgba(20,232,120,.22),transparent 44%),rgba(0,0,0,.96);transition:opacity .2s ease,visibility .2s ease}.system-boot.is-complete{opacity:0;visibility:hidden;pointer-events:none}.boot-card{position:relative;display:grid;gap:16px;width:min(820px,94vw);padding:clamp(26px,6vw,54px);color:var(--ink);background:var(--white);border:7px solid var(--black);box-shadow:18px 18px 0 var(--green-deep);clip-path:polygon(0 7%,100% 0,96% 92%,4% 100%);transform:rotate(-1deg);animation:boot-slam .58s cubic-bezier(.16,1,.3,1) both}.boot-card::before{content:"";position:absolute;z-index:-1;left:-8%;right:-8%;top:45%;height:28%;background:var(--green);border-block:6px solid var(--black);transform:rotate(-4deg)}.boot-card strong{font-size:clamp(2rem,5vw,4.4rem);font-weight:1000;line-height:1.02;text-shadow:5px 5px 0 var(--green)}.boot-card>span:last-child{justify-self:start;padding:9px 13px;color:var(--black);background:var(--yellow);border:4px solid var(--black);font-weight:1000}@keyframes boot-slam{from{opacity:0;transform:translateZ(820px) scale(2.4) rotate(-8deg);filter:blur(8px)}70%{opacity:1;transform:scale(.94) rotate(1deg);filter:none}to{transform:scale(1) rotate(-1deg)}}.identity-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0}.brand-block{display:block;min-width:190px;padding:13px 16px 11px;color:var(--ink);background:var(--white);border:5px solid var(--black);box-shadow:9px 9px 0 var(--green-deep);clip-path:polygon(0 9%,100% 0,94% 100%,5% 92%);transform:rotate(-2deg);text-decoration:none}.brand-kicker,.gate-kicker,.panel-label{display:inline-block;width:fit-content;padding:6px 10px;color:var(--white);background:var(--black);font-size:.78rem;font-weight:1000;line-height:1}.brand-block h1{margin:5px 0 0;font-size:1.72rem;font-weight:1000;line-height:.95}.identity-strip{display:grid;grid-template-columns:minmax(100px,.22fr) minmax(160px,.3fr) minmax(250px,1fr);gap:10px;min-width:0}.identity-chip{min-width:0;min-height:70px;padding:10px 12px;color:var(--ink);background:var(--paper);border:4px solid var(--black);box-shadow:7px 7px 0 var(--shadow);transform:skewX(-5deg)}.identity-chip>*{display:block;transform:skewX(5deg)}.identity-chip span{color:var(--green-deep);font-size:.72rem;font-weight:1000}.identity-chip strong{margin-top:4px;font-size:clamp(.95rem,1.7vw,1.35rem);font-weight:1000;line-height:1.12;overflow-wrap:anywhere}.header-actions{display:grid;grid-template-columns:minmax(190px,auto) auto;align-items:center;gap:9px}.portal-status{max-width:270px;padding:9px 11px;color:var(--mint);background:var(--black);border-left:8px solid var(--green);font-size:.82rem;font-weight:900}.portal-status span{color:var(--white)}.system-count{padding:8px 10px;color:var(--ink);background:var(--yellow);border:4px solid var(--black);box-shadow:6px 6px 0 var(--shadow);font-size:.72rem;font-weight:1000}.system-count b{font-size:1.2rem}.env-banner{display:none;position:absolute;top:8px;right:8px;padding:4px 8px;color:var(--white);background:var(--red);border:3px solid var(--black);font-weight:1000}body.env-dev .env-banner{display:block}.dashboard-grid{display:grid;grid-template-columns:minmax(245px,.72fr) minmax(330px,1fr) minmax(360px,1.12fr);gap:14px;min-height:0;overflow:hidden}.portal-panel{min-width:0;min-height:0;padding:14px;overflow-y:auto;color:var(--ink);background:var(--paper);border:5px solid var(--black);border-radius:6px;box-shadow:10px 10px 0 var(--shadow);scrollbar-color:var(--green-deep) var(--black);opacity:0;animation:panel-start .46s cubic-bezier(.16,1,.3,1) forwards}.guide-panel{transform:rotate(-.4deg);animation-delay:.42s}.games-panel{transform:rotate(.25deg);animation-delay:.54s}.data-panel{transform:rotate(.35deg);animation-delay:.66s}@keyframes panel-start{from{opacity:0;translate:0 22px;filter:brightness(.4)}to{opacity:1;translate:0 0;filter:none}}.portal-panel::-webkit-scrollbar{width:12px}.portal-panel::-webkit-scrollbar-track{background:var(--black)}.portal-panel::-webkit-scrollbar-thumb{background:var(--green);border:3px solid var(--black)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.panel-heading h2{margin:8px 0 0;color:var(--black);font-size:clamp(1.45rem,2.4vw,2.1rem);font-weight:1000;line-height:1}.panel-slash{width:48px;height:76px;flex:0 0 auto;background:var(--green);border:4px solid var(--black);transform:skewX(-18deg) rotate(7deg)}.notice-item,.material-card{border:4px solid var(--black);border-radius:6px;box-shadow:7px 7px 0 var(--shadow)}.notice-item{padding:13px;background:var(--white)}.notice-item.is-hot{background:linear-gradient(100deg,rgba(20,232,120,.28),transparent 42%),var(--white)}.notice-date{display:inline-block;margin-bottom:8px;padding:5px 8px;color:var(--white);background:var(--green-deep);font-size:.72rem;font-weight:1000}.notice-item h3{margin:0;font-size:1.05rem;font-weight:1000}.notice-item p,.material-card>p{margin:8px 0 0;color:#29362f;font-size:.86rem;font-weight:900;line-height:1.45}.system-metrics{display:grid;gap:8px;margin-top:14px}.system-metrics div{padding:9px;color:var(--white);background:var(--black-soft);border:3px solid var(--black)}.system-metrics span,.system-metrics strong{display:block}.system-metrics span{color:var(--mint);font-size:.68rem;font-weight:1000}.system-metrics strong{margin-top:3px;font-size:.86rem;font-weight:1000}.update-log{margin-top:14px;padding:13px;color:var(--white);background:var(--black);border:4px solid var(--black);box-shadow:7px 7px 0 var(--shadow)}.update-log ol{display:grid;gap:8px;margin:12px 0 0;padding-left:23px;color:var(--mint);font-size:.84rem;font-weight:900}.device-note{margin-top:14px;padding:10px;background:var(--mint);border:3px solid var(--black)}.device-note span{font-size:.7rem;font-weight:1000}.device-note p{margin:4px 0 0;font-size:.78rem;font-weight:900}.material-list{display:grid;gap:12px}.material-card{position:relative;display:grid;gap:9px;padding:12px;color:var(--ink);background:var(--white);transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.material-card:hover,.material-card.is-selected{background:linear-gradient(102deg,rgba(20,232,120,.24),transparent 48%),var(--white);box-shadow:9px 9px 0 var(--green);transform:translate(-3px,-3px)}.material-title-row{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;padding-right:78px}.material-icon{display:grid;place-items:center;width:54px;height:54px;color:var(--white);background:var(--black);border:4px solid var(--green);font-size:1rem;font-weight:1000;transition:.14s}.material-card:hover .material-icon,.material-card.is-selected .material-icon{color:var(--black);background:var(--yellow);border-color:var(--black);transform:scale(1.04) rotate(-2deg)}.availability{display:block;color:var(--green-deep);font-size:.62rem;font-weight:1000;letter-spacing:.04em}.material-card h3{margin:3px 0 0;font-size:1rem;font-weight:1000;line-height:1.22;overflow-wrap:anywhere}.material-meta{display:flex;flex-wrap:wrap;gap:5px}.material-meta span{padding:4px 7px;color:var(--white);background:var(--black);border-left:5px solid var(--green);font-size:.62rem;font-weight:1000}.launch-button{position:absolute;right:9px;top:9px;min-width:68px;padding:5px 8px;color:var(--black);background:var(--green);border:3px solid var(--black);font-size:.72rem;font-weight:1000;transform:rotate(3deg);transition:.14s}.launch-button:hover,.launch-button:focus-visible{background:var(--yellow);outline:none}.material-card.is-selected .launch-button{color:var(--white);background:var(--black)}.launch-overlay{position:fixed;inset:0;z-index:12000;background:transparent}.launch-overlay[hidden],.fullscreen-gate[hidden],.lesson-state[hidden],.portal-message[hidden]{display:none}.lesson-shell{position:absolute;inset:0;width:100%;height:100%;height:100dvh;max-height:100%;min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:#061014}.lesson-bar{position:relative;z-index:4;min-height:56px;padding:6px max(12px,env(safe-area-inset-right)) 6px max(12px,env(safe-area-inset-left));display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;color:var(--white);background:var(--black);border-bottom:5px solid var(--green)}.lesson-bar span,.lesson-bar strong{display:block}.lesson-bar span{color:var(--mint);font-size:.65rem;font-weight:1000}.lesson-bar strong{font-size:.96rem;font-weight:1000}.session-status{padding:6px 9px;color:var(--black);background:var(--yellow);border:3px solid var(--black);font-size:.68rem;font-weight:1000}.lesson-bar button,.lesson-state button,.portal-message button{min-height:40px;padding:7px 12px;color:var(--ink);background:var(--yellow);border:4px solid var(--black);box-shadow:5px 5px 0 var(--green-deep);font-weight:1000;transition:.14s}.lesson-bar button:hover,.lesson-state button:hover,.portal-message button:hover{box-shadow:8px 8px 0 var(--green);transform:translate(-2px,-2px)}.lesson-shell iframe{width:100%;height:100%;max-height:100%;min-width:0;min-height:0;border:0;display:block;overflow:hidden;background:#061014}.lesson-state{position:absolute;z-index:3;inset:56px 0 0;display:grid;place-content:center;justify-items:start;gap:11px;padding:clamp(24px,6vw,60px);color:var(--ink);background:linear-gradient(112deg,rgba(20,232,120,.22),transparent 44%),rgba(0,0,0,.92)}.lesson-state::before{content:"";position:absolute;z-index:-1;width:min(700px,88vw);height:220px;place-self:center;background:var(--paper);border:7px solid var(--black);box-shadow:18px 18px 0 var(--green-deep);transform:skewX(-3deg)}.lesson-state>strong,.lesson-state>small,.lesson-state>p,.lesson-state>.panel-label,.lesson-state>button{position:relative;z-index:1}.lesson-state>strong{font-size:clamp(1.8rem,5vw,4rem);font-weight:1000;text-shadow:4px 4px 0 var(--green)}.lesson-state>small{padding:7px 10px;color:var(--white);background:var(--black);font-weight:1000}.lesson-state.is-ready{opacity:0;pointer-events:none;transition:opacity .18s ease}.lesson-blocker{z-index:5}.lesson-blocker p{max-width:560px;font-weight:900}.fullscreen-gate{position:fixed;inset:0;z-index:12010;display:grid;place-items:center;padding:28px;background:linear-gradient(112deg,rgba(20,232,120,.22),transparent 44%),rgba(0,0,0,.94)}.gate-card{position:relative;display:grid;gap:14px;width:min(900px,96vw);padding:clamp(24px,6vw,56px);color:var(--ink);background:var(--white);border:7px solid var(--black);box-shadow:18px 18px 0 var(--green-deep);text-align:left;clip-path:polygon(0 7%,100% 0,96% 92%,4% 100%);transform:rotate(-1deg);transition:transform .16s ease,box-shadow .16s ease}.gate-card::before{content:"";position:absolute;z-index:-1;left:-8%;right:-8%;top:45%;height:28%;background:var(--green);border-block:6px solid var(--black);transform:rotate(-4deg)}.gate-card:hover,.gate-card:focus-visible{outline:none;box-shadow:24px 24px 0 var(--green);transform:translate(-4px,-4px) rotate(0)}.gate-title{font-size:clamp(2rem,5vw,4.8rem);font-weight:1000;line-height:1.02;text-shadow:5px 5px 0 var(--green)}.gate-material{font-size:clamp(1rem,2vw,1.5rem);font-weight:1000}.gate-detail{justify-self:start;padding:10px 14px;background:var(--yellow);border:4px solid var(--black);font-weight:1000}.transition-fx{position:fixed;inset:0;z-index:12020;pointer-events:none;overflow:hidden}.transition-panel{position:absolute;inset:-1px;background:linear-gradient(160deg,#0b1220 0%,#0f172a 55%,#101d33 100%);transition:transform 1.1s cubic-bezier(.7,0,.2,1);will-change:transform}.transition-top{clip-path:polygon(-2% -2%,102% -2%,102% 32%,-2% 68%)}.transition-bottom{clip-path:polygon(-2% 68%,102% 32%,102% 102%,-2% 102%)}.transition-fx.is-open .transition-top{transform:translateY(-115%)}.transition-fx.is-open .transition-bottom{transform:translateY(115%)}.transition-fx.is-closing .transition-panel{transition:transform .7s cubic-bezier(.5,.05,.4,1)}.transition-band{position:absolute;inset:0;background:linear-gradient(160deg,#15803d 0%,#22c55e 35%,#86efac 50%,#22c55e 65%,#15803d 100%);clip-path:polygon(0 58%,100% 22%,100% 42%,0 78%);filter:drop-shadow(0 0 22px rgba(34,197,94,.9)) drop-shadow(0 0 60px rgba(34,197,94,.6));transform:translateX(-118%);will-change:transform}.transition-fx.is-slashed .transition-band{transform:translateX(0);transition:transform .45s cubic-bezier(.2,.85,.3,1)}.transition-fx.is-fading .transition-band{opacity:0;transition:opacity .6s ease-out}.portal-message{position:fixed;z-index:13000;inset:0;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.76)}.portal-message>div{width:min(620px,96vw);padding:24px;color:var(--ink);background:var(--paper);border:5px solid var(--black);box-shadow:12px 12px 0 var(--green-deep)}.portal-message h2{margin:12px 0 6px;font-size:1.8rem}.portal-message p{font-weight:900}.portal-message button{width:100%}
@media(max-width:1180px){.identity-bar{grid-template-columns:auto minmax(0,1fr)}.header-actions{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto}.dashboard-grid{grid-template-columns:repeat(3,minmax(280px,1fr));overflow-x:auto;padding-bottom:10px}}
@media(max-width:820px){body{overflow:auto}.portal-root{height:auto;min-height:100vh;min-height:100dvh;padding:12px;overflow:auto}.identity-bar,.identity-strip,.dashboard-grid{grid-template-columns:1fr}.identity-chip{transform:none}.identity-chip>*{transform:none}.header-actions{grid-template-columns:1fr auto}.dashboard-grid{width:100%;overflow:visible;gap:16px}.portal-panel{width:100%;min-height:0;transform:none}.guide-panel,.games-panel,.data-panel{transform:none}.material-title-row{padding-right:72px}.material-meta span{font-size:.58rem}.lesson-bar{min-height:calc(54px + env(safe-area-inset-top));padding-top:calc(5px + env(safe-area-inset-top));grid-template-columns:minmax(0,1fr) auto}.session-status{display:none}.lesson-bar button{font-size:.72rem}.lesson-state{inset:calc(54px + env(safe-area-inset-top)) 0 0;padding:22px}.lesson-state::before{width:calc(100vw - 28px);height:240px}.fullscreen-gate{padding:16px}.gate-card{border-width:5px;box-shadow:10px 10px 0 var(--green-deep)}.gate-title{font-size:2rem}}
@media(orientation:landscape) and (max-height:520px) and (pointer:coarse){.lesson-bar{display:none}.lesson-state{inset:0}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.dashboard-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.12fr) minmax(0,1.02fr)}
.lesson-shell[hidden]{display:none}
.guide-panel,.games-panel,.data-panel,.research-panel{transform:none}
.material-card{cursor:pointer}
.material-card:focus-visible{outline:5px solid var(--green);outline-offset:3px}
.preview-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr);gap:16px;width:min(960px,96vw);max-height:92vh;max-height:92dvh;padding:20px;color:var(--ink);background:var(--paper);border:7px solid var(--black);box-shadow:18px 18px 0 var(--green-deep);overflow:auto}
.preview-card>.gate-kicker{grid-column:1/-1}
.gate-preview{display:block;width:100%;height:100%;max-height:58vh;object-fit:contain;background:#061014;border:4px solid var(--black)}
.preview-copy{align-self:center}.preview-copy .gate-material{display:block;margin:0;font-size:clamp(1.6rem,3.4vw,3rem);line-height:1.12;text-shadow:4px 4px 0 var(--green)}
.preview-copy .gate-detail{display:block;margin:18px 0 0;padding:12px 14px;font-size:1rem;line-height:1.65}
.preview-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.preview-actions button{min-height:54px;padding:10px 16px;border:4px solid var(--black);font-weight:1000;box-shadow:6px 6px 0 var(--green-deep)}
.preview-launch-button{color:var(--black);background:var(--green)}.preview-close-button{color:var(--ink);background:var(--yellow)}
.preview-actions button:hover,.preview-actions button:focus-visible{outline:none;box-shadow:9px 9px 0 var(--green);transform:translate(-3px,-3px)}
.preview-launch-button:disabled{cursor:not-allowed;color:#58635d;background:var(--gray);box-shadow:none;transform:none}
@media(max-width:820px){.preview-card{grid-template-columns:1fr;gap:11px;padding:14px;border-width:5px}.preview-card>.gate-kicker,.preview-actions{grid-column:1}.gate-preview{max-height:34dvh}.preview-copy .gate-detail{margin-top:9px;padding:9px;font-size:.88rem}.preview-actions button{min-height:50px}.dashboard-grid{grid-template-columns:1fr}}
.gate-cancel{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:1;min-height:44px;padding:8px 14px;color:var(--ink);background:var(--yellow);border:4px solid var(--black);box-shadow:6px 6px 0 var(--green-deep);font-weight:1000}.gate-cancel:hover,.gate-cancel:focus-visible{outline:none;box-shadow:9px 9px 0 var(--green);transform:translate(-3px,-3px)}
body.lesson-open{overflow:hidden}
.identity-strip{grid-template-columns:minmax(96px,.2fr) minmax(230px,1fr) minmax(196px,.66fr)}
.identity-chip--author strong{font-size:clamp(.98rem,1.5vw,1.2rem)}
.identity-chip--author small{display:block;margin-top:3px;color:var(--green-deep);font-size:.66rem;font-weight:1000}
.column-stack{display:grid;gap:14px;align-content:start;min-width:0;min-height:0;padding:0 12px 12px 0;overflow-y:auto;scrollbar-color:var(--green-deep) var(--black)}
.column-stack::-webkit-scrollbar{width:12px}
.column-stack::-webkit-scrollbar-track{background:var(--black)}
.column-stack::-webkit-scrollbar-thumb{background:var(--green);border:3px solid var(--black)}
.column-stack .portal-panel{height:max-content;overflow:visible}
.research-panel{animation-delay:.72s}
.profile-card{display:grid;grid-template-columns:minmax(0,122px) minmax(0,1fr);gap:12px;align-items:center;padding:12px;background:var(--white);border:4px solid var(--black);border-radius:6px;box-shadow:7px 7px 0 var(--shadow)}
.profile-photo{display:block;width:100%;height:auto;max-height:230px;object-fit:contain;background:var(--white);border:4px solid var(--black)}
.profile-body h3{margin:4px 0 0;font-size:1.28rem;font-weight:1000;line-height:1.12}
.profile-body h3 small{display:block;margin-top:4px;color:var(--green-deep);font-size:.64rem;font-weight:1000;letter-spacing:.1em}
.profile-body p{margin:9px 0 10px;color:#29362f;font-size:.84rem;font-weight:900;line-height:1.5}
.profile-contact{margin-top:9px;font-size:.74rem;font-weight:1000}
.profile-contact span{margin-right:7px;color:var(--green-deep);letter-spacing:.12em}
.profile-contact a{color:#29362f;text-decoration:underline;text-underline-offset:3px;word-break:break-all}
.profile-contact a:hover,.profile-contact a:focus-visible{color:var(--green-deep)}
.research-card .material-title-row{padding-right:70px}
.detail-button{position:absolute;right:9px;top:9px;min-width:68px;padding:5px 8px;color:var(--black);background:var(--yellow);border:3px solid var(--black);font-size:.72rem;font-weight:1000;transform:rotate(3deg);transition:.14s}
.detail-button:hover,.detail-button:focus-visible{background:var(--green);outline:none}
.research-dialog{position:fixed;inset:0;z-index:12010;display:grid;place-items:center;padding:28px;background:linear-gradient(112deg,rgba(20,232,120,.22),transparent 44%),rgba(0,0,0,.94)}
.research-dialog[hidden]{display:none}
.research-preview .gate-preview{max-height:46vh}
.research-award{display:inline-block;padding:6px 10px;color:var(--black);background:var(--yellow);border:4px solid var(--black);font-size:.76rem;font-weight:1000}
.research-preview .gate-material{margin-top:11px;font-size:clamp(1.2rem,2.4vw,2rem)}
.research-meta{display:grid;gap:6px;margin:14px 0 0}
.research-meta div{display:grid;grid-template-columns:60px minmax(0,1fr);gap:9px;align-items:start}
.research-meta dt{padding:4px 6px;color:var(--white);background:var(--black);font-size:.66rem;font-weight:1000;text-align:center}
.research-meta dd{margin:0;font-size:.8rem;font-weight:900;line-height:1.45}
.research-preview .gate-detail{margin-top:14px;font-size:.92rem;line-height:1.62}
.research-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.research-actions a{display:grid;place-items:center;min-height:54px;padding:10px 14px;color:var(--ink);border:4px solid var(--black);box-shadow:6px 6px 0 var(--green-deep);font-size:.92rem;font-weight:1000;text-align:center;text-decoration:none;transition:.14s}
.research-actions a:hover,.research-actions a:focus-visible{outline:none;box-shadow:9px 9px 0 var(--green);transform:translate(-3px,-3px)}
.preview-code-button{background:var(--cyan)}
.preview-paper-button{background:var(--mint)}
.preview-detail-button{display:grid;place-items:center;min-height:54px;padding:10px 16px;color:var(--ink);background:var(--cyan);border:4px solid var(--black);box-shadow:6px 6px 0 var(--green-deep);font-weight:1000;text-align:center;text-decoration:none;transition:.14s}
.preview-detail-button:hover,.preview-detail-button:focus-visible{outline:none;box-shadow:9px 9px 0 var(--green);transform:translate(-3px,-3px)}
.preview-detail-button[hidden]{display:none}
.preview-actions.has-detail{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:820px){.preview-actions.has-detail{grid-template-columns:1fr 1fr}.preview-actions.has-detail .preview-close-button{grid-column:1/-1}}
/* ランキングを見る（タイピング単独版の詳細ポップアップ。「詳細を見る」の右横） */
.preview-ranking-button{color:var(--ink);background:var(--mint)}
.preview-ranking-button[hidden]{display:none}
.preview-actions.has-ranking{grid-template-columns:repeat(3,minmax(0,1fr))}
.preview-actions.has-detail.has-ranking{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:820px){.preview-actions.has-ranking,.preview-actions.has-detail.has-ranking{grid-template-columns:1fr 1fr}.preview-actions.has-detail.has-ranking .preview-close-button{grid-column:auto}}
/* 説明を見る（SceneFlow の操作説明。「詳細を見る」の右横。sceneflow を配らない prod では出さない） */
.preview-tutorial-button{color:var(--ink);background:var(--white)}
.preview-tutorial-button[hidden]{display:none}
.preview-tutorial-button:disabled{cursor:progress;color:#58635d;background:var(--gray);box-shadow:none;transform:none}
.preview-actions.has-tutorial{grid-template-columns:repeat(3,minmax(0,1fr))}
.preview-actions.has-detail.has-tutorial,.preview-actions.has-ranking.has-tutorial{grid-template-columns:repeat(4,minmax(0,1fr))}
.preview-actions.has-detail.has-ranking.has-tutorial{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:820px){.preview-actions.has-tutorial,.preview-actions.has-detail.has-tutorial,.preview-actions.has-ranking.has-tutorial,.preview-actions.has-detail.has-ranking.has-tutorial{grid-template-columns:1fr 1fr}.preview-actions.has-detail.has-ranking.has-tutorial .preview-close-button{grid-column:1/-1}}
@media(max-width:1180px){.profile-card{grid-template-columns:minmax(0,1fr);justify-items:center;gap:10px}.profile-photo{width:auto;max-width:100%;max-height:180px}.profile-body{width:100%}}
@media(max-width:820px){.column-stack{padding:0;overflow:visible}.column-stack .portal-panel{overflow-y:auto}.identity-strip{grid-template-columns:1fr}.research-actions{grid-template-columns:1fr}.research-preview .gate-preview{max-height:32dvh}.profile-card{grid-template-columns:minmax(0,132px) minmax(0,1fr);justify-items:stretch;gap:12px}.profile-photo{width:100%;max-height:240px}}
