:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}@font-face{font-family:KoPub Batang;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/npm/font-kopub@1.0.2/fonts/KoPubBatang-Medium.woff)format("woff")}:root{--vanilla-cream:#fff7e6;--sage-leaf:#a8b58a;--misty-sky:#a9b7c6;--midnight-lagoon:#2d3a47;--bg:var(--vanilla-cream);--panel:#fff;--text:#000;--accent:var(--midnight-lagoon);--border:var(--misty-sky);--tint:#a9b7c64d;--tint-strong:#a9b7c66e;--font:"KoPub Batang", "Gowun Batang", serif;--font-display:"Kaisei Decol", serif;--u:clamp(.72px, calc(100vw / 1280), 1.2px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--step--1:.8rem;--step-0:1rem;--step-1:1.25rem;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html:root{font-size:16px}*{box-sizing:border-box}body{font-family:var(--font);font-size:var(--step-0);background:var(--bg);color:var(--text);letter-spacing:normal;margin:0;line-height:1.5}button{font:inherit;color:inherit}:where(.home,.signin,.whiteboard) button{cursor:pointer;text-align:inherit;background:0 0;border:0;padding:0}:where(.home,.signin,.whiteboard) :is(button,a,input):focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(.home,.signin,.whiteboard) :is(h1,h2){color:inherit;letter-spacing:normal}.logo{flex-shrink:0;margin:0;position:relative;overflow:hidden}.logo img{max-width:none;position:absolute}.logo-small{width:calc(154 * var(--u));height:calc(48 * var(--u))}.logo-small img{width:203.57%;height:435.42%;top:-162.5%;left:-50.16%}.logo-large{width:calc(281 * var(--u));height:calc(97 * var(--u))}.logo-large img{width:207.12%;height:400%;top:-149.37%;left:-53.91%}.home{background:var(--bg);min-height:100vh;color:var(--text);display:flex}.sidebar{height:100vh;width:calc(246 * var(--u));padding:calc(20 * var(--u)) 0 calc(21 * var(--u));background:var(--tint);font-size:calc(16 * var(--u));flex-direction:column;flex-shrink:0;transition:width .32s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden}.sidebar-body{min-height:0;width:calc(246 * var(--u));flex-direction:column;flex:1;transition:opacity .2s .12s,visibility;display:flex}.sidebar-toggle{top:calc(9 * var(--u));left:calc(207 * var(--u));z-index:1;padding:calc(8 * var(--u));border-radius:4px;transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;position:absolute}.sidebar-toggle:hover{background:#a9b7c666}.sidebar-toggle img{width:calc(16 * var(--u));height:calc(14 * var(--u))}.sidebar-collapsed .sidebar{width:calc(60 * var(--u))}.sidebar-collapsed .sidebar-body{opacity:0;visibility:hidden;transition:opacity .24s,visibility 0s .24s}.sidebar-collapsed .sidebar-toggle{transform:translateX(calc(-193 * var(--u)))}.sidebar .logo{margin-left:calc(6 * var(--u))}:where(.sidebar) ul{margin:0;padding:0;list-style:none}.sidebar-nav{margin-top:calc(15 * var(--u))}.sidebar-nav button{align-items:center;gap:calc(9 * var(--u));width:100%;height:calc(33 * var(--u));margin-bottom:calc(7 * var(--u));padding-left:calc(14 * var(--u));display:flex}.sidebar-nav img{width:calc(18 * var(--u));height:calc(18 * var(--u));object-fit:contain}.sidebar-nav button:hover:not(:disabled),.workspace:hover,.workspace[aria-pressed=true],.folder-tree button:hover,.folder-tree button[aria-pressed=true]{background:#2d3a477a}.sidebar-nav button:disabled{opacity:.45;cursor:default}.workspaces{margin-top:calc(13 * var(--u));overflow-y:auto}.workspace{width:100%;padding:calc(5 * var(--u)) calc(14 * var(--u));font-family:var(--font-display);line-height:calc(23 * var(--u));display:block}.folder-tree button{align-items:center;gap:calc(4 * var(--u));width:100%;height:calc(31.5 * var(--u));font-size:calc(14 * var(--u));line-height:calc(15 * var(--u));display:flex}.folder-tree img{width:calc(19 * var(--u));height:calc(19 * var(--u));object-fit:contain}.folder-tree ul img{width:calc(22 * var(--u));height:calc(18 * var(--u));margin-right:calc(-1 * var(--u))}.settings{align-items:center;gap:calc(5 * var(--u));margin:auto 0 0 calc(16 * var(--u));display:flex}.settings img{width:calc(35 * var(--u));height:calc(35 * var(--u))}.home-main{min-width:0;padding:calc(206 * var(--u)) calc(8 * var(--u)) 0 0;flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.avatar{top:calc(16 * var(--u));right:calc(18 * var(--u));width:calc(36 * var(--u));height:calc(36 * var(--u));border-radius:50%;position:absolute;overflow:hidden}.avatar img{width:100%;height:100%;display:block}.greeting{margin:0 0 calc(26 * var(--u));font-family:var(--font-display);font-size:calc(40 * var(--u));font-weight:400;line-height:calc(28 * var(--u))}.new-project{width:calc(466 * var(--u));max-width:calc(100% - 32px);height:calc(52.3 * var(--u));padding:0 calc(21 * var(--u)) 0 calc(29 * var(--u));border-radius:calc(60 * var(--u));top:calc(15 * var(--u));background:var(--tint);font-size:calc(20 * var(--u));line-height:calc(21 * var(--u));color:#292929cc;justify-content:space-between;align-items:center;display:flex;position:relative}.new-project:hover{background:#a9b7c680}.new-project img{width:calc(25 * var(--u));height:calc(25 * var(--u))}.recent{margin-top:calc(90 * var(--u));padding-left:calc(55 * var(--u));align-self:stretch}.recent h2{margin:0 0 calc(24 * var(--u));font-family:var(--font-display);font-size:calc(28 * var(--u));font-weight:400;line-height:calc(57 * var(--u))}.recent-row{gap:calc(40 * var(--u)) calc(37 * var(--u));padding:0 calc(53 * var(--u)) calc(80 * var(--u)) 0;flex-wrap:wrap;margin:0;list-style:none;display:flex}.recent-page{height:calc(319 * var(--u));border:calc(8 * var(--u)) solid #a8b58a63;background:#ffffffd4;border-radius:4px;transition:border-color .15s;position:relative}.recent-card:hover .recent-page{border-color:#a8b58ab3}.recent-open{width:100%;height:100%;position:absolute;inset:0}.recent-open img{object-fit:contain;width:100%;height:100%;display:block}.recent-more{top:calc(10 * var(--u));right:calc(11 * var(--u));border-radius:4px;padding:2px;display:flex;position:absolute}.recent-more:hover{background:#a9b7c666}.recent-more img{width:calc(15 * var(--u));height:calc(15 * var(--u))}.recent-name{margin-top:calc(8 * var(--u));font-size:calc(14 * var(--u));white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.recent-edited{margin-top:calc(2 * var(--u));font-size:calc(12 * var(--u));color:#2d3a47b3;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.recent-empty{font-size:calc(16 * var(--u));color:var(--midnight-lagoon);margin:0}.signin{min-height:100vh;padding:calc(136 * var(--u)) var(--space-5) calc(34 * var(--u)) max(var(--space-5), calc(319 * var(--u)));background:var(--bg);color:var(--text);flex-direction:column;align-items:flex-start;display:flex}.signin-welcome{font-size:calc(20 * var(--u));line-height:calc(22 * var(--u));margin:0}.signin .logo{margin:calc(-6 * var(--u)) 0 0 calc(-13 * var(--u))}.signin-tagline{margin:calc(-2 * var(--u)) 0 0;font-size:calc(16 * var(--u));line-height:calc(18 * var(--u))}.signin-buttons{gap:calc(21 * var(--u));width:calc(414 * var(--u));max-width:100%;margin-top:calc(36 * var(--u));flex-direction:column;display:flex}.signin-buttons button{justify-content:center;align-items:center;gap:calc(8 * var(--u));height:calc(55 * var(--u));border-radius:calc(20 * var(--u));font-family:var(--font-display);font-size:calc(24 * var(--u));display:flex}.signin-google img{width:calc(30 * var(--u));height:calc(30 * var(--u))}.signin-microsoft img{width:calc(21 * var(--u));height:calc(21 * var(--u))}.signin-buttons .signin-google{background:#a8b58a4d}.signin-buttons .signin-microsoft{background:var(--tint)}.signin-buttons .signin-email{background:#2d3a474d}.signin-buttons button:hover{filter:brightness(.95)}.signin-new{margin:calc(26 * var(--u)) 0 0 calc(9 * var(--u));font-family:var(--font-display);font-size:calc(13 * var(--u));line-height:calc(17 * var(--u))}.signin-create{margin-left:calc(9 * var(--u));font-family:var(--font-display);font-size:calc(16 * var(--u));line-height:calc(23 * var(--u))}.signin-create:hover{text-underline-offset:3px;text-decoration:underline}.signin-footer{align-items:center;row-gap:var(--space-3);margin:auto 0 0 calc(9 * var(--u));padding-top:var(--space-7);flex-wrap:wrap;display:flex}.signin-footer a{font-family:var(--font-display);font-size:calc(11 * var(--u));line-height:calc(16 * var(--u));color:var(--midnight-lagoon);text-decoration:none}.signin-footer a:first-of-type{width:calc(124.78 * var(--u))}.signin-footer a:nth-of-type(2){width:calc(81.42 * var(--u))}.signin-footer img{top:calc(2 * var(--u));position:relative}.signin-footer img:first-of-type{margin:0 calc(25.38 * var(--u))}.signin-footer img:nth-of-type(2){margin:0 calc(23.26 * var(--u))}.signin-footer a:hover{text-decoration:underline}.whiteboard{background:var(--bg);height:100vh;color:var(--text);flex-direction:column;display:flex;position:relative}.whiteboard-bar{background:var(--tint-strong)}.menu{background:var(--tint-strong);color:#040000;align-items:center;gap:22px;height:46px;padding:0 24px;font-size:1.125rem;display:flex;position:relative}.menu>button{padding:var(--space-1) var(--space-2);border-radius:var(--radius)}.menu>button:hover,.menu>button[aria-pressed=true]{background:#fff7e699}.menu>.menu-back{padding:0 6px;font-size:1.5rem;line-height:1;position:absolute;left:2px}.menu-spacer{flex:1}.toolbar{align-items:center;gap:38px;height:66px;padding:0 19px;display:flex}.tool-group{align-items:center;gap:8px;display:flex}.tool-group:has(.swatches){gap:12px}.swatches{align-items:center;gap:18px;display:flex}.tool{border-radius:var(--radius);place-items:center;display:grid}.tool img{object-fit:contain;width:100%;height:100%}.tool[aria-label=Undo],.tool[aria-label=Redo]{width:34px;height:30px}.tool[aria-label=Pen]{width:45px;height:40px}.tool[aria-label=Eraser]{width:47px;height:41px}.tool[aria-pressed=true]{box-shadow:0 3px 0 -1px #000}.tool:hover:not(:disabled) img{opacity:.7}:where(.whiteboard) button:disabled{opacity:.35;cursor:default}.swatch{border-radius:50%;width:28px;height:28px}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--bg), 0 0 0 3px #000}.thickness{color:#040000;align-items:center;gap:20px;font-size:1.125rem;display:flex}.thickness input{appearance:none;cursor:pointer;background:linear-gradient(#000,#000) 50%/calc(100% - 4px) 4px no-repeat;border-radius:2px;width:102px;height:16px;margin:0}.thickness input::-webkit-slider-thumb{-webkit-appearance:none;background:#000;border:0;border-radius:50%;width:16px;height:16px}.thickness input::-moz-range-thumb{background:#000;border:0;border-radius:50%;width:16px;height:16px}.canvas-panel{flex:1;min-height:0}.desk{cursor:grab;touch-action:none;background:#ebe3d3;width:100%;height:100%;position:relative;overflow:hidden}.desk.panning,.desk.panning *{cursor:grabbing!important}.desk.panning .page{pointer-events:none}.page{transform-origin:0 0;background:#fff;position:absolute;top:0;left:0;box-shadow:0 2px 6px #2d3a471f,0 12px 40px #2d3a4724}.canvas-wrap{width:100%;height:100%;position:relative;overflow:hidden}.board-bg{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.canvas-wrap canvas{touch-action:none;cursor:none;width:100%;height:100%;display:block;position:relative}.cursor-ring{pointer-events:none;border:1px solid;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.pen-ring{border-width:2px;min-width:12px;min-height:12px}.camera-panel{background:var(--tint-strong);width:326px;min-height:251px;max-height:calc(100vh - 58px);padding:19px 20px;position:absolute;bottom:29px;right:29px;overflow-y:auto}.hub-calibration-panel{z-index:3}.camera-close{width:25px;height:34px;font-family:var(--font-display);color:#fffcfc;font-size:1.5rem;line-height:1;position:absolute;top:3px;right:8px}.camera-close:hover{color:#000}.camera-tab{background:var(--tint-strong);font-family:var(--font-display);padding:8px 16px;font-size:1rem;position:absolute;bottom:29px;right:29px}.camera-panel h2{font-family:var(--font-display);margin:0;font-size:1.5rem;font-weight:400;line-height:35px}.camera-content{gap:var(--space-2);margin-top:var(--space-2);display:grid}.camera-preview{aspect-ratio:4/3;border:1px solid var(--border);cursor:crosshair;touch-action:none;background:#27313a;position:relative;overflow:hidden}.camera-preview video{object-fit:cover;width:100%;height:100%;display:block}.camera-preview .camera-video-mirrored{transform:scaleX(-1)}.camera-secondary-feed{aspect-ratio:4/3;border:1px solid var(--border);background:#27313a;width:45%;position:relative;overflow:hidden}.camera-secondary-feed video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.camera-secondary-feed[hidden]{display:none}.calibration-point{background:var(--accent);border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #00000059}.led-marker{pointer-events:none;border:3px solid #39ff6a;border-radius:50%;width:22px;height:22px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #00000080}.calibration-next{justify-items:start;gap:4px;display:grid}.calibration-next p{margin:0;font-size:.8rem;font-weight:600}.calibration-step{border-left:3px solid var(--border);background:#ffffff80;border-radius:5px;gap:6px;padding:8px 10px;display:grid}.calibration-step[hidden]{display:none}.calibration-step[data-done=true]{border-left-color:var(--accent)}.calibration-step h3{justify-content:space-between;margin:0;font-size:.8rem;display:flex}.calibration-step h3 span{opacity:.75;font-weight:400}.calibration-step[data-done=true] h3:after{content:"✓";margin-left:6px}.step-action{background:var(--accent);color:#fff;border-radius:4px;width:100%;padding:6px 8px;font-size:.75rem}.step-action.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.step-action:disabled{opacity:.5;cursor:not-allowed}.camera-error{color:#8a2020;margin:0;font-size:.7rem}.camera-select{grid-template-columns:auto 1fr;align-items:center;gap:5px;font-size:.7rem;display:grid}.camera-select select,.camera-select button{border:1px solid var(--border);background:var(--bg);min-width:0;font:inherit;border-radius:4px;padding:3px 5px}.tracking-message{margin:0;font-size:.7rem}.tracking-mode{gap:4px;font-size:.7rem;display:grid}.tracking-mode>div{gap:5px;display:flex}.tracking-mode button{border:1px solid var(--border);background:var(--bg);font:inherit;border-radius:4px;flex:1;padding:5px 6px}.tracking-mode button[aria-pressed=true]{background:var(--accent);color:#fff}.status{white-space:nowrap;padding:var(--space-1) var(--space-3);border:1px solid var(--border);background:var(--bg);border-radius:999px;font-size:.875rem}.status[data-status=drawing]{border-color:var(--accent)}.status[data-status=hand-not-found],.status[data-status=led-not-found]{border-style:dashed}@media (width<=720px){.home{flex-direction:column}.sidebar{width:auto;height:auto;position:static}.sidebar-body{width:auto}.sidebar-toggle{display:none}.settings{margin-top:var(--space-4)}.home-main{padding-top:var(--space-8)}.recent{padding-left:var(--space-4)}.camera-panel{width:160px;right:var(--space-4);bottom:var(--space-4)}.camera-panel h2{font-size:var(--step-0)}.menu,.toolbar{gap:var(--space-4);overflow-x:auto}.menu>*,.toolbar>*{flex-shrink:0}.camera-panel{aspect-ratio:9/7;height:auto}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.ask{width:min(360px,100% - 32px);padding:var(--space-5);background:var(--bg);color:var(--text);border:0;border-radius:12px;box-shadow:0 8px 32px #2d3a4740}.ask::backdrop{background:#2d3a4759}.ask h2{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--step-1);color:inherit;font-weight:400}.ask p{margin:0 0 var(--space-3)}.ask :is(input,select){width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);font:inherit;font-size:var(--step-0);background:#fff}.ask-buttons{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);display:flex}.ask-buttons button{padding:var(--space-2) var(--space-4);background:var(--tint);cursor:pointer;border:0;border-radius:999px}.ask-buttons .ask-extra{color:#b3261e;margin-right:auto}.ask-buttons .ask-ok{background:var(--midnight-lagoon);color:var(--vanilla-cream)}.ask-buttons button:disabled{opacity:.4;cursor:default}.ask :is(button,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-dialog{width:min(calc(707 * var(--u)), calc(100% - 32px));height:min(calc(554 * var(--u)), calc(100% - 32px));padding:calc(42 * var(--u)) calc(46 * var(--u));border-radius:calc(20 * var(--u));background:var(--vanilla-cream);color:#000;border:0}.settings-dialog::backdrop{background:#00000047}.settings-dialog h2{font-family:var(--font-display);font-size:calc(32 * var(--u));font-weight:400;line-height:calc(46 * var(--u));color:#000;margin:0}.settings-account{align-items:flex-start;gap:calc(12 * var(--u));margin:calc(22 * var(--u)) 0 0 calc(18 * var(--u));display:flex}.settings-account div{padding-top:calc(2 * var(--u))}.settings-account img{width:calc(60 * var(--u));height:calc(60 * var(--u));border-radius:50%}.settings-account p{font-family:var(--font-display);font-size:calc(18 * var(--u));line-height:calc(30 * var(--u));margin:0}.settings-name{font-weight:700}.settings-dialog button{margin:calc(8 * var(--u)) 0 0 calc(18 * var(--u));font:inherit;font-size:calc(16 * var(--u));line-height:calc(18 * var(--u));cursor:pointer;background:0 0;border:0;padding:0;display:block}.settings-dialog .settings-logout{margin:calc(9 * var(--u)) 0 0 calc(19 * var(--u))}.settings-logout{color:#902525}.settings-dialog button:hover{text-decoration:underline}.settings-dialog button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-nav{gap:calc(18 * var(--u));margin:calc(22 * var(--u)) 0 0 calc(18 * var(--u));display:flex}.settings-nav button{margin:0}.settings-nav button[aria-current=page]{font-weight:700;text-decoration:underline}.settings-guide{margin:calc(24 * var(--u)) 0 0 calc(18 * var(--u));max-width:590px}.settings-guide h3{margin:0 0 calc(10 * var(--u));font-family:var(--font-display);font-size:calc(22 * var(--u));font-weight:400}.settings-guide p{margin:0 0 calc(12 * var(--u));line-height:1.45}.settings-guide ol{padding-left:calc(22 * var(--u));margin:0;line-height:1.5}.settings-guide li{margin-bottom:calc(10 * var(--u))}.settings-guide strong{font-weight:700}
