*{box-sizing:border-box}html{color:#172033;background:#f5f7fa;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-width:320px;margin:0}button,select,textarea{font:inherit}a{color:#1d4ed8;text-underline-offset:4px}button,select{cursor:pointer}:focus-visible{outline-offset:3px;outline:3px solid #2563eb}.hands-on{max-width:1440px;margin:auto;padding:28px clamp(16px,4vw,56px) 60px}.breadcrumbs{justify-content:space-between;margin-bottom:40px;font-size:14px;display:flex}.eyebrow{letter-spacing:.07em;color:#426286;font-size:12px;font-weight:700}h1{letter-spacing:-.035em;word-break:keep-all;margin:10px 0;font-size:clamp(26px,4vw,40px);line-height:1.3}h2{margin:8px 0 12px;font-size:24px}p,li{line-height:1.7}.intro{color:#48576d;max-width:850px}.runtime-note,.editor-hint{color:#53627a;font-size:13px}.exercise-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin:28px 0;display:grid}.exercise-list a{color:#253b55;background:#fff;border:1px solid #d6deea;border-radius:6px;padding:12px 14px;font-size:14px;text-decoration:none}.exercise-list span{color:#64748b;font-variant-numeric:tabular-nums;margin-right:10px}.exercise-list a[aria-current]{color:#173d97;background:#e8f0ff;border-color:#2563eb}.assignment{background:#fff;border:1px solid #d6deea;border-radius:8px;padding:22px 26px}.assignment ol{padding-left:24px}.assignment details{border-top:1px solid #e2e8f0;padding-top:14px}summary{cursor:pointer;color:#1d4ed8}.toolbar{color:#53627a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 12px;font-size:13px;display:flex}.actions{gap:8px;display:flex}button{color:#233751;background:#fff;border:1px solid #bfcada;border-radius:5px;padding:10px 16px}button:hover{background:#eaf0f8}button.primary{color:#fff;background:#1d4ed8;border-color:#1d4ed8}button.primary:hover{background:#163fb4}select{background:#fff;border:1px solid #bfcada;border-radius:4px;padding:9px}.layout-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:10px 0;display:flex}.layout-toolbar p{margin:0}.layout-toolbar button{flex-shrink:0;padding:7px 10px;font-size:12px}.workspace{--divider-size:14px;grid-template-columns:minmax(0, var(--left-size)) var(--divider-size) minmax(0, 1fr);grid-template-rows:var(--preview-height) var(--divider-size) var(--log-height);display:grid}.workspace-panel{background:#fff;border:1px solid #bfcada;border-radius:7px;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.preview-pane{grid-area:1/1}.log-pane{grid-area:3/1}.editor-pane{grid-area:1/3/4}.panel-heading{background:#f0f4fa;border-bottom:1px solid #d6deea;flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:9px 14px;display:flex}.panel-heading h3{margin:0;font-size:14px}.panel-heading span,.panel-heading label{color:#53627a;font-size:12px}.editor-heading label{flex:none}.editor-heading select{flex:1;min-width:0;padding:5px;font-size:13px}.preview-content{flex:1;min-height:0;overflow:hidden}.preview{background:#fff;border:0;width:100%;height:100%;display:block}.log-scroll{overscroll-behavior:contain;color:#dbe7f6;scrollbar-width:thin;color-scheme:dark;background:#101b2d;flex:1;min-height:0;padding:14px 24px 26px 14px;overflow:auto}.log-scroll pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.log-empty{color:#a9b8cc;margin:0;font-size:13px}.follow-logs{align-items:center;gap:5px;display:flex}.follow-logs input{accent-color:#1d4ed8}.log-count{font-variant-numeric:tabular-nums;margin-left:6px}.source-editor[data-sh-editor]{scrollbar-width:thin;overscroll-behavior:contain;tab-size:2;color-scheme:dark;border:0;border-radius:0;flex:1;height:0;min-height:0}.source-editor:focus-within{outline-offset:-2px;outline:2px solid #2563eb}.source-editor [data-sh-content]{flex:none;width:max-content;min-width:100%;min-height:100%}.editor-pane .editor-hint{border-top:1px solid #d6deea;flex-shrink:0;margin:0;padding:8px 30px;font-size:11px}.panel-divider{cursor:move;touch-action:none;position:relative}.panel-divider:after{content:"";background:#bfcada;border-radius:3px;position:absolute}.column-divider{grid-area:1/2/4}.column-divider:after{width:4px;height:38px;top:calc(50% - 19px);left:5px}.row-divider{grid-area:2/1}.row-divider:after{width:38px;height:4px;top:5px;left:calc(50% - 19px)}.panel-divider:hover:after,.panel-divider:focus-visible:after{background:#2563eb}.panel-divider:focus-visible{outline-offset:-3px;border-radius:4px}.panel-resize{z-index:2;color:#294b78;cursor:move;touch-action:none;background:#edf3fc;border:1px solid #aebdd1;border-radius:5px 0;width:26px;height:26px;padding:0;font-size:19px;line-height:1;position:absolute;bottom:0;right:0}.panel-resize-editor{border-radius:0 5px;left:0;right:auto}.panel-resize:focus-visible{outline-offset:-3px}.workspace[data-resizing]{user-select:none}.workspace[data-resizing] iframe{pointer-events:none}.resize-shield{z-index:9999;cursor:move;position:fixed;inset:0}.error{color:#991b1b;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff0f0;border-left:4px solid #b91c1c;padding:16px}@media (width<=850px){.workspace{flex-direction:column;gap:14px;display:flex}.preview-pane{height:var(--preview-height)}.log-pane{height:var(--log-height)}.editor-pane{height:calc(var(--preview-height) + var(--log-height) + 14px)}.panel-divider{display:none}.layout-toolbar{align-items:flex-start}.assignment{padding:18px}}.live-toggle{align-items:center;gap:6px;display:flex}.live-toggle input{accent-color:#1d4ed8}
