.unit-page[data-astro-cid-65ixlexk]{max-width:1200px;margin:0 auto;padding:clamp(2rem,6vw,3.5rem) clamp(1.25rem,4vw,1.5rem) 5rem}.back-link[data-astro-cid-65ixlexk]{display:inline-block;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--ink-muted);text-decoration:none;margin-bottom:1.5rem}.back-link[data-astro-cid-65ixlexk]:hover{color:var(--ink)}.unit-meta[data-astro-cid-65ixlexk]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.unit-meta[data-astro-cid-65ixlexk] .eyebrow[data-astro-cid-65ixlexk]{display:flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:0}.eyebrow-dot[data-astro-cid-65ixlexk]{width:.5rem;height:.5rem;border-radius:50%;background:var(--stamp-progress);flex-shrink:0}#it-app{--teal:#0d5c63;--gold:#c98a2f;--gold-ink:#8a560c;--ink:#1a1c1e;--muted:#43474e;--bg:#f5f4ef;--card:#ffffff;--line:#d8d3c4;--code-bg:#0e3a3d;--code-fg:#e9f4f2;--green:#2f7d55;--red:#b23a3a;--blue:#2c5d8f;--radius:12px;--shadow:0 8px 24px rgba(20,60,60,.1);--font:"Segoe UI", "Leelawadee UI", "Noto Sans Thai", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;--mono:"Consolas","SF Mono",Monaco,"Courier New",monospace;all:initial;display:block;width:100%;box-sizing:border-box;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.55;padding:16px;border-radius:16px;-webkit-font-smoothing:antialiased}#it-app *{box-sizing:border-box}#it-app h1,#it-app h2,#it-app h3,#it-app h4,#it-app p{margin:0 0 .5em}#it-app strong{color:var(--ink)}#it-app a{color:var(--blue);font-weight:700}#it-app :focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:8px}#it-app .hero{background:linear-gradient(120deg,var(--teal),#164a4f);color:#fff;border-radius:var(--radius);padding:22px 22px 20px;box-shadow:var(--shadow);position:relative;overflow:hidden}#it-app .hero:after{content:"[ ] [ ] [ ]";position:absolute;right:-6px;bottom:-14px;font-family:var(--mono);font-size:64px;font-weight:700;color:#ffffff1f;letter-spacing:-4px;white-space:nowrap}#it-app .eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;opacity:.9}#it-app .hero h1{font-size:34px;font-weight:800;line-height:1.05;margin:.15em 0}#it-app .hero .th{font-size:18px;font-weight:700;opacity:.9;margin:0 0 .4em}#it-app .teacher{display:inline-flex;align-items:center;gap:8px;margin-top:8px;background:#ffffff2e;padding:6px 12px;border-radius:999px;font-weight:700;font-size:14px;backdrop-filter:blur(2px)}#it-app .tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}#it-app .tab{appearance:none;cursor:pointer;border:2px solid var(--line);background:var(--card);color:var(--ink);font-family:var(--font);font-weight:700;font-size:14px;padding:9px 14px;border-radius:999px;min-height:44px;transition:transform .12s ease,background .12s ease,color .12s ease,border-color .12s ease}#it-app .tab:hover{border-color:var(--gold);transform:translateY(-1px)}#it-app .tab[aria-selected=true]{background:var(--teal);border-color:var(--teal);color:#fff;box-shadow:0 6px 14px #0d5c6359}#it-app .panel{display:none;animation:it-fade .25s ease}#it-app .panel.active{display:block}@keyframes it-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}#it-app .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);margin:14px 0}#it-app .card h2{font-size:20px;color:var(--teal);display:flex;align-items:center;gap:8px;flex-wrap:wrap}#it-app .card h3{font-size:16px;color:var(--ink);margin-top:.9em}#it-app .card h3:first-child{margin-top:0}#it-app .tag{display:inline-block;background:var(--gold-ink);color:#fff;font-weight:700;font-size:11px;letter-spacing:.5px;text-transform:uppercase;padding:3px 9px;border-radius:999px;vertical-align:middle}#it-app .tag.teal{background:var(--teal)}#it-app .th-term{font-weight:600;color:var(--muted);font-size:.92em}#it-app .grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}#it-app .side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:16px;align-items:center}@media(max-width:700px){#it-app .grid2,#it-app .side{grid-template-columns:minmax(0,1fr)}#it-app .hero h1{font-size:26px}}#it-app ul.it{list-style:none;padding:0;margin:.3em 0}#it-app ul.it li{padding:5px 0 5px 4px;display:flex;gap:9px;align-items:flex-start}#it-app ul.it li .b{flex:0 0 auto}#it-app ul.dots{margin:.3em 0 .6em;padding-left:1.3em}#it-app ul.dots li{margin:.25em 0}#it-app .keyterm{border-left:5px solid var(--gold);background:#fbf3e4;padding:10px 14px;border-radius:8px;margin:12px 0}#it-app .keyterm b{color:var(--gold-ink)}#it-app .ex{border:1px solid var(--line);border-left:6px solid var(--blue);border-radius:10px;padding:14px 16px;margin:14px 0;background:#fbfcfe}#it-app .ex>.ex-h{font-weight:800;color:var(--blue);margin-bottom:6px}#it-app .think{border:2px dashed var(--gold);border-radius:12px;padding:14px 16px;margin:14px 0;background:#fffaf1}#it-app .think>.ex-h{font-weight:800;color:var(--gold-ink);margin-bottom:6px}#it-app .act{border:2px solid var(--red);border-radius:12px;padding:14px 16px;margin:14px 0;background:#fff7f6}#it-app .act>.ex-h{font-weight:800;color:var(--red);margin-bottom:6px}#it-app .qa{margin:10px 0}#it-app .qa p{margin:.15em 0}#it-app .qa .ql{color:var(--blue);font-weight:800}#it-app .qa .al{color:var(--gold-ink);font-weight:800}#it-app ol.algo{list-style:none;counter-reset:a;padding:0;margin:6px 0 10px;border-top:1px solid #8cc3d4}#it-app ol.algo>li{counter-increment:a;padding:7px 4px 7px 34px;border-bottom:1px solid #8cc3d4;position:relative}#it-app ol.algo>li:before{content:counter(a) ".";position:absolute;left:6px;font-weight:800;color:var(--teal)}#it-app ol.algo ol.algo{border-top:1px dashed #8cc3d4;margin:6px 0 -7px -34px;counter-reset:b}#it-app ol.algo ol.algo>li{counter-increment:b;padding-left:62px;border-bottom:1px dashed #8cc3d4}#it-app ol.algo ol.algo>li:last-child{border-bottom:none}#it-app ol.algo ol.algo>li:before{content:counter(a) "." counter(b);left:30px}#it-app .algo-h{font-weight:800;color:var(--red);margin-top:10px}#it-app .scroll{overflow-x:auto;border-radius:10px;border:1px solid var(--line)}#it-app table{border-collapse:collapse;width:100%;min-width:420px;font-size:14px;background:#fff}#it-app th{background:var(--teal);color:#fff;text-align:left;padding:9px 12px;font-weight:700}#it-app td{padding:8px 12px;border-top:1px solid var(--line);vertical-align:top}#it-app tr:nth-child(2n) td{background:#f6faf9}#it-app .mono{font-family:var(--mono)}#it-app .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}#it-app .flip{all:unset;display:block;perspective:900px;height:140px;cursor:pointer}#it-app .flip:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:10px}#it-app .flip .inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}#it-app .flip.on .inner{transform:rotateY(180deg)}#it-app .flip .side{position:absolute;inset:0;backface-visibility:hidden;border-radius:10px;padding:12px;display:flex;flex-direction:column;justify-content:center;text-align:center;box-shadow:var(--shadow)}#it-app .flip .front{background:var(--teal);color:#fff;font-weight:800;font-size:15px}#it-app .flip .front small{font-weight:600;opacity:.9;font-size:12px;margin-top:6px}#it-app .flip .back{background:#fff;border:2px solid var(--gold);color:var(--ink);font-size:13px;transform:rotateY(180deg)}#it-app .acc{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:10px 0;background:#fff}#it-app .acc .head{cursor:pointer;padding:12px 14px;font-weight:700;background:#f2f8f7;width:100%;display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--ink);border:none;font-family:var(--font);font-size:15px;text-align:left}#it-app .acc .head:hover{background:#e6f2f0}#it-app .acc .chev{color:var(--gold-ink);font-weight:900;transition:transform .2s}#it-app .acc.on .chev{transform:rotate(90deg)}#it-app .acc .body{display:none;padding:12px 14px;border-top:1px dashed var(--line)}#it-app .acc.on .body{display:block}#it-app .viz{background:linear-gradient(180deg,#0e3a3d,#164a4f);color:#eafaf6;border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin:14px 0}#it-app .viz h3{color:#fff;margin-top:0}#it-app .viz p{color:#eafaf6}#it-app .viz strong{color:#fff}#it-app .viz .controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 12px}#it-app .abtn{cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-weight:800;font-family:var(--font);font-size:14px;color:#fff;background:var(--teal);transition:.12s;min-height:44px}#it-app .abtn:active,#it-app .opt:active,#it-app .tab:active{transform:translateY(1px) scale(.98)}#it-app .abtn:hover{filter:brightness(1.1);transform:translateY(-1px)}#it-app .abtn.ghost{background:transparent;border:2px solid rgba(255,255,255,.45)}#it-app .abtn.alt{background:var(--gold-ink)}#it-app .log{background:#00000047;border-radius:10px;padding:10px 12px;font-family:var(--mono);font-size:13px;min-height:120px;max-height:200px;overflow-y:auto;margin-top:12px}#it-app .log div{padding:3px 0;border-bottom:1px solid rgba(255,255,255,.08)}#it-app .log .main{color:#ffd58a;font-weight:800}#it-app .log .final{color:#9ff5c8;font-weight:800}#it-app canvas.tc{display:block;width:100%;height:auto;background:#fff;border-radius:10px;border:1px solid var(--line)}#it-app .houses{width:100%;min-width:0;font-size:13px;margin-top:10px;background:transparent}#it-app .houses th{background:#ffffff1f;color:#fff}#it-app .houses td{background:transparent!important;border-top:1px solid rgba(255,255,255,.15);color:#eafaf6}#it-app .houses input{width:64px}#it-app input.inp,#it-app select.inp{font:600 14px var(--mono);padding:6px 8px;border:2px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:90px;min-height:44px}#it-app input.inp:focus,#it-app select.inp:focus{border-color:var(--teal);outline:none}#it-app select.inp{width:auto;font-family:var(--font)}#it-app .sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:4px;border:1px solid rgba(0,0,0,.3)}#it-app .gen{background:#f2f8f7;border:1px solid #bcd9d5;border-radius:10px;padding:12px 14px;margin:10px 0}#it-app .gen .row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:8px 0}#it-app .gen .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}#it-app .gen .abtn{padding:7px 12px}#it-app .res{font-weight:700;font-size:14px;margin-top:8px;min-height:1.2em}#it-app .res.ok{color:#0c6b47}#it-app .res.no{color:#a5283a}#it-app .model{display:none;margin-top:8px;padding:10px 12px;border-radius:8px;background:#fff;border:1px dashed var(--teal)}#it-app .model.on{display:block}#it-app .toks p{margin:.3em 0}#it-app .tok{all:unset;cursor:pointer;padding:6px;display:inline-block;line-height:1.4;border-radius:999px;border:2px solid transparent}#it-app .tok:hover{background:#fbf3e4}#it-app .tok.on{border-color:var(--red)}#it-app .tok.right{border-color:var(--green);background:#e6f5ec}#it-app .tok.miss{border-color:var(--gold);border-style:dashed}#it-app .tok:focus-visible{outline:3px solid var(--gold)}#it-app .chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}#it-app .chip{font:700 13px var(--font);padding:4px 9px;border-radius:999px;color:#fff}#it-app .chip.R{background:var(--teal)}#it-app .chip.L{background:var(--gold-ink)}#it-app .chip.hl{outline:3px solid #ffb703;outline-offset:1px}#it-app .grp{display:inline-flex;gap:4px;padding:4px;border-radius:999px;border:2px solid var(--line);background:#fff}#it-app .grp.m1{border-color:#2c5d8f}#it-app .grp.m2{border-color:#a5283a}#it-app .grp.m3{border-color:#2f7d55}#it-app .grp.m4{border-color:#7a4fa3}#it-app .grp .nm{font:800 12px var(--font);padding:3px 6px;color:var(--ink)}#it-app .shelf{display:flex;align-items:flex-end;gap:6px;min-height:150px;padding:8px 10px 0;border-bottom:6px solid #5b3b22;border-radius:4px}#it-app .bk{width:34px;border-radius:3px 3px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:4px;font:800 14px var(--mono);color:#fff;box-shadow:inset -4px 0 #0000002e;transition:.25s}#it-app .bk.pick{outline:3px solid #ffd58a;outline-offset:2px}#it-app .bk.cmp{outline:3px dashed #9ff5c8;outline-offset:2px}#it-app .shelf-l{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;opacity:.85;margin-top:10px}#it-app .q{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}#it-app .q .opts{display:flex;flex-direction:column;gap:8px;margin-top:8px}#it-app .opt{cursor:pointer;text-align:left;border:2px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:10px 12px;font-family:var(--font);font-size:14px;font-weight:600;transition:.12s}#it-app .opt:hover{border-color:var(--teal)}#it-app .opt.correct{background:#e6faf1;border-color:var(--green);color:#0c6b47}#it-app .opt.wrong{background:#fdeef2;border-color:#a5283a;color:#a5283a}#it-app .opt:disabled{cursor:default}#it-app .fb{margin-top:8px;font-weight:700;font-size:13px;min-height:18px}#it-app .score{font-weight:800;color:var(--teal);font-size:16px;margin-top:6px}#it-app .chk{display:flex;gap:10px;align-items:flex-start;padding:6px 0;cursor:pointer}#it-app .chk input{width:20px;height:20px;margin-top:2px;accent-color:var(--teal);flex:0 0 auto}#it-app .foot{text-align:center;color:var(--muted);font-size:12px;margin-top:14px}#it-app .src{font-size:12px;color:var(--muted);margin-top:6px}#it-app .bk-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px;align-items:end;margin:12px 0}#it-app .bk-fig{margin:12px auto;max-width:min(100%,max(var(--w,640px),140px));text-align:center}#it-app .bk-figs .bk-fig{margin:0 auto}#it-app .bk-zoom{all:unset;box-sizing:border-box;display:block;cursor:zoom-in;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;transition:transform .2s,box-shadow .2s}#it-app .bk-zoom:hover{transform:translateY(-2px);box-shadow:var(--shadow)}#it-app .bk-zoom:focus-visible{outline:3px solid var(--gold);outline-offset:2px}#it-app .bk-zoom img{display:block;width:100%;height:auto;max-height:460px;object-fit:contain}#it-app .bk-fig figcaption{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.4}#it-app .bk-fig figcaption b{color:var(--teal);margin-right:4px}dialog.bk-lb{border:none;padding:0;background:transparent;max-width:min(96vw,1200px);max-height:94vh;overflow:visible}dialog.bk-lb::backdrop{background:#0a1420d1}dialog.bk-lb figure{margin:0;background:#fff;border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center}dialog.bk-lb img{display:block;max-width:100%;max-height:calc(94vh - 70px);width:auto;height:auto;object-fit:contain}dialog.bk-lb figcaption{font:600 14px/1.4 system-ui,sans-serif;color:#1a1c1e;padding:8px 4px 2px;text-align:center}dialog.bk-lb figcaption b{color:#0d5c63;margin-right:4px}dialog.bk-lb .bk-x{position:absolute;top:-16px;right:-16px;width:44px;height:44px;border-radius:50%;border:2px solid #fff;background:#0d5c63;color:#fff;font-size:18px;cursor:pointer}dialog.bk-lb .bk-x:focus-visible{outline:3px solid #ffd58a}@media(prefers-reduced-motion:reduce){#it-app *{animation:none!important;transition:none!important}#it-app .bk-zoom:hover{transform:none}}
