.experience-terminal{background:#07140f;color:#b6efc4;font:12px/1.85 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:relative;isolation:isolate}.experience-terminal:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 3px,#9eefaa05 3px 4px)}.experience-terminal-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 17px;background:#14291f;border-block:1px solid #3f7651;color:#b4cdb7;font-size:9px}.experience-terminal-bar>span:first-child{display:flex;align-items:center;gap:9px;min-width:0;overflow-wrap:anywhere}.experience-terminal-bar>span:last-child{flex-shrink:0;font-size:8px;color:#77b58a}.experience-terminal-command{padding:21px 21px 10px;font-size:11px;color:#91cfa0;overflow-wrap:anywhere}.experience-terminal-command>span{color:#6fff98}.experience-terminal-output{padding:8px 21px 22px}.experience-terminal-line{display:flex;align-items:baseline;gap:13px;margin-bottom:19px}.terminal-line-number{font-size:9px;color:#6c9a79;flex-shrink:0}.terminal-line-text{position:relative;flex:1;min-width:0;overflow-wrap:anywhere}.terminal-reserved{visibility:hidden;display:block}.terminal-typed{position:absolute;top:0;right:0;bottom:0;left:0}.terminal-pending .terminal-line-number{opacity:.3}.terminal-cursor{display:inline-block;vertical-align:-.12em;width:.62em;height:1.15em;margin-left:3px;background:#71ff8f;box-shadow:0 0 10px #71ff8f77;animation:career-cursor 1s steps(1) 6}.terminal-complete{color:#79e497;font-size:10px;line-height:2.2}.terminal-prompt{color:#9dcaaa}.experience-terminal-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #31543e;padding:10px 17px;color:#91bb9d;font-size:9px}.experience-terminal-footer button{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #5b986c;color:#c1f5ce;background:#14291f}.experience-terminal-footer button:hover{background:#254d32}.experience-terminal-footer button:focus-visible{outline:2px solid #87ffa5;outline-offset:3px}.career-document .document-summary>svg:first-child{fill:none}.career-featured .experience-terminal{box-shadow:inset 3px 0 #6add8d}@keyframes career-cursor{50%{opacity:0}}@media (max-width: 700px){.experience-terminal{font-size:11px}.experience-terminal-output{padding-inline:14px}.experience-terminal-command{padding-inline:14px;font-size:9px}.experience-terminal-bar{padding-inline:12px}.experience-terminal-bar>span:last-child{display:none}.experience-terminal-line{gap:9px}}@media (prefers-reduced-motion: reduce){.terminal-cursor{animation:none}}.archive-grid .archive-file:first-child{grid-column:1 / -1}.archive-grid .archive-file:first-child .archive-preview{height:clamp(240px,32vw,390px)}.archive-grid .archive-file:first-child .archive-file-copy>strong{font-size:clamp(30px,4vw,44px);min-height:0}.archive-grid .archive-file:first-child .archive-description{max-width:800px}.archive-grid .archive-file{transform-style:preserve-3d}.archive-grid .archive-preview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,#ffffff20 48%,transparent 65%);transform:translate(-120%)}.archive-grid .archive-open:hover .archive-preview:after,.archive-grid .archive-open:focus-visible .archive-preview:after{animation:archive-preview-sweep .8s ease-out}@keyframes archive-preview-sweep{to{transform:translate(120%)}}@media (prefers-reduced-motion: reduce){.archive-grid .archive-open:hover .archive-preview:after,.archive-grid .archive-open:focus-visible .archive-preview:after{animation:none}}.project-archive{padding:38px 32px;color:#eeeadd;overflow:hidden;background:radial-gradient(ellipse at 90% 5%,#9d80c027,transparent 55%)}.archive-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:35px}.archive-heading h1{font-size:clamp(36px,4.5vw,66px);font-weight:500;line-height:1.03;letter-spacing:-.055em;margin:22px 0}.archive-heading h1 em{font-style:normal;color:#c9b7e6}.archive-heading>div>p:last-child{font-size:12px;line-height:1.9;color:#c2c9c9}.archive-launch{width:230px;height:205px;flex-shrink:0;position:relative;display:grid;place-items:end center;perspective:800px}.archive-fan{position:absolute;top:25px;left:78px;width:78px;height:95px;display:grid;place-items:center;background:#a9d3c9;color:#263b39;border:2px solid #203238;box-shadow:4px 5px #0c192953}.archive-fan small{font:8px ui-monospace,monospace}.fan-1{background:#e0c88f}.fan-2{background:#c9b3df}.archive-big-folder{position:relative;width:190px;height:117px;border:2px solid #615074;border-radius:3px 18px 4px 4px;background:linear-gradient(130deg,#d2bce6,#a993c5);color:#403454;box-shadow:inset 2px 2px #f1dffa,7px 8px #111f2555;display:flex;align-items:center;justify-content:center;flex-direction:column;transform-origin:bottom}.archive-big-folder span{font:10px ui-monospace,monospace}.archive-finder{border:2px solid #152727;box-shadow:6px 7px #111c225c;background:#273740}.archive-titlebar,.archive-toolbar,.archive-subtoolbar,.archive-status{display:flex;align-items:center;gap:12px;padding:10px 14px;font:10px ui-monospace,monospace}.archive-titlebar{background:#d1d1bf;color:#33413b;border-bottom:2px solid #26372f}.archive-square{width:11px;height:11px;border:1px solid currentColor;box-shadow:inset 1px 1px #ffffce;flex-shrink:0}.archive-stripes{flex:1;height:14px;background:repeating-linear-gradient(0deg,transparent 0 2px,#65705d60 2px 3px)}.archive-toolbar{background:#b9c3b3;color:#293e32;border-bottom:1px solid #67766a;flex-wrap:wrap}.archive-toolbar label,.archive-subtoolbar label{display:flex;align-items:center;gap:8px}.archive-toolbar select,.archive-subtoolbar select{max-width:175px;padding:7px;color:#293e32;background:#e2e3d0;border:1px solid #74826c;border-radius:1px}.archive-view-controls{display:flex}.archive-view-controls button,.archive-subtoolbar button{display:inline-grid;place-items:center;min-width:34px;min-height:32px;border:1px solid #6d7c68;background:#d1d6c5;color:#334639;box-shadow:inset 1px 1px #edf2d8}.archive-view-controls button[aria-pressed=true]{background:#4e625a;color:#f0efd7;box-shadow:inset 2px 2px #253c36}.archive-search{margin-left:auto;background:#e5e6d7;padding:0 9px;border:1px solid #72816b}.archive-search input{width:165px;min-width:0;padding:9px 0;background:transparent;outline-offset:2px}.archive-search input::-moz-placeholder{color:#586953}.archive-search input::placeholder{color:#586953}.archive-subtoolbar{color:#cdd6c7;justify-content:space-between;flex-wrap:wrap}.archive-subtoolbar select{padding:4px}.archive-subtoolbar>div{display:flex;gap:5px}.archive-gallery{padding:40px 24px 27px;gap:28px;background-image:linear-gradient(#bcc8ca08 1px,transparent 1px),linear-gradient(90deg,#bcc8ca08 1px,transparent 1px);background-size:24px 24px;perspective:1400px}.archive-shelf{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#a4b6ac #1d2e35;scrollbar-width:thin;cursor:grab}.archive-shelf:active{cursor:grabbing}.archive-file{min-width:0;position:relative}.archive-shelf .archive-file{flex:0 0 330px}.archive-open{width:100%;height:100%;display:flex;flex-direction:column;text-align:left;position:relative;border:2px solid #243633;background:var(--file-accent);color:#283630;box-shadow:5px 6px #09192266,inset 1px 1px #ffffff70;transition:transform .25s,box-shadow .25s;transform:perspective(900px) rotateX(var(--pull-y, 0deg)) rotateY(var(--pull-x, 0deg))}.archive-open:hover,.archive-open:focus-visible{transform:perspective(900px) translateY(-7px) rotateX(var(--pull-y, 0deg)) rotateY(var(--pull-x, 0deg));box-shadow:8px 13px #09192266,0 0 0 2px var(--file-accent),0 0 28px #c5bae01f}.archive-tab{display:flex;align-items:center;gap:6px;position:absolute;bottom:100%;left:-2px;height:24px;padding:0 12px;background:var(--file-accent);border:2px solid #243633;border-bottom:0;border-radius:5px 12px 0 0;font:8px ui-monospace,monospace}.archive-file-chrome{width:100%;display:flex;align-items:center;gap:9px;padding:10px 12px;font:9px ui-monospace,monospace;border-bottom:1px solid #344f4260}.archive-file-chrome>svg{margin-left:auto}.archive-preview{width:100%;height:195px;background:#172930;overflow:hidden;position:relative;border-bottom:2px solid #324b40}.archive-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .6s;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.archive-open:hover .archive-preview img{transform:scale(1.045)}.archive-preview-label{position:absolute;bottom:10px;right:10px;background:#e8e9d8;padding:8px 10px;display:flex;gap:10px;font:9px ui-monospace,monospace;border:1px solid #263c34;transform:translateY(50px);transition:transform .25s}.archive-open:hover .archive-preview-label,.archive-open:focus-visible .archive-preview-label{transform:translateY(0)}.archive-file-copy{padding:21px 19px;display:flex;flex-direction:column;gap:13px;flex:1}.archive-file-copy small{font:8px ui-monospace,monospace;letter-spacing:.09em}.archive-file-copy>strong{font-size:25px;font-weight:550;line-height:1.07;letter-spacing:-.04em;min-height:54px}.archive-description{font-size:11px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.archive-metadata{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}.archive-metadata>span{border:1px solid #344c3c55;padding:4px 6px;font:8px ui-monospace,monospace}.archive-open:hover .archive-metadata{animation:archive-decode .35s steps(5)}@keyframes archive-decode{0%{opacity:.25;filter:blur(2px);transform:translate(4px)}to{opacity:1;filter:blur(0);transform:translate(0)}}.archive-file-footer{width:100%;display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid #344f4240;background:#ffffff18;font:8px ui-monospace,monospace}.archive-file-footer>span:last-child{margin-left:auto}.archive-object-2 .archive-open{border-radius:0 15px 0 0}.archive-object-2 .archive-preview{margin:10px auto 0;width:calc(100% - 30px);border:2px solid #33453e;border-radius:3px}.archive-object-3 .archive-file-copy{background:#f1eed37d}.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 25px}.archive-list{display:grid;gap:15px}.archive-list .archive-tab{display:none}.archive-list .archive-open{display:grid;grid-template-columns:145px 1fr}.archive-list .archive-file-chrome{grid-column:1 / -1}.archive-list .archive-preview{height:100%;min-height:130px;width:100%;margin:0}.archive-list .archive-file-copy{padding:15px}.archive-list .archive-file-copy>strong{font-size:20px;min-height:0}.archive-list .archive-file-footer{grid-column:1 / -1}.archive-list .archive-description{-webkit-line-clamp:2}.archive-status{justify-content:space-between;border-top:1px solid #597064;color:#c4d1bd;font-size:8px}.archive-status>span:first-child{display:flex;align-items:center;gap:7px}.archive-status i{width:6px;height:6px;background:#b8d68b;box-shadow:0 0 7px #b8d68b77}.archive-empty{padding:30px;text-align:center;width:100%;grid-column:1 / -1}.archive-empty svg{margin:0 auto 15px}.archive-empty h2{font-size:25px}.archive-empty p{margin:12px 0}.archive-empty button{display:inline-flex;align-items:center;gap:12px;padding:12px;border:1px solid #aaba9f}.archive-empty button svg{margin:0}.archive-dialog{padding:0;background:transparent;color:#eeeadd;border:0;width:min(1000px,calc(100vw - 50px));max-width:none;max-height:calc(100svh - 145px);overflow:auto;overscroll-behavior:contain}.archive-dialog::backdrop{background:#101c276b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.archive-case{background:#27353d;border:2px solid #bec8b4}.archive-case-toolbar{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#ccd2bf;color:#2e4035;padding:9px 13px;font:10px ui-monospace,monospace;border-bottom:2px solid #233a2c}.archive-case-toolbar button{display:flex;align-items:center;gap:9px;min-height:30px}.archive-case-image{background:#152630;max-height:450px;overflow:hidden}.archive-case-image img{width:100%;max-height:450px;-o-object-fit:contain;object-fit:contain}.archive-case-body{padding:35px}.archive-case-body h2{font-size:clamp(30px,4vw,55px);line-height:1.05;letter-spacing:-.04em;margin:20px 0}.archive-case-body>p{line-height:1.85;max-width:720px}.archive-case-tech{margin:25px 0;display:flex;align-items:center;flex-wrap:wrap;gap:9px;font:10px ui-monospace,monospace}.archive-case-tech span{padding:6px 9px;border:1px solid #7c9488;color:#d0dfc5}.archive-case-links{display:flex;flex-wrap:wrap;gap:15px}.archive-case-links a,.archive-return{display:inline-flex;align-items:center;gap:14px;padding:12px 16px;background:#d3c1e5;color:#303640;border:1px solid #eddbfb;font:11px ui-monospace,monospace}.archive-case-screens{display:grid;gap:28px;margin:35px 0}.archive-case-screens figure{border:1px solid #768b83;background:#1c2b33}.archive-case-screens img{width:100%;max-height:650px;-o-object-fit:contain;object-fit:contain}.archive-case-screens figcaption{padding:18px;font-size:12px;line-height:1.8;background:#d0d5bf;color:#324137}.archive-case-screens figcaption span{display:block;font:9px ui-monospace,monospace;margin-bottom:9px}.archive-video{width:100%;aspect-ratio:16 / 9;margin-top:30px;border:1px solid #7c9488}.project-archive :is(button,a,select,input):focus-visible,.archive-gallery:focus-visible,.archive-dialog :is(button,a):focus-visible{outline:3px solid #e8c578;outline-offset:3px}@media (max-width: 1000px){.archive-launch{width:180px;transform:scale(.85);transform-origin:right center}.archive-heading h1{font-size:42px}.archive-heading{gap:0}.archive-toolbar{gap:9px}.archive-search{margin-left:0;flex:1}.archive-search input{width:100%}}@media (max-width: 700px){.project-archive{padding:28px 15px}.archive-heading{align-items:flex-start;position:relative}.archive-heading h1{font-size:clamp(34px,8vw,48px)}.archive-heading>div>p:last-child{max-width:240px}.archive-launch{width:95px;transform:scale(.48);transform-origin:right top;margin-top:45px;margin-left:-40px}.archive-heading .system-label{font-size:7px}.archive-titlebar{font-size:9px;gap:8px}.archive-titlebar>span:last-child{font-size:8px}.archive-subtoolbar{font-size:8px;gap:8px}.archive-subtoolbar select{max-width:125px}.archive-gallery{padding:38px 16px 25px}.archive-shelf .archive-file{flex-basis:min(290px,82vw)}.archive-grid{grid-template-columns:1fr}.archive-list .archive-open{grid-template-columns:85px 1fr}.archive-list .archive-file-copy>strong{font-size:18px}.archive-list .archive-description{display:none}.archive-status>span:last-child{max-width:130px;text-align:right;line-height:1.5}.archive-dialog{width:calc(100vw - 24px);max-height:calc(100svh - 110px)}.archive-case-toolbar>span{display:none}.archive-case-body{padding:24px 18px}.desktop-dock{max-width:calc(100vw - 16px)}}@media (max-width: 400px){.desktop-dock{gap:5px;padding-inline:8px}.desktop-dock .dock-app{width:32px;height:34px}.desktop-dock .dock-app svg{width:22px}}@media (prefers-reduced-motion: reduce){.archive-open,.archive-preview img,.archive-preview-label{transition:none}.archive-open:hover,.archive-open:focus-visible,.archive-open:hover .archive-preview img{transform:none}.archive-open:hover .archive-metadata{animation:none}}.retro-awards{color:#eed;padding:clamp(22px,4vw,52px);max-width:1450px;margin:auto}.retro-awards *,.ra-dialog *{box-sizing:border-box}.ra-heading{max-width:660px;margin-bottom:28px}.ra-eyebrow,.ra-date,.ra-object-meta,.ra-toolbar,.ra-titlebar,.ra-status,.ra-open,.ra-tags,.ra-links,.ra-dialog-footer,.ra-unlocked,.ra-certificate-note{font-family:ui-monospace,Courier New,monospace}.ra-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.13em}.ra-heading>.ra-eyebrow{color:#bcc9b5;margin:0 0 20px}.ra-heading h1{font-size:clamp(46px,6.5vw,86px);line-height:.98;letter-spacing:-.06em;font-weight:600;margin:0 0 24px}.ra-heading h1 em{color:#c8c797;font-family:Georgia,serif;font-weight:400}.ra-heading>p:last-child{max-width:460px;color:#c4ccc0;font-size:14px;line-height:1.8}.ra-notification{display:flex;align-items:center;gap:14px;background:#d6d8c6;color:#293a32;border:2px solid #182522;box-shadow:inset 1px 1px #ffffe5,4px 4px #17232380;padding:12px 14px;margin-bottom:30px;max-width:640px}.ra-notice-icon{border:1px solid #657760;padding:8px;background:#bbc7a9}.ra-notification strong,.ra-notification div>span{display:block}.ra-notification strong{font-size:12px;margin-bottom:4px}.ra-notification div>span{font:11px/1.6 ui-monospace,monospace}.ra-notification button{margin-left:auto;flex-shrink:0}.ra-notification button,.ra-titlebar button{display:grid;place-items:center;min-height:36px;min-width:36px;color:inherit;background:transparent;border:1px solid #77816b;cursor:pointer}.ra-cabinet{border:2px solid #172320;box-shadow:6px 7px #101c1c66;background:#252f30}.ra-titlebar{display:flex;align-items:center;gap:12px;background:#bfc2b3;color:#29382e;padding:9px 12px;border-bottom:2px solid #202a25;box-shadow:inset 1px 1px #edf0d9;font-size:11px;font-weight:700}.ra-square{height:12px;width:12px;border:1px solid #43503d;box-shadow:inset 1px 1px #f1f0d7}.ra-stripes{flex:1;height:13px;background:repeating-linear-gradient(0deg,#6c7768 0 1px,transparent 1px 3px);opacity:.6}.ra-toolbar,.ra-status{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:10px;padding:12px 16px;color:#c5cebe}.ra-toolbar{border-bottom:1px solid #657160}.ra-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.ra-gold{--ra-accent: #dfc87d;--ra-paper-accent: #756022}.ra-blue{--ra-accent: #a7c8d9;--ra-paper-accent: #3a6078}.ra-sage{--ra-accent: #b9cc97;--ra-paper-accent: #506834}.ra-exhibit{min-width:0;border-right:1px solid #627063;display:flex;flex-direction:column}.ra-exhibit:last-child{border-right:0}.ra-object{color:var(--ra-accent);width:100%;border:0;border-bottom:7px ridge #929b86;background:radial-gradient(ellipse at 50% 40%,#7f8c7929,transparent 68%),repeating-linear-gradient(0deg,transparent 0 3px,#0000000b 3px 4px);padding:16px 18px 18px;cursor:pointer;text-align:center}.ra-object-meta{display:flex;justify-content:space-between;font-size:9px;color:#c0c8b8;text-transform:uppercase;letter-spacing:.1em}.ra-art{position:relative;display:grid;place-items:center;height:175px;isolation:isolate}.ra-art>svg{width:86px;height:86px;filter:drop-shadow(5px 7px 0 #101d1d);transition:transform .35s ease}.ra-halo{position:absolute;width:132px;height:132px;border:1px dotted var(--ra-accent);border-radius:50%;opacity:.25;transition:opacity .3s}.ra-pedestal{position:absolute;bottom:20px;width:106px;height:8px;background:#131f20;box-shadow:0 3px #a5ae9255;z-index:-1}.ra-placement{display:block;min-height:38px;font-size:14px;font-weight:600}.ra-open{display:flex;justify-content:center;align-items:center;gap:6px;font-size:10px;color:#cbd3c3}.ra-object:hover .ra-art>svg,.ra-object:focus-visible .ra-art>svg{transform:translateY(-7px) rotate(-5deg)}.ra-object:hover .ra-halo,.ra-object:focus-visible .ra-halo{opacity:.65}.ra-object:hover .ra-open,.ra-object:focus-visible .ra-open{color:var(--ra-accent);text-decoration:underline}.ra-caption{padding:22px 18px;display:flex;flex-direction:column;flex:1;transition:background .25s}.ra-exhibit:hover .ra-caption,.ra-exhibit:focus-within .ra-caption{background:#35403d}.ra-date{color:var(--ra-accent);font-size:10px;margin:0 0 10px}.ra-caption h2{font-size:23px;line-height:1.2;letter-spacing:-.035em;margin:0 0 10px;color:#eeeedb;overflow-wrap:anywhere}.ra-event{color:#d0d6c8;font-size:12px;margin:0 0 15px}.ra-description{font-size:12px;line-height:1.85;color:#c3ccbe;margin:0 0 20px}.ra-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 20px}.ra-tags li{font-size:9px;line-height:1.5;padding:4px 6px;border:1px solid #74806c}.ra-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.ra-links a{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:10px;min-height:38px;padding:8px 10px;background:#c5cab7;color:#26372f;border:1px solid #15261f;box-shadow:inset 1px 1px #f0f1d9,2px 2px #101e1b;text-decoration:none}.ra-links a:hover{background:#e1e4cb;text-decoration:underline}.ra-unavailable{font-size:10px;color:#b9c3b2;line-height:1.7}.ra-status{border-top:1px solid #657160;background:#303b37;font-size:9px}.retro-awards button:focus-visible,.retro-awards a:focus-visible,.ra-dialog button:focus-visible,.ra-dialog a:focus-visible{outline:3px solid #eed78b;outline-offset:3px}.ra-object:focus-visible{outline-offset:-5px!important}.ra-dialog{padding:0;width:min(590px,calc(100% - 28px));max-height:calc(100dvh - 32px);margin:auto;overflow:auto;overscroll-behavior:contain;border:2px solid #17231f;background:#e9e8d6;color:#2c392f;box-shadow:8px 10px #101c1c80,0 24px 90px #0007}.ra-dialog::backdrop{background:#142020c9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ra-certificate{position:relative;text-align:center;margin:18px;border:3px double #8e967b;padding:25px clamp(16px,4vw,36px);overflow:hidden}.ra-unlocked{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ra-paper-accent);font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin:0 0 20px}.ra-seal{margin:0 auto 20px;color:var(--ra-paper-accent)}.ra-certificate .ra-eyebrow{font-size:9px;color:#5d6854;margin:0 0 12px}.ra-certificate h2{font:500 clamp(28px,5vw,42px)/1.15 Georgia,serif;letter-spacing:-.035em;color:var(--ra-paper-accent);margin:0 0 18px}.ra-certificate-project{font-size:19px;font-weight:600;line-height:1.3;margin:0 0 8px}.ra-certificate-event{font:11px/1.7 ui-monospace,monospace;color:#52614c;margin-bottom:20px}.ra-certificate p[id]{font-size:13px;line-height:1.8;margin-bottom:20px}.ra-certificate .ra-tags,.ra-certificate .ra-links{justify-content:center}.ra-certificate .ra-unavailable{color:#52614c}.ra-certificate-note{font-size:9px;line-height:1.7;color:#626b56;margin:24px 0 0}.ra-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px 18px;font-size:10px}.ra-dialog-footer button{min-height:42px;padding:8px 14px;border:2px solid #354630;background:#c6ccb5;color:#293a2c;box-shadow:inset 1px 1px #fafbe3,2px 2px #6e795e;cursor:pointer}.ra-dialog button:focus-visible,.ra-dialog a:focus-visible{outline-color:#375d67}.ra-particles{position:absolute;top:106px;left:50%;pointer-events:none}.ra-particles i{position:absolute;width:5px;height:5px;background:var(--ra-paper-accent);opacity:0;animation:ra-pixel-burst .85s var(--delay) ease-out both}@keyframes ra-pixel-burst{0%{opacity:0;transform:translate(0)}15%{opacity:.85}to{opacity:0;transform:translate(var(--x),var(--y)) rotate(90deg)}}@media (max-width: 1050px){.ra-grid{grid-template-columns:1fr}.ra-exhibit{display:grid;grid-template-columns:minmax(190px,.75fr) minmax(0,1fr);border-right:0;border-bottom:1px solid #627063}.ra-exhibit:last-child{border-bottom:0}.ra-object{border-bottom:0;border-right:7px ridge #929b86}.ra-art{height:160px}}@media (max-width: 560px){.retro-awards{padding:26px 16px}.ra-exhibit{display:flex}.ra-object{border-right:0;border-bottom:7px ridge #929b86}.ra-caption{padding:22px}.ra-heading h1{font-size:56px}.ra-notification{gap:9px;padding:10px}.ra-notice-icon{display:none}.ra-toolbar,.ra-titlebar{font-size:9px}.ra-certificate{margin:10px}.ra-status>span:last-child{display:none}}@media (prefers-reduced-motion: reduce){.retro-awards *,.ra-dialog *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ra-object:hover .ra-art>svg,.ra-object:focus-visible .ra-art>svg{transform:none}.ra-particles{display:none}}.desktop-world{--desk-cream: #e9e3d6;--desk-muted: #a9aba7;--desk-blue: #a4b8c8;--desk-green: #a7bca3;min-height:100svh;padding:77px 6% 104px;position:relative;isolation:isolate;color:var(--desk-cream);font-size:13px}.desktop-wallpaper{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-3;overflow:hidden;background:#1b2025}.ambient-light{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 7% 12%,#66555044,transparent 55%),radial-gradient(ellipse at 94% 85%,#55546638,transparent 50%),linear-gradient(145deg,#28323430,transparent)}.wallpaper-grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.4' filter='url(%23n)'/%3E%3C/svg%3E")}.wallpaper-1 .desktop-wallpaper{background:#252a27}.wallpaper-2 .desktop-wallpaper{background:#29252b}.desktop-menu{position:fixed;inset:0 0 auto;height:35px;display:flex;align-items:center;gap:25px;padding:0 24px;z-index:60;background:#202326f5;border-bottom:1px solid #dad3bb16;font-size:11px;color:#c5c6be}.desktop-menu button{padding:5px 2px}.desktop-monogram{font-size:20px;letter-spacing:-.1em;font-weight:650;color:#e6dfcd}.desktop-menu strong{font-weight:500}.menu-right{margin-left:auto;display:flex;align-items:center;gap:19px}.menu-right time{font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.menu-right time span{margin-left:14px}.desktop-caption{display:flex;justify-content:space-between;position:absolute;top:52px;left:6%;right:6%;color:#b0b0a7;font:10px ui-monospace,monospace}.desktop-caption span:last-child{font-family:Georgia,serif;font-style:italic;font-size:12px}.desktop-shortcuts{display:none}.portfolio-window{max-width:1440px;margin:auto;height:calc(100svh - 184px);min-height:620px;border-radius:10px;border:1px solid #ccc3a637;background:#24272b;box-shadow:0 24px 65px #0005,0 2px 5px #0003;overflow:hidden;display:flex;flex-direction:column;transition:height .25s,max-width .25s}.window-expanded{padding:47px 14px 95px}.window-expanded .portfolio-window{max-width:none;height:calc(100svh - 145px)}.window-expanded .desktop-caption{display:none}.window-toolbar{height:49px;flex-shrink:0;display:flex;align-items:center;gap:17px;padding:0 18px;background:#303236;border-bottom:1px solid #080c1360;box-shadow:inset 0 1px #ffffff08}.window-lights{display:flex;gap:8px;width:74px;flex-shrink:0}.window-lights button{width:12px;height:12px;border-radius:50%;display:grid;place-items:center;border:1px solid #0002}.light-red{background:#bd827b}.light-yellow{background:#c7ad71}.light-green{background:#8ea889}.window-lights svg{width:8px;height:8px;color:#282a25;opacity:0}.window-lights:hover svg,.window-lights button:focus-visible svg{opacity:1}.sidebar-toggle{padding:6px;color:#b4b5ab}.window-breadcrumb{display:flex;align-items:center;gap:12px;font-size:11px;color:#aaa99f}.window-breadcrumb strong{color:#e3dece;font-weight:500}.window-breadcrumb svg{color:#a1b3c2}.toolbar-search{margin-left:auto;display:flex;align-items:center;gap:9px;color:#b0b1aa;background:#272a2e;border:1px solid #d5ceba15;border-radius:5px;padding:6px 10px;font-size:10px}.toolbar-search kbd{font-family:inherit;margin-left:20px;font-size:9px}.window-layout{display:flex;flex:1;min-height:0}.desktop-sidebar{width:190px;flex-shrink:0;border-right:1px solid #c9c1ab14;background:#25292c;padding:26px 12px 16px;display:flex;flex-direction:column;overflow-y:auto}.sidebar-profile{display:flex;align-items:center;gap:10px;margin:0 6px 29px}.sidebar-profile img{width:34px;height:34px;border-radius:8px;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 30%;object-position:50% 30%;filter:saturate(.7)}.sidebar-profile strong{font-size:11px;display:block;font-weight:500}.sidebar-profile span{font-size:8px;color:#a1a69e;display:block;margin-top:4px}.sidebar-label{font-size:8px;letter-spacing:.12em;color:#989e96;margin:0 12px 10px}.desktop-sidebar nav{margin-bottom:24px}.desktop-sidebar nav button,.desktop-sidebar>a{display:flex;align-items:center;gap:10px;width:100%;font-size:11px;color:#b5b9af;padding:10px 12px;border-radius:5px;margin-bottom:3px;transition:background .2s,color .2s;text-align:left}.desktop-sidebar nav button:hover,.desktop-sidebar>a:hover{background:#e8e0c708;color:#eee8d9}.desktop-sidebar nav button.active{color:#e6e7da;background:#a6b79919;box-shadow:inset 2px 0 #a4b89c}.desktop-sidebar small{margin-left:auto;font-size:9px;color:#abb2a6}.desktop-sidebar>a svg:last-child{margin-left:auto}.icon-blue{color:#9bafc1}.icon-purple{color:#b1a1b5}.icon-orange{color:#bfaa93}.icon-cyan{color:#9db6ab}.icon-yellow{color:#c3b38f}.icon-silver{color:#bdbdb3}.sidebar-bottom{margin:auto 9px 4px;padding-top:24px;font-size:9px;color:#aab0a6}.sidebar-bottom .status-dot{display:inline-block;margin-right:6px;background:#9db292;box-shadow:none}.sidebar-bottom small{display:block;line-height:1.9;margin:14px 0 0;font-size:9px;color:#979e94}.desktop-content{flex:1;min-width:0;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth;background:#202429;scrollbar-width:thin;scrollbar-color:#adb2a338 transparent}.desktop-content:focus-visible{outline-offset:-4px}.window-status{height:25px;padding:0 15px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ded3b80c;color:#a1a89b;font-size:9px;background:#272c2e}.window-status span{display:flex;gap:7px;align-items:center}.window-status i{width:4px;height:4px;border-radius:50%;background:#a3b596}.desktop-welcome{padding:48px 44px 24px}.home-introduction{display:grid;grid-template-columns:1.45fr 1fr;gap:30px;align-items:center}.welcome-copy{position:relative;z-index:2}.welcome-eyebrow{color:#a9b2a7;font:9px ui-monospace,monospace;letter-spacing:.1em;line-height:1.7}.desktop-welcome h1{font-size:clamp(38px,3.4vw,55px);font-weight:450;letter-spacing:-.045em;line-height:1.13;margin:25px 0}.desktop-welcome h1 span{color:#c0cbb7}.welcome-intro{max-width:370px;font-size:14px;color:#b8beb7;line-height:1.85}.welcome-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:26px}.desktop-primary{display:inline-flex;align-items:center;gap:13px;padding:12px 16px;border:1px solid #bdc8ae;border-radius:5px;color:#242a23;background:#bbc9ae;box-shadow:0 2px 2px #0002;font-size:11px;font-weight:550;transition:background .2s,transform .2s}.desktop-primary:hover{background:#d0dac7;transform:translateY(-1px)}.desktop-secondary{display:inline-flex;align-items:center;gap:9px;font-size:11px;color:#b9c4cb;padding:12px 0}.desktop-secondary:hover{color:#efe8d9}.desk-collage{position:relative;min-height:350px;padding:10px 18px 0 0}.desk-photo{position:relative;width:175px;margin:0 0 0 auto;padding:9px 9px 13px;background:#dcd5c4;transform:rotate(4deg);box-shadow:3px 8px 15px #0003}.desk-photo:before{content:"";position:absolute;top:-9px;left:55px;width:60px;height:21px;background:#aaada080;transform:rotate(-9deg)}.desk-photo img{width:100%;height:162px;-o-object-fit:cover;object-fit:cover;-o-object-position:center 30%;object-position:center 30%;filter:saturate(.6)}.desk-photo figcaption{font:italic 10px/1.5 Georgia,serif;color:#59584c;margin-top:10px}.paper-note{position:relative;width:225px;margin:-8px auto 0 0;padding:21px 23px 16px;background:#d8cfaf;color:#44463c;transform:rotate(-3deg);box-shadow:3px 6px 10px #0003;border-radius:1px 2px 8px 1px;background-image:repeating-linear-gradient(0deg,transparent,transparent 25px,#565d4210 26px)}.paper-label{display:block;font:8px ui-monospace,monospace;letter-spacing:.14em;color:#60624d;margin-bottom:13px}.paper-note p{font:17px/1.55 Georgia,serif;letter-spacing:-.02em}.paper-note button{display:flex;align-items:center;gap:9px;font-size:10px;margin-top:15px;min-height:30px;border-top:1px solid #5b624d33;padding-top:9px;width:100%}.paper-note button:hover{text-decoration:underline}.welcome-bottom{display:flex;align-items:center;justify-content:space-between;margin:35px 0 19px;padding-top:24px;border-top:1px solid #d9d5bb19;gap:15px}.welcome-bottom h2{font-size:17px;font-weight:450;letter-spacing:-.015em}.welcome-bottom button{display:flex;align-items:center;gap:9px;font-size:10px;color:#a7bbca;min-height:35px}.welcome-previews{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.welcome-previews>a{min-width:0;border:1px solid #d0c5a927;border-radius:6px;overflow:hidden;background:#272b30;transition:transform .2s,border-color .2s}.welcome-previews>a:hover{transform:translateY(-2px);border-color:#9dab9670}.preview-titlebar{display:flex;align-items:center;gap:8px;height:25px;padding:0 10px;border-bottom:1px solid #c7c1ac17;background:#30343a;color:#b2b9b1;font:8px ui-monospace,monospace}.preview-titlebar>svg{margin-left:auto}.mini-dots{letter-spacing:2px;color:#89958b}.preview-image{height:120px;padding:12px 12px 0;background:#1d2228;overflow:hidden}.preview-image img{height:100%;width:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:top;object-position:top;filter:saturate(.7)}.preview-description{padding:15px 13px}.preview-description h3{font-size:12px;font-weight:500;line-height:1.4;margin-bottom:7px}.preview-description p{font-size:10px;line-height:1.7;color:#b0b6ad}.preview-description small{display:block;font:8px/1.7 ui-monospace,monospace;margin-top:12px;color:#a0b0bb}.home-footnote{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:23px;color:#9da79a;font:italic 11px Georgia,serif}.home-footnote button{display:flex;align-items:center;gap:8px;min-height:35px;font:10px -apple-system,sans-serif}.desktop-dock{position:fixed;z-index:70;bottom:17px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:9px 12px 13px;border-radius:12px;border:1px solid #c2bfa235;background:#363b3df2;box-shadow:0 7px 25px #0005,inset 0 1px #ffffff08}.dock-app{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:8px;border:1px solid #d4d4be38;box-shadow:inset 0 1px #ffffff13,0 2px 2px #0003;color:#e8e4d8;transform-origin:bottom}.dock-blue{background:#526679}.dock-purple{background:#6b6074}.dock-orange{background:#776651}.dock-cyan{background:#5e746b}.dock-yellow{background:#857c5f}.dock-silver{background:#777b7a}.dock-dark{background:#454950}.dock-active i{position:absolute;bottom:-8px;width:4px;height:4px;border-radius:50%;background:#c2cdb5}.dock-app>svg{width:23px;height:23px}.app-tooltip{position:absolute;bottom:54px;left:50%;transform:translate(-50%);padding:6px 10px;background:#343a3c;border:1px solid #c5c2a63d;border-radius:5px;color:#ece6d7;font-size:10px;white-space:nowrap;opacity:0;pointer-events:none}.dock-app:hover .app-tooltip,.dock-app:focus-visible .app-tooltip{opacity:1}.dock-divider{width:1px;height:31px;background:#c3c1ad30;margin-inline:2px}.desktop-rest{min-height:calc(100svh - 200px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.desktop-rest p{font:10px ui-monospace,monospace;letter-spacing:.1em;color:#b9c1b0}.desktop-rest h1{font-size:clamp(45px,7vw,95px);font-weight:450;letter-spacing:-.05em;margin-block:15px}.desktop-rest>span{color:#bbc2b7}.desktop-rest .desktop-primary{margin-top:30px}.desktop-content .section-shell{width:auto;margin:0;padding:44px}.desktop-content .section-heading{margin-bottom:35px}.desktop-content .section-heading h2{font-size:37px;color:#e9e3d6}.desktop-content .eyebrow{color:#a6b89b;font-size:9px}.desktop-content .muted{color:#b1b8ae}.desktop-content .experience-row{grid-template-columns:26% 1fr;gap:24px}.desktop-content .experience-meta{font-size:10px}.desktop-content .experience-body{border-color:#8c9d844d}.desktop-content .experience-body:before{background:#a8b79a}.desktop-content .experience-body h3{font-size:20px}.desktop-content .experience-body>p{color:#a9bfca}.desktop-content .experience-body li{font-size:12px}.desktop-content .about-grid{gap:35px}.desktop-content .portrait{height:320px;border-radius:3px;border:8px solid #d7d0bf}.desktop-content .about-grid>div>p{font-size:24px}.desktop-content .skills-grid{grid-template-columns:1fr 1fr}.desktop-content .skill-group h4{color:#bccbb9}.desktop-content .contact-grid{grid-template-columns:1fr;gap:35px}.desktop-content .contact-intro>p{max-width:550px}.desktop-content .contact-email{margin:20px 0}.desktop-content .contact-form{max-width:650px}.desktop-content .button-primary{background:#b6c7a7;border-color:#c8d3bb;color:#252c23}.desktop-content .award-row{grid-template-columns:65px 1fr;gap:20px}.desktop-content .award-number{font:italic 45px Georgia,serif;color:#ac9f87}.desktop-content .tag-list li{color:#aebcad;border-color:#c2c5ae25}.desktop-content .text-link:hover{color:#d1d9c7}.desktop-projects,.desktop-resume,.notebook-section{padding:44px}.desktop-projects>h1,.desktop-resume h1,.notebook-section h1{font-size:39px;font-weight:450;letter-spacing:-.045em;margin:17px 0;line-height:1.15}.desktop-projects>h1 span{color:#b4c2a8}.desktop-projects>p.muted,.notebook-section>p.muted{font-size:13px}.desktop-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px 25px;margin-top:35px}.desktop-project-grid article{min-width:0}.desktop-project-image{display:block;height:200px;border-radius:5px;background:#2b3137;padding:24px 20px 33px;position:relative;overflow:hidden;border:1px solid #c4bfa42c;box-shadow:inset 0 7px #343c43}.desktop-project-image img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:transform .25s;filter:saturate(.8)}.desktop-project-image:hover img{transform:scale(1.025)}.desktop-project-image>span{position:absolute;left:14px;right:14px;bottom:9px;display:flex;justify-content:space-between;font:8px ui-monospace,monospace;color:#b4c3b4;letter-spacing:.05em}.desktop-project-grid h2{font-size:18px;line-height:1.3;letter-spacing:-.025em;margin:16px 0 10px}.desktop-project-grid article>p{font-size:12px;line-height:1.8;color:#b0b8ad}.desktop-project-grid .tag-list{margin-top:15px;gap:5px}.desktop-project-grid .tag-list li{font-size:9px}.desktop-project-grid .project-actions{gap:17px}.desktop-project-grid .text-link{font-size:11px}.desktop-resume iframe{width:100%;height:600px;border:1px solid #c4c4ae30;margin-top:30px;border-radius:5px}.notebook-pages{margin-top:32px;display:grid;gap:24px}.notebook-pages article{padding:28px 32px;background:#ded8c7;color:#383f38;border-radius:2px;border-left:3px solid #a7af99;box-shadow:3px 4px #0b12152e}.note-meta{display:flex;justify-content:space-between;gap:15px;font:10px ui-monospace,monospace;color:#656959;padding-bottom:17px;border-bottom:1px solid #656c532f}.notebook-pages h2{font:24px/1.3 Georgia,serif;margin:22px 0 12px}.notebook-pages p{font-size:13px;line-height:1.9;max-width:650px;color:#4c554b}.notebook-pages a{display:inline-flex;align-items:center;gap:10px;font-size:11px;margin-top:18px;min-height:35px;text-decoration:underline;text-underline-offset:4px}.spotlight-dialog{position:fixed;top:17vh;margin:0 auto;width:min(560px,calc(100% - 32px));max-height:70vh;padding:0;background:#303638;border:1px solid #c9c4ab5a;border-radius:9px;color:#e5e4d7;box-shadow:0 25px 80px #0007;z-index:100}.spotlight-dialog::backdrop{background:#101715a0}.spotlight-input{display:flex;align-items:center;gap:15px;padding:20px;border-bottom:1px solid #d1ceb51c}.spotlight-input>svg{color:#b6c4a9;width:23px;flex-shrink:0}.spotlight-input input{background:none;border:0;outline:none;width:100%;min-width:0;font-size:17px}.spotlight-input input::-moz-placeholder{color:#b0b8a9}.spotlight-input input::placeholder{color:#b0b8a9}.spotlight-input input:focus-visible{outline:1px solid #c6d0b5;outline-offset:4px}.spotlight-results{padding:9px;max-height:47vh;overflow-y:auto}.spotlight-results>button,.spotlight-results>a{width:100%;display:flex;gap:15px;align-items:center;padding:12px 15px;border-radius:5px;font-size:12px;text-align:left}.spotlight-results>*:hover,.spotlight-results>*:focus-visible{background:#b1c1991a}.spotlight-results svg{color:#b2c3a6}.spotlight-results svg:last-child{margin-left:auto}.spotlight-results p{padding:20px;font-size:12px;color:#c3c8b9}.spotlight-dialog footer{border-top:1px solid #d7d0b41c;padding:13px 18px;display:flex;justify-content:space-between;gap:10px;color:#b1b8a8;font-size:8px;letter-spacing:.04em}@media (max-width: 1200px){.desktop-world{padding-inline:3%}.desktop-caption{left:3%;right:3%}.desktop-sidebar{width:168px}.desktop-welcome{padding:38px 30px 24px}.home-introduction{gap:15px}.desktop-welcome h1{font-size:40px}.desk-collage{padding-right:4px}.desk-photo{width:148px}.desk-photo img{height:140px}.paper-note{width:195px;padding:18px}.paper-note p{font-size:16px}.welcome-intro{font-size:13px}.welcome-actions{gap:14px}.desktop-primary,.desktop-secondary{font-size:10px}.desktop-content .section-shell,.desktop-projects,.desktop-resume,.notebook-section{padding:35px}}@media (max-width: 950px){.desktop-sidebar{width:150px;padding-inline:8px}.sidebar-profile{gap:7px}.sidebar-profile img{width:27px;height:27px}.sidebar-profile strong{font-size:10px}.sidebar-profile span{font-size:7px}.desktop-sidebar nav button,.desktop-sidebar>a{font-size:10px}.desktop-welcome{padding:30px 25px 20px}.home-introduction{grid-template-columns:1fr}.desktop-welcome h1{font-size:45px}.welcome-intro{max-width:420px}.desk-collage{display:flex;align-items:center;justify-content:flex-end;gap:22px;min-height:230px;padding:20px 15px 0}.desk-photo{margin:0;width:130px}.desk-photo img{height:115px}.paper-note{margin:0}.welcome-bottom{margin-top:20px}.welcome-previews{gap:10px}.preview-image{height:85px;padding:8px 7px 0}.preview-description{padding:12px 10px}.preview-description h3{font-size:11px}.preview-description small{font-size:7px}.toolbar-search span{display:none}.toolbar-search kbd{margin-left:5px}.desktop-content .about-grid{grid-template-columns:1fr}.desktop-content .portrait{max-width:360px}.desktop-content .experience-row{grid-template-columns:1fr;gap:15px}.desktop-content .experience-meta{display:flex;justify-content:space-between}.desktop-content .section-heading h2{font-size:32px}}@media (max-width: 700px){.desktop-world{padding:54px 12px 95px}.desktop-menu{height:34px;padding:0 15px;gap:13px}.desktop-menu strong{font-size:10px}.menu-word,.menu-right time span{display:none}.menu-right{gap:12px}.menu-right time{font-size:9px}.desktop-caption{display:none}.portfolio-window{height:auto;min-height:calc(100svh - 150px);border-radius:8px;position:relative}.window-toolbar{height:45px;padding:0 13px;gap:10px}.window-lights{width:60px;gap:7px}.window-lights button{width:11px;height:11px}.window-breadcrumb{gap:7px;font-size:10px}.window-breadcrumb>span{display:none}.toolbar-search{padding:6px}.toolbar-search kbd{display:none}.desktop-sidebar{display:none;width:185px;position:absolute;left:0;top:45px;bottom:25px;background:#272d30;z-index:20;border-right:1px solid #b3b99e40}.desktop-sidebar.sidebar-visible{display:flex}.desktop-content{overflow:visible}.window-layout{min-height:500px}.desktop-welcome{padding:31px 22px 22px}.welcome-eyebrow{font-size:7px;letter-spacing:.05em}.desktop-welcome h1{font-size:clamp(34px,9vw,48px);margin:23px 0}.welcome-intro{font-size:13px}.welcome-actions{margin-top:22px;gap:16px}.desktop-primary{padding:12px 14px}.desk-collage{justify-content:center;gap:12px;padding:25px 0 5px;min-height:220px}.desk-photo{width:120px;flex-shrink:0;padding:7px}.desk-photo img{height:120px}.desk-photo figcaption{font-size:8px}.paper-note{width:165px;max-width:57%;padding:16px 13px 13px}.paper-label{font-size:7px;margin-bottom:10px}.paper-note p{font-size:14px;line-height:1.55}.paper-note button{font-size:8px;gap:5px}.welcome-bottom{margin-top:14px;padding-top:20px}.welcome-bottom h2{font-size:15px}.welcome-bottom button{font-size:9px}.welcome-previews{grid-template-columns:1fr;gap:17px}.preview-image{height:175px;padding:14px 14px 0}.preview-description{padding:16px}.preview-description h3{font-size:15px}.preview-description p{font-size:12px}.preview-description small{font-size:9px}.preview-titlebar{height:28px;font-size:9px}.home-footnote{font-size:9px}.window-status{font-size:7px;padding:0 12px}.window-status span:last-child{display:none}.desktop-dock{bottom:13px;gap:10px;padding:9px 12px 13px;border-radius:11px;max-width:calc(100% - 20px)}.dock-app{width:35px;height:35px;border-radius:6px;flex-shrink:0}.dock-app>svg{width:20px;height:20px}.dock-divider,.desktop-dock>a{display:none}.desktop-content .section-shell,.desktop-projects,.desktop-resume,.notebook-section{padding:30px 22px}.desktop-projects>h1,.desktop-resume h1,.notebook-section h1{font-size:32px}.desktop-project-grid{grid-template-columns:1fr}.desktop-project-image{height:210px}.desktop-content .section-heading h2{font-size:32px}.desktop-content .skills-grid{grid-template-columns:1fr}.desktop-content .experience-body h3{font-size:19px}.desktop-content .experience-meta{gap:12px;font-size:9px}.desktop-content .about-grid{gap:25px}.desktop-content .about-grid dl>div{grid-template-columns:65px 1fr;gap:12px}.desktop-content .about-grid dd{font-size:12px}.desktop-content .award-row{grid-template-columns:35px 1fr;gap:14px}.desktop-content .award-number{font-size:30px}.desktop-content .award-body h3{font-size:21px}.desktop-content .contact-email{font-size:17px;gap:10px}.desktop-content .contact-intro>p{font-size:13px}.desktop-content .form-row{grid-template-columns:1fr}.desktop-content .contact-form input,.desktop-content .contact-form textarea{font-size:16px}.desktop-content .contact-section h2{font-size:32px}.desktop-content .text-link{font-size:11px}.desktop-resume iframe{height:550px}.window-expanded{padding:43px 5px 96px}.window-expanded .portfolio-window{height:auto;min-height:calc(100svh - 145px)}.spotlight-input input{font-size:14px}.spotlight-dialog footer{font-size:6px}.desktop-rest{min-height:calc(100svh - 160px)}.desktop-rest>span{font-size:12px}.notebook-pages article{padding:22px}.notebook-pages h2{font-size:23px}.notebook-pages p{font-size:12px}.note-meta{font-size:8px}}@media (max-width: 360px){.desktop-dock{gap:9px}.dock-app{width:32px;height:32px}.desktop-welcome{padding-inline:17px}.welcome-actions{gap:11px}.desktop-primary{gap:8px;padding-inline:11px}.desktop-secondary{gap:6px}.menu-right time{display:none}.desk-photo{width:103px}.paper-note p{font-size:13px}.paper-note{padding-inline:10px}.home-footnote{flex-wrap:wrap;gap:4px}}@media (prefers-reduced-motion: reduce){.desktop-content{scroll-behavior:auto}.desktop-primary:hover,.welcome-previews>a:hover,.desktop-project-image:hover img{transform:none}}.about-toolkit{margin-top:48px;padding-top:36px;border-top:1px solid #b9c8b43d}.about-toolkit .skills-preferences{padding:0}.career-featured .document-frame{border-color:#9bcbbb;box-shadow:0 0 0 1px #9bcbbb60,6px 7px #0c202755}.career-featured .document-summary{background:#c4dace}.career-featured .document-summary strong{font-size:19px}.desktop-world{--platinum: #c9c9ba;--ink: #30372f;padding:69px 4% 101px;perspective:1600px}.desktop-wallpaper{background:#303a3b}.ambient-light{background:radial-gradient(ellipse at var(--light-x, 25%) var(--light-y, 20%),#b4bdaa18,transparent 55%),repeating-linear-gradient(0deg,transparent,transparent 3px,#0207070b 4px),repeating-linear-gradient(90deg,#73857c06 0,#73857c06 1px,transparent 1px,transparent 5px)}.desktop-world:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:90;box-shadow:inset 0 0 100px #06101135;background:repeating-linear-gradient(0deg,transparent 0 3px,#00000008 3px 4px);opacity:.45}.desktop-menu{background:#cccec0;color:#28332f;border-bottom:2px solid #1f2a29;box-shadow:0 2px #d7dcc52b;font-family:ui-monospace,Courier New,monospace}.desktop-menu strong{font-weight:700;font-size:11px}.desktop-monogram{color:#293931}.desktop-menu button:hover{background:#aab79f}.desktop-caption{top:47px;left:4%;right:4%;color:#c1ccbc;font:9px ui-monospace,monospace}.desktop-caption span:last-child{font:9px ui-monospace,monospace}.portfolio-window{border-radius:3px;border:2px solid #181f1e;outline:1px solid #c5c8af9c;background:#283031;box-shadow:9px 10px #111b1c50,0 25px 65px #0004;height:calc(100svh - 170px);min-height:620px}.window-toolbar{background:#bfc2b3;color:#303930;height:44px;border-bottom:2px solid #222c28;box-shadow:inset 1px 1px #edf0d9,inset -1px -1px #8b9683;cursor:grab;touch-action:none}.window-toolbar:active{cursor:grabbing}.window-lights{gap:9px;width:74px}.window-lights button{border-radius:1px;width:13px;height:13px;border:1px solid #414b3d;box-shadow:inset 1px 1px #ffffd68c,1px 1px #6c796d;transition:transform .12s}.window-lights button:active{transform:translate(1px,1px)}.light-red{background:#bb938c}.light-yellow{background:#c6bc89}.light-green{background:#9cac8b}.window-lights svg{opacity:.65}.sidebar-toggle{color:#3c4b40}.window-breadcrumb{color:#485749;font-family:ui-monospace,monospace;font-size:10px}.window-breadcrumb strong{color:#263b2d;font-weight:700}.window-breadcrumb svg{color:#495c6a}.toolbar-search{border:1px solid #606e5e;background:#e1e2d0;border-radius:1px;color:#4e5e4c;box-shadow:inset 1px 1px #8c987d;font-family:ui-monospace,monospace}.toolbar-search kbd{color:#4a5945}.desktop-sidebar{width:174px;background:#aeb6a5;border-right:2px solid #253529;color:#30432e;padding-top:25px}.sidebar-profile img{border-radius:1px;border:1px solid #5d7059}.sidebar-profile strong{color:#243426}.sidebar-profile span{color:#475c46}.sidebar-label{color:#4d634a;font:8px ui-monospace,monospace;letter-spacing:.1em}.desktop-sidebar nav button,.desktop-sidebar>a{color:#354733;border-radius:1px;font-size:11px;font-family:ui-monospace,monospace;position:relative;isolation:isolate}.desktop-sidebar nav button:hover,.desktop-sidebar>a:hover{background:#c7d0bd;color:#243625}.desktop-sidebar nav button.active{color:#f0f0dc;background:none;box-shadow:none}.navigation-highlight{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:#526c61;border:1px solid #2a4c3a;box-shadow:inset 1px 1px #869782}.desktop-sidebar nav button.active svg{color:#e3e6cd}.desktop-sidebar small{color:inherit}.sidebar-bottom{color:#40573c}.sidebar-bottom small{color:#4b6147;font:8px/1.9 ui-monospace,monospace}.icon-blue{color:#446277}.icon-purple{color:#6a5877}.icon-yellow{color:#776532}.icon-cyan{color:#365e55}.icon-silver{color:#46524e}.icon-orange{color:#80533d}.desktop-content{background:#242c30;perspective:1400px;scrollbar-color:#a6b19b #303a3c}.desktop-content>div{transform-origin:20% 50%}.window-status{background:#c0c5b4;color:#384d35;border-top:2px solid #263c31;font:8px ui-monospace,monospace;height:25px;position:relative}.window-status i{background:#4d7755}.reading-progress{position:absolute;top:-2px;left:0;height:2px;background:#b7bf89;transition:width .15s linear}.retro-home{padding:25px 38px 24px;min-height:100%}.owner-heading{display:flex;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px dashed #bac3a730;font:8px ui-monospace,monospace;color:#aebba5}.owner-heading>span:first-child{display:flex;align-items:center;gap:8px}.owner-heading>span:last-child{color:#a6afa3}.owner-scene{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:24px;min-height:540px;padding:40px 0}.system-label{font:8px/1.7 ui-monospace,monospace;letter-spacing:.07em;color:#b4bda7}.owner-copy h1{font-size:clamp(39px,4.2vw,66px);font-weight:480;line-height:1.08;letter-spacing:-.06em;margin:27px -60px 26px 0;position:relative;z-index:2}.retro-line{display:block;overflow:hidden;padding-bottom:5px;margin-bottom:-5px}.retro-line>span{display:block}.retro-line:nth-child(2){color:#bdcba9}.retro-line:nth-child(3){color:#b8c3d1}.owner-description{color:#bac3b5;line-height:1.85;font-size:13px;max-width:340px}.welcome-actions{gap:19px}.desktop-primary{border-radius:2px;background:#c8cfb3;border:2px solid #243e2a;outline:1px solid #b9c7a055;box-shadow:inset 1px 1px #f1f3d6,inset -1px -1px #869978,3px 3px #111a17;color:#293a27;font:11px ui-monospace,monospace;padding:12px 15px;gap:9px}.desktop-primary:hover{background:#e0e4bf;transform:translateY(-2px)}.desktop-primary:active{transform:translate(2px,2px);box-shadow:inset 1px 1px #697858}.desktop-secondary{font:10px ui-monospace,monospace;color:#c1c8ba;gap:8px}.owner-message{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:33px;max-width:355px;font:8px/1.8 ui-monospace,monospace;color:#b2bea5}.system-led{display:inline-block;width:5px;height:5px;background:#aac488;box-shadow:0 0 5px #b5d78b30;flex-shrink:0}.insertion-point{animation:cursor-blink 1.2s steps(1) 5}@keyframes cursor-blink{50%{opacity:0}}.portrait-arrival{position:relative;margin:15px 2px 0 20px;perspective:1100px}.retro-photo-viewer{border:2px solid #1f2b25;outline:1px solid #c6ccbc;background:#c8cbbb;color:#354732;padding:0 8px;box-shadow:8px 10px #121c205c,0 20px 35px #0005;max-width:325px;margin:auto}.photo-title{display:flex;align-items:center;gap:10px;height:28px;border-bottom:1px solid #53634d;font:700 10px ui-monospace,monospace}.square-control{display:inline-block;width:10px;height:10px;border:1px solid #40503c;background:#dbdec9;box-shadow:inset 1px 1px #f5f7df,inset -1px -1px #8b997d;flex-shrink:0}.title-stripes{flex:1;height:14px;background:repeating-linear-gradient(0deg,#526148 0 1px,transparent 1px 3px);opacity:.5}.photo-menu{display:flex;justify-content:space-between;font:8px ui-monospace,monospace;padding:9px 1px;color:#52634b}.portrait-canvas{display:block;width:100%;position:relative;overflow:hidden;border:1px solid #3f513d;background:#36483a;cursor:zoom-in;aspect-ratio:.88}.portrait-canvas img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 30%;object-position:50% 30%;filter:saturate(.65) contrast(.96);transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .7s;animation:portrait-develop 1.4s .65s both}.portrait-canvas:hover img{transform:scale(1.035);filter:saturate(.85)}.portrait-canvas.portrait-zoomed{cursor:zoom-out}.portrait-canvas.portrait-zoomed img{transform:scale(1.17)}.portrait-scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(0deg,transparent 43%,#e8f3c730 49%,#d9ebc75e 50%,transparent 56%);transform:translateY(-100%);animation:portrait-scan 1.6s .6s both}.portrait-grain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.28;background:repeating-linear-gradient(0deg,transparent 0 2px,#15211b20 2px 3px)}.retro-photo-viewer figcaption{padding:13px 3px 12px}.retro-photo-viewer figcaption strong{display:block;font-size:14px;font-weight:550;letter-spacing:-.02em}.retro-photo-viewer figcaption>span{display:block;font:8px ui-monospace,monospace;margin-top:5px}.photo-status{display:flex;justify-content:space-between;gap:8px;padding:7px 2px;border-top:1px solid #7f8b734a;font:6px ui-monospace,monospace}.portrait-annotation{display:block;text-align:center;font:italic 11px Georgia,serif;color:#adbda3;margin-top:23px}.home-system-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 0 0;border-top:1px dashed #c0c8ad30;font:8px ui-monospace,monospace;color:#aab8a3}.home-system-footer>span:first-child{display:flex;gap:7px;align-items:center}.home-system-footer button{padding:8px;color:#ccd1b7}@keyframes portrait-develop{0%{clip-path:inset(0 0 100% 0);filter:grayscale(1) brightness(1.4)}to{clip-path:inset(0);filter:saturate(.65) contrast(.96)}}@keyframes portrait-scan{to{transform:translateY(100%)}}.desktop-dock{border-radius:3px;background:#bac1ae;border:2px solid #263b2f;box-shadow:inset 1px 1px #e3e8d2,inset -1px -1px #849378,4px 5px #17222270;gap:13px;padding:9px 15px 14px}.dock-app{width:40px;height:40px;border-radius:3px;border:1px solid #445641;box-shadow:inset 1px 1px #ffffff45,inset -1px -1px #16251855,2px 2px #66715b;color:#e5e9d8}.dock-app>svg{filter:drop-shadow(1px 1px #0003)}.dock-purple{background:#7c748c}.dock-blue{background:#6d8795}.dock-yellow{background:#a3925d}.dock-cyan{background:#698876}.dock-silver{background:#7b8981}.dock-active i{background:#344f37;bottom:-9px;border-radius:0;width:4px;height:4px}.app-tooltip{background:#e4e5cb;color:#2d442e;border:1px solid #455d43;border-radius:1px;font:9px ui-monospace,monospace}.dock-divider{background:#6e805e}.retro-projects{padding:30px 32px 40px}.project-directory-header{display:flex;align-items:center;gap:16px;padding-bottom:24px}.project-directory-header>svg{color:#b5a6cb;fill:#6b627d}.project-directory-header h1{font-size:35px;letter-spacing:-.04em;margin-top:7px;font-weight:500}.project-directory-header>span{margin-left:auto;font:9px ui-monospace,monospace;color:#b8c5a7}.directory-controls{display:flex;gap:14px;padding:15px;background:#bec6b0;color:#31472c;border:1px solid #e4e8d4;box-shadow:3px 3px #152319}.directory-controls label{display:flex;flex-direction:column;gap:7px;min-width:0;font:8px ui-monospace,monospace}.directory-controls select,.directory-controls input{width:100%;background:#e1e5cc;color:#2a412a;border:1px solid #526947;border-radius:0;box-shadow:inset 1px 1px #90a279;padding:7px 8px;font:10px ui-monospace,monospace;min-height:30px}.directory-controls select{max-width:190px}.directory-search{flex:1}.directory-search>span{display:flex;align-items:center;gap:6px}.directory-count{font:9px ui-monospace,monospace;color:#a5b79b;margin:22px 0}.retro-files{display:grid;grid-template-columns:1fr 1fr;gap:32px 24px;perspective:1200px}.retro-file{min-width:0}.retro-file-preview{display:block;border:2px solid #192821;outline:1px solid #a6b398;background:#34423c;position:relative;overflow:hidden;box-shadow:4px 4px #101a1860}.file-titlebar{display:flex;align-items:center;gap:9px;padding:8px;font:8px ui-monospace,monospace;background:#a7b8bf;color:#31484e;border-bottom:1px solid #344e48}.file-titlebar>svg{margin-left:auto}.file-tone-1 .file-titlebar{background:#b7abc4;color:#473a56}.file-tone-2 .file-titlebar{background:#b7c3a1;color:#344d2e}.file-tone-3 .file-titlebar{background:#cec28e;color:#5e512d}.file-image{height:200px;padding:20px 17px;background:#2d3a3e;overflow:hidden}.file-image img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .5s;filter:saturate(.8)}.retro-file-preview:hover img{transform:scale(1.055);filter:saturate(1)}.file-open-label{position:absolute;bottom:12px;right:10px;background:#dfe3bc;color:#31462c;padding:7px 10px;font:9px ui-monospace,monospace;border:1px solid #667651;transform:translateY(55px);transition:transform .25s}.retro-file-preview:hover .file-open-label,.retro-file-preview:focus-visible .file-open-label{transform:translateY(0)}.file-copy{padding:18px 0 0}.file-copy h2{font-size:20px;font-weight:500;letter-spacing:-.025em;line-height:1.25;margin-bottom:12px}.file-copy>p{font-size:12px;color:#b9c3b3;line-height:1.85}.file-copy .tag-list{margin-top:15px}.file-copy .tag-list li{font:8px ui-monospace,monospace;border-radius:0}.file-copy .project-actions{gap:16px}.file-copy .text-link{font:9px ui-monospace,monospace}.empty-folder{padding:40px 15px;text-align:center;font:12px ui-monospace,monospace;color:#c4ceb5}.notebook-pages article{border:1px solid #4c6141;border-left:10px solid #9da983;border-radius:0;box-shadow:4px 5px #111e185c}.desktop-content .section-heading .eyebrow{font-family:ui-monospace,monospace}.desktop-content .portrait{border-radius:0}.desktop-content .contact-form input,.desktop-content .contact-form textarea{border:1px solid #778b6a;background:#202c28;padding:12px;border-radius:0}.desktop-content .button-primary{border-radius:1px;border:1px solid #596e46;box-shadow:inset 1px 1px #eef4c8,3px 3px #121b14;font-family:ui-monospace,monospace}.spotlight-dialog{border-radius:2px;border:2px solid #c5cdb4;background:#2b3b33;box-shadow:7px 8px #1020158c}.spotlight-results>button,.spotlight-results>a{border-radius:0}.spotlight-dialog footer{font-family:ui-monospace,monospace}.boot-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#17231e;color:#d0d8bc;display:grid;place-items:center;background-image:repeating-linear-gradient(0deg,transparent 0 3px,#00000013 3px 4px)}.boot-panel{text-align:center;width:min(330px,calc(100% - 50px))}.boot-computer{width:60px;height:70px;margin:0 auto 30px;filter:drop-shadow(0 0 14px #c0d79912)}.boot-panel p{font:14px ui-monospace,monospace;margin-bottom:25px}.boot-track{height:13px;padding:2px;border:1px solid #98ae84;background:#243324;box-shadow:2px 2px #080f0a}.boot-track>div{height:100%;transform-origin:left;background:repeating-linear-gradient(90deg,#b9ca9e 0,#b9ca9e 7px,#294429 7px,#294429 9px)}.boot-caption{display:block;margin-top:20px;font:7px/1.8 ui-monospace,monospace;letter-spacing:.08em;color:#a9b79c}.boot-skip{position:absolute;bottom:45px;padding:11px 18px;border:1px solid #92a881;font:11px ui-monospace,monospace}.boot-skip:hover{background:#c4d4ac;color:#283c22}.project-notebook{background:#25302e}.project-notebook .site-header{background:#c7cbb9;color:#35472e;border-bottom:2px solid #2b412b;font-family:ui-monospace,monospace}.project-notebook .wordmark span{color:#496b45}.project-notebook .detail-header h1{font-size:clamp(36px,5vw,66px)}.detail-shared-preview{border:2px solid #1a2e20;outline:1px solid #a8bba0;padding:20px;margin-top:30px;background:#85988a;box-shadow:6px 6px #0d1b1160}.detail-shared-preview img{width:100%;max-height:450px;-o-object-fit:contain;object-fit:contain;display:block;view-transition-name:project-preview}.project-notebook .detail-gallery .screenshot-image{border-radius:0;border-color:#a3b59066}.project-notebook .tag-list li{border-radius:0;font-family:ui-monospace,monospace}::view-transition-group(project-preview){animation-duration:.75s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-old(project-preview),::view-transition-new(project-preview){height:100%;-o-object-fit:contain;object-fit:contain;mix-blend-mode:normal}::view-transition-old(root){animation-duration:.2s}::view-transition-new(root){animation-duration:.5s}@media (min-width: 701px){.sidebar-collapsed .desktop-sidebar{display:none}}@media (max-width: 1200px){.desktop-world{padding-inline:2%}.desktop-caption{left:2%;right:2%}.desktop-sidebar{width:155px}.retro-home{padding-inline:28px}.owner-copy h1{font-size:46px}.owner-scene{gap:15px}.portrait-arrival{margin-left:6px}.owner-description{font-size:12px;max-width:285px}.welcome-actions{gap:12px}.desktop-primary{font-size:10px;padding:11px 12px}.desktop-secondary{font-size:9px}.photo-status{font-size:5px}.owner-heading{font-size:7px}.retro-projects{padding-inline:25px}}@media (min-width: 701px) and (max-width: 950px){.owner-scene{grid-template-columns:1fr;padding-top:30px}.owner-copy h1{font-size:49px;margin-right:0}.owner-description{max-width:400px}.portrait-arrival{max-width:280px;width:75%;margin:15px auto 35px}.home-system-footer{flex-wrap:wrap}.owner-heading>span:last-child{display:none}.directory-controls{flex-wrap:wrap}.directory-search{min-width:100%}.file-image{height:150px;padding:13px}}@media (max-width: 700px){.desktop-world{padding:53px 11px 96px}.desktop-menu{padding-inline:13px}.desktop-menu strong{font-size:9px}.desktop-caption{display:none}.portfolio-window{height:auto;min-height:calc(100svh - 155px);border-radius:2px}.desktop-sidebar{width:184px;top:44px;bottom:25px}.window-toolbar{height:44px;gap:9px;padding-inline:11px}.window-breadcrumb{font-size:9px}.window-status{font-size:6px}.retro-home{padding:21px 21px 19px}.owner-heading{font-size:6px;padding-bottom:14px}.owner-heading>span:last-child{display:none}.owner-scene{grid-template-columns:1fr;gap:30px;padding:30px 0 22px;min-height:auto}.system-label{font-size:7px}.owner-copy h1{font-size:clamp(34px,9.6vw,58px);margin:21px -8px 23px 0}.owner-description{max-width:none;font-size:12px}.owner-message{font-size:7px;margin-top:25px}.welcome-actions{gap:13px;margin-top:24px}.desktop-primary{font-size:9px;padding:12px 10px;gap:6px}.desktop-primary svg{width:13px}.desktop-secondary{font-size:9px;gap:6px}.portrait-arrival{width:90%;max-width:310px;margin:12px auto 15px}.photo-title{font-size:10px}.photo-menu{font-size:8px}.photo-status{font-size:6px}.portrait-annotation{font-size:10px;margin-top:19px}.home-system-footer{flex-wrap:wrap;gap:5px 14px;font-size:7px}.home-system-footer>span:last-child{display:none}.desktop-dock{gap:10px;bottom:13px;padding:9px 12px 14px}.dock-app{width:33px;height:33px;border-radius:2px}.dock-app>svg{width:20px;height:20px}.directory-controls{flex-wrap:wrap;gap:12px;padding:12px}.directory-controls label{flex:1}.directory-search{min-width:100%}.directory-controls input,.directory-controls select{font-size:16px}.retro-projects{padding:27px 21px}.project-directory-header{gap:12px}.project-directory-header h1{font-size:29px}.project-directory-header>svg{width:28px}.project-directory-header>span{display:none}.directory-count{font-size:8px;line-height:1.6}.retro-files{grid-template-columns:1fr;gap:34px}.file-image{height:210px}.file-open-label{transform:none;position:static;display:block;border:0;border-top:1px solid #1e3528;font-size:8px;padding:7px 10px}.file-copy h2{font-size:22px}.window-expanded{padding:43px 5px 96px}.window-expanded .portfolio-window{height:auto}.detail-shared-preview{padding:12px}}@media (max-width: 360px){.desktop-dock{gap:8px}.dock-app{width:31px;height:31px}.retro-home{padding-inline:16px}.owner-copy h1{font-size:32px}.desktop-primary{font-size:8px;padding-inline:8px}.desktop-secondary{font-size:8px}.welcome-actions{gap:10px}.file-image{height:175px}}@media (prefers-reduced-motion: reduce){.portrait-canvas img,.portrait-scan,.insertion-point{animation:none}.portrait-scan{display:none}.portrait-canvas:hover img{transform:none}.desktop-world:after{opacity:.2}.reading-progress{transition:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@media (prefers-reduced-motion: no-preference){.desktop-world{animation:monitor-settle .7s ease-out both}@keyframes monitor-settle{0%{filter:brightness(.7)}45%{filter:brightness(1.035)}to{filter:brightness(1)}}}.desktop-world{padding-inline:3%}.desktop-menu{background:linear-gradient(#e5e0d0,#c9c9bd)}.desktop-wallpaper{background:#293b46}.ambient-light{background:radial-gradient(ellipse at var(--light-x, 20%) var(--light-y, 20%),#a6c6c528,transparent 55%),radial-gradient(ellipse at 90% 85%,#947eaf30,transparent 55%),repeating-linear-gradient(0deg,transparent 0 3px,#02070709 3px 4px)}.desktop-content{background:#232e35}.desktop-sidebar{background:#c2c7b8;width:177px}.window-toolbar{background:linear-gradient(#dddccd,#bfc3b4)}.window-status{background:#c6cebd}.desktop-sidebar nav button{padding-block:9px}.desktop-shortcuts{display:flex;position:fixed;right:7px;top:110px;z-index:-1;gap:23px}.desktop-shortcuts>*{font:7px ui-monospace,monospace;color:#dae2d0}.desktop-shortcuts svg{width:26px;height:26px}.desktop-world.journey-mode{padding-inline:5%}.journey-mode .portfolio-window{width:calc(100% + var(--journey-expand, 0) * 36px);margin-left:calc(var(--journey-expand, 0) * -18px)}.journey-hero{min-height:calc(100svh - 215px);position:relative;display:flex;flex-direction:column}.journey-hero .retro-home{flex:1;display:flex;flex-direction:column;padding-top:25px}.journey-hero .owner-scene{flex:1;min-height:560px;padding-block:36px}.owner-copy h1{font-size:clamp(39px,4.25vw,68px);margin-right:-35px;line-height:1.04;letter-spacing:-.065em}.retro-line:nth-child(1){color:#eeeadc}.retro-line:nth-child(2){color:#ddd39e}.retro-line:nth-child(3){color:#b9c9d9}.retro-line:nth-child(4){color:#c7b4d9}.owner-description{font-size:13px}.portrait-arrival{max-width:355px;width:100%;justify-self:center}.retro-photo-viewer{background:#d5d4bd;box-shadow:8px 10px #111c205c,0 20px 35px #0005}.photo-title{background:repeating-linear-gradient(0deg,transparent 0 2px,#6e785824 2px 3px)}.photo-title>span:nth-child(2){background:#d5d4bd;padding-inline:6px}.desktop-primary{background:#e0d694;border-color:#706c3a}.desktop-primary:hover{background:#f2e5a5}.desktop-primary>svg:first-child{transition:transform .3s}.desktop-primary:hover>svg:first-child{transform:rotate(-9deg) translateY(-2px)}.home-system-footer{display:none}.journey-scroll-cue{padding:13px 38px 19px;display:flex;align-items:center;justify-content:space-between;font:8px ui-monospace,monospace;color:#b5c9ba}.journey-scroll-cue svg{animation:scroll-signal 2s ease-in-out 3}@keyframes scroll-signal{50%{transform:translateY(4px)}}.journey-section{position:relative;padding:55px 40px 50px;border-top:1px solid #bbc8b22a}.journey-work{background:linear-gradient(150deg,#39405270,#27383d)}.journey-experience{background:#263b38}.journey-skills{background:#2c3545}.journey-about{background:#35323c}.journey-contact{background:#273b3d}.workspace-section-heading{margin-bottom:32px}.workspace-section-heading>span{display:flex;align-items:center;gap:10px;font:9px ui-monospace,monospace;letter-spacing:.04em;color:#becbb3}.workspace-section-heading h2{font-size:clamp(33px,3.4vw,50px);font-weight:450;line-height:1.12;letter-spacing:-.04em;margin:21px 0 18px}.workspace-section-heading h2 em{font-style:normal;color:#cbbbd9}.workspace-section-heading>p{font-size:12px;line-height:1.8;color:#bcc8b8;max-width:550px}.selected-windows{display:grid;grid-template-columns:1fr 1fr;gap:27px;perspective:1300px}.selected-window{border:2px solid #162d26;outline:1px solid #b7c3a5;box-shadow:5px 6px #0b1b215c;background:#c9d1bd;color:#2b453b;min-width:0}.selected-window:first-child{grid-column:1 / -1}.selected-window:first-child>a{display:grid;grid-template-columns:1.3fr 1fr}.selected-window:first-child .selected-titlebar{grid-column:1 / -1}.selected-titlebar{display:flex;align-items:center;gap:10px;padding:9px;background:#b6a8cb;color:#3c3150;font:9px ui-monospace,monospace;border-bottom:1px solid #5d506d}.selected-titlebar>span:last-child{margin-left:auto}.selected-window-1 .selected-titlebar{background:#a6cbd4;color:#244552}.selected-window-2 .selected-titlebar{background:#dbc58b;color:#574a27}.selected-preview{height:235px;padding:18px;background:#445363;overflow:hidden}.selected-preview img{height:100%;width:100%;-o-object-fit:contain;object-fit:contain;transition:transform .6s cubic-bezier(.16,1,.3,1)}.selected-window:hover img{transform:scale(1.045)}.selected-window:first-child .selected-preview{height:320px}.selected-copy{padding:20px;align-self:center}.selected-copy h3{font-size:23px;font-weight:550;letter-spacing:-.035em;line-height:1.2;margin-bottom:14px}.selected-copy p{font-size:11px;line-height:1.8;color:#3c534a}.selected-copy>span{display:block;margin-top:17px;font:8px/1.8 ui-monospace,monospace;color:#4a5f55}.section-open{margin-top:31px}.work-documents,.skills-preferences{padding:42px}.journey-section>.work-documents,.journey-section>.skills-preferences{padding:0}.career-timeline{position:relative;display:grid;gap:23px;padding-left:19px}.career-timeline:before{content:"";position:absolute;left:3px;top:10px;bottom:25px;width:2px;background:repeating-linear-gradient(0deg,#c1cea060 0 5px,transparent 5px 9px)}.career-date{display:flex;align-items:center;gap:12px;position:relative;font:10px ui-monospace,monospace;color:#ccd6b6;margin-bottom:11px}.timeline-node{position:absolute;width:8px;height:8px;background:#d5c277;border:1px solid #efe4ac;left:-19px}.document-frame{border:1px solid #9bad92;box-shadow:4px 4px #081a1455;background:#d5d8c2;color:#324832}.document-summary{display:flex;align-items:center;gap:13px;width:100%;padding:17px;text-align:left;background:#bbc9ab;box-shadow:inset 0 1px #edf0d2}.document-summary>svg:first-child{fill:#82996d;color:#425c3a}.document-summary>span{flex:1}.document-summary strong{display:block;font-size:15px;font-weight:650}.document-summary>span>span{display:block;margin-top:6px;font-size:12px}.document-summary>svg:last-child{transition:transform .3s}.career-1 .document-summary{background:#b3c6cf}.career-2 .document-summary{background:#cab9cd}.career-3 .document-summary{background:#d5c799}.career-4 .document-summary{background:#b3cdc3}.document-location{padding:10px 17px;border-block:1px solid #7182644a;display:flex;gap:12px;justify-content:space-between;font:8px ui-monospace,monospace;color:#4b6344}.document-responsibilities{overflow:hidden}.document-responsibilities ul{padding:15px 23px 19px 32px;list-style:square;font-size:12px;line-height:1.85}.document-responsibilities li+li{margin-top:8px}.preferences-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;align-items:start}.tool-groups{display:grid;gap:18px}.tool-folder{border:1px solid #b4c3b1;background:#c4cdbb;color:#314331;box-shadow:3px 3px #0b152652}.tool-folder h3{display:flex;align-items:center;gap:10px;padding:11px 14px;font:11px ui-monospace,monospace;background:#a5b7a0;border-bottom:1px solid #677f6440}.tool-folder-1 h3{background:#b1c6cf}.tool-folder-2 h3{background:#c5b5d0}.tool-folder-3 h3{background:#d6c894}.tool-folder-4 h3{background:#a3c4bd}.tool-buttons{display:flex;flex-wrap:wrap;gap:8px;padding:14px}.tool-buttons button{padding:8px 10px;border:1px solid #6d8562;background:#e5e8d4;color:#354831;box-shadow:inset 1px 1px #fff9,2px 2px #6b7e5e3d;font:10px ui-monospace,monospace}.tool-buttons button[aria-pressed=true]{background:#536e60;color:#f4f1da;border-color:#344d3d}.tool-inspector{position:sticky;top:20px;border:1px solid #c5c4ad;background:#e0d9bc;color:#3d4839;box-shadow:5px 6px #0f152750}.inspector-chrome{padding:10px;border-bottom:1px solid #7c856457;display:flex;align-items:center;gap:9px;background:#c8c5a5;font:9px ui-monospace,monospace}.tool-inspector>div:last-child{padding:23px}.tool-inspector>div:last-child>svg{color:#687e66;margin-bottom:19px}.tool-inspector h3{font-size:27px;margin:10px 0 16px;letter-spacing:-.03em}.tool-inspector p{font-size:11px;line-height:1.9;color:#54624c}.tool-inspector ul{margin-top:15px}.tool-inspector li{border-top:1px solid #66754f30}.tool-inspector a{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:12px 0;font-size:11px;line-height:1.5}.tool-inspector a:hover{text-decoration:underline}.journey-section .section-shell{padding:0}.journey-section .about-grid{margin-bottom:0}.journey-end{border:1px dashed #bacbad5c;padding:18px;display:flex;align-items:center;gap:9px;margin-top:36px;font:10px ui-monospace,monospace;color:#d2ddbd}.dock-app{box-shadow:inset 1px 1px #ffffff70,inset -1px -1px #15252266,2px 3px #35463060}.dock-blue{background:linear-gradient(#8ebace,#50778f)}.dock-purple{background:linear-gradient(#c7afdf,#87709e)}.dock-orange{background:linear-gradient(#e0b089,#a77854)}.dock-cyan{background:linear-gradient(#a0cbbb,#5c8a7b)}.dock-silver{background:linear-gradient(#dadace,#929f96)}.dock-yellow{background:linear-gradient(#dfd18a,#a4934f)}.desktop-dock{background:linear-gradient(#d4d9c7,#aab9a3)}@media (max-width: 1200px){.desktop-sidebar{width:155px}.owner-copy h1{font-size:46px}.journey-section{padding-inline:30px}.selected-window:first-child>a{grid-template-columns:1fr}.selected-window:first-child .selected-preview{height:280px}.selected-preview{height:180px}.selected-copy h3{font-size:21px}.preferences-layout{gap:18px}.tool-inspector>div:last-child{padding:17px}.work-documents,.skills-preferences{padding:32px}}@media (min-width: 701px) and (max-width: 950px){.journey-hero .owner-scene,.journey-hero{min-height:auto}.owner-copy h1{font-size:49px}.portrait-arrival{width:70%}.preferences-layout{grid-template-columns:1fr}.tool-inspector{position:relative;top:auto}.selected-copy{padding:15px}.selected-copy h3{font-size:18px}}@media (max-width: 700px){.desktop-world,.desktop-world.journey-mode{padding-inline:10px}.desktop-sidebar{width:184px}.desktop-shortcuts{display:none}.journey-mode .portfolio-window{width:100%;margin-left:0}.journey-hero{min-height:auto}.journey-hero .owner-scene{min-height:auto;padding-top:27px;padding-bottom:24px}.owner-copy h1{font-size:clamp(36px,10.1vw,56px);margin-right:0}.owner-description{font-size:13px}.portrait-arrival{max-width:290px}.journey-scroll-cue{padding:10px 21px 23px;font-size:7px}.journey-section{padding:36px 21px 38px}.workspace-section-heading h2{font-size:35px}.workspace-section-heading>span{font-size:7px}.workspace-section-heading>p{font-size:12px}.selected-windows{grid-template-columns:1fr;gap:24px}.selected-window:first-child{grid-column:auto}.selected-window:first-child .selected-preview,.selected-preview{height:210px}.selected-copy{padding:19px}.selected-copy h3{font-size:24px}.selected-copy p{font-size:12px}.selected-titlebar{font-size:8px}.work-documents,.skills-preferences{padding:30px 21px}.journey-section>.work-documents,.journey-section>.skills-preferences{padding:0}.career-timeline{padding-left:15px}.timeline-node{left:-15px}.career-date{font-size:8px}.document-summary{gap:10px;padding:14px}.document-summary strong{font-size:14px}.document-summary>span>span{font-size:11px;line-height:1.6}.document-summary>svg:first-child{width:20px;flex-shrink:0}.document-location{flex-wrap:wrap;padding:10px 14px;font-size:7px}.document-responsibilities ul{font-size:11px;padding-right:17px}.preferences-layout{grid-template-columns:1fr;gap:22px}.tool-inspector{position:relative;top:auto}.tool-buttons button{font-size:10px;min-height:35px}.tool-folder h3{font-size:10px}.journey-end{font-size:8px;line-height:1.8}.desktop-dock{gap:10px}.window-expanded{padding-inline:5px}}@media (prefers-reduced-motion: reduce){.journey-scroll-cue svg{animation:none}.journey-mode .portfolio-window{width:100%;margin-left:0}.selected-window:hover img{transform:none}}.desktop-content .about-grid .portrait{-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;background:#31403e;padding:12px}.desktop-content .about-grid figure{display:flex;flex-direction:column;align-items:center}.desktop-content .about-grid .portrait{width:100%;max-width:360px;height:360px;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;background:#31403e;padding:18px}@media (max-width: 700px){.desktop-content .about-grid .portrait{height:390px;max-width:100%;padding:14px}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{color-scheme:dark;--background: 225 14% 5%;--foreground: 40 15% 94%;--card: 225 12% 9%;--card-foreground: 40 15% 94%;--popover: 225 12% 9%;--popover-foreground: 40 15% 94%;--primary: 213 100% 73%;--primary-foreground: 225 14% 5%;--secondary: 225 10% 15%;--secondary-foreground: 40 15% 94%;--muted: 225 10% 15%;--muted-foreground: 220 9% 66%;--accent: 213 100% 73%;--accent-foreground: 225 14% 5%;--destructive: 0 75% 65%;--destructive-foreground: 0 0% 100%;--border: 220 10% 19%;--input: 220 10% 25%;--ring: 213 100% 73%;--radius: .5rem}*{border-color:hsl(var(--border));box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#0b0c10;color:#f2f1ed;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}#root{min-height:100vh}::-moz-selection{background:#a5caff;color:#0b0c10}::selection{background:#a5caff;color:#0b0c10}a,button,input,textarea{-webkit-tap-highlight-color:transparent}a{text-decoration:none}button,a,input,textarea{touch-action:manipulation}:focus-visible{outline:2px solid #9ac5ff;outline-offset:6px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}img{max-width:100%}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-inset-2{top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-1{bottom:-.25rem}.-bottom-12{bottom:-3rem}.-bottom-2{bottom:-.5rem}.-bottom-20{bottom:-5rem}.-left-12{left:-3rem}.-left-2{left:-.5rem}.-left-20{left:-5rem}.-right-12{right:-3rem}.-right-2{right:-.5rem}.-right-20{right:-5rem}.-right-40{right:-10rem}.-top-10{top:-2.5rem}.-top-12{top:-3rem}.-top-2{top:-.5rem}.-top-40{top:-10rem}.bottom-0{bottom:0}.bottom-1\/3{bottom:33.333333%}.bottom-20{bottom:5rem}.bottom-40{bottom:10rem}.bottom-8{bottom:2rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-1\/3{left:33.333333%}.left-1\/4{left:25%}.left-10{left:2.5rem}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\/4{right:25%}.right-10{right:2.5rem}.right-12{right:3rem}.right-2{right:.5rem}.right-20{right:5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/3{top:33.333333%}.top-1\/4{top:25%}.top-16{top:4rem}.top-2{top:.5rem}.top-20{top:5rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-40{top:10rem}.top-8{top:2rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-8{margin-top:2rem;margin-bottom:2rem}.-ml-4{margin-left:-1rem}.-mt-0\.5{margin-top:-.125rem}.-mt-20{margin-top:-5rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[16\/10\]{aspect-ratio:16/10}.aspect-\[20\/9\]{aspect-ratio:20/9}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-0{height:0px}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-44{height:11rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[1px\]{height:1px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-36{width:9rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-32{max-width:8rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-skew-x-12{--tw-skew-x: -12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-y-12{row-gap:3rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-br-full{border-bottom-right-radius:9999px}.rounded-tl-full{border-top-left-radius:9999px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-accent{border-color:hsl(var(--accent))}.border-accent\/20{border-color:hsl(var(--accent) / .2)}.border-accent\/30{border-color:hsl(var(--accent) / .3)}.border-accent\/40{border-color:hsl(var(--accent) / .4)}.border-accent\/50{border-color:hsl(var(--accent) / .5)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-input{border-color:hsl(var(--input))}.border-muted{border-color:hsl(var(--muted))}.border-muted\/30{border-color:hsl(var(--muted) / .3)}.border-muted\/50{border-color:hsl(var(--muted) / .5)}.border-primary{border-color:hsl(var(--primary))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/10{background-color:hsl(var(--accent) / .1)}.bg-accent\/20{background-color:hsl(var(--accent) / .2)}.bg-accent\/30{background-color:hsl(var(--accent) / .3)}.bg-accent\/5{background-color:hsl(var(--accent) / .05)}.bg-accent\/80{background-color:hsl(var(--accent) / .8)}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/10{background-color:hsl(var(--secondary) / .1)}.bg-secondary\/15{background-color:hsl(var(--secondary) / .15)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-transparent{background-color:transparent}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--tw-gradient-stops))}.from-\[\#0077b5\]{--tw-gradient-from: #0077b5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 119 181 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#333\]{--tw-gradient-from: #333 var(--tw-gradient-from-position);--tw-gradient-to: rgb(51 51 51 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#34c759\]{--tw-gradient-from: #34c759 var(--tw-gradient-from-position);--tw-gradient-to: rgb(52 199 89 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#36a3f7\]{--tw-gradient-from: #36a3f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(54 163 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#ff9500\]{--tw-gradient-from: #ff9500 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 149 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-accent{--tw-gradient-from: hsl(var(--accent)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-accent\/0{--tw-gradient-from: hsl(var(--accent) / 0) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-accent\/30{--tw-gradient-from: hsl(var(--accent) / .3) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-secondary\/30{--tw-gradient-from: hsl(var(--secondary) / .3) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--secondary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-accent\/30{--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--accent) / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-accent\/40{--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--accent) / .4) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-accent\/5{--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--accent) / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-accent\/50{--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--accent) / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[\#005e93\]{--tw-gradient-to: #005e93 var(--tw-gradient-to-position)}.to-\[\#1a1a1a\]{--tw-gradient-to: #1a1a1a var(--tw-gradient-to-position)}.to-\[\#1a73e8\]{--tw-gradient-to: #1a73e8 var(--tw-gradient-to-position)}.to-\[\#248a3d\]{--tw-gradient-to: #248a3d var(--tw-gradient-to-position)}.to-\[\#c77700\]{--tw-gradient-to: #c77700 var(--tw-gradient-to-position)}.to-accent\/0{--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position)}.to-accent\/5{--tw-gradient-to: hsl(var(--accent) / .05) var(--tw-gradient-to-position)}.to-secondary{--tw-gradient-to: hsl(var(--secondary)) var(--tw-gradient-to-position)}.to-secondary\/0{--tw-gradient-to: hsl(var(--secondary) / 0) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-3{padding-bottom:.75rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pb-48{padding-bottom:12rem}.pb-6{padding-bottom:1.5rem}.pb-64{padding-bottom:16rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-40{padding-right:10rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-8xl{font-size:6rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent{color:hsl(var(--accent))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary{color:hsl(var(--secondary))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-accent\/10{--tw-shadow-color: hsl(var(--accent) / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-accent\/5{--tw-shadow-color: hsl(var(--accent) / .05);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[100px\]{--tw-blur: blur(100px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-lg{--tw-blur: blur(16px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur: blur(4px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-90{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.section-shell{width:min(1280px,calc(100% - 112px));margin:auto;padding:120px 0}.muted{color:#a4a8b3;line-height:1.75}.eyebrow{font-size:11px;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:#a4caff;display:flex;align-items:center;gap:10px}.site-header{height:84px;padding:0 56px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;background:#0b0c10ed;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid #ffffff0d}.wordmark{font-size:32px;line-height:1;font-weight:700;letter-spacing:-.08em}.wordmark span{color:#91bdff}.navigation{display:flex;gap:34px;align-items:center;font-size:12px;color:#b3b6bf}.navigation a{transition:color .2s;padding:12px 0}.navigation a:hover{color:#fff}.navigation .nav-resume{border:1px solid #ffffff29;border-radius:5px;display:flex;align-items:center;gap:16px;padding:10px 17px;color:#eee}.menu-toggle{display:none}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;padding:14px 20px;background:#a5caff;color:#10131c}.skip-link:focus{top:10px}.hero{min-height:min(850px,calc(100svh - 84px));padding:64px 0 100px;position:relative;display:flex;align-items:center;isolation:isolate;perspective:1100px}.hero-copy{z-index:2;width:57%}.hero h1{font-size:clamp(88px,9.3vw,142px);line-height:.92;letter-spacing:-.075em;font-weight:550;margin:28px 0 24px}.hero h1 span{color:#9a9da6}.hero-position{font-size:clamp(19px,2vw,27px);line-height:1.35;letter-spacing:-.025em;margin-bottom:18px}.hero-description{max-width:400px;color:#969ba9;font-size:14px;line-height:1.85}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:30px}.button-primary{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:#aecfff;color:#101725;padding:15px 21px;border:1px solid #c3dbff;border-radius:5px;font-size:12px;font-weight:600;transition:background .2s,transform .2s}.button-primary:hover{background:#d0e3ff;transform:translateY(-2px)}.text-link{display:inline-flex;align-items:center;gap:10px;font-size:12px;min-height:44px;transition:color .2s}.text-link:hover{color:#a4caff}.text-link svg{transition:transform .2s}.text-link:hover svg{transform:translate(2px,-2px)}.status-dot{width:5px;height:5px;border-radius:50%;background:#a4caff;box-shadow:0 0 12px #7aaaff}.hero-light{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;background:radial-gradient(420px circle at var(--pointer-x, 75%) var(--pointer-y, 45%),#6194ff09,transparent)}.hero-art{position:absolute;right:-20px;top:10%;width:53%;aspect-ratio:1;display:grid;place-items:center;z-index:-1}.orbital-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(#8daeff0b 1px,transparent 1px),linear-gradient(90deg,#8daeff0b 1px,transparent 1px);background-size:54px 54px;-webkit-mask-image:radial-gradient(ellipse,black,transparent 70%);mask-image:radial-gradient(ellipse,black,transparent 70%)}.orb{position:relative;width:59%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 29% 20%,#b6d6ff,#5682c4 4%,#273f66 16%,#121d32 38%,#090c14 65%);box-shadow:inset 2px 3px 5px #a0c9ff80,inset -6px -8px 24px #000,0 0 90px #315a9e28,0 40px 80px #0009;display:grid;place-items:center}.orb:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;border:1px solid #90b8ff30}.orb-inner{position:absolute;top:9%;right:9%;bottom:9%;left:9%;border-radius:50%;background:repeating-linear-gradient(0deg,transparent,transparent 6px,#9bbcff0b 7px);transform:rotate(-24deg);-webkit-mask-image:linear-gradient(black,transparent);mask-image:linear-gradient(black,transparent)}.orb span{font-size:clamp(65px,9vw,120px);letter-spacing:-.1em;font-weight:300;color:#cde0ffb0;text-shadow:0 0 30px #75a8ff50;padding-right:15px}.orbit{position:absolute;width:95%;height:35%;border:1px solid #83b4ff35;border-radius:50%;transform:rotate(-32deg);box-shadow:0 -1px #87b5ff0c}.orbit-two{width:83%;height:75%;transform:rotate(-32deg);border-color:#83b4ff16}.orbit-three{width:92%;height:92%;border:1px dashed #83b4ff16}.art-label{position:absolute;font-size:8px;letter-spacing:.15em;color:#8c9caf;display:flex;align-items:center;gap:15px}.label-top{top:8%;right:7%}.label-bottom{bottom:7%;left:12%}.art-label span{color:#b9d5ff;font-size:20px}.orbit-point{position:absolute;width:7px;height:7px;border-radius:50%;background:#c7e0ff;box-shadow:0 0 22px #a1caff}.point-one{left:9%;top:68%}.point-two{right:12%;top:27%;width:4px;height:4px}.hero-bottom{position:absolute;bottom:20px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;color:#878e9a;font-size:10px;letter-spacing:.06em;border-top:1px solid #ffffff14;padding-top:22px}.hero-bottom span:nth-child(2){display:flex;gap:12px;align-items:center}.section-heading{margin-bottom:52px}.section-heading .eyebrow{margin-bottom:20px}.section-heading h2{font-size:clamp(36px,4.6vw,65px);font-weight:450;letter-spacing:-.05em;line-height:1.08}.heading-row{display:flex;justify-content:space-between;align-items:end;gap:24px}.heading-row>p{font-size:13px}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px 32px}.project{min-width:0}.project-visual{display:block;position:relative;aspect-ratio:1.6;background:#141923;overflow:hidden;border:1px solid #ffffff12;padding:52px 30px 0}.project-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 65px #0003}.project-visual-top{position:absolute;top:18px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:center;color:#aab9cf;font-size:9px;letter-spacing:.13em;z-index:1}.project-visual img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:top;object-position:top;transition:transform .65s cubic-bezier(.2,.65,.3,1);filter:saturate(.8)}.project-visual:hover img{transform:scale(1.035) translateY(-3px);filter:saturate(1)}.project-copy{padding-top:24px}.project-copy h3{font-size:24px;letter-spacing:-.035em;line-height:1.25;margin:10px 0 14px}.project-copy>.muted{font-size:13px}.project-actions{display:flex;gap:25px;flex-wrap:wrap;margin-top:12px}.tag-list{padding:0;list-style:none;display:flex;gap:6px 10px;flex-wrap:wrap;margin:20px 0 0}.tag-list li{font-size:10px;color:#a5adbd;border:1px solid #ffffff13;padding:5px 8px;border-radius:3px}.project-featured{grid-column:1 / -1;display:grid;grid-template-columns:1.5fr 1fr;gap:42px;align-items:center;padding-bottom:38px;border-bottom:1px solid #ffffff19}.project-featured .project-visual{aspect-ratio:1.25;background:radial-gradient(ellipse at top,#233453,#111720 75%);padding:62px 35px 25px}.project-featured .project-visual img{-o-object-position:center;object-position:center}.project-featured .project-copy{padding:10px 0}.project-featured h3{font-size:40px}.work-compact .project-visual{aspect-ratio:2}.tonal-section{background:#101115;border-block:1px solid #ffffff08}.experience-row{display:grid;grid-template-columns:28% 1fr;gap:40px;border-top:1px solid #ffffff19;padding:36px 0}.experience-meta{font-size:12px;line-height:2}.experience-body{position:relative;border-left:1px solid #33435b;padding-left:32px}.experience-body:before{content:"";position:absolute;left:-4px;top:9px;width:7px;height:7px;border-radius:50%;background:#a4caff}.experience-body h3{font-size:23px;letter-spacing:-.025em}.experience-body>p{color:#a4caff;margin:8px 0 18px;font-size:14px}.experience-body ul{list-style:disc;padding-left:16px;font-size:13px}.experience-body li{padding:4px 0 4px 4px}.about-grid{display:grid;grid-template-columns:.75fr 1fr;gap:90px;align-items:center;margin-bottom:75px}.portrait{width:100%;height:410px;-o-object-fit:cover;object-fit:cover;-o-object-position:center 30%;object-position:center 30%;filter:saturate(.55);border-radius:3px}.about-grid figcaption{margin-top:12px;font-size:11px}.about-grid>div>p{font-size:28px;letter-spacing:-.025em;line-height:1.3;margin-bottom:30px}.about-grid dl>div{display:grid;grid-template-columns:85px 1fr;gap:18px;border-top:1px solid #ffffff14;padding:15px 0}.about-grid dd{font-size:14px}.about-grid dt{font-size:9px;align-self:start;margin-top:5px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:30px}.skill-group{padding-top:20px;border-top:1px solid #ffffff20}.skill-group h4{font-size:13px;color:#cbd8eb}.skill-group .tag-list{margin-top:15px}.award-row{display:grid;grid-template-columns:100px 1fr;gap:30px;padding:32px 0;border-top:1px solid #ffffff19}.award-number{font-size:60px;letter-spacing:-.06em;color:#657389;font-weight:300;line-height:1}.award-body h3{font-size:25px;letter-spacing:-.03em;margin:10px 0}.award-body>p:not(.eyebrow){font-size:13px;line-height:1.8;margin:8px 0}.award-body .text-link{margin-right:24px}.award-body .tag-list{margin-top:12px}.contact-section h2{font-size:clamp(42px,5.5vw,78px)}.contact-section h2 span{color:#919baa}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-intro>p{max-width:360px;font-size:15px}.contact-email,.email-link{display:flex;align-items:center;gap:18px;font-size:clamp(16px,1.8vw,23px);letter-spacing:-.03em;margin:32px 0}.social-links{display:flex;flex-wrap:wrap;gap:8px 24px}.contact-note{color:#969eab;margin-top:50px;font-size:11px}.contact-form{display:flex;flex-direction:column;gap:22px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contact-form label{display:block;font-size:11px;letter-spacing:.02em}.contact-form input,.contact-form textarea{width:100%;padding:13px 0;background:transparent;border:0;border-bottom:1px solid #ffffff30;border-radius:0;color:#eee;font-size:14px;margin-top:7px;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-bottom-color:#a4caff}.contact-form ::-moz-placeholder{color:#79818e}.contact-form ::placeholder{color:#79818e}.contact-form button{align-self:start}.form-status{color:#bed6fa;font-size:12px;line-height:1.7;min-height:25px}.form-status a{text-decoration:underline}.site-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff19;margin:0 56px;padding:32px 0}.site-footer p{font-size:11px;color:#9da4b0}.image-fallback{min-height:180px;height:100%;display:flex;align-items:center;justify-content:center;gap:16px;color:#9dacc3;font-size:12px}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}.reveal.is-visible{opacity:1;transform:none}.detail-page{padding-top:55px}.detail-header{max-width:860px;margin:55px 0}.detail-header h1{font-size:clamp(42px,6vw,80px);line-height:1.07;letter-spacing:-.055em;margin:24px 0}.detail-header>p.muted{max-width:740px;font-size:16px}.detail-actions{display:flex;gap:24px;margin-top:28px;flex-wrap:wrap}.detail-gallery{display:grid;grid-template-columns:1fr 1fr;gap:38px}.detail-gallery figure{min-width:0}.detail-gallery .screenshot-image{background:#151820;aspect-ratio:1.6;padding:20px;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff15}.screenshot-image img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.detail-gallery figcaption{color:#a4a8b3;font-size:13px;line-height:1.8;margin-top:18px}.detail-video{width:100%;aspect-ratio:16 / 9;border:1px solid #ffffff20;margin-bottom:50px}.detail-end{border-top:1px solid #ffffff20;padding-top:30px;margin-top:60px}@media (min-width: 1500px){.hero-art{right:0;top:7%}}@media (max-width: 1000px){.section-shell{width:calc(100% - 64px);padding:90px 0}.site-header{padding:0 32px}.navigation{gap:22px}.hero{padding:65px 0 105px;min-height:750px}.hero-art{width:55%;top:16%;right:-16px}.hero-copy{width:62%}.hero-description{max-width:330px}.project-featured{gap:26px;grid-template-columns:1.15fr 1fr}.project-featured h3{font-size:32px}.project-visual{padding-inline:16px}.about-grid,.contact-grid{gap:45px}.site-footer{margin-inline:32px}.skills-grid{grid-template-columns:1fr 1fr}}@media (max-width: 700px){html{scroll-padding-top:85px}.section-shell{width:calc(100% - 40px);padding:72px 0}.site-header{height:70px;padding:0 20px}.wordmark{font-size:29px}.menu-toggle{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff1c;border-radius:5px}.menu-toggle svg{width:20px}.navigation{display:none;position:absolute;top:69px;left:0;right:0;background:#11141b;border-bottom:1px solid #ffffff20;padding:20px;gap:2px}.navigation.is-open{display:flex;flex-direction:column;align-items:stretch}.navigation a{padding:14px 10px;font-size:14px}.navigation .nav-resume{margin-top:10px;justify-content:space-between}.hero{display:block;padding:46px 0 85px;min-height:920px}.hero-copy{width:100%}.hero .eyebrow{font-size:9px;letter-spacing:.13em}.hero h1{font-size:clamp(88px,19vw,128px);margin:26px 0}.hero-position{font-size:23px}.hero-description{max-width:350px;font-size:13px}.hero-actions{gap:18px;margin-top:25px}.button-primary{padding:14px 16px;gap:14px}.hero-art{position:relative;width:90%;margin:20px auto 0;top:auto;right:auto;max-width:380px}.hero-bottom{bottom:18px;font-size:9px}.hero-bottom span:nth-child(2){display:none}.orb span{font-size:77px}.art-label{font-size:7px}.section-heading{margin-bottom:35px}.heading-row{display:block}.heading-row>p{margin-top:20px}.projects-grid{grid-template-columns:1fr;gap:44px}.project-featured{display:block;padding-bottom:28px}.project-featured .project-visual{aspect-ratio:1.4;padding:45px 20px 16px}.project-featured .project-copy{padding-top:24px}.project-featured h3{font-size:32px}.project-copy h3{font-size:26px}.project-visual{aspect-ratio:1.5}.work-compact .project-visual{aspect-ratio:1.7}.project-actions{gap:22px}.experience-row{grid-template-columns:1fr;gap:20px;padding:28px 0}.experience-meta{display:flex;justify-content:space-between;gap:20px;font-size:10px}.experience-body{padding-left:22px}.experience-body h3{font-size:21px}.about-grid{grid-template-columns:1fr;gap:32px;margin-bottom:50px}.portrait{height:390px}.about-grid>div>p{font-size:26px}.skills-grid{gap:25px 18px}.skill-group .tag-list{gap:5px}.tag-list li{font-size:9px}.award-row{grid-template-columns:42px 1fr;gap:15px}.award-number{font-size:37px}.award-body h3{font-size:23px}.award-body .eyebrow{font-size:9px}.contact-grid{grid-template-columns:1fr;gap:44px}.contact-section h2{font-size:clamp(38px,9vw,60px)}.contact-email{font-size:21px}.form-row{gap:20px}.site-footer{margin:0 20px;flex-wrap:wrap;gap:20px}.site-footer p,.site-footer .text-link{font-size:10px}.detail-page{padding-top:30px}.detail-gallery{grid-template-columns:1fr}.detail-header{margin:35px 0}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.project-visual:hover img,.button-primary:hover{transform:none}}.hero{overflow:clip}.hero-light{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(350px circle at var(--pointer-x, 75%) var(--pointer-y, 40%),#589eff09,transparent 85%)}@media (prefers-reduced-motion: no-preference){.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}.experience-row.is-visible .experience-body{animation:timeline-highlight .9s ease-out both}@keyframes timeline-highlight{0%{border-color:transparent}to{border-color:#94c4ff30}}}.orbital-art{position:absolute;width:610px;height:610px;right:-10px;top:65px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#2866bb24,transparent 65%)}.orb-core{position:absolute;width:300px;height:300px;top:155px;left:155px;border-radius:50%;background:radial-gradient(circle at 31% 24%,#9dcaff,#417dc6 5%,#153859 19%,#0a131e 43%,#080b10 68%);box-shadow:inset 2px 3px 7px #b8d8ff88,inset -6px -7px 20px #73afff35,0 0 85px #337ccd18}.orbital-art .orbit{position:absolute;top:70px;right:0;bottom:70px;left:0;border:1px solid #75b9ff5e;border-radius:50%;box-shadow:0 -1px 3px #9ccaff44}.orbital-art .orbit-one{transform:rotate(-35deg) scaleY(.48)}.orbital-art .orbit-two{transform:rotate(55deg) scaleY(.48);border-color:#75b9ff30}.orbital-art .orbit-three{transform:rotate(-35deg) scaleY(.48) scale(1.2);border-color:#75b9ff19}.orb-caption,.orb-coordinate{position:absolute;font-family:monospace;font-size:9px;letter-spacing:.15em;color:#8499b5}.orb-caption{bottom:63px;right:67px}.orb-coordinate{top:60px;left:60px}.hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:90px 90px;-webkit-mask-image:linear-gradient(90deg,transparent 25%,black);mask-image:linear-gradient(90deg,transparent 25%,black)}.hero-footer{position:absolute;bottom:27px;left:0;right:0;display:flex;justify-content:space-between;border-top:1px solid #ffffff14;padding-top:22px;font-size:9px;letter-spacing:.15em;color:#959ba5}.hero-footer a{display:flex;gap:14px;align-items:center}@media (max-width: 760px){.hero{min-height:780px}.orbital-art{position:relative;width:350px;height:350px;max-width:100%;right:auto;top:auto;margin:25px auto 0;opacity:1;overflow:clip}.orb-core{width:180px;height:180px;top:85px;left:calc(50% - 90px)}.orbital-art .orbit{top:40px;right:0;bottom:40px;left:0}.orb-caption{bottom:20px;right:15px;font-size:7px}.orb-coordinate{top:20px;left:15px;font-size:7px}.hero-footer{font-size:8px;gap:12px}.hero-footer>span{max-width:150px;line-height:1.8}.screenshots-grid{grid-template-columns:1fr}.detail-cover{padding:15px}.screenshot img{height:auto;max-height:400px}}@media (max-width: 380px){.form-row,.skills-grid{grid-template-columns:1fr}.contact-email{font-size:17px}.hero-footer a{max-width:110px}}.project-notebook{min-height:100vh;background:#202429;color:#e9e3d6}.project-notebook .site-header{background:#292e31;border-bottom:1px solid #c6c4aa22;-webkit-backdrop-filter:none;backdrop-filter:none;height:65px}.project-notebook .wordmark span{color:#b8c6a7}.project-notebook .detail-page{max-width:1100px;padding-top:36px}.project-notebook .detail-header h1{font-size:clamp(38px,5vw,66px);font-weight:450;letter-spacing:-.04em}.project-notebook .eyebrow{color:#a9bc9f;font-family:ui-monospace,monospace;font-size:10px}.project-notebook .muted,.project-notebook .detail-gallery figcaption{color:#b7bfb3}.project-notebook .button-primary{color:#283024;background:#bbc9ad;border-color:#ccd5bd}.project-notebook .tag-list li{color:#b8c3b0;border-color:#c5c5ac26}.project-notebook .detail-gallery .screenshot-image{background:#2a3137;border:1px solid #c9c3a835;border-radius:5px;box-shadow:inset 0 7px #353e44}.project-notebook .detail-gallery figcaption{font-size:13px}.project-notebook .detail-gallery figcaption .eyebrow{margin-bottom:9px}.project-notebook .text-link:hover{color:#d3dec6}.about-grid .portrait{-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;background:#1c2828}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-0:before{content:var(--tw-content);top:0;right:0;bottom:0;left:0}.before\:origin-left:before{content:var(--tw-content);transform-origin:left}.before\:scale-x-0:before{content:var(--tw-content);--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:bg-accent\/5:before{content:var(--tw-content);background-color:hsl(var(--accent) / .05)}.before\:transition-transform:before{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.before\:duration-300:before{transition-duration:.3s;content:var(--tw-content);animation-duration:.3s}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:translate-x-0:hover{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:translate-y-\[-5px\]:hover{--tw-translate-y: -5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-accent:hover{border-color:hsl(var(--accent))}.hover\:border-accent\/40:hover{border-color:hsl(var(--accent) / .4)}.hover\:border-accent\/50:hover{border-color:hsl(var(--accent) / .5)}.hover\:border-accent\/60:hover{border-color:hsl(var(--accent) / .6)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/10:hover{background-color:hsl(var(--accent) / .1)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:text-accent:hover{color:hsl(var(--accent))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-2xl:hover{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-accent\/15:hover{--tw-shadow-color: hsl(var(--accent) / .15);--tw-shadow: var(--tw-shadow-colored)}.hover\:brightness-100:hover{--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:before\:scale-x-100:hover:before{content:var(--tw-content);--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:border-accent\/50:focus{border-color:hsl(var(--accent) / .5)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-accent\/30:focus{--tw-ring-color: hsl(var(--accent) / .3)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:h-56{height:14rem}.group:hover .group-hover\:w-56{width:14rem}.group:hover .group-hover\:w-full{width:100%}.group:hover .group-hover\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/link:hover .group-hover\/link\:bg-accent\/20{background-color:hsl(var(--accent) / .2)}.group:hover .group-hover\:from-accent\/50{--tw-gradient-from: hsl(var(--accent) / .5) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:from-secondary\/50{--tw-gradient-from: hsl(var(--secondary) / .5) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--secondary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:via-accent\/80{--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--accent) / .8) var(--tw-gradient-via-position), var(--tw-gradient-to)}.group:hover .group-hover\:text-\[\#007aff\]{--tw-text-opacity: 1;color:rgb(0 122 255 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-\[\#65b4ff\]{--tw-text-opacity: 1;color:rgb(101 180 255 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-accent{color:hsl(var(--accent))}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-10{opacity:.1}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-60{opacity:.6}.group:hover .group-hover\:opacity-80{opacity:.8}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.aria-selected\:opacity-30[aria-selected=true]{opacity:.3}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mb-8{margin-bottom:2rem}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-48{height:12rem}.sm\:w-56{width:14rem}.sm\:w-80{width:20rem}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-8{padding:2rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:text-left{text-align:left}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-9xl{font-size:8rem;line-height:1}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:col-span-2{grid-column:span 2 / span 2}.md\:col-span-3{grid-column:span 3 / span 3}.md\:-mt-28{margin-top:-7rem}.md\:mb-16{margin-bottom:4rem}.md\:ml-4{margin-left:1rem}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:hidden{display:none}.md\:aspect-\[2\/3\]{aspect-ratio:2/3}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-3{gap:.75rem}.md\:px-24{padding-left:6rem;padding-right:6rem}.md\:pb-56{padding-bottom:14rem}.md\:pb-80{padding-bottom:20rem}.md\:pt-40{padding-top:10rem}.md\:text-left{text-align:left}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:-mt-36{margin-top:-9rem}.lg\:mb-24{margin-bottom:6rem}.lg\:block{display:block}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:gap-10{gap:2.5rem}.lg\:p-12{padding:3rem}.lg\:pb-96{padding-bottom:24rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-7xl{font-size:4.5rem;line-height:1}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}
