:root{font-family:IBM Plex Mono,monospace;color:#d9dad3;background:#080909;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px dashed #fff;outline-offset:4px}button{color:inherit}button:hover{filter:brightness(1.2)}.portfolio-scene{min-height:100svh;overflow:hidden;position:relative;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 40% 40%,#202320,#080909 70%)}.page-header{position:absolute;top:30px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px;color:#898d85;z-index:1}.page-header>span:first-child{font-size:20px;font-weight:600;color:#eee}.tiny-square{font-size:7px;margin-left:5px}.stage{position:relative;width:min(1440px,100%);aspect-ratio:3/2;margin:0 auto}.scene-art{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;object-fit:fill;image-rendering:pixelated}.monitor-screen{position:absolute;left:20%;top:18%;width:48%;height:49%;background:#070a09;padding:5px;overflow:hidden;box-shadow:inset 0 0 14px #000}.os-shell{height:100%;display:flex;flex-direction:column;border:1px solid #9ca097;position:relative;isolation:isolate}.os-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(transparent 0 3px,#0002 3px,#0002 4px);box-shadow:inset 0 0 20px #0005}.os-header{display:flex;align-items:center;justify-content:space-between;min-height:30px;padding:0 9px;border-bottom:1px solid #8e958a;font-size:11px}.os-brand{white-space:nowrap}.os-brand b{font-size:14px;margin-right:6px}.os-brand small{font-size:9px;color:#7d8779}.language-toggle{font-size:10px;background:none;border:0;padding:5px}.desktop-area{flex:1;position:relative;min-height:0;overflow:hidden;background:#090e0c}.desktop-folders{position:absolute;left:9px;top:18px;bottom:8px;display:flex;flex-direction:column;gap:18px;width:78px;z-index:8}.folder{display:flex;align-items:center;flex-direction:column;gap:7px;background:transparent;border:0;padding:0;font-size:10px}.folder>span:last-child{padding:1px 3px}.folder.selected>span:last-child,.folder:hover>span:last-child{color:#0b100d;background:#d5dbcc}.folder-icon{display:block;width:31px;height:23px;position:relative;background:linear-gradient(#92968e,#585e53);border:1px solid #d7dfcb;box-shadow:inset 2px 2px #bdc3b5,2px 2px #000}.folder-icon:before{content:"";position:absolute;left:1px;top:-5px;width:13px;height:5px;background:#9ba48f;border:1px solid #d7dfcb;border-bottom:0}.folder-icon.large{width:58px;height:43px;margin:0 auto 25px;filter:grayscale(1)}.folder-icon.large:before{width:24px;height:7px;top:-8px}.wallpaper{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(#b6c3aa66 .7px,transparent 1px),radial-gradient(#a6b7a244 .8px,transparent 1px);background-size:53px 61px,91px 83px;background-position:10px 20px,30px 40px}.orbital{position:absolute;width:220px;height:220px;right:-90px;top:30px;border:1px solid #71866b33;border-radius:50%;box-shadow:0 0 0 30px #71866b0a,0 0 0 60px #71866b08}.orbital-two{width:120px;height:120px;right:-40px;top:80px}.cross{position:absolute;color:#b3c5a4}.cross-one{right:28%;top:15%}.cross-two{right:11%;bottom:32%}.skyline{position:absolute;bottom:0;right:0;font-size:55px;letter-spacing:-10px;color:#52604b30}.desktop-greeting{position:absolute;top:27%;left:24%;right:6%}.eyebrow{font-size:8px;letter-spacing:1.7px;color:#87927f}.desktop-greeting h1{font-size:36px;font-weight:500;letter-spacing:5px;margin:18px 0 10px}.desktop-greeting h1 span{display:block;font-size:12px;letter-spacing:5px;margin-top:8px;color:#b6c0ae}.desktop-greeting p{font-size:10px;line-height:1.8;color:#88987f}.desktop-instruction{display:block;margin-top:30px;font-size:9px;color:#a6b29c}.window-layer{position:absolute;top:0;right:0;bottom:0;left:94px;pointer-events:none}.desktop-window{pointer-events:auto;position:absolute;left:calc(8px + var(--offset));top:calc(20px + var(--offset));right:12px;bottom:18px;display:flex;flex-direction:column;background:#111510;border:2px solid #a7ada0;box-shadow:4px 4px #0008;min-height:170px}.desktop-window[hidden]{display:none}.desktop-window.maximized{top:0;right:0;bottom:0;left:0}.window-title{display:flex;align-items:center;gap:5px;min-height:24px;padding:2px 4px;background:#6d7666;color:#11180f;font-size:10px;font-weight:600}.desktop-window.active .window-title{background:#c6cdbd}.window-controls{display:flex;gap:3px;margin-left:auto}.window-controls button{background:#c6cdbd;border:1px solid #273023;color:#121810;font:14px/15px monospace;min-width:17px;height:18px;padding:0}.window-toolbar,.window-footer{display:flex;justify-content:space-between;font-size:8px;color:#9aa490;padding:7px 9px;border-bottom:1px solid #424c3d}.window-footer{border-top:1px solid #424c3d;border-bottom:0}.empty-state{flex:1;min-height:0;overflow:auto;text-align:center;display:flex;flex-direction:column;justify-content:center;padding:18px 8px}.empty-state h1{font-size:18px;letter-spacing:-.7px;margin:12px 0 4px}.empty-state p{font-size:9px;color:#a4af9a}.empty-state .eyebrow{font-size:7px}.loading-blocks{font-size:12px;letter-spacing:3px;color:#858e7f;margin-top:14px}.os-terminal{min-height:28px;display:flex;align-items:center;padding:0 7px;gap:6px;border-top:1px solid #969e8e;font-size:9px;white-space:nowrap}.terminal-prompt{border:1px solid #919d85;padding:0 2px}.caret{height:10px;width:5px;background:#c7d0be;animation:blink 1.2s steps(1) infinite}.os-terminal time{margin-left:auto;font-size:9px}.task-tray{display:flex;gap:4px;padding:3px;overflow:auto}.task-tray button{font-size:9px;background:#424a3b;border:1px solid #8e9a82;white-space:nowrap}.scene-caption{display:flex;justify-content:space-between;position:absolute;bottom:22px;left:4%;right:4%;font-size:9px;letter-spacing:1.5px;color:#737d6e}.monty-overlay{position:fixed;top:0;left:0;width:100px;height:100px;pointer-events:none;z-index:100;will-change:transform}.monty-sprite{width:100%;height:100%;background-size:400% 400%;background-position:var(--frame-x,0%) var(--frame-y,0%);image-rendering:pixelated}.monty-overlay.face-right .monty-sprite{transform:scaleX(-1)}.monty-caption{display:block;text-align:center;font-size:8px;letter-spacing:2px;color:#8a9184;margin-top:-10px}.monty-bubble{position:absolute;bottom:106%;right:5px;width:max-content;max-width:210px;white-space:pre-line;border:2px solid #c9d0c1;background:#0b100ef0;padding:10px 13px;font-size:11px;line-height:1.65;box-shadow:4px 4px #0008}.monty-bubble:after{content:"";position:absolute;bottom:-8px;right:24px;width:10px;height:10px;border-right:2px solid #c9d0c1;border-bottom:2px solid #c9d0c1;background:#0b100e;transform:skewY(40deg)}.bubble-right .monty-bubble{right:auto;left:0}.monty-bubble[hidden]{display:none}@keyframes blink{50%{opacity:0}}@media(min-width:1441px){.stage{width:min(1440px,135svh)}}@media(min-width:701px)and (max-width:1000px){.stage{width:118%;max-width:none;margin-left:-7%;flex-shrink:0}.os-header{font-size:10px}.desktop-folders{gap:15px}.desktop-greeting h1{font-size:28px}.empty-state .large{margin-bottom:10px;width:40px;height:30px}.loading-blocks{margin-top:4px}.empty-state{padding:8px}.scene-caption{font-size:8px}}@media(max-width:700px){.portfolio-scene{min-height:100svh;padding:70px 12px 60px;justify-content:flex-start}.page-header{top:22px;left:20px;right:20px;font-size:8px}.stage{width:100%;aspect-ratio:auto;min-height:calc(100svh - 140px);margin:0;border:8px solid #494d47;border-radius:15px;padding:8px;background:#242822;box-shadow:inset 3px 3px #7d8278,0 0 0 3px #111}.scene-art{display:none}.monitor-screen{position:relative;inset:auto;width:100%;height:calc(100svh - 172px);min-height:410px;padding:0}.os-header{min-height:35px}.desktop-folders{width:64px;left:5px;gap:28px;top:25px}.folder{font-size:9px}.desktop-greeting{left:28%;top:29%;right:5%}.desktop-greeting h1{font-size:27px;letter-spacing:2px}.desktop-greeting h1 span{font-size:9px;letter-spacing:2px}.desktop-greeting p{font-size:10px}.desktop-greeting .eyebrow{font-size:7px;line-height:1.8;display:block}.desktop-instruction{font-size:9px;line-height:1.7}.window-layer{left:73px}.desktop-window{left:0;right:4px;top:12px;bottom:10px}.empty-state h1{font-size:16px}.empty-state .eyebrow{font-size:6px}.empty-state p{font-size:9px;line-height:1.8}.window-toolbar,.window-footer{font-size:7px;gap:4px}.window-controls{gap:2px}.window-controls button{min-width:20px;height:23px}.window-title{font-size:9px;gap:3px;flex-wrap:wrap}.terminal-user{font-size:8px}.os-terminal time{font-size:8px}.os-terminal time span{display:none}.scene-caption{left:20px;right:20px;bottom:20px;font-size:7px;letter-spacing:.7px}.monty-overlay{width:62px;height:62px}.monty-bubble{max-width:170px;font-size:10px}.monty-caption{font-size:6px;letter-spacing:1px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}.wallpaper.has-image{background:#090e0c}.wallpaper-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;animation:wallpaper-in .45s steps(5,end)}.wallpaper.has-image:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#090e0cb3 0,#090e0c66 90px,transparent 160px)}@keyframes wallpaper-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.wallpaper-image{animation:none}}.desktop-icon{display:block;width:36px;height:36px;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 #000)}.folder.selected .desktop-icon,.folder:hover .desktop-icon{filter:drop-shadow(2px 2px 0 #000) brightness(1.12)}@media(max-width:1000px){.desktop-icon{width:30px;height:30px}}@media(min-width:701px){.desktop-area .desktop-folders{width:auto;left:4px;grid-auto-flow:column;grid-template-rows:repeat(5,minmax(0,70px));grid-auto-columns:86px;align-content:start;align-items:start;row-gap:0;column-gap:4px}.os-shell:has(.task-tray:empty) .desktop-area .desktop-folders{bottom:30px}.desktop-area .folder>span:last-child{white-space:nowrap}}@media(max-width:700px){.desktop-area .folder>span:last-child{overflow-wrap:anywhere;text-align:center}}.content-scroll:has(.doom-frame){padding:0;overflow:hidden;background:#000}.doom-frame{display:block;width:100%;height:100%;min-height:260px;border:0;background:#000}.wallpaper-next{position:absolute;right:44px;bottom:14px;z-index:6;display:grid;place-items:center;width:34px;height:34px;padding:0;color:#d1d8c5;background:transparent;border:0;cursor:pointer;opacity:.75;transition:opacity .15s}.wallpaper-next:hover,.wallpaper-next:focus-visible{opacity:1;color:#ccf781}.wallpaper-next:focus-visible{outline:1px dashed #ccf781;outline-offset:2px}.wallpaper-next svg{filter:drop-shadow(1px 1px 0 #000)}.wallpaper-next:after{content:attr(data-hint);position:absolute;right:0;bottom:calc(100% + 6px);padding:3px 7px;font:10px/1.3 monospace;letter-spacing:.5px;white-space:nowrap;color:#d1d8c5;background:#0b100ef2;border:1px solid #59694f;box-shadow:2px 2px #0009;opacity:0;transform:translateY(3px);pointer-events:none;transition:opacity .15s,transform .15s}.wallpaper-next:hover:after,.wallpaper-next:focus-visible:after{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.wallpaper-next,.wallpaper-next:after{transition:none}}.portfolio-scene img,.portfolio-scene a{-webkit-user-drag:none;user-drag:none}.monty-terminal .show-desktop{position:relative;align-self:stretch;flex-shrink:0;width:16px;margin:0 -4px 0 2px;padding:0;background:transparent;border:0;border-left:1px solid #59694f;cursor:pointer}.monty-terminal .show-desktop:hover:not(:disabled),.monty-terminal .show-desktop:focus-visible{background:#1d2719}.monty-terminal .show-desktop:disabled{opacity:.35;cursor:default}.monty-terminal .show-desktop:after{content:attr(data-hint);position:absolute;right:0;bottom:calc(100% + 6px);padding:3px 7px;font:10px/1.3 monospace;white-space:nowrap;color:#d1d8c5;background:#0b100ef2;border:1px solid #59694f;box-shadow:2px 2px #0009;opacity:0;pointer-events:none;transition:opacity .15s}.monty-terminal .show-desktop:hover:not(:disabled):after,.monty-terminal .show-desktop:focus-visible:after{opacity:1}.task-tray:empty{display:none}.wallpaper-next{z-index:1}.window-layer{z-index:2}@media(max-width:700px){.portfolio-scene{padding:16px 12px}.monitor-object .monitor-screen{height:calc(100svh - 64px)}}.monitor-screen[data-booting=true] .wallpaper-image{visibility:hidden}.language-toggle{display:inline-flex;align-items:baseline;gap:6px;cursor:pointer}.language-toggle>span{color:#7f8d76;padding-bottom:1px;border-bottom:1px solid transparent;transition:color .12s,border-color .12s}.language-toggle>.is-active{color:#e9f0de;border-bottom-color:#ccf781}.language-toggle>.language-sep{color:#4b5745;border:0}.language-toggle:hover>span:not(.is-active):not(.language-sep),.language-toggle:focus-visible>span:not(.is-active):not(.language-sep){color:#ccf781;border-bottom:1px dashed #ccf78199}.language-toggle:hover{background:#ffffff0d}.monty-terminal .show-desktop{display:grid;place-items:center;width:26px;color:#8e9a82}.monty-terminal .show-desktop>svg{display:block}.monty-terminal .show-desktop:hover:not(:disabled),.monty-terminal .show-desktop[aria-pressed=true]{color:#ccf781}.desktop-area .desktop-folders{z-index:1}.stage{--monitor-x:50%;--monitor-y:4%;--monitor-w:78%;--monitor-h:76%;--keyboard-x:46%;--keyboard-y:78%;--keyboard-w:44%;--mouse-x:75%;--mouse-y:81%;--mouse-w:8%;--mug-x:84%;--mug-y:70%;--mug-w:11%;width:min(1440px,140svh);max-width:100%;aspect-ratio:3/2;margin:auto}@media(min-width:1001px){.stage{--monitor-y:1%;--monitor-w:72%;--monitor-h:80%}}.monitor-object{position:absolute;left:var(--monitor-x);top:var(--monitor-y);width:var(--monitor-w);height:var(--monitor-h);transform:translate(-50%);z-index:2}.monitor-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;image-rendering:pixelated}.monitor-screen{left:6.25%;top:12%;width:87.5%;height:70.4%;padding:0;box-shadow:none}.monitor-screen .os-shell{border:0}.monitor-screen .os-shell:after{box-shadow:none}.desk-surface{position:absolute;left:0;right:0;top:78%;bottom:0;background:repeating-linear-gradient(0deg,#20211f 0,#20211f 4px,#10110f 4px,#10110f 12px);opacity:.65;-webkit-mask-image:linear-gradient(transparent,#000 20%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 20%,#000 70%,transparent)}.desk-object{position:absolute;image-rendering:pixelated;transform:translate(-50%);height:auto;z-index:3}.keyboard-object{left:var(--keyboard-x);top:var(--keyboard-y);width:var(--keyboard-w)}.mouse-object{left:var(--mouse-x);top:var(--mouse-y);width:var(--mouse-w);transform:translate(-50%) rotate(180deg)}.mug-object{left:var(--mug-x);top:var(--mug-y);width:var(--mug-w)}.desk-prop{display:none}.scene-caption{z-index:5}@media(min-width:1001px){.desk-prop{display:block}.stage{--mug-x:92%;--mug-y:69%}.desk-art{left:50%;top:75%;width:131.25%;z-index:1}.tray-prop{left:-6%;top:51%;width:23.75%}.stack-prop{left:4.5%;top:68%;width:17.5%}.sheet-prop{left:-5%;top:84%;width:16.25%}.binders-prop{left:3%;top:40%;width:15%}.folder-prop{left:111%;top:70%;width:23.75%}.envelope-prop{left:107%;top:80%;width:22.5%}}.empty-state>*{flex-shrink:0}.empty-state{justify-content:safe center}.window-toolbar,.window-footer,.window-title{flex-shrink:0}@media(min-width:701px)and (max-width:1000px){.stage{width:100%;aspect-ratio:6/5;margin:auto;--monitor-w:92%;--monitor-h:80%;--monitor-y:1%;--keyboard-y:82%;--keyboard-w:53%;--mug-x:92%;--mug-w:9%;--mouse-x:80%}.desktop-folders{gap:13px;top:14px}.folder{font-size:9px}.desktop-greeting{top:22%}.desktop-greeting h1{font-size:26px}.desktop-instruction{margin-top:16px}.empty-state{justify-content:flex-start;padding-top:18px}.empty-state .large{flex-shrink:0}}@media(max-width:700px){.stage{width:100%;max-width:100%;aspect-ratio:auto;margin:0}.monitor-art,.desk-object,.desk-surface{display:none}.monitor-object{position:relative;left:auto;top:auto;width:100%;height:auto;transform:none}.monitor-screen{position:relative;left:auto;top:auto;width:100%;height:calc(100svh - 172px);min-height:410px;padding:0}}.stage{transform-origin:0 0;transition:transform .85s cubic-bezier(.22,1,.36,1);will-change:transform}.portfolio-scene{height:100svh;min-height:0;overflow:hidden}.page-header,.scene-caption{transition:opacity .4s ease;pointer-events:none}.screen-focused .page-header,.screen-focused .scene-caption{opacity:0}.desktop-folders{width:65px;top:12px;bottom:8px;gap:0;display:grid;grid-template-rows:repeat(8,minmax(0,1fr));align-items:center}.folder{gap:4px;font-size:8px;justify-self:stretch}.folder-icon:not(.large){width:23px;height:17px;box-shadow:inset 1px 1px #bdc3b5,1px 1px #000}.folder-icon:not(.large):before{width:9px;height:4px;top:-4px}.folder>span:last-child{padding:0 2px;line-height:1.25}.window-layer{left:78px}@media(max-width:700px){.portfolio-scene{height:auto;min-height:100svh}.stage{transform:none!important;will-change:auto}.desktop-folders{width:57px;top:16px;grid-template-rows:repeat(8,minmax(44px,1fr))}.folder{font-size:9px;min-height:44px}.window-layer{left:65px}}@media(prefers-reduced-motion:reduce){.stage,.page-header,.scene-caption{transition:none}}.content-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#6c7664 #151912;container-type:inline-size;color:#d4dacd;font-size:11px;line-height:1.8;background:#10150f}.content-scroll h1,.content-scroll h2,.content-scroll h3{line-height:1.4;letter-spacing:-.3px;color:#e4e8de}.content-scroll h1{font-size:23px;margin:10px 0}.content-scroll h2{font-size:15px;margin:12px 0 7px}.content-scroll h3{font-size:11px;font-weight:500;color:#b9c8ad;margin:5px 0}.content-scroll p{margin:9px 0 14px}.content-scroll a{color:#c4d2b4;text-underline-offset:3px;overflow-wrap:anywhere}.content-scroll ul,.content-scroll ol{padding-left:19px}.content-scroll li{margin:7px 0}.content-scroll details{margin:13px 0;border-left:2px solid #56634b;padding-left:11px}.content-scroll summary{cursor:pointer;color:#bcccaa;font-size:10px}.content-kicker{font-size:8px;letter-spacing:1px;line-height:1.6;color:#97a58b}.content-muted{font-size:10px;color:#8d9b82}.content-tags{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.content-tags span{font-size:8px;line-height:1.5;border:1px solid #3b4733;background:#182014;color:#b4c2a6;padding:3px 6px;overflow-wrap:anywhere}.about-content,.projects-content,.project-detail,.contact-content{padding:22px}.profile-header{border-bottom:1px solid #36412f;padding-bottom:10px}.profile-header h1{font-size:28px;letter-spacing:1px}.profile-header h1 span{display:inline-block;font-size:15px;letter-spacing:0;margin-left:8px;color:#a9b69c}.profile-role{font-size:11px}.profile-header a{margin-left:9px}.content-tabs{display:flex;flex-wrap:wrap;gap:5px;padding:12px 0;border-bottom:1px solid #36412f}.content-tabs button,.project-detail-nav button,.content-back{background:transparent;border:1px solid #536047;font:inherit;font-size:9px;color:#bdc9b0;padding:5px 9px}.content-tabs button[aria-pressed=true]{background:#c1ccb3;color:#11190b;border-color:#c1ccb3}.about-section{padding-top:8px}.profile-intro{font-size:12px;line-height:1.9;max-width:65ch}.profile-focus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.profile-focus article{padding:12px;border:1px solid #3a4632}.profile-focus article>span{font-size:8px;color:#809171}.profile-focus p{font-size:10px;margin-bottom:0}.resume-entry{border-bottom:1px solid #35412e;padding:15px 0 18px}.resume-entry:last-child{border-bottom:0}.resume-entry:first-child{padding-top:10px}.resume-timeline{padding-left:14px;border-left:1px solid #47563c;margin-left:4px}.resume-timeline .resume-entry{position:relative}.resume-timeline .resume-entry:before{content:"";position:absolute;width:5px;height:5px;background:#a5b990;left:-17px;top:21px}.skill-section{padding:6px 0 12px;border-bottom:1px solid #35412e}.collection-header p{color:#94a288}.project-collection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.project-entry{padding:0;text-align:left;background:#151c11;border:1px solid #4a573f;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s}.project-entry:hover{filter:none;border-color:#c2cfb2;background:#1c2716}.project-thumb{position:relative;aspect-ratio:16/9;background:#dadbd6;overflow:hidden}.project-thumb img{width:100%;height:100%;object-fit:contain;filter:grayscale(.4);image-rendering:auto}.project-thumb>span{position:absolute;left:7px;top:7px;background:#0c110a;color:#c9d6ba;padding:2px 6px;font-size:9px}.project-entry-copy{padding:13px;display:flex;flex-direction:column;flex:1}.project-entry h2{font-size:13px;margin:7px 0}.project-entry p{font-size:10px;line-height:1.7;color:#a6b49a}.project-read{font-size:10px;margin-top:auto;padding-top:10px;color:#d2e2bf}.project-detail-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:10px}.project-summary{font-size:12px;color:#b3c2a7}.project-video{margin:20px 0;border:1px solid #4b5840;background:#070b06}.project-video video{width:100%;max-height:300px;display:block}.project-video figcaption{font-size:8px;padding:5px 9px;color:#9dac91}.markdown-content h2{border-top:1px solid #3b4931;padding-top:17px;margin-top:24px}.markdown-content h3{font-size:12px;font-weight:600}.markdown-content code{font-size:.92em;background:#26321d;padding:1px 4px;color:#d1dfc0;overflow-wrap:anywhere}.markdown-content pre{overflow:auto;padding:12px;background:#080e05}.markdown-content blockquote{border-left:2px solid #94a57e;margin:15px 0;padding:1px 12px;color:#b4c4a6}.markdown-content table{display:block;max-width:100%;overflow:auto;border-collapse:collapse}.markdown-content td,.markdown-content th{padding:8px;border:1px solid #47563a}.project-figure{display:block;border:1px solid #39482e;margin:14px 0;background:#0b1008}.project-figure img{display:block;width:100%;height:auto;image-rendering:auto}.project-figure>span{display:block;padding:7px 10px;font-size:9px;color:#9fae92}.content-back{margin-top:18px}.contact-content>a{display:block;margin:18px 0;font-size:12px}.standalone-experience{padding:20px}.content-scroll:focus-visible{outline:1px solid #a6b990;outline-offset:-2px}.profile-header h1{font-size:23px;margin:6px 0}.profile-header p{margin:4px 0}.profile-header{padding-bottom:9px}.content-tabs{padding:9px 0}.collection-header h1{font-size:20px;margin:6px 0}.collection-header p{font-size:10px;margin:6px 0}.projects-content{padding:16px}.project-collection{margin-top:14px}.project-thumb{aspect-ratio:auto;height:94px;flex-shrink:0}.project-entry-copy{padding:10px}.project-entry p{margin:6px 0}.project-entry h2{margin:5px 0}.project-entry .project-read{padding-top:4px}@container (max-width:430px){.profile-focus,.project-collection{grid-template-columns:1fr}.about-content,.projects-content,.project-detail,.contact-content{padding:14px}.content-scroll h1{font-size:19px}.profile-header h1 span{display:block;margin:3px 0}.content-tabs{gap:4px}.content-tabs button{padding:5px 7px;font-size:8px}}.project-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:18px 12px;margin-top:24px;padding:8px}.project-file{position:relative;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:8px 5px;border:1px solid transparent;background:transparent;color:#c8d4bb;text-align:center;font:inherit;font-size:9px;line-height:1.45}.project-file>img{width:54px;height:54px;object-fit:contain;image-rendering:pixelated}.project-file>small{font:8px/1.3 inherit;color:#829179}.project-file:hover,.project-file:focus-visible{border-color:#aab79c;background:#263120}.project-file-tooltip{position:absolute;z-index:4;left:50%;bottom:calc(100% + 8px);width:180px;transform:translate(-50%);display:none;padding:8px;border:1px solid #b6c2a9;background:#0b100ef7;color:#dbe5d1;text-align:left;font-size:9px;line-height:1.55;box-shadow:3px 3px #0009}.project-file:hover .project-file-tooltip,.project-file:focus-visible .project-file-tooltip{display:block}.html-content{margin-top:22px}.html-content .hero{border-top:1px solid #3b4931;border-bottom:1px solid #3b4931;padding:16px 0;margin:18px 0}.html-content .hero h1{font-size:19px}.html-content .eyebrow,.html-content .lead,.html-content figcaption,.html-content .table-note,.html-content footer{color:#9dac91}.html-content .lead{font-size:11px}.html-content .tags,.html-content .flow{display:flex;flex-wrap:wrap;gap:5px;padding:0;list-style:none}.html-content .tags li,.html-content .flow li{margin:0;border:1px solid #3b4733;background:#182014;color:#b4c2a6;padding:3px 6px;font-size:8px}.html-content figure{margin:16px 0;border:1px solid #39482e;background:#0b1008}.html-content figure img,.html-content figure video{display:block;width:100%;height:auto;max-height:420px;object-fit:contain}.html-content figcaption{padding:7px 10px;font-size:9px}.html-content .pair,.html-content .grid,.html-content .stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.html-content .card,.html-content .stat,.html-content .callout{border:1px solid #3b4733;padding:10px;background:#182014}.html-content .card h4{margin:0 0 4px}.html-content .card p,.html-content .stat span{margin:0;font-size:9px}.html-content table{display:block;max-width:100%;overflow:auto;border-collapse:collapse}.html-content td,.html-content th{padding:7px;border:1px solid #47563a;text-align:left;vertical-align:top}.html-content .formula{overflow:auto;padding:8px;background:#080e05;text-align:center}.html-content footer{margin-top:24px;padding-top:12px;border-top:1px solid #3b4931;font-size:9px}@container (max-width:430px){.html-content .pair,.html-content .grid,.html-content .stats{grid-template-columns:1fr}.project-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-file{min-height:0}.project-file-tooltip{left:0;transform:none;width:min(180px,calc(100vw - 64px))}}.html-content img{cursor:zoom-in}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-items:center;padding:4vh 4vw;background:#000000e6;cursor:zoom-out;animation:image-viewer-in .15s ease-out}.image-viewer img{max-width:100%;max-height:92vh;width:auto;height:auto;object-fit:contain;background:#fff;box-shadow:0 0 0 1px #59694f,0 10px 40px #000;image-rendering:auto}.image-viewer-close{position:fixed;top:16px;right:20px;width:36px;height:36px;font:22px/1 monospace;color:#d1d8c5;background:#0b100ef2;border:1px solid #59694f;cursor:pointer}@keyframes image-viewer-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.image-viewer{animation:none}}.readme-doc{padding:26px 38px 40px;font-size:12px;line-height:1.7;color:#cdd6c2}.readme-doc>*{max-width:900px}.readme-doc section{margin-top:26px}.readme-doc h2{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#ccf781}.readme-doc h2:before{content:"##";color:#59694f}.readme-doc h2:after{content:"";flex:1;border-top:1px dashed #3d4a37}.readme-doc h3{margin:18px 0 8px;font-size:11px;letter-spacing:1px;color:#9fb08f;text-transform:uppercase}.readme-doc p{margin:0 0 10px}.readme-doc kbd{display:inline-block;padding:0 5px;font:inherit;font-size:.92em;line-height:1.5;color:#e2ead8;background:#1d2719;border:1px solid #59694f;box-shadow:1px 1px #000}.readme-head{padding-bottom:16px;border-bottom:1px solid #3d4a37}.readme-head h1{margin:0;font-size:30px;letter-spacing:4px;color:#e9f0de}.readme-tagline{margin:4px 0 12px!important;font-size:11px;letter-spacing:1px;color:#8a9a7f}.readme-files{list-style:none;margin:0;padding:0;border:1px solid #3d4a37}.readme-files li{display:grid;grid-template-columns:24px 120px 1fr;gap:12px;align-items:center;padding:7px 10px}.readme-files li+li{border-top:1px solid #263120}.readme-files img{width:24px;height:24px;image-rendering:pixelated}.readme-files b{color:#e9f0de;font-weight:500}.readme-files span{color:#a9b79c}.readme-monty{display:flex;gap:14px;align-items:center;padding:12px 14px;background:#141b12;border:1px solid #3d4a37}.readme-monty p{margin:0}.readme-monty-sprite{flex:none;display:block;width:56px;height:56px;image-rendering:pixelated}.readme-abilities{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.readme-abilities li{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:10px 12px;background:#141b12;border:1px solid #2c3727}.readme-abilities b{color:#e9f0de;font-weight:500}.readme-abilities li>span:last-child{grid-column:1/-1;margin-top:4px;color:#a9b79c}.readme-num{color:#ccf781}.readme-pairs{margin:0;display:grid;gap:6px}.readme-pairs>div{display:grid;grid-template-columns:150px 1fr;gap:12px}.readme-pairs dt{color:#e9f0de}.readme-pairs dd{margin:0;color:#a9b79c}.readme-note{margin-top:16px;padding:10px 14px;border-left:3px solid #ccf781;background:#141b12}.readme-note b{display:block;margin-bottom:4px;color:#ccf781;letter-spacing:1px}.readme-boundary{margin:0!important;color:#e9f0de}.readme-tips{margin:0;padding-left:18px}.readme-tips li{margin:5px 0}.readme-tips li::marker{content:"› ";color:#ccf781}.readme-stack dd{overflow-wrap:anywhere}@media(max-width:700px){.readme-files li{grid-template-columns:24px 1fr}.readme-files span{grid-column:2}.readme-pairs>div{grid-template-columns:1fr;gap:0}}.profile-directory{margin:22px 0 26px}.profile-folder>small{display:block;font-size:9px;color:#829179}.profile-section-head{display:flex;align-items:center;gap:14px;margin:18px 0 22px}.profile-section-head img{width:56px;height:56px;image-rendering:pixelated}.profile-section-head h1{margin:2px 0 0}.monty-sprite{background-image:url(/assets/monty.png?v=monty-v3);background-size:900% 1400%;background-position:var(--frame-x,0%) var(--frame-y,0%);transform:translate(var(--sprite-offset-x,0px),var(--sprite-offset-y,0px))}.stage{--keyboard-x:39%;--keyboard-w:53%;--mouse-w:9.5%}.mouse-object{transform:translate(-50%);top:79%;width:9.5%}.stage:before,.stage:after{content:"";position:absolute;pointer-events:none;z-index:4;left:calc(var(--mug-x) - 3%);top:calc(var(--mug-y) - 5%);width:1.5%;height:8%;background:#cbd0c4;clip-path:polygon(40% 0,70% 0,70% 20%,45% 20%,45% 40%,75% 40%,75% 60%,50% 60%,50% 80%,30% 80%,30% 100%,5% 100%,5% 75%,25% 75%,25% 55%,50% 55%,50% 45%,20% 45%,20% 15%,40% 15%);opacity:0;animation:coffee-steam 3.8s linear infinite}.stage:after{left:calc(var(--mug-x) - .5%);height:6%;animation-delay:-1.9s}@keyframes coffee-steam{0%{transform:translateY(15%) scaleX(.7);opacity:0}25%{opacity:.45}65%{opacity:.25}to{transform:translate(25%,-65%) scaleX(1.2);opacity:0}}@media(min-width:701px)and (max-width:1000px){.stage{--keyboard-x:37%;--keyboard-w:59%;--mouse-w:10%}}@media(max-width:700px){.stage:before,.stage:after{display:none}}@media(prefers-reduced-motion:reduce){.stage:before,.stage:after{animation:none;opacity:0}}.monitor-power{position:absolute;left:89.1%;top:84.9%;width:4.1%;height:4.8%;z-index:3;padding:0;border:0;background:none;cursor:pointer}.monitor-power:focus-visible{outline:1px dashed #d1d8c5;outline-offset:2px}.power-led{position:absolute;left:31.7%;top:18.75%;width:39%;height:33%;pointer-events:none;background:#ccf781;box-shadow:0 0 7px 2px #ccf78188}.power-off .power-led{background:#f6b13a;box-shadow:0 0 6px 1px #f6b13a99;animation:led-breathe 2.8s ease-in-out infinite}@keyframes led-breathe{0%,to{opacity:.25}50%{opacity:1}}.monitor-screen{transform-origin:50% 50%}.power-off .monitor-screen{animation:crt-power-off .6s ease-in forwards}.power-on .monitor-screen{animation:crt-power-on .7s ease-out both}@keyframes crt-power-off{0%{transform:none;filter:none;opacity:1}45%{transform:scaleY(.008);filter:brightness(3)}80%{transform:scale(.03,.008);filter:brightness(4);opacity:1}to{transform:scale(0);opacity:0}}@keyframes crt-power-on{0%{transform:scale(0);filter:brightness(4);opacity:0}15%{transform:scale(.03,.008);opacity:1}50%{transform:scaleY(.008);filter:brightness(3)}to{transform:none;filter:none}}.monitor-off .monty-overlay{visibility:hidden}.monitor-object:before{content:"";position:absolute;left:-7%;right:-7%;top:-5%;bottom:10%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,#ccf7811c 0%,#ccf7810a 45%,transparent 70%);opacity:.45;transition:opacity .6s;animation:screen-afterglow 7s ease-in-out infinite}.monitor-object.is-on:before{opacity:.9}.monitor-object.power-off:before{opacity:0}@keyframes screen-afterglow{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}.monitor-screen:after{content:"";position:absolute;left:0;right:0;top:0;height:20%;z-index:60;pointer-events:none;background:linear-gradient(transparent,#ccf7810d 50%,transparent);transform:translateY(-110%);animation:screen-roll 11s linear infinite}@keyframes screen-roll{0%{transform:translateY(-110%)}45%,to{transform:translateY(560%)}}.lamp-object{position:absolute;left:105%;top:25%;width:26.25%;z-index:3;padding:0;border:0;background:none;cursor:pointer;transform:translate(-50%)}.lamp-object img{display:block;width:100%;height:auto;image-rendering:pixelated}.lamp-object:focus-visible{outline:1px dashed #d1d8c5;outline-offset:4px}.lamp-light{position:absolute;left:-30%;top:44.5%;width:110%;height:115%;pointer-events:none;clip-path:polygon(31.8% 0,70% 0,100% 100%,0 100%);background:linear-gradient(#fff2cf38,#fff2cf14 55%,transparent 92%);mix-blend-mode:screen;transition:opacity .35s steps(3,end);animation:lamp-flicker 6s steps(1,end) infinite}@keyframes lamp-flicker{0%,to{opacity:1}61%{opacity:.86}62%{opacity:1}88%{opacity:.93}}.lamp-light i{position:absolute;bottom:20%;width:3px;height:3px;background:#fff6dd;opacity:0;animation:lamp-dust 9s linear infinite}.lamp-light i:nth-child(1){left:38%;animation-delay:0s}.lamp-light i:nth-child(2){left:52%;animation-delay:-1.6s;animation-duration:11s}.lamp-light i:nth-child(3){left:45%;animation-delay:-3.1s}.lamp-light i:nth-child(4){left:60%;animation-delay:-4.4s;animation-duration:12s}.lamp-light i:nth-child(5){left:30%;animation-delay:-6.2s;animation-duration:10s}.lamp-light i:nth-child(6){left:66%;animation-delay:-7.5s}@keyframes lamp-dust{0%{transform:translate(0);opacity:0}15%{opacity:.75}50%{transform:translate(9px,-60px)}85%{opacity:.5}to{transform:translate(-4px,-130px);opacity:0}}.lamp-object .lamp-bulb-glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;-webkit-mask-image:radial-gradient(circle 100px at 25.8% 43.4%,#000 0,#000 12%,#0008 40%,transparent 100%);mask-image:radial-gradient(circle 100px at 25.8% 43.4%,#000 0,#000 12%,#0008 40%,transparent 100%);transition:opacity .5s steps(5,end)}.lamp-object:before{content:"";position:absolute;left:25.8%;top:43.4%;width:200px;height:200px;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;background:radial-gradient(circle closest-side,#fff2cf14,#fff2cf06 55%,transparent);opacity:0;transition:opacity .5s steps(5,end)}.lamp-off .lamp-object .lamp-bulb-glow{opacity:.85;animation:bulb-ember 4.5s ease-in-out infinite}.lamp-off .lamp-object:before{opacity:1}@keyframes bulb-ember{0%,to{opacity:.7}50%{opacity:.95}}.portfolio-scene.lamp-off{background:#020302}.lamp-off .lamp-light{opacity:0;animation:none}.stage .desk-object,.stage .monitor-art,.lamp-object .lamp-sprite,.desk-surface,.page-header,.scene-caption{transition:filter .5s steps(5,end),opacity .5s steps(5,end)}.lamp-off .desk-object,.lamp-off .lamp-object .lamp-sprite{filter:brightness(.055)}.lamp-off .monitor-art{filter:brightness(.17)}.lamp-off .keyboard-object,.lamp-off .mouse-object{filter:brightness(.42)}.lamp-off.monitor-off .keyboard-object,.lamp-off.monitor-off .mouse-object,.lamp-off.monitor-off .monitor-art{filter:brightness(.06)}.lamp-off .desk-surface{opacity:.04}.lamp-off .stage:before,.lamp-off .stage:after{filter:brightness(.15)}.lamp-off .page-header,.lamp-off .scene-caption{opacity:.25}.screen-spill{position:absolute;left:4%;top:70%;width:88%;height:40%;z-index:4;pointer-events:none;background:radial-gradient(ellipse 48% 75% at 50% 0%,#ccf7812e 0%,#ccf78114 45%,transparent 100%);mix-blend-mode:screen;opacity:0;transition:opacity .5s steps(5,end)}.lamp-off:not(.monitor-off) .screen-spill{opacity:1}.desk-object.desk-prop{transition:transform .22s steps(3,end),filter .5s steps(5,end)}.binders-prop{transform-origin:50% 100%}.tray-prop:hover{transform:translate(-50%) translateY(-1.5%)}.stack-prop:hover{transform:translate(-50%) translateY(-3%) rotate(-1deg)}.sheet-prop:hover{transform:translate(-50%) translateY(-3%) rotate(-5deg)}.binders-prop:hover{transform:translate(-50%) rotate(-3deg)}.folder-prop:hover,.envelope-prop:hover{transform:translate(-50%) translateY(-4%) rotate(-1.5deg)}@media(max-width:700px){.monitor-power,.monitor-object:before,.screen-spill{display:none}}@media(prefers-reduced-motion:reduce){.power-led,.monitor-object:before,.monitor-screen:after,.lamp-light,.lamp-light i,.power-off .monitor-screen,.power-on .monitor-screen,.lamp-off .lamp-object .lamp-bulb-glow{animation:none}.power-off .monitor-screen{opacity:0}.monitor-screen:after,.lamp-light i{display:none}.desk-object.desk-prop,.stage .desk-object,.stage .monitor-art,.lamp-object .lamp-sprite,.lamp-light,.screen-spill,.desk-surface,.page-header,.scene-caption{transition:none}}.boot-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;overflow:hidden;container-type:size;background:#080c09;color:#b6c0aa;font-family:monospace}.boot-overlay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(transparent 0 2px,#0003 2px,#0003 3px)}.boot-overlay.is-cold:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;background:#cbd6c2;pointer-events:none;animation:crt-start .65s ease-out both}@keyframes crt-start{0%{transform:scale(.01,.003);opacity:1}40%{transform:scaleY(.003);opacity:.8}75%{transform:scale(1);opacity:.12}to{transform:scale(1);opacity:0}}.startup-agent{position:absolute;z-index:1;left:50%;top:42%;width:clamp(64px,22cqh,112px);aspect-ratio:1;translate:-50% -50%;filter:drop-shadow(0 0 18px #ccf78155) drop-shadow(0 8px 6px #0009);transition:left .42s steps(6,end),top .42s steps(6,end),width .42s steps(6,end),filter .3s}.startup-agent .monty-sprite{display:block;width:100%;height:100%}.is-cold .startup-agent{animation:startup-emerge .8s steps(8,end) both}@keyframes startup-emerge{0%{transform:translateY(35%) scale(.45);opacity:0}55%{transform:translateY(-10%) scale(1.08);opacity:1}to{transform:none;opacity:1}}.startup-agent[data-anim=awake]{filter:drop-shadow(0 0 26px #ccf781aa) drop-shadow(0 8px 6px #0009)}.boot-overlay[data-step=post] .startup-agent,.boot-overlay[data-step=reveal] .startup-agent{left:calc(100% - max(44px,10cqw));top:max(40px,14cqh);width:clamp(44px,13cqh,72px)}.boot-overlay[data-step=reveal] .startup-agent,.boot-overlay[data-phase=shutting]:not([data-step=sleep]) .startup-agent{visibility:hidden}.startup-agent[data-anim=dozing]:before,.startup-agent[data-anim=dozing]:after{content:"z";position:absolute;right:4%;top:4%;font:700 clamp(10px,3.4cqh,16px)/1 monospace;color:#86957e;opacity:0;animation:doze-z 2.8s steps(7,end) infinite}.startup-agent[data-anim=dozing]:after{content:"Z";font-size:clamp(12px,4.4cqh,21px);animation-delay:-1.4s}@keyframes doze-z{0%{transform:translate(0);opacity:0}20%{opacity:.9}to{transform:translate(70%,-160%);opacity:0}}.boot-skip{position:absolute;z-index:1;left:50%;top:calc(42% + clamp(64px,22cqh,112px)/2 + max(22px,6cqh));translate:-50% 0;display:grid;place-items:center;width:46px;height:46px;padding:0;border-radius:50%;background:transparent;border:1px solid #87947c;color:#c6cebb;cursor:pointer;animation:boot-fade .3s steps(3,end) .25s both}.boot-skip:hover,.boot-skip:focus-visible{color:#ccf781;border-color:#ccf781;box-shadow:0 0 12px #ccf78155}.boot-skip:focus-visible{outline:2px solid #c6cebb}.boot-copyright{position:absolute;left:0;right:0;bottom:7%;z-index:1;text-align:center;font:10px/1 monospace;letter-spacing:.12em;color:#86957e;animation:boot-fade .3s ease .4s both}.boot-hint{position:absolute;left:0;right:0;bottom:4%;z-index:1;text-align:center;font:9px/1 monospace;letter-spacing:.1em;color:#4e5b48;animation:boot-fade .3s ease .7s both}@keyframes boot-fade{0%{opacity:0}to{opacity:1}}.boot-overlay[data-step=wake]{animation:boot-flicker .24s steps(3,end)}@keyframes boot-flicker{0%{filter:brightness(2.2)}50%{filter:brightness(.6)}to{filter:none}}.boot-log{position:absolute;z-index:1;left:max(14px,6cqw);top:max(14px,9cqh);right:max(70px,20cqw);margin:0;display:flex;flex-direction:column;font:clamp(8px,2.1cqw,14px)/1.8 monospace;white-space:pre;overflow:hidden}.boot-line{display:block;clip-path:inset(0 100% 0 0);animation:boot-type .16s steps(18,end) calc(var(--i) * var(--gap) + 60ms) forwards}.boot-line.is-head{color:#e4ecd8}.boot-line.is-say{color:#ccf781;margin-top:.6em}@keyframes boot-type{to{clip-path:inset(0)}}.boot-bar{width:min(100%,32ch);height:1em;margin:.45em 0;border:1px solid #64715d;padding:1px}.boot-bar i{display:block;height:100%;background:repeating-linear-gradient(90deg,#ccf781 0 7px,transparent 7px 10px);transform:scaleX(0);transform-origin:left;animation:boot-load .5s steps(14,end) calc(var(--i) * var(--gap) + .16s) forwards}@keyframes boot-load{to{transform:scaleX(1)}}.boot-caret{display:inline-block;width:.6em;height:1em;margin-left:.35em;vertical-align:-.15em;background:#ccf781;animation:blink 1s steps(1) infinite}.boot-overlay[data-step=reveal]{animation:boot-wipe .4s steps(8,end) forwards}.boot-overlay[data-step=reveal]:before{content:"";position:absolute;left:0;right:0;top:0;z-index:3;height:3px;background:#ccf781;box-shadow:0 0 14px 2px #ccf781aa;animation:boot-edge .4s steps(8,end) forwards}@keyframes boot-wipe{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(100% 0 0 0)}}@keyframes boot-edge{0%{top:0}to{top:100%}}.boot-overlay[data-phase=shutting]{background:transparent}.boot-overlay[data-phase=shutting]:after{opacity:0}.boot-overlay[data-phase=shutting]:is([data-step=log],[data-step=sleep]){animation:boot-dim .3s steps(4,end) forwards}.boot-overlay[data-phase=shutting]:is([data-step=log],[data-step=sleep]):after{opacity:1;transition:opacity .3s steps(3,end)}@keyframes boot-dim{0%{background:#080c0900}to{background:#080c09}}.boot-overlay[data-step=sleep] .boot-log{animation:boot-fade .35s steps(4,end) .4s reverse both}.boot-safe{position:absolute;z-index:1;left:6%;right:6%;top:calc(42% + clamp(64px,22cqh,112px)/2 + max(22px,6cqh));margin:0;text-align:center;font:clamp(9px,2.2cqw,15px)/1.6 monospace;color:#f6b13a;text-shadow:0 0 8px #f6b13a66;animation:boot-fade .25s steps(2,end) .3s both}.monitor-screen[data-power=shutting] .desktop-window{transform-origin:50% 50%;animation:window-fold .22s steps(4,end) calc(var(--close-order,0) * 80ms) forwards}@keyframes window-fold{60%{transform:scaleY(.04);opacity:1}to{transform:scale(0,.02);opacity:0}}.monty-avatar{transform:scale(var(--power-scale,1));transition:transform .5s steps(8,end)}.monty-overlay[data-parking=true] :is(.monty-bubble,.monty-caption,.monty-speech,.monty-scroll-arrow){display:none}.monty-overlay[data-parking=true] .monty-avatar{pointer-events:none}@media(prefers-reduced-motion:reduce){.startup-agent,.monty-avatar{transition:none}.boot-line,.boot-bar i{clip-path:none;transform:none}}.os-shell{position:relative;container-type:size;overflow:hidden}.monty-terminal{height:28px;min-height:28px;box-sizing:border-box;flex-shrink:0;position:relative;z-index:30;font-family:monospace;background:#090e0c;gap:8px}.power-control{margin-left:5px;background:transparent;color:#c6cebb;border:1px solid #59694f;padding:1px 5px;font-size:12px}.monty-terminal form{display:flex;flex:1;min-width:0}.monty-terminal input{font:inherit;color:inherit;background:transparent;border:0;padding:0;min-width:0;width:100%;outline:none;border-radius:0}.monty-terminal input:focus-visible{box-shadow:0 1px #a6b29c}.terminal-user{white-space:nowrap}.monty-terminal time{white-space:nowrap}.system-status{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:9px;color:#bac5af}.system-status span{font-size:9px}.task-tray .show-desktop{background:#1d2719}.task-tray .show-desktop:disabled{opacity:.45;cursor:default}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.desktop-area:has(.desktop-window.maximized.active:not([hidden])){position:static;overflow:visible}.window-layer:has(.desktop-window.maximized.active:not([hidden])){position:static}.desktop-window.maximized.active:not([hidden]){top:0!important;right:0!important;bottom:28px!important;left:0!important;z-index:25!important;margin:0;box-shadow:none}.os-shell:has(.desktop-window.maximized.active:not([hidden])) .task-tray,.os-shell:has(.desktop-window.maximized.active:not([hidden])) .os-header{visibility:hidden}.task-tray{overflow-x:auto;flex-shrink:0}.task-tray button{white-space:nowrap}.agent-highlight{outline:2px solid #d3ecac!important;outline-offset:4px;box-shadow:0 0 16px #b8f58955!important}.monty-avatar{display:block;width:100%;height:100%;border:0;background:none;padding:0;pointer-events:auto;cursor:help;color:inherit}.monty-avatar:hover{filter:none}.monty-avatar .monty-sprite{display:block}.agent-badge{position:absolute;top:2px;right:2px;z-index:3;border:1px solid #bbc7ad;background:#0b100ef2;color:#d1d8c5;padding:2px 4px;font:8px/1 monospace;letter-spacing:.6px;pointer-events:none;box-shadow:1px 1px #0008}.activity-toggle{width:30px;height:30px;border:1px solid #bbc7ad;background:#0b100ef2;color:#d1d8c5;font:18px/1 monospace}.agent-settings-control{position:absolute;left:calc(100% + 8px);bottom:4px;z-index:3;pointer-events:auto;font:11px/1.4 monospace;color:#d1d8c5}.agent-settings-control .activity-toggle{border-radius:50%}.agent-activity-panel{width:100%;max-height:45svh;overflow:auto;background:#10150f;border:1px solid #59694f;padding:8px;font-size:10px;overflow-wrap:anywhere}.agent-activity-panel h3{font-size:10px;margin:9px 0 3px;color:#d9e6ca}.agent-activity-panel p{margin:3px 0}.agent-activity-panel ul{margin:3px 0;padding-left:17px}.agent-activity-panel a{color:#d3ecac}.activity-state strong{text-transform:capitalize}@keyframes activity-spin{to{transform:rotate(360deg)}}.monty-overlay:has(.monty-speech) .monty-bubble{display:none}.monty-overlay[data-agent-state=guiding] .monty-speech{pointer-events:none}.monty-speech{position:absolute;bottom:112%;right:0;width:300px;max-width:calc(100vw - 56px);max-height:min(280px,42svh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9cac8d #11170f;pointer-events:auto;background:#0b100ef5;border:2px solid #bbc7ad;box-shadow:4px 4px #0009;padding:12px;color:#d1d8c5;font:12px/1.6 monospace;overflow-wrap:anywhere;transition:height .18s ease-out}.monty-speech::-webkit-scrollbar{width:7px}.monty-speech::-webkit-scrollbar-track{background:#11170f}.monty-speech::-webkit-scrollbar-thumb{background:#9cac8d;border:1px solid #0b100e}.bubble-right .monty-speech{right:auto;left:0}.speech-below .monty-speech{bottom:auto;top:100%}.monty-speech p{margin:0 0 8px;white-space:pre-wrap}.monty-speech button{font:inherit;background:transparent;color:inherit;border:1px solid #59694f;padding:2px 7px;cursor:pointer}.monty-speech button:disabled{opacity:.35;cursor:default}.speech-actions,.monty-sources{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:5px 0}.monty-sources{font-size:10px}.monty-speech summary{cursor:pointer;font-size:10px}.typing-caret{animation:blink 1s steps(1) infinite}.monty-settings{position:absolute;right:0;bottom:calc(100% + 8px);width:280px;max-width:calc(100vw - 56px);max-height:55svh;overflow:auto;background:#0b100ef5;border:2px solid #bbc7ad;box-shadow:4px 4px #0009;padding:12px;font:11px/1.6 monospace;overflow-wrap:anywhere}.monty-settings h2{font-size:12px;margin:0 0 8px}.monty-settings label{display:flex;align-items:center;gap:6px;margin:8px 0}.monty-settings input{accent-color:#a5b794}.monty-settings button{font:inherit;background:transparent;color:inherit;border:1px solid #59694f;padding:3px 7px;cursor:pointer}.monty-settings p{font-size:10px;color:#96a28a}.monty-settings details{margin-top:10px}.monty-settings .agent-activity-panel{position:static;margin-top:7px;box-shadow:none}.monty-overlay[data-gesture=think] .monty-sprite,.monty-overlay[data-agent-state=observing] .monty-sprite,.monty-overlay[data-agent-state=thinking] .monty-sprite,.monty-overlay[data-agent-state=waking] .monty-sprite{opacity:.8}.monty-overlay[data-agent-state=guiding] .monty-sprite{filter:brightness(1.16)}.monty-overlay[data-visual-state=monty-waking]{filter:brightness(1.28);outline:1px solid #dfffc3;outline-offset:3px;animation:monty-wake .18s steps(2,end) 1}.monty-overlay[data-visual-state=monty-thinking]{filter:none;outline:0}@keyframes monty-wake{0%{filter:brightness(.7)}50%{filter:brightness(1.9)}to{filter:brightness(1.28)}}.monty-overlay[data-gesture=nod] .monty-sprite{animation:monty-nod .35s ease 3}@keyframes monty-nod{50%{transform:translateY(4px)}}@media(max-width:700px){.monty-terminal{font-size:10px}.monty-terminal .terminal-user{font-size:8px}.monty-terminal time{font-size:9px}.desktop-window:not(.active){visibility:hidden}.monty-speech{width:260px;max-width:calc(100vw - 38px)}.monty-settings{max-width:calc(100vw - 38px)}.agent-badge{font-size:7px;padding:2px 3px}}@media(prefers-reduced-motion:reduce){.monty-overlay[data-gesture=nod] .monty-sprite,.activity-toggle.is-active,.monty-overlay[data-visual-state=monty-waking]{animation:none}.monty-overlay[data-visual-state=monty-waking]{filter:brightness(1.28);outline:2px solid #dfffc3}.agent-highlight{transition:none!important;box-shadow:none!important}}.monty-speech.is-guiding{width:240px;padding:7px 9px;max-height:112px;font-size:11px;pointer-events:none}.monty-speech.is-guiding p{margin:0}.monty-speech.is-guiding .typing-caret{display:none}.monty-scroll-arrow{display:none;position:absolute;left:calc(50% - 20px);top:-46px;width:40px;height:40px;align-items:center;justify-content:center;color:#d3ecac;background:#0b100ef2;border:1px solid #829e62;box-shadow:0 2px #000;pointer-events:none}.monty-overlay[data-guide-phase=scroll-cue] .monty-scroll-arrow{display:flex;animation:monty-scroll-pulse 1s ease-in-out infinite}.monty-overlay[data-visibility-direction=above] .monty-scroll-arrow svg{transform:rotate(180deg)}.monty-overlay[data-visibility-direction=left] .monty-scroll-arrow svg{transform:rotate(90deg)}.monty-overlay[data-visibility-direction=right] .monty-scroll-arrow svg{transform:rotate(-90deg)}@keyframes monty-scroll-pulse{50%{border-color:#dcffa8;box-shadow:0 0 9px #b8f27966}}@media(prefers-reduced-motion:reduce){.monty-overlay[data-guide-phase=scroll-cue] .monty-scroll-arrow{animation:none}}@media(prefers-reduced-motion:reduce){.monty-speech{transition:none}.typing-caret{animation:none}}.agent-settings-control{display:flex;flex-direction:column;gap:6px}.history-toggle{display:grid;place-items:center}.network-status{display:inline-flex;align-items:center;justify-content:center}.monty-history{padding:18px 22px;color:#d1d8c5}.monty-history-intro{border-bottom:1px solid #405037;padding-bottom:10px}.monty-history-intro>span{font-size:9px;letter-spacing:1.5px;color:#a6bb93}.monty-history-intro p,.monty-history-empty{font-size:10px;color:#98a58e}.monty-history-lines{list-style:none!important;padding:0!important;margin:0!important}.history-line{padding:14px 12px;border-bottom:1px solid #2e3b27;margin:0!important;overflow-wrap:anywhere}.history-line header{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:1px;color:#b4c79f}.history-line time{margin-left:auto;font-size:9px;color:#839177;letter-spacing:0}.history-line p{white-space:pre-wrap;margin:8px 0!important;font-size:12px}.history-user{background:#1a24163d;border-left:2px solid #718764}.history-monty{border-left:2px solid #b8cf9c}.history-guide-steps{font-size:10px;color:#b7c4aa}.history-sources{display:flex;flex-wrap:wrap;gap:7px;font-size:9px}.history-tools{font-size:10px}.history-pending{font-size:10px;color:#b8cf9c}.monty-history-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;flex-shrink:0;border-top:1px solid #4e6043;background:#141e10;color:#aaba9b;font:9px/1.5 monospace}.monty-token-balance{text-align:right;color:#d4e5c4;font-variant-numeric:tabular-nums}.monty-token-balance small{font:inherit;color:#96a98a}@media(max-width:700px){.monty-history{padding:12px}.history-line{padding:10px 8px}.monty-history-footer{align-items:flex-end;font-size:8px;gap:6px}.monty-history-footer>span:first-child{white-space:nowrap}}@media(max-width:700px){.agent-settings-control{left:calc(100% + 2px)}}.terminal-welcome header{display:flex;align-items:center;justify-content:space-between;color:#a7c18b;font-size:10px}.terminal-welcome header button{border:0;background:none;color:inherit;padding:0 3px;font:16px/1 monospace;cursor:pointer}.terminal-welcome .terminal-welcome-copy{min-height:1.6em;margin:6px 0 9px}.terminal-offer-list{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.terminal-offer-list button{display:flex;align-items:baseline;gap:6px;min-height:26px;border:0;background:none;color:#d4e7c3;padding:3px 0;font:inherit;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.terminal-offer-list button:disabled{opacity:.65;cursor:default}.terminal-offer-list button:hover:not(:disabled),.terminal-offer-list button:focus-visible{color:#efffe0;outline:1px dashed #c9d0c1;outline-offset:2px}.terminal-offer-number{font:inherit}.terminal-welcome small{display:block;margin-top:9px;color:#94a582;font:10px/1.5 monospace}.terminal-type-caret{animation:blink 1s steps(1) infinite}.project-choice-list small{display:block;color:#a2b295;font-size:10px;line-height:1.5;margin-bottom:6px}.monty-avatar{cursor:grab;touch-action:none}.monty-overlay.is-dragging .monty-avatar{cursor:grabbing}.monty-overlay.is-dragging{filter:drop-shadow(0 6px 6px #000a)}.monty-speech-close{position:sticky;top:0;float:right;z-index:2;width:20px;height:20px;margin:-6px -6px 4px 8px;padding:0;display:grid;place-items:center;font:14px/1 monospace;color:#b4c79f;background:#0b100e;border:1px solid #59694f;cursor:pointer}.monty-speech-close:hover,.monty-speech-close:focus-visible{color:#ccf781;border-color:#ccf781}.monty-history-lines{display:flex;flex-direction:column;gap:12px;padding:14px 0!important}.history-line{display:flex;align-items:flex-end;gap:8px;padding:0!important;border:0!important;background:none!important}.history-user{justify-content:flex-start}.history-monty{justify-content:flex-end}.history-monty .history-avatar{order:2;flex:none;display:block;width:34px;height:34px;image-rendering:pixelated}.history-bubble{max-width:78%;padding:9px 12px;border:1px solid #405037;background:#141b12}.history-user .history-bubble{border-color:#59694f;background:#1d2719;border-bottom-left-radius:0}.history-monty .history-bubble{border-color:#7e9a62;background:#1a2614;box-shadow:inset 0 0 0 1px #ccf78114}.history-bubble header{gap:10px}.history-monty .history-bubble header strong{color:#ccf781}.history-bubble p{margin:6px 0 0!important}.history-pending{text-align:right}@media(max-width:700px){.history-bubble{max-width:88%}}.system-status{gap:10px}.status-item{position:relative;display:inline-flex;align-items:center;gap:5px;padding:0;background:none;border:0;color:inherit;font:inherit}.status-item:focus-visible{outline:1px dashed #ccf781;outline-offset:3px}.status-item:after{content:attr(data-hint);position:absolute;right:0;bottom:calc(100% + 8px);z-index:5;padding:3px 7px;font:10px/1.3 monospace;letter-spacing:.3px;width:max-content;max-width:260px;white-space:normal;text-align:left;color:#d1d8c5;background:#0b100ef2;border:1px solid #59694f;box-shadow:2px 2px #0009;opacity:0;pointer-events:none;transition:opacity .15s}.status-item:hover:after,.status-item:focus-visible:after{opacity:1}.monty-link rect{opacity:.22}.monty-link .is-lit{opacity:1}.monty-link[data-link=live]{color:#ccf781}.monty-link[data-link=local]{color:#f6b13a}.monty-link[data-link=offline]{color:#8a9184}.monty-link[data-link=offline] .link-cut{color:#e2674f}.monty-link[data-link=checking] .is-lit{animation:link-blink 1s steps(1) infinite}.monty-link[data-transmitting] rect.is-lit{animation:link-pulse .9s steps(1) infinite}.monty-link[data-transmitting] rect.is-lit:nth-of-type(2){animation-delay:.3s}.monty-link[data-transmitting] rect.is-lit:nth-of-type(3){animation-delay:.6s}@keyframes link-blink{50%{opacity:.22}}@keyframes link-pulse{0%,30%{opacity:1}31%,to{opacity:.3}}.token-battery{cursor:pointer;--cell:#ccf781}.token-battery[data-level=mid]{--cell:#f6b13a}.token-battery[data-level=low]{--cell:#e2674f}.token-battery:hover{filter:none}.token-battery:hover .battery-text{color:#e9f0de}.battery-cell{position:relative;margin-right:4px;width:22px;height:10px;padding:1px;border:1px solid #bac5af;box-sizing:border-box}.battery-cell:after{content:"";position:absolute;right:-4px;top:2px;width:2px;height:4px;background:#bac5af}.battery-cell i{position:absolute;top:1px;bottom:1px;left:1px;display:block;max-width:calc(100% - 2px)}.battery-fill{background:var(--cell);transition:width .4s steps(5,end)}.battery-reserved{background:repeating-linear-gradient(90deg,var(--cell) 0 2px,transparent 2px 3px);animation:link-blink .8s steps(1) infinite}.token-battery[data-level=low] .battery-fill{animation:battery-low 2s steps(2,end) infinite}@keyframes battery-low{50%{opacity:.35}}.battery-text{font-size:9px;min-width:3.2ch;text-align:left}@media(prefers-reduced-motion:reduce){.monty-link .is-lit,.battery-reserved,.battery-fill{animation:none!important;transition:none}}@media(max-width:700px){.system-status{gap:7px}.battery-text{display:none}}.monty-avatar{transform:translate(var(--bob-x,0px),var(--bob-y,0px))}@font-face{font-family:Fusion Pixel;src:url(/fonts/fusion-pixel/fusion-pixel-12px-proportional-zh_hans.ttf.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Fusion Pixel Mono;src:url(/fonts/fusion-pixel/fusion-pixel-12px-monospaced-zh_hans.ttf.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--font-ui:"Fusion Pixel",sans-serif;--font-terminal:"Fusion Pixel Mono",monospace;font-family:var(--font-ui);font-synthesis:none}button,input,textarea,select{font-family:inherit}.boot-copy,.boot-skip,.window-controls button,.monty-speech{font-family:var(--font-ui)}.monty-terminal,.markdown-content code,.markdown-content pre{font-family:var(--font-terminal)}.os-header,.window-title,.content-tabs button,.folder,.window-toolbar,.window-footer{font-size:12px;font-weight:400}.folder{font-size:10px;line-height:1.2}.desktop-greeting h1{font-size:36px;font-weight:400;line-height:1.3}.desktop-greeting h1 span,.desktop-greeting p,.desktop-instruction{font-size:12px;letter-spacing:1px}.content-scroll{font-size:12px;line-height:1.8}.content-scroll h1,.profile-header h1,.collection-header h1{font-size:24px;font-weight:400;line-height:1.4}.content-scroll h2{font-size:18px;font-weight:400;line-height:1.5}.content-scroll h3,.project-entry h2{font-size:12px;font-weight:400;line-height:1.6}.profile-focus p,.project-entry p,.project-read,.project-summary,.profile-intro,.collection-header p{font-size:12px;line-height:1.8}.monty-terminal{font-size:12px}.monty-terminal .terminal-user,.monty-terminal time{font-size:12px}.monty-speech{font-size:12px;line-height:1.6}@media(max-width:700px){.os-header,.window-title,.content-tabs button,.window-toolbar,.window-footer{font-size:10px}.monty-terminal,.monty-terminal .terminal-user,.monty-terminal time{font-size:10px}.desktop-greeting h1{font-size:24px}.window-toolbar,.window-footer{gap:4px}.window-title{overflow-wrap:anywhere}}
