:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{min-width:320px;overflow:hidden}button,a{font:inherit}.portfolio{--normal-margin:calc(50px * var(--screen-scale));--portfolio-margin-x:clamp(12px, calc((100vw - (800px * var(--screen-scale))) / 2), var(--normal-margin));--portfolio-margin-y:clamp(12px, calc((100vh - (560px * var(--screen-scale))) / 2), var(--normal-margin));--portfolio-width:min(calc(800px * var(--screen-scale)), calc(100vw - (2 * var(--portfolio-margin-x))));--portfolio-height:min(calc(560px * var(--screen-scale)), calc(100vh - (2 * var(--portfolio-margin-y))));background:#7484ad;width:100vw;height:100vh;position:relative;overflow:hidden}.world,.room-decor,.front-desk-layer,.desk-asset-layer{width:10000px;height:700px;transform:scale(var(--screen-scale));transform-origin:0 0;pointer-events:none;position:absolute;top:0;left:0}.world{z-index:0}.background{background-position:0 0;background-repeat:no-repeat;background-size:1285px 700px;width:1285px;height:700px;position:absolute;top:0;left:0}.background-extension{background-position:0 0;background-repeat:repeat-x;background-size:auto 700px;width:8715px;height:700px;position:absolute;top:0;left:1285px}.portfolio-vine{left:calc(50px * var(--screen-scale));top:calc(50px * var(--screen-scale));width:calc(800px * var(--screen-scale));height:calc(600px * var(--screen-scale));pointer-events:none;z-index:5;position:absolute;overflow:visible}.portfolio-vine img{pointer-events:none;width:114%;max-width:none;height:auto;position:absolute;top:-10%;left:-7%}.portfolio-window{left:var(--portfolio-margin-x);top:var(--portfolio-margin-y);width:var(--portfolio-width);height:var(--portfolio-height);border:calc(4px * var(--screen-scale)) solid #293e76;box-shadow:0 0 0 calc(4px * var(--screen-scale)) #aeb9d7, calc(10px * var(--screen-scale)) calc(10px * var(--screen-scale)) 0 #1f2c4f59;z-index:10;background:#fff9ef;position:absolute;overflow:hidden;container:portfolio-box/size}.side-nav{--tab-size:clamp(40px, 10cqw, 62px);--nav-width:clamp(42px, 10cqw, 62px);width:var(--nav-width);z-index:20;background:#fff9ef;border-right:2px solid #aeb9d7;position:absolute;top:0;bottom:0;left:0;overflow:visible}.nav-buttons{width:100%;height:min(calc(var(--tab-size) * 6), 100%);z-index:2;position:relative;overflow:visible}.nav-button{width:calc(100% - 2px);height:var(--tab-size);color:#293e76;cursor:pointer;background:#fff9ef;border:none;border-bottom:2px solid #aeb9d7;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,height .15s;display:flex;position:relative}.nav-icon{justify-content:center;align-items:center;width:100%;height:100%;font-size:clamp(.9rem,2.25cqw,1.4rem);display:flex}.nav-label{color:#fff9ef;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:100;background:#293e76;border:2px solid #aeb9d7;padding:clamp(5px,1cqw,7px) clamp(8px,1.5cqw,11px);font-size:clamp(.65rem,1.4cqw,.8rem);line-height:1;transition:opacity .15s,transform .15s;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)translate(-5px)}.nav-button:hover .nav-label{opacity:1;visibility:visible;transform:translateY(-50%)translate(0)}.nav-button:hover{background:#e4e8f5}.nav-button.active{color:#fff9ef;background:#354f89}.content{width:100%;height:100%;padding:calc(42px * var(--screen-scale)) calc(55px * var(--screen-scale)) calc(42px * var(--screen-scale)) calc(96px * var(--screen-scale));color:#293e76;scrollbar-width:thin;scrollbar-color:#8f9cc5 #f0e9df;overflow:hidden auto}.content::-webkit-scrollbar{width:12px}.content::-webkit-scrollbar-track{background:#f0e9df;border-left:2px solid #aeb9d7}.content::-webkit-scrollbar-thumb{background:#8f9cc5;border:3px solid #f0e9df;border-radius:999px}.content::-webkit-scrollbar-thumb:hover{background:#6577ad}.page{width:100%;animation:.18s pageFade}@keyframes pageFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.section-heading{margin-bottom:calc(26px * var(--screen-scale))}.section-kicker{margin-bottom:calc(5px * var(--screen-scale));color:#8f9cc5;font-size:calc(.68rem * var(--screen-scale));letter-spacing:calc(3px * var(--screen-scale));font-weight:700;display:block}.section-heading h1{color:#40598f;font-size:calc(3rem * var(--screen-scale));letter-spacing:calc(-1px * var(--screen-scale));margin:0;line-height:.95}.about-page{flex-direction:column;justify-content:center;min-height:100%;display:flex}.eyebrow{align-items:center;gap:calc(12px * var(--screen-scale));margin-bottom:calc(24px * var(--screen-scale));color:#6577ad;font-size:calc(.68rem * var(--screen-scale));letter-spacing:calc(5px * var(--screen-scale));font-weight:700;display:flex}.eyebrow:before{content:"";width:calc(28px * var(--screen-scale));height:calc(2px * var(--screen-scale));background:#6577ad}.hero-name>span{margin-bottom:calc(3px * var(--screen-scale));color:#8f9cc5;font-size:calc(.78rem * var(--screen-scale));letter-spacing:calc(3px * var(--screen-scale));font-weight:700;display:block}.hero-name h1{color:#40598f;font-size:calc(4.5rem * var(--screen-scale));letter-spacing:calc(-3px * var(--screen-scale));margin:0;line-height:.88}.hero-role{margin-top:calc(17px * var(--screen-scale));color:#293e76;font-size:calc(1rem * var(--screen-scale));letter-spacing:calc(1.8px * var(--screen-scale));font-weight:700}.hero-role span,.hero-degree span{color:#8f9cc5}.hero-degree{margin-top:calc(5px * var(--screen-scale));color:#6577ad;font-size:calc(.7rem * var(--screen-scale));letter-spacing:calc(2.5px * var(--screen-scale));font-weight:700}.hero-line{width:calc(75px * var(--screen-scale));height:calc(3px * var(--screen-scale));margin:calc(21px * var(--screen-scale)) 0 calc(16px * var(--screen-scale));background:#8f9cc5}.hero-description{width:min(100%, calc(520px * var(--screen-scale)));color:#293e76;font-size:calc(.92rem * var(--screen-scale));margin:0;line-height:1.55}.hero-tags{gap:calc(7px * var(--screen-scale));margin-top:calc(18px * var(--screen-scale));flex-wrap:wrap;display:flex}.hero-tags span,.inline-tags span{padding:calc(4px * var(--screen-scale)) calc(8px * var(--screen-scale));border:calc(1px * var(--screen-scale)) solid #aeb9d7;color:#40598f;font-size:calc(.66rem * var(--screen-scale));background:#e4e8f5;font-weight:600}.editorial-list{width:100%}.editorial-row{width:100%;padding:calc(18px * var(--screen-scale)) 0;border-top:calc(2px * var(--screen-scale)) solid #d6dced}.editorial-row:last-child{border-bottom:calc(2px * var(--screen-scale)) solid #d6dced}.row-content{text-align:left;width:100%;min-width:0}.row-content h2{margin:0 0 calc(6px * var(--screen-scale));color:#293e76;font-size:calc(1.25rem * var(--screen-scale));line-height:1}.row-content p{color:#40598f;font-size:calc(.82rem * var(--screen-scale));margin:0;line-height:1.5}.row-content .secondary-text{margin-top:calc(3px * var(--screen-scale));color:#6577ad}.experience-list{padding-bottom:calc(10px * var(--screen-scale))}.experience-row{padding:calc(19px * var(--screen-scale)) 0}.experience-top{justify-content:space-between;align-items:flex-start;gap:calc(20px * var(--screen-scale));display:flex}.experience-top h2{margin-bottom:calc(4px * var(--screen-scale))}.experience-top h2 a{color:inherit;text-decoration:none}.experience-top h2 a:hover{color:#6577ad}.role-name{font-weight:600;color:#6577ad!important;font-size:calc(.76rem * var(--screen-scale))!important}.date{color:#8f9cc5;font-size:calc(.67rem * var(--screen-scale));letter-spacing:calc(1px * var(--screen-scale));flex-shrink:0;font-weight:700}.inline-tags{gap:calc(5px * var(--screen-scale));margin-top:calc(11px * var(--screen-scale));flex-wrap:wrap;display:flex}.experience-description{max-width:calc(560px * var(--screen-scale));margin-top:calc(11px * var(--screen-scale))!important;color:#293e76!important;font-size:calc(.78rem * var(--screen-scale))!important;line-height:1.5!important}.project-list{width:100%;padding-bottom:calc(10px * var(--screen-scale))}.project-row{width:100%;padding:calc(18px * var(--screen-scale)) 0;border-top:calc(2px * var(--screen-scale)) solid #d6dced;display:block}.project-row:last-child{border-bottom:calc(2px * var(--screen-scale)) solid #d6dced}.project-info{width:100%;min-width:0}.project-title-line{justify-content:space-between;align-items:flex-start;gap:calc(15px * var(--screen-scale));display:flex}.project-title-line h2{color:#293e76;font-size:calc(1.35rem * var(--screen-scale));margin:0;line-height:1.05}.project-title-line>a{color:#6577ad;font-size:calc(.68rem * var(--screen-scale));letter-spacing:calc(1px * var(--screen-scale));flex-shrink:0;font-weight:700;text-decoration:none}.project-title-line>a:hover{color:#293e76}.project-info p{margin:calc(10px * var(--screen-scale)) 0 0;max-width:calc(560px * var(--screen-scale));color:#40598f;font-size:calc(.78rem * var(--screen-scale));line-height:1.5}.gallery-page{min-height:100%}.gallery-empty{min-height:calc(310px * var(--screen-scale));padding:calc(30px * var(--screen-scale));border:calc(2px * var(--screen-scale)) dashed #b8c3df;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.gallery-symbol{margin-bottom:calc(10px * var(--screen-scale));color:#8f9cc5;font-size:calc(2rem * var(--screen-scale))}.gallery-empty h2{margin:0 0 calc(10px * var(--screen-scale));color:#40598f;font-size:calc(1.6rem * var(--screen-scale));letter-spacing:calc(2px * var(--screen-scale))}.gallery-empty p{max-width:calc(420px * var(--screen-scale));color:#6577ad;font-size:calc(.84rem * var(--screen-scale));margin:0;line-height:1.5}.contact-intro{max-width:calc(520px * var(--screen-scale));margin:0 0 calc(27px * var(--screen-scale));color:#40598f;font-size:calc(.86rem * var(--screen-scale));line-height:1.55}.contact-list{border-top:calc(2px * var(--screen-scale)) solid #d6dced}.contact-list>a,.contact-location{grid-template-columns:calc(90px * var(--screen-scale)) minmax(0, 1fr) auto;align-items:center;gap:calc(12px * var(--screen-scale));min-height:calc(60px * var(--screen-scale));border-bottom:calc(2px * var(--screen-scale)) solid #d6dced;display:grid}.contact-list>a{color:inherit;text-decoration:none;transition:background .15s,padding .15s}.contact-list>a:hover{padding-left:calc(8px * var(--screen-scale));background:#f4f1ec}.contact-type{color:#293e76;font-size:calc(.76rem * var(--screen-scale));letter-spacing:calc(1px * var(--screen-scale));font-weight:700}.contact-value{color:#6577ad;min-width:0;font-size:calc(.78rem * var(--screen-scale));overflow-wrap:anywhere}.contact-arrow{color:#6577ad;font-size:calc(.85rem * var(--screen-scale))}.room-decor{z-index:30}.desk{width:625px;height:auto;position:absolute;top:350px;left:800px}.front-desk-layer{z-index:40}.front-desk{background-position:0 0;background-repeat:repeat-x;background-size:auto 300px;width:10000px;height:300px;position:absolute;top:335px;left:0}.desk-asset-layer{z-index:50}.desk-asset{width:260px;height:auto;position:absolute;top:450px;left:0}@container portfolio-box (width<=600px){.content{padding:38px 38px 38px 82px}.section-heading h1{font-size:2.5rem}.hero-name h1{font-size:3.7rem}.hero-role{font-size:.85rem}.project-title-line h2{font-size:1.15rem}.contact-list>a,.contact-location{grid-template-columns:75px minmax(0,1fr) auto}}@container portfolio-box (width<=480px){.content{padding:32px 25px 30px 68px}.section-heading{margin-bottom:20px}.section-heading h1{font-size:2.15rem}.hero-name h1{letter-spacing:-2px;font-size:3rem}.hero-role{letter-spacing:1.2px;font-size:.75rem}.hero-degree{letter-spacing:1.8px;font-size:.62rem}.hero-description{font-size:.82rem}.row-content h2{font-size:1.05rem}.row-content p{font-size:.76rem}.experience-top{flex-direction:column;gap:5px}.project-title-line{flex-direction:column;gap:6px}.contact-list>a,.contact-location{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 0}.contact-type{display:none}}@container portfolio-box (width<=380px){.content{padding:26px 18px 25px 58px}.eyebrow{margin-bottom:18px}.hero-name h1{font-size:2.5rem}.hero-role{line-height:1.5}.hero-tags{margin-top:14px}.section-heading h1{font-size:1.8rem}.section-kicker{letter-spacing:2px;font-size:.58rem}.row-content h2{font-size:.95rem}.project-title-line h2{font-size:1rem}}@container portfolio-box (height<=500px){.content{padding-top:30px;padding-bottom:28px}.about-page{justify-content:flex-start}.eyebrow{margin-bottom:17px}.hero-name h1{font-size:calc(3.7rem * var(--screen-scale))}.hero-line{margin:calc(15px * var(--screen-scale)) 0 calc(12px * var(--screen-scale))}.section-heading{margin-bottom:calc(19px * var(--screen-scale))}}@container portfolio-box (height<=400px){.content{padding-top:22px}.hero-name h1{font-size:calc(3rem * var(--screen-scale))}.hero-description{font-size:calc(.78rem * var(--screen-scale))}.section-heading h1{font-size:calc(2.3rem * var(--screen-scale))}}@media (width<=900px){.portfolio-vine{width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.portfolio-vine img{object-fit:cover;width:100%;height:100%;top:0;left:0}}
