.ipasol{
  --ink:#1A2733;--soft:#4c5d56;--mute:#7b8b84;
  --accent:#137333;--deep:#0B4A2A;--link:#0f7a45;
  --rule:#dde5e0;--rule2:#bccbc3;--tint:#f5f8f6;--tint2:#e9f1ec;
  --flag:#9a4a17;--flag-tint:#faf4ef;--read:#B4711A;--read-tint:#fbf1e2;
  --ok:#0f7a45;--bad:#b3261e;--bad-tint:#fbeae8;
  --cb:#0e1a15;--ci:#dde9e2;--cd:#6f8a7e;--ch:#1d3a2c;
  --mincho:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP","Times New Roman",serif;
  --mono:"PgmSym",ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,"Hiragino Kaku Gothic ProN","Yu Gothic",monospace;
  color:var(--ink);font-size:16px;line-height:1.95;letter-spacing:.012em;
  word-break:normal;overflow-wrap:anywhere;
}
.ipasol h4,.ipasol .simh{
  margin:1.9em 0 .5em;color:var(--accent);
  font-size:1.02em;font-weight:800;letter-spacing:.03em;
  border:none;background:none;padding:0;max-width:none;
}
.ipasol .cjmp{--clh:26px;--top0:9px;position:relative;margin:.2em 0;
  padding:8px 76px 8px 0;background:#10201A;border:1px solid #24382F;overflow:hidden}
.ipasol .cjmp.lanes{--lw:26px;padding-right:calc(30px + var(--n) * var(--lw));width:fit-content;max-width:100%}
.ipasol .sim{
  border:none;border-top:1px solid var(--rule2);border-bottom:1px solid var(--rule2);
  border-radius:0;background:#fff;box-shadow:none;margin:0 0 2.2em;overflow:hidden;
}
.ipasol .sim-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:.9em 0;background:none;border-bottom:1px solid var(--rule);flex-wrap:wrap;
}
.ipasol .sim-head p{margin:0}
.ipasol .sim-title{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--mute)}
.ipasol .sim-src{font-size:11px;color:var(--mute);letter-spacing:.04em}
.ipasol .sim-grid{display:grid;grid-template-columns:1.32fr 1fr;gap:0;align-items:start}
@media screen and (min-width:901px){.ipasol .sim{display:grid;grid-template-columns:1.32fr 1fr;align-items:start}.ipasol .sim .sim-grid{display:contents}.ipasol .sim .sim-head{grid-column:1/-1}.ipasol .sim .code{grid-column:1;grid-row:2;position:sticky;top:8px}.ipasol .sim .state{grid-column:2;grid-row:2/span 2}.ipasol .sim .narr{grid-column:1;grid-row:3;border-top:none;padding:.9em 1.2em .9em 0}.ipasol .sim .ctrl,.ipasol .sim .trace-wrap{grid-column:1/-1}}
.ipasol .code{
  background:var(--cb);padding:1.1em 0;margin:0;overflow-x:auto;border-radius:0;
  font-family:var(--mono);font-size:13.5px;line-height:1.95;
}
.ipasol .code .ln{display:flex;gap:14px;padding:1px 1.1em;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ci);border-left:3px solid transparent}
.ipasol .code .ln i{flex:none;width:1.4em;text-align:right;color:var(--cd);font-style:normal;font-variant-numeric:tabular-nums;user-select:none}
.ipasol .code .ln.on{background:var(--ch);border-left-color:var(--accent)}
.ipasol .code .ln.on i{color:#7CC79E}
.ipasol .state{padding:1.1em 0 1.2em 1.4em;border-left:1px solid var(--rule);background:none;display:flex;flex-direction:column;gap:1.1em}
.ipasol .state h4,.ipasol .state .simh{margin:0 0 .5em;font-size:10.5px;font-weight:800;letter-spacing:.18em;color:var(--mute);border:none;padding:0;background:none}
.ipasol .loopbadge{
  align-self:flex-start;margin:0;font-size:10.5px;font-weight:800;letter-spacing:.14em;
  background:none;color:var(--accent);border:1px solid var(--accent);
  padding:.2em .7em;border-radius:0;
}
.ipasol .loopbadge.off{color:var(--mute);border-color:var(--rule2)}
.ipasol .arr{margin:0 0 .7em}
.ipasol .arr .an{font-family:var(--mono);font-size:11px;color:var(--mute);display:block;margin-bottom:.35em;letter-spacing:.06em}
.ipasol .cells{display:flex;gap:3px;flex-wrap:wrap}
.ipasol .cell.srt{background:var(--tint2);border-color:var(--rule2)}
.ipasol .cell.gap{border-color:transparent;background:none}
.ipasol .cell.gap u,.ipasol .cell.gap b,.ipasol .cell.gap s{visibility:hidden}
.ipasol .cell{min-width:42px;border:1px solid var(--rule2);border-radius:0;background:#fff;text-align:center;padding:2px 4px 0}
.ipasol .cell.w{background:var(--tint2);border-color:var(--accent)}
.ipasol .cell.q{border-style:dashed}
.ipasol .cell.q b{color:var(--mute)}
.ipasol .cell.r{background:var(--read-tint);border-color:var(--read)}
.ipasol .cell.src{background:#fff;border-color:var(--read)}
.ipasol .cell.src b,.ipasol .cell.src u{color:var(--read)}
.ipasol .cell.nxt{background:#fff;border-color:var(--read);border-style:dashed}
.ipasol .cell.nxt b,.ipasol .cell.nxt u{color:var(--read)}
.ipasol .cell.new{background:var(--tint2);border-color:var(--accent)}
.ipasol .cell.new b{color:var(--accent);font-weight:700}
.ipasol .cell.undef{background:repeating-linear-gradient(45deg,#eceff1,#eceff1 3px,#dfe4e7 3px,#dfe4e7 6px);border-color:var(--rule2)}
.ipasol .cell.undef b{color:var(--mute);font-size:10.5px;letter-spacing:-.03em}
.ipasol .cell u{display:block;font-size:9.5px;color:var(--mute);text-decoration:none;font-variant-numeric:tabular-nums}
.ipasol .cell b{display:block;font-family:var(--mono);font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.35}
.ipasol .cell.w b{color:var(--accent)}
.ipasol .cell.r b{color:var(--read)}
.ipasol .cell s{display:block;height:14px;font-size:11px;line-height:14px;text-decoration:none;color:transparent}
.ipasol .cell.w s{color:var(--accent)}
.ipasol .cell.r s{color:var(--read)}
.ipasol .sim .cells{flex-wrap:nowrap;overflow-x:auto}
.ipasol .sim .cell{flex:0 1 auto;min-width:28px}
.ipasol p.cells-lbl{margin:.9em 0 .25em;font-family:var(--mono);font-size:11.5px;color:var(--mute);letter-spacing:.06em}
.ipasol .cells.empty::after{content:"（要素数0）";font-size:11.5px;color:var(--mute);align-self:center}
.ipasol .arrc{display:flex;flex-wrap:wrap;gap:5px 9px;font-family:var(--mono);font-size:13.5px;line-height:1.6}
.ipasol .arrc .ac{color:var(--ink);white-space:nowrap;border:1px solid transparent;padding:0 2px;border-radius:2px}
.ipasol .arrc .ac.on{border-color:var(--rule2);background:#fff}
.ipasol .arrc .ac u{color:var(--mute);font-size:11px;text-decoration:none;margin-right:1px}
.ipasol .arrc .ac i{color:var(--mute);font-style:normal;margin:0 1px}
.ipasol .arrc .ac b{font-weight:400}
.ipasol .arrc .ac b.r{color:var(--read);background:var(--read-tint);font-weight:700;padding:0 3px;border-radius:2px}
.ipasol .arrc .ac b.w{color:var(--accent);background:var(--tint2);font-weight:700;padding:0 3px;border-radius:2px}
.ipasol .grid2{overflow-x:auto}
.ipasol .grid2 table{width:auto;border-collapse:collapse;font-family:var(--mono);font-variant-numeric:tabular-nums}
.ipasol .grid2 th{font-weight:400;font-size:9.5px;color:var(--mute);padding:1px 6px;text-align:center;border:0}
.ipasol .grid2 td{min-width:42px;border:1px solid var(--rule2);background:#fff;text-align:center;padding:3px 6px;font-size:15px;color:var(--ink)}
.ipasol .grid2 td.w{background:var(--tint2);border-color:var(--accent);color:var(--accent)}
.ipasol .grid2 td.r{background:var(--read-tint);border-color:var(--read);color:var(--read)}
.ipasol .grid2 td.undef{background:repeating-linear-gradient(45deg,#eceff1,#eceff1 3px,#dfe4e7 3px,#dfe4e7 6px);color:var(--mute)}
.ipasol .grid2 td.dim{background:#eef1ef;color:var(--mute)}
.ipasol .grid2 td b{display:block;font-weight:400;line-height:1.35}
.ipasol .grid2 td s{display:block;height:13px;font-size:10px;line-height:13px;text-decoration:none;color:transparent}
.ipasol .grid2 td.w s{color:var(--accent)}
.ipasol .grid2 td.r s{color:var(--read)}
.ipasol .ptrkey{display:flex;gap:14px;font-size:10.5px;color:var(--mute);margin-top:.4em;letter-spacing:.04em}
.ipasol .ptrkey .kr b{color:var(--read)}
.ipasol .ptrkey .kw b{color:var(--accent)}
.ipasol .calc{border:none;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);border-radius:0;background:var(--tint);padding:.9em 1em;text-align:center}
.ipasol .calc.idle{color:var(--mute);font-size:12.5px;padding:1.2em 1em}
.ipasol .calc .row{font-family:var(--mono);font-variant-numeric:tabular-nums;display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.ipasol .calc .r1{font-size:13px;color:var(--mute);margin-bottom:2px}
.ipasol .calc .r2{font-size:19px;font-weight:700;color:var(--ink)}
.ipasol .calc .eq{font-size:14px;color:var(--accent);line-height:1.1;margin:2px 0}
.ipasol .calc .r3{font-size:23px;font-weight:800;color:var(--accent)}
.ipasol .vars{display:flex;flex-wrap:wrap;gap:8px}
.ipasol .var{border:1px solid var(--rule2);border-radius:0;padding:.25em .7em;background:#fff;min-width:70px}
.ipasol .var.chg{background:var(--tint2);border-color:var(--accent)}
.ipasol .var b{display:block;font-family:var(--mono);font-size:10.5px;color:var(--mute);font-weight:600;letter-spacing:.06em}
.ipasol .var span{display:block;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.35}
.ipasol .var.chg span{color:var(--accent)}
.ipasol .var span.undef{color:var(--mute);font-size:12px;font-weight:500}
.ipasol .outbox{font-family:var(--mono);font-size:15px;font-weight:700;background:var(--cb);color:#7CC79E;padding:.5em .8em;border-radius:0}
.ipasol .narr{padding:.9em 0;background:none;border-top:1px solid var(--rule);font-size:.93em;color:var(--ink);line-height:1.85;min-height:3.4em;margin:0}
.ipasol .narr b{color:var(--accent)}
.ipasol .ctrl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:.9em 0;border-top:1px solid var(--rule);background:none;margin:0}
.ipasol .prog{margin-left:auto;font-size:11.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.ipasol .trace-wrap{border-top:1px solid var(--rule);background:none}
.ipasol .trace-wrap h4,.ipasol .trace-wrap .simh{margin:0;padding:.9em 0 .5em}
.ipasol .trace-scroll{overflow-x:auto;padding:0 0 1em}
.ipasol table.trace{font-size:13px;border-top:1px solid var(--rule2);border-bottom:1px solid var(--rule2)}
.ipasol table.trace th,.ipasol table.trace td{padding:.45em .9em;white-space:nowrap}
.ipasol table.trace td{font-family:var(--mono);font-variant-numeric:tabular-nums}
.ipasol table.trace tbody tr:last-child{background:var(--tint2)}
.ipasol table.trace tbody tr:last-child td{font-weight:700;color:var(--accent)}
.ipasol .trace-empty{padding:0 0 1em;font-size:12.5px;color:var(--mute);margin:0}
.ipasol .tl .row{
  display:grid;grid-template-columns:9em 1fr;gap:0 24px;align-items:baseline;
  border-top:1px solid var(--rule);padding:.85em 0;
}
.ipasol .card .code{
  font-family:var(--mono);font-weight:700;color:var(--accent);font-size:11px;
  letter-spacing:.12em;background:none;padding:0;border-radius:0;
}
@media screen and (max-width:620px){.ipasol .tl .row,.ipasol .lv,.ipasol .korow{grid-template-columns:1fr;gap:.4em}}
@media screen and (max-width:900px){.ipasol .sim .ctrl{
    position:sticky;bottom:0;z-index:5;
    background:#fff;border-top:1px solid var(--rule2);
    margin:0 -14px;padding:.7em 14px;
  }.ipasol .sim .trace-wrap{padding-bottom:4.6em}}
@media screen and (max-width:900px){.ipasol .sim-grid{grid-template-columns:1fr}.ipasol .state{border-left:0;border-top:1px solid var(--rule);padding-left:0}}
.ipasol .tech ol li pre.ln{
  font-family:var(--mono);font-size:13px;line-height:1.85;
  background:var(--tint);border:none;border-left:3px solid var(--rule2);
  border-radius:0;margin:.15em 0 .5em;padding:.5em .9em;
  overflow-x:auto;white-space:pre;tab-size:2;color:var(--ink);
}
.ipasol .lchain p.ln-no{flex:0 0 1.9em;margin:0;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--accent);text-align:right}
.ipasol .lchain .ln-box{flex:0 1 auto;display:flex;flex-wrap:wrap;align-items:stretch;background:#fff;border:1px solid var(--rule2);border-left:3px solid var(--accent)}
.ipasol .lchain.end .ln-box,.ipasol .lchain .lnode.end .ln-box{border-left-color:var(--mute)}
.ipasol .lchain p.ln-at{flex:0 0 auto;margin:0;padding:.5em .9em;font-size:13px;color:var(--soft);background:var(--tint2);display:flex;align-items:center}
.ipasol .lchain p.ln-at b{font-family:var(--mono);font-size:16px;color:var(--deep);margin-left:.3em}
.ipasol .lchain p.ln-f{flex:0 0 auto;min-width:11em;margin:0;padding:.42em .9em;border-left:1px solid var(--rule)}
.ipasol .lchain p.ln-f u{display:block;font-family:var(--mono);font-size:10px;color:var(--mute);text-decoration:none;letter-spacing:.02em}
.ipasol .lchain p.ln-f b{display:block;font-family:var(--mono);font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.3}
.ipasol .lchain p.ln-f.undef{background:repeating-linear-gradient(45deg,#eceff1,#eceff1 3px,#dfe4e7 3px,#dfe4e7 6px)}
.ipasol .lchain p.ln-f.undef b{font-size:13px;color:var(--mute)}
@media (max-width:600px){.ipasol .tech ol li pre.ln{font-size:11.5px;padding:.45em .6em}.ipasol .lchain p.ln-at{flex:1 1 100%;border-bottom:1px solid var(--rule)}.ipasol .lchain p.ln-f{flex:1 1 45%;border-left:none;border-right:1px solid var(--rule)}}
.ipasol .mirw .grid2 table{table-layout:fixed}
.ipasol .mirw .grid2 th{width:26px;height:18px;padding:0}
.ipasol .mirw .grid2 tr:first-child th{width:44px;height:18px}
.ipasol .mirw .grid2 td{width:44px;height:44px;min-width:0;padding:0;vertical-align:middle}
@media screen and (max-width:900px){.ipasol .sim{display:flex;flex-direction:column;overflow:clip}.ipasol .sim .sim-grid{display:contents}.ipasol .sim .sim-head{order:0}.ipasol .sim .code{order:1;max-height:40vh;overflow-y:auto;font-size:12.5px;line-height:1.8;padding:.6em 0}.ipasol .sim .code .ln{white-space:pre-wrap;word-break:break-all;gap:10px;padding:1px .8em}.ipasol .sim .narr{order:2;border-top:none;padding:.8em 0 .6em}.ipasol .sim .state{order:3;padding-top:.8em}.ipasol .sim .state>div:has(>.vars){order:-1}.ipasol .sim .ctrl{order:4;gap:6px}.ipasol .sim .trace-wrap{order:5}}
@media screen and (max-width:620px){.ipasol .sim .ctrl button{padding:.45em .75em;font-size:13px}.ipasol .sim .ctrl button.pri{padding:.45em 1.3em}}
.ipasol .code .ln{word-break:keep-all}
@media (max-width:900px){.ipasol .sim .code .ln{word-break:keep-all;overflow-wrap:anywhere}}
@font-face{font-family:"FeCircle";src:local("BIZ UDGothic"),local("Meiryo"),local("Hiragino Sans"),local("Hiragino Kaku Gothic ProN"),local("Noto Sans JP");unicode-range:U+25CB}
.quiz-q__text pre,.quiz-exp pre{font-family:"FeCircle",Consolas,"BIZ UDGothic","Hiragino Kaku Gothic ProN",monospace;font-size:15px;line-height:1.7;letter-spacing:0;font-feature-settings:normal;background:var(--bg-alt);border:1px solid var(--rule);padding:1em 1.1em;margin:1.2em 0;overflow-x:auto;white-space:pre;tab-size:2;color:var(--ink)}
.quiz-q__text p,.quiz-exp p{margin:0 0 .9em}
.quiz-choice__text{white-space:pre-wrap}
.quiz-exp .fe-sim-mount{margin:1.4em 0;font-size:15px;line-height:1.75;letter-spacing:0;font-feature-settings:normal}
.quiz-exp .fe-sim-mount .sim{margin:0}
@media (max-width:600px){.quiz-q__text pre,.quiz-exp pre{font-size:13px;padding:.8em}}
.quiz-exp .fe-sim-mount .sim .code{font-family:"FeCircle",Consolas,"BIZ UDGothic","Hiragino Kaku Gothic ProN",monospace}
