@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.T19VSG_className{font-family:Geist,Geist Fallback;font-style:normal}.T19VSG_variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._8Li5zG_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._8Li5zG_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.contents{display:contents}.flex{display:flex}.h-full{height:100%}.min-h-full{min-height:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e4e7da;--muted:#abb7a6;--accent:#d7c497}*{box-sizing:border-box}html,body{background:#25372f;min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font-geist-sans), Arial, sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:5px;outline:2px solid #dbce98}button{color:inherit}.desk-experience{background:#25372f;width:100%;height:100svh;min-height:650px;position:relative;overflow:hidden}.scene-container{position:absolute;inset:0}.scene-container:after{content:"";pointer-events:none;background:radial-gradient(at 50% 55%,#0000 38%,#13231b60 100%);position:absolute;inset:0}.site-header{z-index:40;justify-content:space-between;align-items:center;width:100%;padding:29px 42px;display:flex;position:absolute;top:0}.wordmark{letter-spacing:-1.1px;background:0 0;border:0;align-items:baseline;padding:0;font-size:22px;font-weight:600;display:flex}.wordmark>span:first-child{margin-left:3px;font-weight:400}.wordmark-period{color:var(--accent)}.site-header nav{align-items:center;gap:28px;font-size:13px;display:flex}.site-header nav button{background:0 0;border:0;padding:8px 0}.site-header nav a,.site-header nav button{transition:color .18s}.site-header nav a:hover,.site-header nav button:hover{color:#fff6d8}.contact-link{align-items:center;gap:7px;display:flex}.scene-intro{z-index:30;pointer-events:none;position:absolute;top:112px;left:43px}.eyebrow{color:var(--accent);letter-spacing:2.5px;font-size:10px;font-weight:500}.scene-intro h1{letter-spacing:-1px;margin:12px 0 9px;font-size:clamp(20px,2vw,28px);font-weight:500;line-height:1.25}.scene-intro p{color:var(--muted);margin:0;font-size:13px}.desk-footer{z-index:30;flex-direction:column;align-items:center;gap:19px;display:flex;position:absolute;bottom:28px;left:43px;right:43px}.explore-hint{color:#d2dbcb;align-items:center;gap:8px;font-size:12px;display:flex}.hint-dot{background:var(--accent);border-radius:50%;width:4px;height:4px}.object-shortcuts{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#17291fc7;border:1px solid #b0c7a329;border-radius:10px;gap:3px;padding:5px;display:flex;box-shadow:0 8px 24px #091a1530}.object-shortcuts button{background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;padding:13px 20px;font-size:13px;transition:background .18s;display:flex}.object-shortcuts button:hover{background:#b5c7a91f}.object-shortcuts button>svg:last-child{color:var(--accent);margin-left:8px}.footer-location{color:#9aab95;letter-spacing:.2px;font-size:10px;position:absolute;bottom:8px;left:0}.detail-navigation{z-index:40;justify-content:space-between;align-items:center;display:flex;position:absolute;top:105px;left:43px;right:43px}.back-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#17291fc4;border:1px solid #b0c7a32b;border-radius:6px;align-items:center;gap:9px;padding:11px 15px;font-size:13px;display:flex}.back-button:hover{background:#17291f}.back-button kbd{color:var(--muted);border:1px solid #9caf963b;border-radius:3px;margin-left:15px;padding:2px 5px;font-size:10px}.detail-navigation>span{color:var(--muted);font-size:12px}.scene-loading{z-index:3;color:#d1d5c1;background:#25372f;justify-content:center;align-items:center;gap:13px;font-size:13px;display:flex;position:absolute;inset:0}.loading-line{background:var(--accent);transform-origin:0;width:24px;height:2px;animation:1s ease-in-out infinite alternate loading}@keyframes loading{to{opacity:.4;transform:scaleX(.2)}}.webgl-fallback{z-index:10;background:#1c3026;border:1px solid #526d51;border-radius:12px;padding:30px;position:absolute;top:36%;left:15%;right:15%}.webgl-fallback h2{font-size:24px}.webgl-fallback p{color:#bbcab3;font-size:16px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sharp-surface{transform:scale(2)}.terminal-screen{color:#a5dcb3;width:480px;height:326px;font-family:var(--font-geist-mono), "Courier New", monospace;background:radial-gradient(#183724,#081b14);border-radius:11px;flex-direction:column;padding:18px 20px 12px;font-size:12px;line-height:1.55;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 25px #0009}.terminal-screen:after{content:"";pointer-events:none;opacity:.5;border-radius:inherit;background:repeating-linear-gradient(#0000 0 3px,#00000012 3px 4px);position:absolute;inset:0}.terminal-topline{letter-spacing:.6px;color:#88b993;border-bottom:1px solid #9adb9c35;flex:none;justify-content:space-between;padding-bottom:8px;font-size:9px;display:flex}.terminal-body{scrollbar-width:thin;scrollbar-color:#5b8a6540 transparent;flex:1;min-height:0;padding:6px 0;overflow-y:auto}.terminal-banner{align-items:center;gap:16px;margin-bottom:12px;padding:4px 0;display:flex}.terminal-banner pre{letter-spacing:-4px;color:#c2e5b6;margin:0;font-size:37px;font-weight:600;line-height:1}.terminal-banner pre span{letter-spacing:2px;margin-top:3px;font-size:10px;display:block}.terminal-banner>div{flex-direction:column;gap:2px;display:flex}.terminal-banner b{color:#cceec0;letter-spacing:1px;font-size:13px}.terminal-banner>div span{color:#8ab697;font-size:10px}.terminal-entry{margin:7px 0 15px}.terminal-prompt{color:#d3e9b5;margin-bottom:5px;font-size:11px}.terminal-output{color:#a5d3b1}.terminal-output p{margin:5px 0 8px}.terminal-output b{color:#d0e9b9}.terminal-command-list{grid-template-columns:100px 1fr;gap:2px 6px;display:grid}.terminal-command-list span{color:#d0e9b9}.terminal-output a{color:#c9e6ac;text-underline-offset:3px;align-items:center;gap:5px;margin-bottom:4px;text-decoration:underline;display:flex}.terminal-link{color:#c9e6ac;background:0 0;border:0;margin-bottom:5px;padding:2px 0;text-decoration:underline}.terminal-input-row{border-top:1px solid #9adb9c35;flex:none;align-items:center;gap:8px;padding:7px 0 5px;display:flex}.terminal-input-row label{color:#d3e9b5}.terminal-input-row input{color:#ddf4c5;outline-offset:1px;caret-color:#cff0af;background:0 0;border:0;flex:1;min-width:0;font-size:12px}.terminal-input-row input:focus-visible{outline-offset:2px;outline:1px solid #8acc9540}.terminal-input-row button{color:#ccedba;background:0 0;border:0;padding:0 7px;font-size:18px}.terminal-actions{flex-wrap:wrap;flex:none;gap:5px;display:flex}.terminal-actions button{color:#a9d2ad;background:#a8e9b40b;border:1px solid #a6d9a92c;border-radius:2px;padding:3px 8px;font-size:10px}.terminal-actions button:hover{color:#dcf4ca;background:#b8e6a42a}.notebook-spread{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#3a4d50;width:800px;height:510px;font-family:var(--font-geist-sans), Arial, sans-serif;background:#f2e8cc;border-radius:3px;font-size:14px;position:relative;box-shadow:0 2px 8px #162e2528}.notebook-pages{background-image:linear-gradient(90deg,#0000 46%,#78654412 49%,#67573c24 50%,#78654412 51%,#0000 54%),repeating-linear-gradient(#0000 0 24px,#73878c0b 24px 25px);grid-template-columns:1fr 1fr;height:455px;display:grid}.notebook-left,.notebook-right{padding:24px 30px 15px}.notebook-page-label{letter-spacing:1.4px;color:#7b8070;margin-bottom:14px;font-size:9px}.notebook-spread h2{letter-spacing:-1.2px;color:#244f5b;margin:0 0 16px;font-size:36px;font-weight:600;line-height:1.1}.notebook-spread h2 span{letter-spacing:-.2px;margin-top:8px;font-size:13px;font-weight:400;display:block}.notebook-spread p{color:#526065;margin:0 0 13px;font-size:13px;line-height:1.7}.sketch-flow{flex-direction:column;align-items:flex-start;margin:17px 0 12px 7px;display:flex}.sketch-flow>div{color:#285264;border:1px solid #80959d;border-radius:3px 7px 5px 2px;min-width:238px;padding:8px 12px;font-size:13px}.sketch-flow>div:nth-of-type(2){transform:rotate(-1deg)}.sketch-flow>div:nth-of-type(3){transform:rotate(.7deg)}.sketch-flow>div span{color:#778079;margin-top:3px;font-size:10px;display:block}.sketch-arrow{color:#a96945;padding:0 0 0 90px;font-size:21px;line-height:1.1}.hand-note{color:#a76c4a;margin:9px 0;font-family:Segoe Print,Comic Sans MS,cursive;font-size:17px;line-height:1.4;display:block;transform:rotate(-4deg)}.equation{text-align:center;color:#346071;margin:17px 0 11px;font:italic 25px Georgia,serif}.math-graph{width:100%;height:230px;display:block}.math-graph text{fill:#48616c;font:12px Courier New,monospace}.graph-note{margin:9px 0 16px 55px;font-size:18px}.notebook-pagination{color:#7c8173;background:#e5d6b439;border-top:1px solid #637c6d20;justify-content:space-between;align-items:center;height:55px;padding:0 28px;font-size:11px;display:flex}.notebook-pagination button{color:#2e5662;background:0 0;border:0;align-items:center;gap:8px;padding:8px 5px;font-size:12px;display:flex}.notebook-pagination button:disabled{opacity:.35}.notebook-principles{color:#335b64;flex-direction:column;gap:20px;margin:35px 0;font-size:14px;display:flex}.notebook-spread .demo-caption{color:#838575;margin-top:25px;font-size:11px}.graph-control{grid-template-columns:1fr auto;align-items:center;gap:10px;margin-top:12px;font-size:13px;display:grid}.graph-control output{color:#a86844;font-variant-numeric:tabular-nums}.graph-control input{accent-color:#386978;grid-column:1/-1;width:100%;margin:4px 0 8px}.notebook-spread .graph-explanation{margin-top:10px;font-size:12px}.mobile-detail{z-index:25;background:#0e2017;border-radius:10px;position:absolute;inset:173px 17px 25px;overflow:auto;box-shadow:0 15px 50px #08170f80}.mobile-terminal .terminal-screen{width:100%;height:100%;min-height:370px;padding:22px;font-size:14px}.mobile-terminal .terminal-banner{margin:15px 0 22px}.mobile-terminal .terminal-banner b{font-size:14px}.mobile-terminal .terminal-banner>div span{font-size:11px}.mobile-terminal .terminal-prompt{font-size:12px}.mobile-terminal .terminal-input-row input{font-size:16px}.mobile-terminal .terminal-input-row{padding:13px 0}.mobile-terminal .terminal-actions{gap:7px}.mobile-terminal .terminal-actions button{min-height:40px;padding:8px 12px;font-size:12px}.mobile-notebook{background:#f2e8cc}.mobile-notebook .notebook-spread{width:100%;height:auto;min-height:100%}.mobile-notebook .notebook-pages{background-image:repeating-linear-gradient(#0000 0 24px,#73878c0b 24px 25px);grid-template-columns:1fr;height:auto}.mobile-notebook .notebook-left,.mobile-notebook .notebook-right{padding:24px}.mobile-notebook .notebook-right{border-top:1px dashed #7990984a}.mobile-notebook .notebook-pagination{background:#eadcbd;position:sticky;bottom:0}.mobile-notebook .notebook-spread p{font-size:15px}.mobile-notebook .notebook-page-label{font-size:10px}.mobile-notebook .sketch-flow>div{font-size:15px}.mobile-notebook .sketch-flow>div span{font-size:12px}.mobile-notebook .math-graph{height:auto}.mobile-notebook .graph-control{font-size:15px}.mobile-notebook .graph-control input{min-height:40px}@media (max-width:900px){.footer-location{display:none}}@media (max-width:700px){.desk-experience{min-height:620px}.site-header{padding:24px}.wordmark{font-size:21px}.site-header nav{gap:18px;font-size:12px}.site-header nav a[aria-label],.contact-link svg{display:none}.scene-intro{top:112px;left:24px;right:24px}.scene-intro h1{max-width:280px;font-size:23px}.scene-intro p{max-width:240px;font-size:12px;line-height:1.6}.eyebrow{letter-spacing:2px;font-size:9px}.desk-footer{gap:17px;bottom:25px;left:14px;right:14px}.object-shortcuts{justify-content:center;width:100%}.object-shortcuts button{flex:1;justify-content:center;gap:8px;padding:13px 8px;font-size:12px}.object-shortcuts button>svg:last-child{margin-left:3px}.explore-hint{font-size:11px}.detail-navigation{top:108px;left:23px;right:23px}.detail-navigation>span{display:none}.back-button{min-height:44px;font-size:12px}.back-button kbd{display:none}.webgl-fallback{top:33%;left:24px;right:24px}.webgl-fallback h2{font-size:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
