/* OSclass.JP — neon x space */
:root{
  --ojp-bg:#070b1f;--ojp-bg2:#0d1236;--ojp-card:rgba(20,26,70,.72);--ojp-line:rgba(140,160,255,.22);
  --ojp-text:#e8ecff;--ojp-sub:#aab4e6;
  --ojp-pink:#ff3ea5;--ojp-cyan:#2ee6ff;--ojp-lime:#b6ff3b;--ojp-violet:#8b5cff;--ojp-amber:#ffc53d;
}
body{background:var(--ojp-bg)!important;color:var(--ojp-text);}
.wp-site-blocks{background:radial-gradient(1200px 700px at 80% -10%,#1b1f6b 0%,transparent 60%),radial-gradient(900px 600px at -10% 20%,#4a1068 0%,transparent 55%),var(--ojp-bg);min-height:100vh;}
.wp-site-blocks>main,.wp-site-blocks>main .wp-block-group,.wp-site-blocks>main .wp-block-post-content{padding-left:0;padding-right:0;}
main .alignfull,main .wp-block-post-content,main .wp-block-group{margin-left:0!important;margin-right:0!important;}
.wp-block-post-content.alignfull{margin:auto!important;padding:0!important;max-width:none!important;}
main .wp-block-query .alignfull{margin-left:0!important;margin-right:0!important;max-width:100%!important;}
.wp-block-post-content>*{max-width:none!important;}
.ojp,.ojp *{box-sizing:border-box;}
.ojp{color:var(--ojp-text);font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;line-height:1.85;font-size:17px;overflow-x:clip;}
.ojp a{color:var(--ojp-cyan);}
.ojp h1,.ojp h2,.ojp h3{line-height:1.3;margin:0;font-weight:800;letter-spacing:.01em;}
.ojp p{margin:0 0 1em;}
.ojp .wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 20px;}
.ojp section{position:relative;padding:72px 0;}
.ojp .eyebrow{display:inline-block;font-size:13px;letter-spacing:.2em;font-weight:700;color:var(--ojp-lime);text-transform:uppercase;margin-bottom:10px;}
.ojp h2{font-size:clamp(26px,4.6vw,40px);margin-bottom:18px;}
.ojp h2 .g,.ojp h1 .g{background:linear-gradient(90deg,var(--ojp-cyan),var(--ojp-pink),var(--ojp-amber));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:ojp-shift 6s linear infinite;}
@keyframes ojp-shift{to{background-position:200% 0}}
.ojp .lead{color:var(--ojp-sub);font-size:18px;max-width:46em;}

/* hero */
.ojp-hero{padding:96px 0 84px!important;text-align:center;overflow:hidden;}
.ojp-hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.ojp-hero .wrap{position:relative;z-index:2;}
.ojp-hero h1{font-size:clamp(34px,7.4vw,72px);margin:10px 0 18px;text-shadow:0 0 30px rgba(139,92,255,.6);}
.ojp-hero .sub{font-size:clamp(16px,2.4vw,21px);color:var(--ojp-sub);max-width:36em;margin:0 auto 30px;}
.ojp-planet{position:absolute;z-index:1;right:-120px;top:-60px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ff7ac8,#8b5cff 55%,#1a1f6b 100%);box-shadow:0 0 90px rgba(255,62,165,.55);animation:ojp-float 9s ease-in-out infinite;opacity:.85;}
.ojp-planet:after{content:"";position:absolute;left:-30%;right:-30%;top:46%;height:34px;border-radius:50%;border:3px solid rgba(46,230,255,.7);transform:rotate(-14deg);box-shadow:0 0 18px rgba(46,230,255,.8);}
.ojp-planet.p2{right:auto;left:-110px;top:auto;bottom:-90px;width:220px;height:220px;background:radial-gradient(circle at 35% 30%,#b6ff3b,#17a673 60%,#06222b 100%);box-shadow:0 0 70px rgba(182,255,59,.45);animation-delay:-4s;}
.ojp-planet.p2:after{display:none;}
@keyframes ojp-float{50%{transform:translateY(22px) rotate(4deg)}}
.ojp .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.ojp .btn{display:inline-block;padding:15px 30px;border-radius:999px;font-weight:800;text-decoration:none;color:#06081a!important;background:linear-gradient(90deg,var(--ojp-cyan),var(--ojp-lime));box-shadow:0 0 24px rgba(46,230,255,.55);transition:transform .2s,box-shadow .2s;}
.ojp .btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 0 38px rgba(182,255,59,.75);}
.ojp .btn.alt{background:transparent;color:var(--ojp-text)!important;border:2px solid var(--ojp-pink);box-shadow:0 0 20px rgba(255,62,165,.45);}
.ojp .badge{display:inline-block;border:1px solid var(--ojp-line);border-radius:999px;padding:5px 14px;font-size:13px;margin:4px;color:var(--ojp-sub);background:rgba(255,255,255,.04);}

/* ticker */
.ojp-tick{border-block:1px solid var(--ojp-line);background:rgba(255,255,255,.03);overflow:hidden;padding:14px 0!important;white-space:nowrap;}
.ojp-tick div{display:inline-block;padding-left:100%;animation:ojp-marq 38s linear infinite;font-weight:700;color:var(--ojp-cyan);letter-spacing:.08em;}
@keyframes ojp-marq{to{transform:translateX(-100%)}}

/* cards */
.ojp .grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:30px;}
.ojp .card{background:var(--ojp-card);border:1px solid var(--ojp-line);border-radius:20px;padding:26px;position:relative;transition:transform .25s,border-color .25s,box-shadow .25s;backdrop-filter:blur(6px);}
.ojp .card:hover{transform:translateY(-6px) rotate(-.4deg);border-color:var(--ojp-cyan);box-shadow:0 10px 40px rgba(46,230,255,.22);}
.ojp .card h3{font-size:20px;margin:10px 0 8px;}
.ojp .card p{color:var(--ojp-sub);margin:0;font-size:15.5px;}
.ojp .ico{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:28px;background:linear-gradient(135deg,var(--ojp-violet),var(--ojp-pink));box-shadow:0 0 22px rgba(255,62,165,.5);}
.ojp .c2 .ico{background:linear-gradient(135deg,#1097c9,var(--ojp-cyan));box-shadow:0 0 22px rgba(46,230,255,.5);}
.ojp .c3 .ico{background:linear-gradient(135deg,#17a673,var(--ojp-lime));box-shadow:0 0 22px rgba(182,255,59,.45);}
.ojp .c4 .ico{background:linear-gradient(135deg,#ff8a1f,var(--ojp-amber));box-shadow:0 0 22px rgba(255,197,61,.45);}

/* stats */
.ojp .stats{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));text-align:center;}
.ojp .stat{padding:22px 10px;border-radius:18px;border:1px solid var(--ojp-line);background:linear-gradient(160deg,rgba(139,92,255,.25),rgba(255,62,165,.12));}
.ojp .stat b{display:block;font-size:clamp(30px,5vw,46px);color:var(--ojp-lime);text-shadow:0 0 18px rgba(182,255,59,.6);line-height:1.2;}
.ojp .stat span{font-size:14px;color:var(--ojp-sub);}

/* steps (mission) */
.ojp .steps{counter-reset:s;display:grid;gap:18px;margin-top:30px;}
.ojp .step{counter-increment:s;display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;background:var(--ojp-card);border:1px solid var(--ojp-line);border-radius:20px;padding:22px;}
.ojp .step:before{content:counter(s);display:grid;place-items:center;width:56px;height:56px;border-radius:50%;font-weight:900;font-size:26px;color:#06081a;background:linear-gradient(135deg,var(--ojp-amber),var(--ojp-pink));box-shadow:0 0 22px rgba(255,62,165,.6);}
.ojp .step h3{font-size:19px;margin-bottom:4px;}
.ojp .step p{margin:0;color:var(--ojp-sub);font-size:15.5px;}
.ojp code,.ojp pre{font-family:Consolas,"SFMono-Regular",monospace;}
.ojp pre{background:#04061a;border:1px solid var(--ojp-line);border-radius:14px;padding:16px;overflow-x:auto;color:var(--ojp-lime);font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-all;}
.ojp .note{border-left:4px solid var(--ojp-amber);background:rgba(255,197,61,.08);padding:14px 18px;border-radius:0 14px 14px 0;color:var(--ojp-text);font-size:15.5px;margin:22px 0;}
.ojp .cta{text-align:center;background:linear-gradient(120deg,rgba(139,92,255,.35),rgba(255,62,165,.28),rgba(46,230,255,.25));border-block:1px solid var(--ojp-line);}
.ojp table{width:100%;border-collapse:collapse;font-size:15.5px;}
.ojp th,.ojp td{border:1px solid var(--ojp-line);padding:12px 14px;text-align:left;vertical-align:top;}
.ojp th{background:rgba(139,92,255,.2);width:30%;}
.ojp details{background:var(--ojp-card);border:1px solid var(--ojp-line);border-radius:16px;padding:16px 20px;margin-bottom:12px;}
.ojp summary{cursor:pointer;font-weight:800;}
.ojp details[open]{border-color:var(--ojp-pink);}
.ojp .page-hero{padding:64px 0 36px!important;text-align:center;}
.ojp .page-hero h1{font-size:clamp(30px,6vw,52px);}
.ojp .op{display:grid;grid-template-columns:minmax(130px,260px) 1fr;gap:24px;align-items:center;}
.ojp .op figure{margin:0;}.ojp .op img{width:100%;height:auto;border-radius:14px;border:1px solid var(--ojp-line);}
.ojp .op figcaption{font-size:13px;color:var(--ojp-sub);margin-top:6px;}

/* reveal (JS adds .ojp-js; without JS everything is visible) */
.ojp-js .rv{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s;}
.ojp-js .rv.in{opacity:1;transform:none;}

/* header / footer */
.ojp-head{position:sticky;top:0;z-index:50;background:rgba(7,11,31,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--ojp-line);}
.ojp-head{padding:12px 20px!important;}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--ojp-bg)!important;color:var(--ojp-text)!important;}
.ojp-head .wp-block-navigation{color:var(--ojp-text);}
.ojp-head .wp-block-site-title a,.ojp-logo{font-weight:900;font-size:22px;text-decoration:none;color:var(--ojp-text)!important;letter-spacing:.02em;}
.ojp-logo b{color:var(--ojp-pink);text-shadow:0 0 14px rgba(255,62,165,.8);}
.ojp-head a{color:var(--ojp-text);text-decoration:none;}
.ojp-head .wp-block-navigation a:hover{color:var(--ojp-cyan);}
.ojp-foot{border-top:1px solid var(--ojp-line);background:#050818;color:var(--ojp-sub);padding:36px 20px;font-size:14px;}
.ojp-foot a{color:var(--ojp-cyan);}
.ojp-foot .fl{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:14px;}

@media (max-width:640px){
  .ojp section{padding:52px 0;}
  .ojp-hero{padding:64px 0 56px!important;}
  .ojp-planet{width:200px;height:200px;right:-90px;top:-50px;}
  .ojp .step{grid-template-columns:48px 1fr;}
  .ojp .step:before{width:44px;height:44px;font-size:21px;}
  .ojp .op{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .ojp *,.ojp *:before{animation:none!important;transition:none!important;}
  .ojp-js .rv{opacity:1;transform:none;}
}

/* ---- ニュース（投稿）---- */
.single-post .wp-block-post-content,.single-post .wp-block-post-title,.single-post .wp-block-post-date,.single-post .wp-block-post-terms,.single-post main > .wp-block-group{max-width:760px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px;box-sizing:border-box}
.single-post .wp-block-post-content{font-size:1.02rem;line-height:1.9}
.single-post .wp-block-post-content h2{margin-top:2em;color:#fff}
.single-post .wp-block-post-content a{color:#7df9ff}
.single-post .wp-block-post-content small{opacity:.75}
.blog .wp-block-post-title a,.blog .wp-block-post-title{max-width:760px}
.blog .wp-block-post-template{max-width:760px;margin:0 auto;padding:0 20px;box-sizing:border-box}
.blog .ojp-excerpt,.archive .ojp-excerpt{max-width:760px;margin:0 auto;padding:0 20px;box-sizing:border-box}
.blog .ojp-excerpt a,.archive .ojp-excerpt a{color:#7df9ff}
