:root{color-scheme:light;background:#fbfbf9}:root[data-theme=dark]{color-scheme:dark;background:#1c1e1d}html{scroll-behavior:smooth}body{margin:0;background:inherit}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #2f86b8;outline-offset:5px}:root[data-theme=dark] a:focus-visible,:root[data-theme=dark] button:focus-visible{outline-color:#8dc6e5}#northbit-lab .nb-header>a{display:flex}#northbit-lab .nb-site h1,#northbit-lab .nb-site p{font-family:inherit}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}#northbit-lab{width:100%}#northbit-lab .nb-site{--nb-paper: #fbfbf9;--nb-ink: #1c1e1d;--nb-secondary: #5c625c;--nb-rule: #e1e4df;--nb-image: #eef0ec;--nb-panel: #ffffff;--nb-accent: #4da8da;--nb-shadow: #0000001a;background:var(--nb-paper);color:var(--nb-ink);width:100%;max-width:1024px;margin:0 auto;container:nb-page / inline-size;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;font-size:15px;line-height:1.8;text-align:left;-webkit-font-smoothing:antialiased}:root[data-theme=dark] #northbit-lab .nb-site{--nb-paper: #1c1e1d;--nb-ink: #f0f2ef;--nb-secondary: #b7bdb7;--nb-rule: #414641;--nb-image: #292e28;--nb-panel: #383d37;--nb-accent: #8dc6e5;--nb-shadow: #00000036}#northbit-lab .nb-site *,#northbit-lab .nb-site *:before,#northbit-lab .nb-site *:after{box-sizing:border-box}#northbit-lab .nb-site h1,#northbit-lab .nb-site h2,#northbit-lab .nb-site h3,#northbit-lab .nb-site p,#northbit-lab .nb-site figure{margin:0}#northbit-lab .nb-site a{color:inherit;text-decoration:none}#northbit-lab .nb-site a:hover{text-decoration:underline;text-underline-offset:5px}#northbit-lab .nb-wrap{width:calc(100% - 112px);max-width:896px;margin:0 auto}#northbit-lab .nb-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--nb-rule)}#northbit-lab .nb-lockup{--nb-logo-size: 24px;font-size:var(--nb-logo-size);display:inline-flex;align-items:center;gap:.34em;white-space:nowrap;line-height:1}#northbit-lab .nb-symbol{display:block;width:1.42em;height:1.42em;flex:0 0 auto}#northbit-lab .nb-symbol svg{width:100%;height:100%;display:block}#northbit-lab .nb-symbol svg [fill="#000000"]{fill:var(--nb-ink)}#northbit-lab .nb-symbol svg [fill="#8dc6e5"]{fill:var(--nb-accent)}#northbit-lab .nb-wordmark{display:block;flex:0 0 auto}#northbit-lab .nb-wordmark svg{display:block;height:.7344em;width:auto;overflow:visible}#northbit-lab .nb-wordmark .nb-wm-lab{fill:var(--nb-secondary)}#northbit-lab .nb-header-end{display:flex;align-items:center;gap:22px}#northbit-lab .nb-nav{display:flex;align-items:center;gap:27px;font-size:13px;font-weight:500}#northbit-lab .nb-theme-toggle{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--nb-rule);border-radius:999px;background:transparent;color:var(--nb-ink);transition:border-color .15s ease}#northbit-lab .nb-theme-toggle:hover{border-color:var(--nb-ink)}#northbit-lab .nb-icon{display:block}#northbit-lab .nb-icon-sun,:root[data-theme=dark] #northbit-lab .nb-icon-moon{display:none}:root[data-theme=dark] #northbit-lab .nb-icon-sun{display:block}#northbit-lab .nb-ja{word-break:keep-all;overflow-wrap:anywhere}#northbit-lab .nb-nav a{min-height:44px;display:inline-flex;align-items:center}#northbit-lab .nb-hero{min-height:316px;border-bottom:1px solid var(--nb-rule);display:flex;align-items:center;justify-content:center;padding:50px 0 52px}#northbit-lab .nb-hero-logo{text-align:center;position:relative;overflow:clip}#northbit-lab .nb-hero-logo .nb-lockup{--nb-logo-size: 62px}#northbit-lab .nb-hero-logo .nb-symbol svg{transform-origin:50% 50%;transform-box:view-box}#northbit-lab .nb-intro{margin-top:31px!important;font-size:16px;line-height:2;font-weight:400;color:var(--nb-secondary)}#northbit-lab .nb-eyebrow{color:var(--nb-secondary);letter-spacing:.18em;font-size:11px;font-weight:600}#northbit-lab .nb-projects{padding-top:54px;padding-bottom:65px}#northbit-lab .nb-head{margin-bottom:30px}#northbit-lab .nb-h2{font-family:Arial,Helvetica,sans-serif;font-size:38px;line-height:1.15;font-weight:700;letter-spacing:-.055em;margin-top:12px!important}#northbit-lab .nb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;align-items:start}#northbit-lab .nb-project{min-width:0}#northbit-lab .nb-visual{aspect-ratio:1.5;background:var(--nb-image);position:relative;overflow:hidden;display:grid;place-items:center;container-type:inline-size}#northbit-lab .nb-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;margin-top:14px;color:var(--nb-secondary);font-size:10px;letter-spacing:.04em}#northbit-lab .nb-status{font-size:10px;letter-spacing:.02em;white-space:nowrap;display:inline-flex;gap:5px;align-items:center}#northbit-lab .nb-status:before{content:"";width:5px;height:5px;border:1px solid currentColor;border-radius:50%}#northbit-lab .nb-status-filled:before{background:currentColor}#northbit-lab .nb-title{font-size:19px;line-height:1.4;font-weight:600;letter-spacing:-.03em;margin-top:4px!important}#northbit-lab .nb-summary{font-size:12.5px;line-height:1.85;margin-top:6px!important;color:var(--nb-secondary)}#northbit-lab .nb-about{border-top:1px solid var(--nb-rule);padding:58px 0 62px;display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center}#northbit-lab .nb-about-head{justify-self:end;margin-right:25%;margin-bottom:0}#northbit-lab .nb-about h2 span{display:block}#northbit-lab .nb-about-copy{color:var(--nb-secondary);font-size:12px;line-height:2.1;padding-top:3px}#northbit-lab .nb-social{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:8px 16px 8px 13px;border:1px solid var(--nb-rule);border-radius:999px;background:var(--nb-panel);color:var(--nb-ink)!important;font-size:13px;font-weight:500;line-height:1;transition:border-color .15s ease,background-color .15s ease}#northbit-lab .nb-site a.nb-social:hover{text-decoration:none;border-color:var(--nb-ink)}#northbit-lab .nb-social-icon{display:block;flex:0 0 auto}#northbit-lab .nb-researcher{border-top:1px solid var(--nb-rule);padding:54px 0 50px}#northbit-lab .nb-researcher-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px 112px}#northbit-lab .nb-researcher-inner{display:flex;align-items:center;gap:20px;min-width:0}#northbit-lab .nb-researcher-image{width:128px;height:128px;display:block;object-fit:contain;flex:0 0 auto}#northbit-lab .nb-researcher-copy{min-width:0}#northbit-lab .nb-researcher h3{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:25px;font-weight:500;line-height:1.4;letter-spacing:-.035em}#northbit-lab .nb-researcher-note{margin-top:9px!important;color:var(--nb-secondary);font-size:12px;line-height:1.9}#northbit-lab .nb-notfound{min-height:56vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:64px 0}#northbit-lab .nb-notfound h1{font-size:32px;line-height:1.4;font-weight:600;letter-spacing:-.02em;margin-top:14px}#northbit-lab .nb-notfound-copy{color:var(--nb-secondary);font-size:14px;margin-top:8px!important}#northbit-lab .nb-footer{border-top:1px solid var(--nb-rule);padding:22px 0 28px;color:var(--nb-secondary);font-size:10px}@container nb-page (min-width: 900px){#northbit-lab .nb-hero{min-height:344px}#northbit-lab .nb-hero-logo .nb-lockup{--nb-logo-size: 72px}#northbit-lab .nb-projects{padding-top:62px}#northbit-lab .nb-grid{gap:32px 30px}#northbit-lab .nb-summary{font-size:13px}#northbit-lab .nb-about-copy{font-size:15px}}@container nb-page (max-width: 600px){#northbit-lab .nb-wrap{width:calc(100% - 40px)}#northbit-lab .nb-header{min-height:72px;gap:12px}#northbit-lab .nb-header .nb-lockup{--nb-logo-size: 22px}#northbit-lab .nb-nav{gap:16px;font-size:12px}#northbit-lab .nb-header-end{gap:14px}#northbit-lab .nb-theme-toggle{width:34px;height:34px}#northbit-lab .nb-hero{min-height:284px;padding:38px 0 40px}#northbit-lab .nb-hero-logo .nb-lockup{--nb-logo-size: 40px}#northbit-lab .nb-intro{font-size:14px;line-height:2;margin-top:26px!important}#northbit-lab .nb-projects{padding-top:37px;padding-bottom:43px}#northbit-lab .nb-head{margin-bottom:22px}#northbit-lab .nb-h2{font-size:32px;margin-top:9px!important}#northbit-lab .nb-grid{grid-template-columns:1fr;gap:22px}#northbit-lab .nb-project{display:grid;grid-template-columns:36% minmax(0,1fr);gap:16px;align-items:center}#northbit-lab .nb-visual{aspect-ratio:1.3}#northbit-lab .nb-meta{margin-top:0}#northbit-lab .nb-title{font-size:18px;margin-top:2px!important}#northbit-lab .nb-summary{font-size:12px;margin-top:4px!important;line-height:1.75}#northbit-lab .nb-about{padding:38px 0 40px;grid-template-columns:1fr;gap:22px}#northbit-lab .nb-about-head{justify-self:start;margin-right:0;margin-bottom:0}#northbit-lab .nb-about-copy{font-size:13px}#northbit-lab .nb-about h2 span{display:inline}#northbit-lab .nb-about h2 span+span:before{content:" "}#northbit-lab .nb-researcher{padding:38px 0 34px}#northbit-lab .nb-researcher-grid{flex-direction:column;align-items:flex-start;gap:18px}#northbit-lab .nb-researcher-inner{gap:19px;margin-left:0}#northbit-lab .nb-researcher-image{width:112px;height:112px}#northbit-lab .nb-researcher h3{font-size:23px}#northbit-lab .nb-notfound h1{font-size:26px}}@container nb-page (max-width: 350px){#northbit-lab .nb-wrap{width:calc(100% - 32px)}#northbit-lab .nb-header .nb-lockup{--nb-logo-size: 20px}#northbit-lab .nb-nav{gap:12px;font-size:11px}#northbit-lab .nb-header-end{gap:10px}#northbit-lab .nb-hero-logo .nb-lockup{--nb-logo-size: 35px}#northbit-lab .nb-h2{font-size:30px}}.il{--il-ink: #23262a;--il-soft: rgba(35, 38, 42, .42);--il-acc: #2f8cc4;display:block;width:100%;height:100%}:root[data-theme=dark] .il{--il-ink: #e8ebe6;--il-soft: rgba(232, 235, 230, .38);--il-acc: #8dc6e5}.il .sk-ink,.il .sk-soft,.il .sk-acc{vector-effect:non-scaling-stroke}.il .sk-ink{stroke:var(--il-ink)}.il .sk-soft{stroke:var(--il-soft)}.il .sk-acc{stroke:var(--il-acc)}.il .sk-note{fill:var(--il-ink);stroke:none}.il .sk-note-acc{fill:var(--il-acc);stroke:none}#northbit-lab .nb-visual{--il-paper: #fdfdfb;--il-grid: rgba(47, 140, 196, .1);background-color:var(--il-paper);background-image:linear-gradient(var(--il-grid) 1px,transparent 1px),linear-gradient(90deg,var(--il-grid) 1px,transparent 1px);background-size:16px 16px;background-position:-1px -1px;box-shadow:inset 0 0 0 1px var(--nb-rule)}:root[data-theme=dark] #northbit-lab .nb-visual{--il-paper: #262a25;--il-grid: rgba(232, 235, 230, .06)}
