:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d10;--panel:#13171d;--panel-raised:#191e25;--panel-glass:#0c152485;--panel-glass-line:#94c0f66b;--line:#2a3039;--white:#f5f6f8;--text:#d0d4da;--muted:#a0a7b1;--blue:#1675ff;--blue-light:#4190ff;--font:Arial, Helvetica, sans-serif;--content:100%;--page-gutter:32px;--hero-content:1000px;--about-content:930px;--scrollbar-track:#101318;--scrollbar-thumb:#39414d;--scrollbar-thumb-hover:#536174;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}*{box-sizing:border-box}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{border:3px solid var(--scrollbar-track);background:var(--scrollbar-thumb);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-thumb:active{background:var(--blue-light)}@media (forced-colors:active){:root{scrollbar-color:auto}::-webkit-scrollbar-track{background:canvas}::-webkit-scrollbar-thumb{background:buttontext;border-color:canvas}}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--bg);color:var(--white);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}.particle-background{z-index:0;pointer-events:none;background:#02050b;position:fixed;inset:0;overflow:hidden}.particle-poster,.particle-poster img,.particle-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.particle-poster img{object-fit:fill}.particle-canvas{opacity:0;transition:opacity .45s}.particle-canvas[data-ready=true]{opacity:1}main,.site-footer{z-index:1;position:relative}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}::selection{background:var(--blue);color:#fff}.section-wrap{width:min(var(--content), calc(100% - var(--page-gutter) - var(--page-gutter)));margin-inline:auto}.skip-link{z-index:100;background:var(--blue);border-radius:6px;padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;transition:background-color .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:sticky;top:0}.site-header:focus-within,.site-footer:focus-within{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background-color:#0b0d10e6}@media (hover:hover){.site-header:hover,.site-footer:hover{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background-color:#0b0d10e6}}.header-inner{width:min(var(--content), calc(100% - var(--page-gutter) - var(--page-gutter)));justify-content:space-between;align-items:center;height:82px;margin-inline:auto;display:flex}.wordmark{color:var(--white);letter-spacing:.015em;font-size:17px;font-weight:700}.site-header nav{align-items:center;gap:32px;display:flex}.site-header nav a,.back-top{color:#c3c8d0;font-size:14px;font-weight:500;transition:color .2s}.site-header nav a:hover,.back-top:hover{color:#fff}.hero{width:min(var(--hero-content), calc(100% - var(--page-gutter) - var(--page-gutter)));grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:clamp(20px,2vw,24px);min-height:660px;padding-top:42px;padding-bottom:74px;display:grid}.hero-copy{z-index:1;position:relative}.hero h1{letter-spacing:-.055em;max-width:650px;margin:0;font-size:clamp(54px,6.2vw,78px);font-weight:700;line-height:1.04}.hero h1 span{color:var(--blue-light)}.hero-intro{max-width:475px;color:var(--muted);margin:25px 0 28px;font-size:18px;line-height:1.65}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.button{border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:12px;min-height:50px;padding:0 20px;font-size:14px;font-weight:600;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.button svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:18px;height:18px}.button-primary{background:var(--blue);color:#fff}.button-primary:hover{background:#2b83ff;transform:translateY(-2px)}.button-quiet{color:#e6e9ed;background:#13161b;border-color:#3b424d}.button-quiet:hover{background:#191d23;border-color:#697380}.hero-meta{color:var(--muted);align-items:center;gap:7px;margin:35px 0 0;font-size:15px;display:flex}.hero-meta strong{color:var(--white);font-size:17px}.hero-meta span{color:#626a75;margin-inline:5px}.hero-brand{background:0 0;justify-self:start;width:min(100%,500px);overflow:visible}.hero-brand img{width:100%;height:auto;display:block}.work-section{padding-top:82px;padding-bottom:43px}.section-heading{margin-bottom:42px}.section-heading h2,.about-heading h2,.contact-heading h2{text-align:center;letter-spacing:-.045em;margin:0;font-size:clamp(40px,4.5vw,54px);font-weight:700;line-height:1.12}.section-intro{text-align:center;color:var(--muted);margin:12px 0 0;font-size:16px}.work-subheading{text-align:center;color:#e8ebef;letter-spacing:-.025em;margin:0 0 24px;font-size:22px;font-weight:650}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:50px 28px;display:grid}.standalone-heading{margin-top:62px}.project-card{min-width:0}.project-card-link{cursor:pointer;border-radius:14px;display:block}.project-card-link:hover .project-preview{outline:1px solid color-mix(in srgb, var(--project-accent) 60%, #ebf7ff99)}.project-card-link:active .project-preview{outline-color:var(--project-accent)}@property --glass-top-x{syntax:"<percentage>";inherits:true;initial-value:20%}@property --glass-top-y{syntax:"<percentage>";inherits:true;initial-value:18%}@property --glass-bottom-x{syntax:"<percentage>";inherits:true;initial-value:80%}@property --glass-bottom-y{syntax:"<percentage>";inherits:true;initial-value:82%}.glass-surface{--glass-top-x:20%;--glass-top-y:18%;--glass-bottom-x:80%;--glass-bottom-y:82%;isolation:isolate;transition:--glass-top-x .32s ease-out,--glass-top-y .32s ease-out,--glass-bottom-x .32s ease-out,--glass-bottom-y .32s ease-out;position:relative}.project-preview{--project-accent:#5280ff;aspect-ratio:1.65;border:1px solid color-mix(in srgb, var(--project-accent) 45%, #dfedff61);background:radial-gradient(ellipse 95% 85% at var(--glass-top-x) var(--glass-top-y), color-mix(in srgb, var(--project-accent) 52%, transparent), transparent 72%), radial-gradient(ellipse 65% 70% at var(--glass-bottom-x) var(--glass-bottom-y), color-mix(in srgb, var(--project-accent) 27%, transparent), transparent 74%), linear-gradient(145deg, #ebf6ff1f, transparent 35%, #83b0f512 100%), #0c121f82;height:auto;box-shadow:inset 0 1px 0 #f4faff5c, inset 1px 0 0 #e5f2ff24, inset 0 -1px 0 color-mix(in srgb, var(--project-accent) 24%, transparent), 0 15px 35px #0000002e, 0 0 24px color-mix(in srgb, var(--project-accent) 9%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.6);backdrop-filter:blur(14px)saturate(1.6);border-radius:14px;overflow:hidden}.project-preview:before{z-index:0;pointer-events:none;content:"";background:radial-gradient(ellipse 27% 9% at 16% 11%, #ffffff40, transparent 78%), radial-gradient(ellipse 30% 14% at var(--glass-bottom-x) var(--glass-bottom-y), color-mix(in srgb, var(--project-accent) 25%, #ffffff14), transparent 82%), radial-gradient(ellipse 58% 30% at var(--glass-top-x) var(--glass-top-y), color-mix(in srgb, var(--project-accent) 35%, #fff3), transparent 76%), radial-gradient(ellipse 37% 28% at var(--glass-bottom-x) var(--glass-bottom-y), color-mix(in srgb, var(--project-accent) 23%, transparent), transparent 80%);position:absolute;inset:0}.website-window{z-index:1;color:#1b2026;background:#f5f6f7;border:1px solid #ffffff6b;border-radius:10px;width:76%;height:77%;padding:16px 19px;transition:transform .3s,box-shadow .3s;position:absolute;top:10%;left:5%;overflow:hidden;box-shadow:0 14px 36px #0000003d}.project-preview--standalone .website-window{width:84%;left:8%}.website-window.website-window--detail-video{padding:0}.website-detail-video{object-fit:cover;background:#f5f6f7;width:100%;height:100%;display:block}.website-topbar{justify-content:space-between;align-items:center;height:36px;display:flex}.preview-logo{object-fit:contain;object-position:left center;width:44px;height:35px;display:block}.preview-logo--grand-coast-construction,.preview-logo--miranda-insights{background:#fff;border-radius:4px;padding:3px}.preview-logo--diningdealz{object-fit:cover;object-position:center;border-radius:50%;width:37px;height:37px}.preview-logo--circlecal{filter:brightness(1.4)}.preview-logo--developmental-baseball,.preview-logo--jptraining{object-fit:contain;object-position:center;background:#1d1d27;border-radius:4px;width:35px;height:35px}.preview-monogram{background:var(--project-accent);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;font-size:18px;font-weight:700;display:grid}.website-nav{gap:7px;display:flex}.website-nav i{background:#cbd0d5;border-radius:4px;width:18px;height:4px;display:block}.website-content{grid-template-columns:.92fr 1.08fr;align-items:center;gap:14px;height:calc(100% - 82px);display:grid}.project-preview--standalone .website-content{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr)}.website-copy{min-width:0}.website-copy strong{color:#171b20;letter-spacing:-.04em;font-size:clamp(16px,2vw,24px);font-weight:700;line-height:1.12;display:block}.website-copy p{color:#5f6771;margin:7px 0 11px;font-size:13px;line-height:1.4}.preview-action{background:var(--project-accent);border-radius:5px;width:62px;height:20px;display:block}.website-art{background:color-mix(in srgb, var(--project-accent), white 28%);border-radius:9px;height:82%;position:relative;overflow:hidden}.project-preview--standalone .website-art{aspect-ratio:16/9;width:100%;height:auto}.website-art--video{isolation:isolate}.website-art--video:before,.website-art--video:after,.website-art--video i{display:none}.website-art-video{z-index:2;border-radius:inherit;opacity:1;object-fit:cover;width:100%;height:100%;transition:opacity .2s;display:block;position:absolute;inset:0}.website-art:before,.website-art:after{content:"";background:color-mix(in srgb, var(--project-accent), white 63%);border-radius:50%;position:absolute}.website-art:before{aspect-ratio:1;width:76%;top:-25%;right:-7%}.website-art:after{aspect-ratio:1;background:color-mix(in srgb, var(--project-accent), #fff 48%);width:88%;bottom:-34%;left:-13%}.website-art i{z-index:1;background:color-mix(in srgb, var(--project-accent), white 8%);border-radius:20px 20px 4px 4px;width:16%;height:30%;position:absolute;bottom:12%;left:13%}.website-art i:nth-child(2){opacity:.88;height:48%;left:37%}.website-art i:nth-child(3){opacity:.7;height:39%;left:61%}.website-footer{align-items:center;gap:8px;height:31px;display:flex}.website-footer i{background:#d7dbe0;border-radius:5px;width:28%;height:7px;display:block}.website-footer i:nth-child(2){width:22%}.website-footer i:nth-child(3){width:17%}.phone-device{z-index:2;background:#15181d;border:1px solid #555c66;border-radius:19px;width:19%;min-width:0;max-width:170px;height:68%;padding:5px;transition:transform .3s,box-shadow .3s;position:absolute;top:18%;right:7%;box-shadow:0 16px 28px #00000070}@media (hover:hover){.project-preview:hover .website-window{transform:translateY(-6px);box-shadow:0 20px 42px #00000045}.project-preview:hover .phone-device{transform:translateY(-8px);box-shadow:0 22px 34px #0000007a}}.project-card-link:focus-visible .website-window{transform:translateY(-6px)}.project-card-link:focus-visible .phone-device{transform:translateY(-8px)}.phone-screen{color:#1a1f24;background:#f7f8f9;border-radius:14px;flex-direction:column;align-items:flex-start;height:100%;padding:18px 10px 10px;display:flex;position:relative;overflow:hidden}.phone-camera{z-index:2;background:#202329;border-radius:5px;width:28px;height:5px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.phone-screen--video{padding:0}.phone-demo-video{z-index:1;border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.phone-screen .preview-logo{width:25px;height:23px;margin-bottom:6px}.phone-screen .preview-monogram{width:21px;height:21px;margin-bottom:6px;font-size:12px}.phone-screen strong{font-size:12px;line-height:1.25}.phone-highlight{background:color-mix(in srgb, var(--project-accent), white 19%);border-radius:6px;width:100%;height:29%;min-height:24px;margin:9px 0;display:block}.phone-list-item{background:#fff;border:1px solid #e1e4e7;border-radius:5px;width:100%;height:15px;margin-top:6px;display:block}.phone-list-item:last-child{width:78%}.project-meta{margin-top:18px}.project-heading-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.project-heading-row h3{color:#f0f2f5;letter-spacing:-.025em;min-width:0;margin:0;font-size:21px;font-weight:650;line-height:1.3}.status-pill{color:#edca8c;border:1px solid #65502a;border-radius:20px;flex:none;align-items:center;gap:7px;margin-top:3px;padding:4px 9px;font-size:12px;line-height:1.3;display:inline-flex}.status-pill i{background:#e7b457;border-radius:50%;width:7px;height:7px}.status-pill--live{color:#9bd9b4;border-color:#2d5941}.status-pill--live i{background:#60c788}.project-summary{color:#abb2bc;max-width:550px;margin:10px 0 0;font-size:14px;line-height:1.6}.project-stack{flex-wrap:wrap;gap:7px;margin:13px 0 0;padding:0;list-style:none;display:flex}.project-stack li{color:#c4cad2;border:1px solid #333a44;border-radius:5px;padding:4px 9px;font-size:12px}.project-detail-cta{color:#80b3ff;align-items:center;gap:9px;margin-top:17px;font-size:14px;font-weight:600;display:inline-flex}.project-card-link:hover .project-detail-cta{color:#fff}.project-detail-cta span{font-size:18px}.detail-hero{padding-top:48px;padding-bottom:64px}.detail-back-link{color:#91bfff;align-items:center;gap:10px;font-size:15px;font-weight:600;transition:color .2s;display:inline-flex}.detail-back-link:hover{color:#fff}.detail-back-link span{font-size:20px;line-height:1}.detail-hero-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:center;gap:clamp(28px,4vw,70px);max-width:1210px;margin:45px auto 0;display:grid}.detail-hero-copy{min-width:0}.detail-context{color:var(--muted);flex-wrap:wrap;align-items:center;gap:13px;font-size:15px;display:flex}.detail-context .status-pill{margin-top:0}.detail-hero h1{letter-spacing:-.052em;margin:21px 0 17px;font-size:clamp(46px,5.8vw,74px);font-weight:700;line-height:1.06}.detail-hero-copy>p{max-width:540px;color:var(--text);margin:0;font-size:19px;line-height:1.65}.detail-actions{flex-wrap:wrap;gap:12px;margin-top:27px;display:flex}.detail-actions .button span{font-size:19px;line-height:1}.detail-visual{min-width:0}.detail-content{max-width:1210px;padding-bottom:95px}.detail-overview{grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);align-items:start;gap:clamp(32px,5vw,80px);padding:20px 0 62px;display:grid}.detail-overview h2,.detail-section h2{letter-spacing:-.035em;margin:0 0 18px;font-size:clamp(29px,3vw,36px);font-weight:700;line-height:1.2}.detail-overview p{max-width:720px;color:var(--text);margin:0;font-size:18px;line-height:1.75}.detail-stack{background:var(--panel);border:1px solid #303741;border-radius:12px;padding:25px 27px}.detail-stack h2{margin-bottom:15px;font-size:19px}.detail-stack .project-stack{margin-top:0}.detail-stack .project-stack li{font-size:13px}.detail-section{margin-top:34px}.detail-surface-grid,.detail-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.detail-surface-grid--single{grid-template-columns:minmax(0,1fr);max-width:760px}.detail-highlight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-surface,.detail-highlight{background:var(--panel);border:1px solid #303741;border-radius:12px;min-width:0;padding:28px 29px}.detail-surface h3,.detail-highlight h3{letter-spacing:-.025em;margin:0 0 10px;font-size:21px;font-weight:650;line-height:1.3}.detail-surface p,.detail-highlight p{color:#b8bec8;margin:0;font-size:15px;line-height:1.7}.detail-back-link--bottom{margin-top:60px}.about-section{padding-top:88px}.about-heading{width:min(100%, var(--about-content));margin-inline:auto;margin-bottom:37px}.about-heading h2 span,.contact-heading h2 span{color:#8fb9ff}.about-layout{width:min(100%, var(--about-content));grid-template-columns:minmax(0,1fr) minmax(0,320px);align-items:start;gap:26px 32px;margin-inline:auto;display:grid}.about-story{color:#abb2bc;grid-area:1/1;max-width:550px;font-size:15px;line-height:1.8}.about-portrait{aspect-ratio:4/5;grid-area:1/2/span 2;width:100%;margin:0;position:relative;overflow:hidden}.about-portrait-image{object-fit:contain;object-position:center top}.about-story p{margin:0 0 17px}.about-story .about-lead{color:#e0e3e8;font-size:17px;line-height:1.7}.about-signature{color:#fff;margin-top:25px;font-size:17px;font-weight:700}.focus-panel{background:var(--panel);border:1px solid #303741;border-radius:12px;grid-area:2/1;justify-self:start;width:fit-content;max-width:100%;padding:24px 27px}.focus-panel h3{color:#f1f3f5;margin:0 0 15px;font-size:19px;font-weight:650}.focus-panel ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.focus-panel li{color:#ccd1d8;padding-left:20px;font-size:15px;position:relative}.focus-panel li:before{background:var(--blue-light);content:"";border-radius:50%;width:7px;height:7px;position:absolute;top:.69em;left:0}.resume-section{padding-top:77px}.resume-card{background:#13171d;border:1px solid #303741;border-radius:13px;justify-content:flex-start;align-items:center;gap:24px;width:fit-content;max-width:100%;min-height:164px;margin-inline:auto;padding:31px 34px;display:flex}.resume-copy{max-width:600px}.resume-copy h2{color:#f3f5f7;letter-spacing:-.03em;margin:0;font-size:25px;font-weight:650}.resume-copy p{color:#abb2bc;margin:7px 0 0;font-size:15px}.resume-button{flex:none}.resume-pending{color:#b8bec7;flex:none;font-size:14px}.contact-section{padding-top:104px;padding-bottom:97px}.contact-heading{margin-bottom:42px}.contact-heading h2{text-align:left}.contact-heading .section-intro{text-align:left;max-width:480px;line-height:1.7}.contact-layout{grid-template-columns:minmax(0,.38fr) minmax(0,.62fr);align-items:start;gap:clamp(24px,3vw,48px);display:grid}.contact-details,.contact-form{min-width:0}.contact-details{padding-top:4px}.contact-details h3{color:#f0f2f4;margin:0;font-size:20px;font-weight:650}.contact-details>p{color:#abb2bc;margin:8px 0 23px;font-size:15px}.social-list{border-top:1px solid var(--line)}.social-link{border-bottom:1px solid var(--line);color:#e2e5e9;align-items:center;gap:14px;min-height:68px;font-size:15px;transition:color .2s;display:flex}.social-link[href]{cursor:pointer}.social-link[href]:hover{color:#fff}.social-link[href]:active{color:var(--blue-light)}.social-link--missing{color:#d2d6dc;cursor:default}.contact-link-pending{color:var(--muted);margin-left:auto;font-size:13px}.social-icon{color:#e1e7ef;border:1px solid #3d4652;border-radius:8px;flex:none;place-items:center;width:40px;height:40px;display:grid}.social-icon svg{width:18px;height:18px}.social-icon svg[fill=none]{stroke:currentColor;stroke-width:1.5px}.linkedin-mark{font-size:16px;font-weight:700}.social-arrow{color:#94baff;width:20px;height:20px;margin-left:auto;display:grid}.social-arrow svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:20px;height:20px}.contact-form{background:var(--panel);border:1px solid #333b46;border-radius:12px;width:100%;padding:25px 27px 22px}.detail-stack,.detail-surface,.detail-highlight,.focus-panel,.resume-card,.contact-form{border-color:var(--panel-glass-line);background:radial-gradient(ellipse 78% 70% at var(--glass-top-x) var(--glass-top-y), #94caff40, transparent 71%), radial-gradient(ellipse 60% 65% at var(--glass-bottom-x) var(--glass-bottom-y), #2f71dd33, transparent 73%), linear-gradient(145deg, #eef8ff17, transparent 42%, #699eea0f), var(--panel-glass);-webkit-backdrop-filter:blur(14px)saturate(1.5);backdrop-filter:blur(14px)saturate(1.5);box-shadow:inset 0 1px #ecf6ff4d,inset 1px 0 #c8e2ff1f,inset 0 -1px #478be22e,0 14px 34px #00000029}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.project-preview{background-color:#111827e6}.detail-stack,.detail-surface,.detail-highlight,.focus-panel,.resume-card,.contact-form{background-color:#111827f0}}.form-heading{color:#f1f3f5;margin:0 0 22px;font-size:21px;font-weight:650}.form-field{margin-bottom:16px}.form-field label{color:#e2e5e9;margin-bottom:7px;font-size:14px;font-weight:600;display:block}.form-field label span{color:#81b2ff}.form-field input,.form-field textarea{width:100%;color:var(--white);background:#0d1014;border:1px solid #39424e;border-radius:7px;outline:0;font-size:15px;transition:border-color .18s,box-shadow .18s;display:block}.form-field input{height:47px;padding:0 13px}.form-field textarea{resize:vertical;min-height:132px;padding:12px 13px;line-height:1.55}.form-field input::placeholder,.form-field textarea::placeholder{color:#828b97}.form-field input:focus,.form-field textarea:focus{border-color:#5c98f7;box-shadow:0 0 0 3px #3269dc33}.bot-field{opacity:0;width:1px;height:1px;position:absolute;left:-10000px}.form-submit{cursor:pointer;text-align:left;justify-content:space-between;width:100%;margin-top:2px}.form-submit>span:last-child{font-size:18px}.form-submit:disabled{cursor:wait;opacity:.8}.button-spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.privacy-note{color:#a5acb6;margin:14px 0 0;font-size:13px;line-height:1.6}.form-feedback{min-height:0;margin:0;font-size:14px;line-height:1.55}.form-feedback--error,.form-feedback--success{color:#ffb6bd;background:#59223033;border:1px solid #654049;border-radius:7px;margin-top:12px;padding:11px 12px}.form-feedback--success{color:#9de1b8;background:#255f4229;border-color:#315b44}.site-footer{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;align-items:center;gap:28px;min-height:100px;transition:background-color .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;display:flex}.site-footer .wordmark{margin-right:auto}.site-footer small{color:#9ca4af;font-size:13px}.back-top{align-items:center;gap:8px;display:inline-flex}.back-top span{color:var(--blue-light);font-size:18px}:focus-visible{outline-offset:3px;outline:2px solid #80b0ff}@media (max-width:920px){:root{--page-gutter:20px}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:28px;min-height:600px}.hero h1{font-size:clamp(50px,6.8vw,68px)}.hero-intro{font-size:16px}.hero-brand{width:min(100%,370px)}.website-window{padding:12px 13px}.website-content{height:calc(100% - 70px)}.website-copy p{font-size:12px}.website-footer{height:25px}.phone-device{min-width:79px}.about-layout{gap:24px 28px}.contact-layout{gap:28px}.detail-hero-grid{grid-template-columns:minmax(0,1fr);gap:35px;max-width:720px}.detail-content{max-width:720px}.detail-overview{grid-template-columns:minmax(0,1fr);gap:30px}.detail-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.about-heading,.about-layout{width:min(100%,640px)}.about-layout{grid-template-columns:minmax(0,1fr);gap:25px}.about-story,.about-portrait,.focus-panel{grid-area:auto}.about-portrait{justify-self:center;width:min(100%,320px)}}@media (max-width:760px){.contact-layout{grid-template-columns:minmax(0,1fr);gap:30px}}@media (max-width:680px){:root{--page-gutter:16px}html{scroll-padding-top:70px}.header-inner{height:68px}.wordmark{font-size:15px}.site-header nav{gap:clamp(9px,3vw,17px)}.site-header nav a{font-size:12px}.detail-hero{padding-top:31px;padding-bottom:48px}.detail-hero-grid{gap:28px;margin-top:31px}.detail-hero h1{font-size:clamp(42px,11vw,58px)}.detail-hero-copy>p{font-size:16px}.detail-overview{gap:26px;padding:6px 0 29px}.detail-overview p{font-size:16px}.detail-surface-grid,.detail-highlight-grid{grid-template-columns:minmax(0,1fr)}.detail-surface,.detail-highlight{padding:22px 21px}.detail-section{margin-top:34px}.detail-content{padding-bottom:65px}.hero{flex-direction:column;align-items:stretch;gap:38px;min-height:auto;padding-top:55px;padding-bottom:64px;display:flex}.hero h1{font-size:clamp(46px,11.5vw,67px)}.hero-intro{max-width:450px;margin:19px 0 22px;font-size:16px}.button{min-height:47px;padding-inline:16px;font-size:13px}.hero-meta{margin-top:25px;font-size:14px}.hero-brand{align-self:center;width:min(100%,390px)}.work-section{padding-top:62px;padding-bottom:30px}.section-heading{margin-bottom:31px}.section-heading h2,.about-heading h2,.contact-heading h2{font-size:clamp(38px,10vw,48px)}.section-intro{font-size:15px}.work-subheading{margin-bottom:19px;font-size:20px}.project-grid{grid-template-columns:1fr;gap:37px}.standalone-heading{margin-top:45px}.project-preview{aspect-ratio:1.55}.website-window{width:77%;height:78%;padding:13px 14px;top:9%;left:5%}.website-topbar{height:32px}.website-content{gap:10px;height:calc(100% - 68px)}.website-copy strong{font-size:clamp(16px,5vw,23px)}.website-copy p{margin:5px 0 8px;font-size:12px}.website-footer{height:26px}.project-grid--standalone .project-preview{aspect-ratio:1.4}.project-grid--standalone .website-window{height:83%;padding:10px 12px;top:8%}.project-grid--standalone .website-topbar{height:29px}.project-grid--standalone .preview-logo{width:28px;height:28px}.project-grid--standalone .website-content{gap:8px;height:calc(100% - 51px)}.project-grid--standalone .website-footer{height:22px}.project-grid:not(.project-grid--standalone) .project-preview{aspect-ratio:1.4}.project-grid:not(.project-grid--standalone) .website-window{width:84%;height:83%;padding:10px 12px;top:8%;left:8%}.project-grid:not(.project-grid--standalone) .website-topbar{height:29px}.project-grid:not(.project-grid--standalone) .website-content{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:8px;height:calc(100% - 51px)}.project-grid:not(.project-grid--standalone) .website-art{aspect-ratio:16/9;width:100%;height:auto}.project-grid:not(.project-grid--standalone) .website-footer{height:22px}.phone-device{width:22%;min-width:83px;height:66%;top:19%;right:6%}.project-grid:not(.project-grid--standalone) .phone-device{width:25%;min-width:0;height:72%;top:14%}.project-heading-row h3{font-size:20px}.project-summary{font-size:14px}.about-section{padding-top:63px}.about-heading{margin-bottom:25px}.about-layout{grid-template-columns:1fr;gap:25px}.about-story{font-size:15px}.about-story .about-lead{font-size:16px}.focus-panel{padding:21px 20px}.focus-panel li{font-size:14px}.resume-section{padding-top:52px}.resume-card{flex-direction:column;align-items:flex-start;gap:19px;min-height:0;padding:23px 21px}.resume-copy h2{font-size:22px}.resume-copy p{font-size:14px}.resume-button{align-self:flex-start}.contact-section{padding-top:71px;padding-bottom:68px}.contact-heading{margin-bottom:28px}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-details>p{margin-bottom:17px}.social-link{min-height:62px}.contact-form{padding:21px 18px 18px}.form-field textarea{min-height:118px}.privacy-note{font-size:12px}.site-footer{flex-wrap:wrap;gap:17px;min-height:88px}.site-footer .wordmark{width:calc(50% - 17px)}.back-top{margin-left:auto;font-size:13px}.site-footer small{width:100%;margin-top:-20px;font-size:12px}}@media (max-width:380px){.site-header nav{gap:8px}.site-header nav a{font-size:11px}.wordmark{font-size:14px}.hero-actions{gap:8px}.button{padding-inline:12px;font-size:12px}.project-heading-row{flex-direction:column;gap:7px}}@media (prefers-reduced-motion:reduce){.project-preview:hover .website-window,.project-preview:hover .phone-device,.project-card-link:focus-visible .website-window,.project-card-link:focus-visible .phone-device{transform:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
