html{scroll-padding-top:calc(var(--sticky-stack, 135px) + 10px)}:root{--spf-bg:#0a0c18;--spf-bg2:#11152a;--spf-ink:#15161d;--spf-paper:#fffdf4;--spf-paper2:#f3eddd;--spf-text:#e9edfb;--spf-muted:#9aa6c8;--spf-yellow:#cf9bff;--spf-red:#ff4d5e;--spf-blue:#3b82f6;--spf-teal:#2ec4b6;--spf-radius:14px;--spf-readw:780px}body#top{margin:0;background:radial-gradient(1100px 560px at 82% -8%,rgba(207,155,255,.12),transparent 60%),radial-gradient(900px 520px at 4% 8%,rgba(59,130,246,.14),transparent 55%),linear-gradient(180deg,var(--spf-bg2) 0,var(--spf-bg) 60%);color:var(--spf-text);font-family:Noto Sans JP,system-ui,sans-serif;line-height:1.9;-webkit-font-smoothing:antialiased}.skip-link{position:absolute;left:-9999px;top:0;z-index:9999;padding:8px 16px;background:var(--spf-red);color:#fff;font-weight:700;border-radius:0 0 8px 0;text-decoration:none}.skip-link:focus{left:8px;top:8px}.spf-soon{max-width:var(--spf-readw);margin:1.4rem auto 0;padding:1.1rem 1.3rem;display:flex;align-items:center;gap:1.2rem;background:var(--spf-paper);border:4px solid var(--spf-ink);border-radius:var(--spf-radius);box-shadow:6px 6px 0 var(--spf-ink)}.spf-soon__stamp{flex:none;transform:rotate(-7deg);font-family:Montserrat,Noto Sans JP,sans-serif;font-weight:900;font-size:1.26rem;letter-spacing:.04em;line-height:1.2;text-align:center;color:var(--spf-red);background:rgba(255,77,94,.07);border:3px double var(--spf-red);border-radius:12px;padding:.55rem .9rem}.spf-soon__body{min-width:0}.spf-soon__lead{margin:0;color:var(--spf-ink);font-weight:800;font-size:1.224rem;line-height:1.9}.spf-soon__lead b{color:var(--spf-red)}.spf-soon__sub{margin:.3rem 0 0;color:#3a3b45;font-size:1.032rem;line-height:1.9}.spf-soon__sub b{color:var(--spf-ink);font-weight:800}@media (max-width:560px){.spf-soon{flex-direction:column;align-items:center;gap:.8rem;text-align:center;padding:1rem}}.page-sec-nav{position:sticky;top:54px;z-index:998;background:#0d1322;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;box-shadow:0 3px 0 var(--spf-yellow),0 8px 16px rgba(0,0,0,.5);border-bottom:1px solid #1f2440}.page-sec-nav::-webkit-scrollbar{display:none}.page-sec-nav-inner{display:flex;align-items:stretch;justify-content:center;width:max-content;min-width:100%;margin:0 auto;padding:0 8px;white-space:nowrap}.page-sec-nav a{color:var(--spf-muted);font-family:Montserrat,Noto Sans JP,sans-serif;font-size:.864rem;font-weight:700;letter-spacing:.04em;padding:10px 12px;text-decoration:none;border-bottom:3px solid transparent;transition:color .2s,border-color .2s,background .2s}.page-sec-nav a:focus-visible,.page-sec-nav a:hover{color:#fff;border-bottom-color:var(--spf-yellow);background:rgba(207,155,255,.16);outline:none}.page-sec-nav a.is-active{color:#f0e3ff;border-bottom-color:var(--spf-yellow);background:rgba(207,155,255,.2)}@media (max-width:480px){.page-sec-nav a{padding:9px 10px;font-size:.816rem}}.spf-hero{position:relative;overflow:hidden;padding:clamp(2.4rem,6vw,4.2rem) 1.25rem clamp(2rem,4vw,3rem);text-align:center;background:repeating-conic-gradient(from 0deg at 50% 42%,hsla(0,0%,100%,.05) 0deg 2deg,transparent 2deg 6deg),radial-gradient(120% 80% at 50% 0,rgba(207,155,255,.16),transparent 60%)}.spf-hero__inner{position:relative;z-index:1;max-width:880px;margin:0 auto}.spf-hero__kicker{display:inline-block;transform:rotate(-2deg);font-family:Montserrat,Noto Sans JP,sans-serif;font-weight:900;font-size:.984rem;letter-spacing:.08em;color:var(--spf-ink);background:var(--spf-yellow);padding:.35rem 1rem;border:3px solid var(--spf-ink);border-radius:6px;box-shadow:4px 4px 0 var(--spf-ink)}.spf-hero__title{margin:1.1rem auto .5rem;font-family:Shippori Mincho,Noto Sans JP,serif;font-weight:900;line-height:1.22;font-size:clamp(2.28rem,6.4vw,4.08rem);text-wrap:balance;color:#fff;text-shadow:3px 3px 0 var(--spf-ink),0 0 22px rgba(207,155,255,.25)}.spf-hero__title em{font-style:normal;color:var(--spf-yellow);-webkit-text-stroke:1px var(--spf-ink)}.spf-hero__title .spf-nb{display:inline-block;white-space:nowrap}.spf-hero__catch{margin:.4rem auto 0;max-width:40ch;font-weight:700;font-size:clamp(1.2rem,2.6vw,1.416rem);color:var(--spf-yellow)}.spf-hero__lead{margin:1rem auto 0;max-width:46ch;color:#d7def4;font-size:clamp(1.152rem,2.2vw,1.248rem)}.spf-hero__lead strong{color:#fff}.spf-hero__chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.3rem}.spf-hero__chip{font-weight:700;font-size:.96rem;color:#fff;background:hsla(0,0%,100%,.06);border:1.5px solid hsla(0,0%,100%,.18);padding:.3rem .8rem;border-radius:999px}.spf-hero__chip--accent{color:var(--spf-ink);background:var(--spf-yellow);border-color:var(--spf-yellow)}.spf-cast{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:1.6rem}.spf-cast__card{display:flex;align-items:center;gap:.6rem;background:var(--spf-paper);color:var(--spf-ink);border:3px solid var(--spf-ink);border-radius:12px;padding:.5rem .85rem;box-shadow:3px 3px 0 var(--spf-ink)}.spf-cast__face{font-size:2.16rem;line-height:1}.spf-cast__who b{display:block;font-weight:900;font-size:1.104rem}.spf-cast__who span{font-size:.888rem;color:#555}.spf-main{max-width:var(--spf-readw);margin:0 auto;padding:1.2rem 1.1rem 2rem}.spf-ep{margin:2.6rem 0 0}.spf-ep__head{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin-bottom:.2rem}.spf-ep__no{font-family:Montserrat,sans-serif;font-weight:900;font-size:.96rem;letter-spacing:.1em;color:var(--spf-ink);background:var(--spf-yellow);border:2.5px solid var(--spf-ink);padding:.15rem .6rem;border-radius:6px;box-shadow:3px 3px 0 var(--spf-ink);transform:rotate(-1.5deg)}.spf-ep__title{margin:0;font-family:Shippori Mincho,Noto Sans JP,serif;font-weight:900;font-size:clamp(1.56rem,4vw,2.16rem);color:#fff}.spf-ep__sub{margin:.1rem 0 1rem;color:var(--spf-muted);font-size:1.104rem}.spf-panel{position:relative;background:var(--spf-paper);color:var(--spf-ink);border:4px solid var(--spf-ink);border-radius:var(--spf-radius);box-shadow:6px 6px 0 var(--spf-ink);padding:1.2rem 1.1rem;margin:1.1rem 0}.spf-panel+.spf-panel{margin-top:1.5rem}.spf-panel__no{position:absolute;top:-14px;left:16px;font-family:Montserrat,sans-serif;font-weight:900;font-size:1.08rem;color:var(--spf-paper);background:var(--spf-ink);width:30px;height:30px;border-radius:50%;display:grid;place-items:center;box-shadow:2px 2px 0 rgba(0,0,0,.25)}.spf-panel__cap{margin:0;font-weight:700;font-size:1.224rem;line-height:1.8}.spf-panel__cap strong{background:linear-gradient(transparent 62%,var(--spf-yellow) 62%)}.spf-panel p{margin:.6rem 0 0}.spf-panel p:first-child{margin-top:0}.spf-panel--tiltL{transform:rotate(-.6deg)}.spf-panel--tiltR{transform:rotate(.6deg)}.spf-figure{margin:1.4rem 0;background:var(--spf-paper);border:4px solid var(--spf-ink);border-radius:var(--spf-radius);box-shadow:6px 6px 0 var(--spf-ink);overflow:hidden}.spf-figure img{display:block;width:100%;height:auto}.spf-figure figcaption{padding:.6rem .95rem;font-size:1.032rem;font-weight:600;line-height:1.7;color:var(--spf-ink);border-top:3px solid var(--spf-ink);background:var(--spf-paper2)}.spf-figure figcaption b{font-weight:900}.spf-talk{display:flex;flex-direction:column;gap:.9rem;margin:.4rem 0 0}.spf-bubble{position:relative;max-width:88%;background:#fff;color:var(--spf-ink);border:3px solid var(--spf-ink);border-radius:16px;padding:.7rem .95rem;font-weight:600;box-shadow:4px 4px 0 rgba(0,0,0,.18)}.spf-bubble b.spf-bubble__who{display:block;font-size:.864rem;font-weight:900;letter-spacing:.04em;margin-bottom:.15rem}.spf-bubble__face{font-style:normal}.spf-bubble--me{align-self:flex-end;background:#fff7d6}.spf-bubble--me b.spf-bubble__who{color:#9a7a00}.spf-bubble--me:after{content:"";position:absolute;right:26px;bottom:-16px;border:9px solid transparent;border-top:9px solid var(--spf-ink)}.spf-bubble--me:before{content:"";position:absolute;right:28px;bottom:-11px;border:7px solid transparent;border-top-color:#fff7d6;z-index:1}.spf-bubble--ai{align-self:flex-start;background:#e7f0ff}.spf-bubble--ai b.spf-bubble__who{color:#1d4ed8}.spf-bubble--ai:after{content:"";position:absolute;left:26px;bottom:-16px;border:9px solid transparent;border-top:9px solid var(--spf-ink)}.spf-bubble--ai:before{content:"";position:absolute;left:28px;bottom:-11px;border:7px solid transparent;border-top-color:#e7f0ff;z-index:1}.spf-sfx{display:block;text-align:center;margin:1.3rem 0;font-family:Montserrat,Shippori Mincho,sans-serif;font-weight:900;font-size:clamp(2.64rem,9vw,4.8rem);line-height:.95;color:var(--spf-yellow);-webkit-text-stroke:2px var(--spf-ink);text-shadow:5px 5px 0 var(--spf-ink);transform:rotate(-4deg);letter-spacing:.02em}.spf-sfx--red{color:var(--spf-red)}.spf-sfx--teal{color:var(--spf-teal)}.spf-ba{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin:1.1rem 0}.spf-ba__col{background:var(--spf-paper);color:var(--spf-ink);border:4px solid var(--spf-ink);border-radius:var(--spf-radius);box-shadow:5px 5px 0 var(--spf-ink);padding:1rem .95rem}.spf-ba__h{margin:0 0 .5rem;font-weight:900;font-size:1.2rem}.spf-ba__col--before .spf-ba__h{color:#b91c1c}.spf-ba__col--after .spf-ba__h{color:#0f7a52}.spf-ba__col ul{margin:0;padding-left:1.1rem}.spf-ba__col li{margin:.25rem 0;font-size:1.104rem}@media (max-width:560px){.spf-ba{grid-template-columns:1fr}}.spf-card{background:hsla(0,0%,100%,.04);border:1.5px solid hsla(0,0%,100%,.14);border-left:5px solid var(--spf-yellow);border-radius:12px;padding:1.1rem 1.15rem;margin:1rem 0}.spf-card__h{margin:0 0 .5rem;font-weight:900;color:#fff;font-size:1.26rem}.spf-card p{margin:.5rem 0 0;color:#d7def4}.spf-card strong{color:var(--spf-yellow)}.spf-steps{display:grid;gap:.7rem;margin:1rem 0}.spf-step{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;background:hsla(0,0%,100%,.04);border:1.5px solid hsla(0,0%,100%,.14);border-radius:12px;padding:.8rem .9rem}.spf-step__no{font-family:Montserrat,sans-serif;font-weight:900;font-size:1.08rem;color:var(--spf-ink);background:var(--spf-yellow);width:30px;height:30px;border-radius:8px;display:grid;place-items:center}.spf-step b{color:#fff}.spf-step p{margin:.15rem 0 0;color:#cdd6f0;font-size:1.104rem}.spf-code{border:1.5px solid hsla(0,0%,100%,.16);border-radius:12px;overflow:hidden;margin:1rem 0;background:#0b1020}.spf-code__bar{display:flex;justify-content:space-between;align-items:center;padding:.45rem .8rem;background:#161c33;font-family:Montserrat,monospace;font-size:.912rem;color:#aeb9e0;border-bottom:1px solid hsla(0,0%,100%,.1)}.spf-code__pre{margin:0;padding:.9rem 1rem;overflow-x:auto;font-family:Consolas,SFMono-Regular,Menlo,monospace;font-size:.984rem;line-height:1.7;color:#e3e9ff}.spf-lesson{background:var(--spf-paper);color:var(--spf-ink);border:4px dashed var(--spf-ink);border-radius:var(--spf-radius);padding:1.1rem;margin:1.3rem 0}.spf-lesson__h{margin:0 0 .5rem;font-weight:900;font-size:1.26rem}.spf-lesson ul{margin:0;padding-left:1.2rem}.spf-lesson li{margin:.3rem 0;font-weight:600}.spf-note{margin:1.4rem 0 0;padding:.9rem 1rem;background:rgba(255,77,94,.08);border:1.5px solid rgba(255,77,94,.4);border-radius:12px;color:#ffd7db;font-size:1.032rem;line-height:1.8}.spf-note b{color:#fff}.spf-pull{margin:1.5rem auto;text-align:center;max-width:30ch;font-family:Shippori Mincho,Noto Sans JP,serif;font-weight:900;font-size:clamp(1.38rem,3.4vw,1.8rem);line-height:1.6;color:var(--spf-yellow)}.spf-cta{max-width:var(--spf-readw);margin:2.2rem auto 0;padding:1.6rem 1.2rem;text-align:center;background:hsla(0,0%,100%,.04);border:1.5px solid hsla(0,0%,100%,.14);border-radius:18px}.spf-cta__title{margin:0 0 .5rem;color:#fff;font-weight:900;font-size:clamp(1.44rem,3.6vw,1.92rem);line-height:1.5;text-wrap:balance}.spf-cta__desc{margin:0 auto 1rem;max-width:50ch;color:#cdd6f0;font-size:1.14rem}.spf-cta__btns{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.spf-cta__btn{font-weight:700;text-decoration:none;font-size:1.08rem;color:#fff;background:hsla(0,0%,100%,.07);border:1.5px solid hsla(0,0%,100%,.2);border-radius:999px;padding:.5rem 1rem;transition:background .2s,transform .1s}.spf-cta__btn:hover{background:hsla(0,0%,100%,.14)}.spf-cta__btn--primary{color:var(--spf-ink);background:var(--spf-yellow);border-color:var(--spf-yellow)}.spf-rel{max-width:var(--spf-readw);margin:2rem auto 0;padding:0 1.1rem}.spf-rel__kicker{display:block;font-weight:900;color:var(--spf-yellow);font-size:1.02rem;letter-spacing:.04em;margin-bottom:.8rem}.spf-rel__grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}@media (max-width:560px){.spf-rel__grid{grid-template-columns:1fr}}.spf-rel__card{display:flex;flex-direction:column;gap:.25rem;background:hsla(0,0%,100%,.04);border:1.5px solid hsla(0,0%,100%,.14);border-radius:14px;padding:.9rem 1rem;text-decoration:none;transition:border-color .2s,transform .1s}.spf-rel__card:hover{border-color:var(--spf-yellow);transform:translateY(-2px)}.spf-rel__tag{font-size:.912rem;font-weight:700;color:var(--spf-yellow)}.spf-rel__title{font-weight:800;color:#fff;font-size:1.2rem}.spf-rel__desc{color:#c4cdea;font-size:1.032rem}.spf-rel__go{color:var(--spf-yellow);font-weight:700;font-size:1.02rem;margin-top:.2rem}a{color:#e3c8ff}.spf-panel a{color:#1d4ed8}.spf-figure svg{display:block;width:100%;height:auto;background:var(--spf-paper)}.kw-term{-webkit-appearance:none;appearance:none;padding:0;margin:0;font:inherit;color:inherit;font-weight:800;cursor:pointer;background:linear-gradient(transparent 62%,rgba(207,155,255,.3) 0);border:none;border-bottom:1px dashed rgba(207,155,255,.7);-webkit-tap-highlight-color:transparent}.kw-term:after{content:"ⓘ";font-size:.72em;color:var(--spf-yellow);margin-left:1px;vertical-align:super}.kw-term:focus-visible,.kw-term:hover{color:#7c3aed;outline:none}.spf-bubble .kw-term,.spf-lesson .kw-term,.spf-panel .kw-term{color:inherit}.kw-pop{position:fixed;left:0;top:0;z-index:11000;width:min(330px,calc(100vw - 24px));box-sizing:border-box;padding:14px 16px 15px;border-radius:12px;background:#1c1030;border:1px solid rgba(207,155,255,.5);box-shadow:0 18px 50px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease,visibility .16s}.kw-pop.is-open{opacity:1;visibility:visible;transform:none}.kw-pop__close{position:absolute;top:6px;right:8px;width:26px;height:26px;border:none;background:none;color:rgba(240,232,250,.7);font-size:1.32rem;line-height:1;cursor:pointer;border-radius:6px}.kw-pop__close:focus-visible,.kw-pop__close:hover{color:#fff;background:hsla(0,0%,100%,.08);outline:none}.kw-pop__title{margin:0 24px 6px 0;font-size:1.14rem;font-weight:800;color:var(--spf-yellow)}.kw-pop__body{margin:0;font-size:1.056rem;line-height:1.8;color:rgba(240,232,250,.92)}.kw-term-hint{max-width:var(--spf-readw);margin:1.2rem auto 0;padding:10px 14px;border-radius:10px;font-size:1.008rem;line-height:1.7;color:var(--spf-muted);background:rgba(207,155,255,.07);border:1px solid rgba(207,155,255,.22)}.kw-term-hint b{color:#fff}.ccg-chat{display:flex;align-items:flex-end;gap:12px;max-width:var(--spf-readw);margin:28px auto;padding:0 4px}.ccg-chat__av{flex:0 0 auto;width:auto;height:168px;align-self:flex-end;cursor:pointer;transform-origin:center bottom;filter:drop-shadow(0 8px 12px rgba(0,0,0,.4))}.ccg-chat--solo .ccg-chat__av{height:132px}.ccg-chat--cat .ccg-chat__av{height:auto;width:138px}.ccg-chat__bubble{position:relative;flex:1 1 auto;margin:0 0 16px;background:var(--spf-paper);border:2px solid var(--spf-ink);border-radius:16px;padding:14px 18px;font-size:1.056rem;line-height:1.78;color:var(--spf-ink);box-shadow:4px 4px 0 var(--spf-ink)}.ccg-chat__bubble b{color:#d64550}.ccg-chat__name{display:block;font-size:.8rem;font-weight:800;letter-spacing:.05em;color:#7c3aed;margin-bottom:3px}.ccg-chat__bubble:before{content:"";position:absolute;left:-9px;bottom:22px;width:15px;height:15px;background:var(--spf-paper);border-left:2px solid var(--spf-ink);border-bottom:2px solid var(--spf-ink);transform:rotate(45deg)}.ccg-chat--right{flex-direction:row-reverse}.ccg-chat--right .ccg-chat__bubble:before{left:auto;right:-9px;border-left:none;border-bottom:none;border-right:2px solid var(--spf-ink);border-top:2px solid var(--spf-ink)}.ccg-chat--phil .ccg-chat__bubble{background:linear-gradient(180deg,#fffdf8,#f6ecdd)}.ccg-chat--phil .ccg-chat__bubble:before{background:#f6ecdd}.ccg-chat--phil .ccg-chat__name{color:#d64550}@keyframes ccg-pop{0%{transform:scale(1)}28%{transform:scale(1.13,.9) translateY(2px)}48%{transform:scale(.94,1.1) translateY(-10px)}68%{transform:scale(1.04,.97) translateY(0)}84%{transform:scale(.99,1.02)}to{transform:scale(1)}}.ccg-chat__av.is-pop{animation:ccg-pop .5s ease}.ccg-chat__av:focus-visible{outline:2px solid var(--spf-yellow);outline-offset:3px;border-radius:8px}.ccg-chat.is-collapsible .ccg-chat__bubble{display:none}.ccg-chat.is-collapsible.is-open .ccg-chat__bubble{display:block;animation:ccg-bubble-in .32s ease}@keyframes ccg-bubble-in{0%{opacity:0;transform:translateY(6px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.ccg-chat__hint{align-self:center;font-size:1.2rem;line-height:1;cursor:pointer;opacity:.85;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.ccg-chat.is-open .ccg-chat__hint{display:none}@media (prefers-reduced-motion:reduce){.ccg-chat.is-collapsible.is-open .ccg-chat__bubble,.ccg-chat__av.is-pop{animation:none}}@media (max-width:600px){.ccg-chat{gap:9px}.ccg-chat__av{height:122px}.ccg-chat--solo .ccg-chat__av{height:100px}.ccg-chat--cat .ccg-chat__av{width:92px}.ccg-chat__bubble{font-size:.99rem;padding:12px 14px;line-height:1.7}}.spf-use{margin:26px 0}.spf-use__head{gap:.6rem;margin:0 0 .5rem}.spf-use__head,.spf-use__no{display:flex;align-items:center}.spf-use__no{flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:#7c3aed;color:#fff;font-weight:900;font-size:1.2rem;justify-content:center;box-shadow:3px 3px 0 rgba(21,22,29,.2)}.spf-use__h{margin:0;font-size:1.28rem;font-weight:900;color:var(--spf-ink)}.spf-use__lead{margin:.2rem 0 .9rem;line-height:1.9;color:#2a2b35;font-size:1.08rem}.spf-shot{margin:.4rem 0 0;background:#fff;border:2px solid var(--spf-ink);border-radius:12px;overflow:hidden;box-shadow:5px 5px 0 rgba(21,22,29,.14)}.spf-shot img{display:block;width:100%;height:auto}.spf-shot figcaption{padding:.55rem .9rem;font-size:.98rem;font-weight:600;line-height:1.65;color:#3a3b45;border-top:2px solid var(--spf-ink);background:var(--spf-paper2)}.spf-shot--wide{margin:.4rem 0 1.4rem}.spf-shot--narrow{max-width:430px;margin-left:auto;margin-right:auto}@media (max-width:640px){.spf-use__h{font-size:1.14rem}.spf-use__lead{font-size:1.02rem}}